1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 David Malan: Welkom terug, almal. 3 00:00:01,790 --> 00:00:05,030 So gister, sal jy onthou dat Ons het gefokus op hierdie onderwerpe hier. 4 00:00:05,030 --> 00:00:08,380 So het ons vier oorkoepelende topics-- privaatheid, sekuriteit, en die samelewing; 5 00:00:08,380 --> 00:00:11,960 internet tegnologie; wolk rekenaar; en uiteindelik, web ontwikkeling. 6 00:00:11,960 --> 00:00:14,170 >> Het iemand het die bandwydte of die tyd 7 00:00:14,170 --> 00:00:16,900 om 'n bietjie John kyk Oliver gisteraand? 8 00:00:16,900 --> 00:00:20,120 Dit is eintlik redelik amusant, indien nie 'n bietjie skrikwekkend. 9 00:00:20,120 --> 00:00:24,700 Enige vrae oor enigiets Ons het gister? 10 00:00:24,700 --> 00:00:27,600 Enige verduideliking? 11 00:00:27,600 --> 00:00:35,580 Enige vrae wat jy wil maak seker ons raak vandag in een of ander vorm? 12 00:00:35,580 --> 00:00:37,300 So skoon lei. 13 00:00:37,300 --> 00:00:38,760 >> So, wat is op die agenda vir vandag? 14 00:00:38,760 --> 00:00:41,301 So het ek gedink ons ​​wil begin vandag met 'n blik op wat oor die algemeen 15 00:00:41,301 --> 00:00:44,460 bekend as computational thinking-- by die risiko van oorvereenvoudig, dink 16 00:00:44,460 --> 00:00:46,636 soos 'n rekenaar, miskien dink soos 'n ingenieur, 17 00:00:46,636 --> 00:00:48,510 en probeer om te begin om organiseer jou gedagtes 18 00:00:48,510 --> 00:00:52,039 of om jou 'n beter begrip van gee wat betrokke is by eintlik bevelvoerder 19 00:00:52,039 --> 00:00:54,080 'n rekenaar om iets te doen deur middel van programmering. 20 00:00:54,080 --> 00:00:56,663 En ons sal dit hou 'n mooi hoë vlak, pretty much Engels, 21 00:00:56,663 --> 00:00:59,850 maar probeer om te gebruik van bekende voorbeelde te formaliseer hoe 22 00:00:59,850 --> 00:01:01,450 jy te werk sal gaan oplos van probleme. 23 00:01:01,450 --> 00:01:04,080 >> En ons sal verskeie CS heroorweeg onderwerpe, soos onttrekking, 24 00:01:04,080 --> 00:01:06,040 wat 'n paar vorendag gekom keer gister, 25 00:01:06,040 --> 00:01:07,554 algoritmes, en dan verteenwoordiging. 26 00:01:07,554 --> 00:01:09,720 En dit is waar ons moet begin vandag in net 'n oomblik. 27 00:01:09,720 --> 00:01:11,481 Dan sal ons 'n blik op ontwikkeling te neem. 28 00:01:11,481 --> 00:01:13,480 Ons sal 'n blik op sommige neem fundamentele konstrukte 29 00:01:13,480 --> 00:01:16,450 waarmee jy dalk vertroud wees en dalk selfs vind nogal intuïtief. 30 00:01:16,450 --> 00:01:18,370 >> Ons sal kyk, in werklikheid, teen 'n monster programmering 31 00:01:18,370 --> 00:01:21,244 omgewing wat baie toeganklik, baie speels en inderdaad gerig 32 00:01:21,244 --> 00:01:22,555 vir ouderdomme 12 en ouer. 33 00:01:22,555 --> 00:01:25,930 Ons sal 'n paar minute daar spandeer en dan neem dinge na 'n laer vlak 34 00:01:25,930 --> 00:01:30,360 en eintlik praat oor 'n paar van die algoritmes en datastrukture, 35 00:01:30,360 --> 00:01:32,360 om so te praat, wat programmeerders tipies gebruik 36 00:01:32,360 --> 00:01:35,040 om probleme op te los baie meer doeltreffend as wat jy dalk 37 00:01:35,040 --> 00:01:37,322 in staat wees om heeltemal te doen sonder hulle. 38 00:01:37,322 --> 00:01:40,280 Dan na middagete, sal ons 'n blik op tegnologie stapels, wat net 39 00:01:40,280 --> 00:01:42,240 'n fancy manier om te sê versamelings van tegnologie 40 00:01:42,240 --> 00:01:43,690 wat jy kan gebruik om los 'n probleem. 41 00:01:43,690 --> 00:01:46,670 En ons sal praat oor die alfabet sop van tale wat bestaan ​​today-- 42 00:01:46,670 --> 00:01:50,930 Java en Python en C ++ en PHP en Ruby en allerhande ander dinge. 43 00:01:50,930 --> 00:01:53,740 >> Ons sal 'n blik kortliks te neem by ontwerp patrone. 44 00:01:53,740 --> 00:01:57,730 Programmeerders, met verloop van tyd, het aangeneem metodologieë 45 00:01:57,730 --> 00:02:00,690 wat geneig is om hulle te help probleme op te los meer geredelik. 46 00:02:00,690 --> 00:02:04,390 Wanneer jy begin om jouself te sien skryf dieselfde soort kode weer en weer, 47 00:02:04,390 --> 00:02:08,080 mense formaliseer diegene herhalings en toeskryf name aan hulle 48 00:02:08,080 --> 00:02:10,084 en gebruik dit dan en bevorder hulle uiteindelik. 49 00:02:10,084 --> 00:02:12,250 En ons sal 'n bietjie gesels oor mobiele strategieë, 50 00:02:12,250 --> 00:02:16,099 soos wat beteken dit om werklik 'n mobiele program of 'n mobiele webwerf. 51 00:02:16,099 --> 00:02:17,140 Het jy dit doen vir Android? 52 00:02:17,140 --> 00:02:17,730 Het jy dit vir IOS? 53 00:02:17,730 --> 00:02:19,160 Het jy dit vir beide van diegene? 54 00:02:19,160 --> 00:02:20,326 En wat is die trade-offs? 55 00:02:20,326 --> 00:02:23,180 En dan uiteindelik, sal ons neem 'n blik web ontwikkeling, wat 56 00:02:23,180 --> 00:02:25,380 is 'n kollektiewe term regtig beskryf enige tyd 57 00:02:25,380 --> 00:02:28,410 jy skryf sagteware wat bedoel om uit te voer op die web, 58 00:02:28,410 --> 00:02:30,430 of op selfone of desktops en skootrekenaars. 59 00:02:30,430 --> 00:02:33,490 Ons sal 'n kort blik op te neem databasisse en die ontwerp 60 00:02:33,490 --> 00:02:39,049 daarin, al is dit net omdat byna elke interessante web-gebaseerde program 61 00:02:39,049 --> 00:02:40,590 deesdae het 'n soort van databasis. 62 00:02:40,590 --> 00:02:42,380 Andersins, dit sal net statiese inhoud. 63 00:02:42,380 --> 00:02:45,254 En 'n databasis kan jy maak veranderinge met verloop van tyd, of jouself 64 00:02:45,254 --> 00:02:45,960 of van die gebruikers. 65 00:02:45,960 --> 00:02:47,820 En ons sal kyk hoe jy werk sal gaan om die ontwerp 66 00:02:47,820 --> 00:02:50,510 dat databasis en die soort jargon wat kan kom in 'n ingenieur se 67 00:02:50,510 --> 00:02:52,790 bespreking op 'n wit bord wanneer eintlik implementering 68 00:02:52,790 --> 00:02:53,900 'n app vir die eerste keer. 69 00:02:53,900 --> 00:02:57,002 >> Ons sal kortliks praat oor APIs, nuttige dienste 70 00:02:57,002 --> 00:02:59,960 wat jy kan gebruik op die om op te staan skouers van ander, of maatskappye 71 00:02:59,960 --> 00:03:02,619 of individue, en los jou eie probleme vinniger. 72 00:03:02,619 --> 00:03:04,785 En dan sal ons dalk ploeteraars 'n bietjie met JavaScript, 73 00:03:04,785 --> 00:03:08,900 'n programmeertaal wat gebruik word beide in blaaiers deesdae, maar ook 74 00:03:08,900 --> 00:03:09,820 in bedieners. 75 00:03:09,820 --> 00:03:11,890 En miskien, sal ons weer, die tyd dit toelaat, 76 00:03:11,890 --> 00:03:15,670 sommige van die praktiese web dinge wat ons het gister en die twee te integreer 77 00:03:15,670 --> 00:03:17,630 saam voordat ons verdaag. 78 00:03:17,630 --> 00:03:22,380 >> So met that-- wat ahead-- is daar enigiets ontbreek wat jou 79 00:03:22,380 --> 00:03:26,289 wil om seker te maak ons ​​voeg en raak op een of ander stadium. 80 00:03:26,289 --> 00:03:28,330 As dit Springs ter harte neem, bring dit tot kort voor lank. 81 00:03:28,330 --> 00:03:32,010 Maar hoekom doen ons nie begin met 'n kyk na Rekenaardenke. 82 00:03:32,010 --> 00:03:35,420 >> En laat ek stel voor dat Rekenaardenke is, weer, 83 00:03:35,420 --> 00:03:38,830 soort van die hoë vlak beskrywing van wat 'n rekenaar wetenskaplike kan doen. 84 00:03:38,830 --> 00:03:42,470 En inderdaad, kom ons begin met drie bestanddele wat 85 00:03:42,470 --> 00:03:44,207 mag gaan in computational denke. 86 00:03:44,207 --> 00:03:45,790 Dit is net een manier om dit te beskryf. 87 00:03:45,790 --> 00:03:48,490 Ons kan beslis definieer dit in 'n aantal maniere. 88 00:03:48,490 --> 00:03:50,630 >> Maar laat my stel, ter wille van vandag, 89 00:03:50,630 --> 00:03:53,910 wat die wêreld se probleme, al die wêreld se probleme, 90 00:03:53,910 --> 00:03:56,730 wanneer hulle genader word deur 'n rekenaarwetenskaplike kon 91 00:03:56,730 --> 00:04:00,990 gesien word as wat ons sal oproep insette, wat 92 00:04:00,990 --> 00:04:08,142 moet gevoer word in wat ons sal noem algoritmes, wat dan lewer uitgange. 93 00:04:08,142 --> 00:04:10,600 Met ander woorde, die hele wêreld van probleemoplossingsvaardighede Ek eis 94 00:04:10,600 --> 00:04:13,140 kan gedistilleerde in hierdie drie bestanddele. 95 00:04:13,140 --> 00:04:14,450 So, wat bedoel ek met insette? 96 00:04:14,450 --> 00:04:17,060 Insette is net wat jy oorhandig om op te los. 97 00:04:17,060 --> 00:04:20,052 >> Byvoorbeeld, hier is 'n ou skool probleem. 98 00:04:20,052 --> 00:04:22,760 As ek 'n telefoon boek hier en Ek wil iets kyk na dit, 99 00:04:22,760 --> 00:04:23,760 dit is my insette. 100 00:04:23,760 --> 00:04:26,260 Ek het 1000 of so bladsye in 'n telefoon boek. 101 00:04:26,260 --> 00:04:27,780 Dit is die insette om my probleem. 102 00:04:27,780 --> 00:04:31,507 En ek wil iets vind soos Mike Smith, sodat 'n vriend 103 00:04:31,507 --> 00:04:33,840 wie se naam en nommer hopelik in hierdie adresboek. 104 00:04:33,840 --> 00:04:36,430 >> Dit is voor die dae van sel selfone, so ek kan nie net soek vir dit. 105 00:04:36,430 --> 00:04:38,540 So ek het dit ou te doen skool en eintlik soek 106 00:04:38,540 --> 00:04:41,331 hierdie insette vir 'n paar antwoorde. 107 00:04:41,331 --> 00:04:43,580 En die antwoord is net gaan die uitset genoem te word nie. 108 00:04:43,580 --> 00:04:44,871 So het die insette is die telefoon boek. 109 00:04:44,871 --> 00:04:47,787 Die algoritme is alles stel stappe wat ek gebruik om Mike Smith vind. 110 00:04:47,787 --> 00:04:50,120 En die uitset is, hopelik, Mike Smith se telefoonnommer. 111 00:04:50,120 --> 00:04:52,703 En dit dan net sou wees verteenwoordiger van die meeste enige probleem 112 00:04:52,703 --> 00:04:55,210 om met jou oorhandig insette en wil uitsette te produseer. 113 00:04:55,210 --> 00:04:59,459 >> Dus, voordat ons kyk na die proses waardeur ons kan die probleem op te los, 114 00:04:59,459 --> 00:05:01,250 vind Mike Smith en iets soos dit, 115 00:05:01,250 --> 00:05:04,090 Kom ons kyk na die eerste en die last-- insette en uitsette. 116 00:05:04,090 --> 00:05:08,060 Fisies, natuurlik, die insette hier is 'n hele klomp van die papier vasgeplak saam 117 00:05:08,060 --> 00:05:09,400 in die vorm van 'n telefoon boek. 118 00:05:09,400 --> 00:05:13,660 Maar rekenaars, van course-- skootrekenaars en desktops en selfs selfone 119 00:05:13,660 --> 00:05:16,430 hierdie days-- dit is elektroniese toestelle. 120 00:05:16,430 --> 00:05:20,920 >> En aan die einde van die dag, wat die enigste insette tot 'n rekenaar? 121 00:05:20,920 --> 00:05:23,299 Wel, dit is iets soos hierdie netsnoer hier. 122 00:05:23,299 --> 00:05:25,590 Ek prop dit in die muur, en Ek kry 'n vloei van elektrone, 123 00:05:25,590 --> 00:05:27,048 wat dit moontlik maak vir my om die masjien loop. 124 00:05:27,048 --> 00:05:30,420 Of miskien diegene elektrone geskep deur middel van my battery. 125 00:05:30,420 --> 00:05:33,790 Maar aan die einde van die dag, dis die enigste ding wat gaan in my laptop. 126 00:05:33,790 --> 00:05:35,772 En so baie interessante dinge is uiteindelik 127 00:05:35,772 --> 00:05:37,480 uit te kom, of deur middel van die drukker 128 00:05:37,480 --> 00:05:40,320 of die skerm of audially of dies meer. 129 00:05:40,320 --> 00:05:45,320 >> So as alles wat ons het as ons fundamentele insette tot 'n rekenaar 130 00:05:45,320 --> 00:05:49,160 is elektrisiteit, sodat net elektrone gaan in en of uit, 131 00:05:49,160 --> 00:05:54,465 en so hoe kan ons gebruik wat insette om werklik inligting voor te stel? 132 00:05:54,465 --> 00:05:57,090 Met ander woorde, hoe kry ons van 'n eenvoudige vloei van elektrisiteit 133 00:05:57,090 --> 00:06:00,350 om verteenwoordig werklike getalle of werklike briewe 134 00:06:00,350 --> 00:06:03,620 of werklike beelde op die skerm of werklike films of e-posse 135 00:06:03,620 --> 00:06:05,690 of enige nommer van hierdie hoër vlak konsepte, 136 00:06:05,690 --> 00:06:07,680 as jy wil, wat aan die einde van die dag op 'n manier 137 00:06:07,680 --> 00:06:11,950 moet gestoor word in hierdie elektroniese meganiese toestel 138 00:06:11,950 --> 00:06:16,260 die gebruik van slegs die eenvoudige ingredients-- elektrone kom in en uit? 139 00:06:16,260 --> 00:06:19,530 >> So dit blyk dat, in die eenvoudigste vorm, 140 00:06:19,530 --> 00:06:23,260 die enigste soort state Ek het in my wêreld, sodat 141 00:06:23,260 --> 00:06:25,350 aan voorwaardes speak-- in my world-- is óf 142 00:06:25,350 --> 00:06:33,020 Ek het elektrone vloei, elektrisiteit vloei, of ek doen not-- so aan, af. 143 00:06:33,020 --> 00:06:35,850 En laat ons formaliseer op en af, as 'n rekenaarwetenskaplike krag 144 00:06:35,850 --> 00:06:37,255 met net 1 en 0. 145 00:06:37,255 --> 00:06:39,880 Kom ons beskryf sommige arbitrêre maar konsekwent nommer nie. 146 00:06:39,880 --> 00:06:41,970 1 beteken op, 0 beteken nie. 147 00:06:41,970 --> 00:06:45,427 Of jy kan ook beskou dit as ware middel op en valse middel. 148 00:06:45,427 --> 00:06:47,510 Jy kan ook swart doen en wit of rooi en blou. 149 00:06:47,510 --> 00:06:48,759 Jy hoef net twee beskrywings. 150 00:06:48,759 --> 00:06:52,240 En 'n rekenaar wetenskaplikes sou oor die algemeen net gebruik 0 en 1. 151 00:06:52,240 --> 00:06:58,980 >> So as dit die geval is, my enigste alfabet is wat bestaan ​​uit 0 en 1 se hoe 152 00:06:58,980 --> 00:07:03,360 kon ek moontlik te kry om die syfer selfs 2 in 'n rekenaar, wat nog te sê die nommer 3 153 00:07:03,360 --> 00:07:06,140 of 'n letter van die alfabet of 'n beeld of 'n fliek? 154 00:07:06,140 --> 00:07:08,910 Hoe weet ons soort opstart onsself uit hierdie basiese beginsel 155 00:07:08,910 --> 00:07:12,080 van 0 en 1 en eintlik iets meer interessant verteenwoordig? 156 00:07:12,080 --> 00:07:14,430 >> Wel, laat ons sit daardie vraag op te hou vir 'n oomblik 157 00:07:14,430 --> 00:07:17,520 en oorweeg iets hopelik bekend, 158 00:07:17,520 --> 00:07:21,150 selfs as jy nie regtig gedink het oor dit in enige detail vir 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 meer jare. 160 00:07:22,520 --> 00:07:24,780 Dit is wat? 161 00:07:24,780 --> 00:07:28,050 Hoe sou jy dit uit? 162 00:07:28,050 --> 00:07:30,770 Nie 'n truuk vraag. 163 00:07:30,770 --> 00:07:32,950 'N Aantal nie, maar wat is dit? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3, of 123. 165 00:07:34,842 --> 00:07:37,800 En ek hou van hoe jy gesê 1, 2, 3, want dit is een manier om van die lees van dit. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, dit is 'n reeks van drie simbole. 167 00:07:39,870 --> 00:07:42,005 Dit is foto's wat ons nou woorde vir. 168 00:07:42,005 --> 00:07:44,880 En as jy soort van lees hulle almal saam, 'n tipiese menslike in Engels 169 00:07:44,880 --> 00:07:46,600 sou sê 123. 170 00:07:46,600 --> 00:07:48,350 En dit is soort van 'n hoër vlak konsep, 171 00:07:48,350 --> 00:07:50,340 voel soos 'n redelik groot aantal. 172 00:07:50,340 --> 00:07:51,490 >> Maar hoe het ons daar kom? 173 00:07:51,490 --> 00:07:54,640 Wel, dit kan 'n rukkie sedert wees jy het daaroor gedink soos hierdie, 174 00:07:54,640 --> 00:07:56,680 Maar terug in my dag, ek soort van hierdie geleer 175 00:07:56,680 --> 00:08:01,030 soos kolom die 1'e, die 10's kolom, en kolom die 100 se. 176 00:08:01,030 --> 00:08:06,400 So as Lakisa sê, dit is 1, 2, 3, maar dit is ook 123. 177 00:08:06,400 --> 00:08:08,700 Maar hoe kry ons uit die eersgenoemde na laasgenoemde? 178 00:08:08,700 --> 00:08:12,340 >> Wel, jy sal tipies doen kolom die 100 se, ek het 'n 1. 179 00:08:12,340 --> 00:08:14,794 So dit is soos om te sê 100 keer 1. 180 00:08:14,794 --> 00:08:16,210 En dan in kolom 10's, ek het 2. 181 00:08:16,210 --> 00:08:18,464 So dit is soos om te sê 10 keer 2. 182 00:08:18,464 --> 00:08:19,630 In kolom die 1'e, ek het 3. 183 00:08:19,630 --> 00:08:21,720 So dit is soos om te sê 1 keer 3. 184 00:08:21,720 --> 00:08:24,290 >> En as ek voeg hierdie dinge saam, hierdie, natuurlik, 185 00:08:24,290 --> 00:08:27,470 is 100 plus die 10 plus 3. 186 00:08:27,470 --> 00:08:31,750 En o, dit is hoekom ek hierdie kry hoër vlak idee van 123. 187 00:08:31,750 --> 00:08:37,220 Dis net basiese wiskunde, waardeur hierdie simbole gewigte aan hulle, as jy 188 00:08:37,220 --> 00:08:39,620 sal, place holder of kolom waardes. 189 00:08:39,620 --> 00:08:42,090 En as Ek vermenigvuldig alles uit, ek kry hierdie nommer. 190 00:08:42,090 --> 00:08:47,840 >> So hoeveel van julle weet hoe om te praat binary-- 0 en 1's-- soos 'n rekenaar? 191 00:08:47,840 --> 00:08:50,410 OK, perfekte, niemand, of niemand van julle dink jy doen. 192 00:08:50,410 --> 00:08:52,550 Ek sou julle kon eis eintlik weet dit reeds. 193 00:08:52,550 --> 00:08:55,330 Ons moet net soort van tweak ons geestelike model 'n bietjie. 194 00:08:55,330 --> 00:08:57,250 Maar die proses is presies dieselfde. 195 00:08:57,250 --> 00:09:01,460 >> Laat my hierdie een daar laat en plaas trek dit neer vir 'n oomblik. 196 00:09:01,460 --> 00:09:05,060 In die wêreld van rekenaars, Ons het net 0 en 1 se. 197 00:09:05,060 --> 00:09:07,240 En so het die ding wat gaan verander is wat? 198 00:09:07,240 --> 00:09:10,920 Wel, in my menslike wêreld, die desimale stelsel, Desember betekenis 10, 199 00:09:10,920 --> 00:09:12,740 Ek het hoeveel syfers tot my beskikking? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, of hoe? 202 00:09:16,540 --> 00:09:17,880 0 tot 9, natuurlik. 203 00:09:17,880 --> 00:09:21,210 >> En dit is hoekom ons het die 10 se plek en die 100 se plek. 204 00:09:21,210 --> 00:09:22,380 Waar is dit vandaan? 205 00:09:22,380 --> 00:09:24,430 Wel, dit is 10 tot die mag van 0. 206 00:09:24,430 --> 00:09:28,440 Dit is 10 tot die mag van 1, 10 om die krag van 2, en so meer. 207 00:09:28,440 --> 00:09:32,110 Jy hou net jou kolomme te vermenigvuldig met 10 begin af met net 1 208 00:09:32,110 --> 00:09:33,700 in die regterkantste een hier. 209 00:09:33,700 --> 00:09:35,490 >> So in die wêreld van rekenaars, as jy net 210 00:09:35,490 --> 00:09:39,600 het binary-- bi betekenis 2-- of 0 en 1 se, het ons net 211 00:09:39,600 --> 00:09:42,420 regtig nodig het om te verander die basis van daardie wiskunde. 212 00:09:42,420 --> 00:09:46,410 So met ander woorde, nou sal ons net het kolom die 1 en the-- 213 00:09:46,410 --> 00:09:51,270 waar is hierdie going-- kolom die 2 se kolom die 4's, en miskien buite. 214 00:09:51,270 --> 00:09:52,250 Hoekom is dit? 215 00:09:52,250 --> 00:09:55,650 Wel, dit is 2 die 0-ste krag. 216 00:09:55,650 --> 00:09:57,270 Dit is 2 die 1. 217 00:09:57,270 --> 00:09:59,610 Dit is 2 tot die 2, en so aan. 218 00:09:59,610 --> 00:10:04,910 >> So terwyl hier, ons het 1, 10's, 100 se 1000 se 10,000 se 100,000 se 1 219 00:10:04,910 --> 00:10:10,560 miljoene, en dies meer, hier Ons het 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Jy hou net vermenigvuldig met 2, in plaas van hou te vermenigvuldig met 10. 221 00:10:13,950 --> 00:10:16,780 So nou, as die doel op hand is om te verteenwoordig 222 00:10:16,780 --> 00:10:20,240 getalle met behulp van slegs 0 en 1 se Kom ons kyk hoe ons daar kom. 223 00:10:20,240 --> 00:10:26,540 >> Dit, natuurlik, is die patroon 0 0 0, maar hoeveel konseptueel 224 00:10:26,540 --> 00:10:27,490 verteenwoordig dit? 225 00:10:27,490 --> 00:10:35,430 Wel, 4 keer 0 plus 2 keer 0 plus 1 keer 0, laat ons saam te voeg diegene. 226 00:10:35,430 --> 00:10:40,030 4 keer 0 is, natuurlik, 0, plus 2 tye 0 is, natuurlik, 0 plus 1 keer 0 227 00:10:40,030 --> 00:10:40,850 is, natuurlik, 0. 228 00:10:40,850 --> 00:10:44,910 So ah, dit verteenwoordig die aantal ons mense ken as 0. 229 00:10:44,910 --> 00:10:47,810 >> Wel, nou, laat ons baie vinnig vinnig vorentoe. 230 00:10:47,810 --> 00:10:53,600 As ek in plaas nie verteenwoordig 0 0 0, maar laat ons doen 1 0 1, 231 00:10:53,600 --> 00:10:57,010 wat dalk hoe Lakisa, vroeër, sou net te spreek dit 1 0 1. 232 00:10:57,010 --> 00:11:01,020 Maar nou, hoe kan ons neem dit na die hoër vlak die getal wat ons mense kan weet? 233 00:11:01,020 --> 00:11:04,220 So, wat is hierdie getal? 234 00:11:04,220 --> 00:11:06,060 Dit is 5, die aantal wat ons weet as 5. 235 00:11:06,060 --> 00:11:06,870 >> Wel, hoekom is dit? 236 00:11:06,870 --> 00:11:09,620 Wel, kan ons regtig soort loop deur dit metodies 237 00:11:09,620 --> 00:11:14,880 4 keer 1, 2 keer 0, 1 keer 1. 238 00:11:14,880 --> 00:11:19,880 Voeg die saamgekom, sodat dit is 4 plus 0 plus 1. 239 00:11:19,880 --> 00:11:21,577 En dit is inderdaad 5. 240 00:11:21,577 --> 00:11:24,660 So dit is 'n bietjie vervelig nou doen die rekenkundige weer en weer. 241 00:11:24,660 --> 00:11:26,300 Maar die proses is presies dieselfde. 242 00:11:26,300 --> 00:11:28,380 >> Die enigste ding wat verander in ons wêreld 243 00:11:28,380 --> 00:11:32,740 is dat ons kolomme is 1, 2, 4, 8, 16, ensovoorts, in plaas van 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1000. 245 00:11:33,740 --> 00:11:40,000 En dit is net omdat ons alfabet het gekrimp van 0 tot 9 tot net 0-1. 246 00:11:40,000 --> 00:11:50,851 >> So as 'n bietjie quiz hier, hoe sou jy die nommer 7 in binêre verteenwoordig? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Wel, 0, beteken dat jy 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Sê dit weer, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Perfek. 253 00:12:03,550 --> 00:12:04,370 Hoekom is dit? 254 00:12:04,370 --> 00:12:08,530 Dit is effektief 4 plus 2 plus 1. 255 00:12:08,530 --> 00:12:09,580 So goed. 256 00:12:09,580 --> 00:12:14,364 >> Hoe kan ons verteenwoordig 'n bietjie another-- hoe oor nommer 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Close, maar agteruit. 259 00:12:20,690 --> 00:12:21,660 So, wat is dit? 260 00:12:21,660 --> 00:12:26,290 4 plus 1, so dit is 5 weer. 261 00:12:26,290 --> 00:12:28,310 >> So what's-- Ek is jammer, Karina? 262 00:12:28,310 --> 00:12:29,220 0 1 0. 263 00:12:29,220 --> 00:12:34,762 0 1 0 sal wees 2, want weer, selfs As dit soort van spring nie uit na jou, 264 00:12:34,762 --> 00:12:35,470 net doen die wiskunde. 265 00:12:35,470 --> 00:12:40,390 4 keer 0, 0, 2 keer 1 is 2, 1 keer 0 0. 266 00:12:40,390 --> 00:12:42,830 So dit is die getal wat ons weet as 2. 267 00:12:42,830 --> 00:12:44,030 >> Hoe gaan dit met die nommer 8? 268 00:12:44,030 --> 00:12:51,240 269 00:12:51,240 --> 00:12:52,730 Hm? 270 00:12:52,730 --> 00:12:53,330 Goeie. 271 00:12:53,330 --> 00:12:56,130 So ons soort van 'n ander plekhouer nodig. 272 00:12:56,130 --> 00:12:59,570 Ons moet 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 En dit is waar van ons soort van die ou skool desimale stelsel. 274 00:13:02,280 --> 00:13:05,280 Hoe kan jy die nommer 1000 te verteenwoordig? 275 00:13:05,280 --> 00:13:08,480 >> Wel, jy sal blyk te wees soort in 'n moeilike plek, 276 00:13:08,480 --> 00:13:10,390 As jy vra om verteenwoordig die getal 1000, 277 00:13:10,390 --> 00:13:14,960 want selfs as jy jouself gee soos 9 van hierdie, 9 van hierdie, 0 van hierdie, 278 00:13:14,960 --> 00:13:18,730 wat is die grootste getal wat jy het, het jy nie heeltemal kry tot 1000. 279 00:13:18,730 --> 00:13:26,920 So as jy 1000, jy hoef net 'n ander posisie, sodat jy kan doen 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo die getal 1000. 281 00:13:29,460 --> 00:13:34,200 >> So nou, laat ons karteer hierdie soort konseptuele bespreking terug na hardeware, 282 00:13:34,200 --> 00:13:37,470 waar eens die insette was net hierdie klein elektriese kabel, elektrisiteit 283 00:13:37,470 --> 00:13:39,300 kom in en vloei uit. 284 00:13:39,300 --> 00:13:44,740 En so is dit vir wat moet gekarteer uit hier om daar, wel, wat doen ons regtig nodig het? 285 00:13:44,740 --> 00:13:49,460 Wel, kan jy dink dat hulle binne 'n rekenaar, 'n hele klomp van die gloeilampe, 286 00:13:49,460 --> 00:13:50,450 as jy wil. 287 00:13:50,450 --> 00:13:52,040 Hulle is regtig transistors genoem. 288 00:13:52,040 --> 00:13:55,121 En transistors is net skakel wat kan óf op of af. 289 00:13:55,121 --> 00:13:56,870 So jy kan dink aan 'n transistor wat op 290 00:13:56,870 --> 00:14:00,730 toelaat elektrisiteit te laat vloei en 'n transistor wat af as stop 291 00:14:00,730 --> 00:14:02,170 elektrisiteit vloei. 292 00:14:02,170 --> 00:14:04,130 En eerder as om te neem oor die ligte hier, 293 00:14:04,130 --> 00:14:06,450 Hoekom kan ek nie doen nie sulke van nuwe skool styl. 294 00:14:06,450 --> 00:14:11,360 So dit dalk 'n 1, 'n flitslig wat op, net skaars al. 295 00:14:11,360 --> 00:14:14,050 En dit kan wees 'n 0, en nou is dit af. 296 00:14:14,050 --> 00:14:18,277 >> So die gebruik van hierdie fisiese toestel, ek kan nou verteenwoordig die binêre stelsel. 297 00:14:18,277 --> 00:14:19,235 Ek hoef net twee lande. 298 00:14:19,235 --> 00:14:21,660 Dit maak nie saak wat kleur dit is of wat dit is. 299 00:14:21,660 --> 00:14:25,920 Al wat saak maak, is dat ek 'n staat op en 'n ander staat af. 300 00:14:25,920 --> 00:14:30,605 So met my selfoon hier, hoe kan ek verteenwoordig die aantal ons weet as 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 Of anders gestel het, wat getal is ek wat nou? 303 00:14:38,550 --> 00:14:39,810 0, omdat die toestel af is. 304 00:14:39,810 --> 00:14:41,560 >> En as ek dit doen? 305 00:14:41,560 --> 00:14:43,583 En nou, hoe kan ek verteenwoordig die aantal 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Kan ek leen jou selfoon hier, soos ons gister gedoen het? 308 00:14:50,930 --> 00:14:58,490 So laat ons sien, so as ek wil verteenwoordig die nommer 2, is dit die nommer 2? 309 00:14:58,490 --> 00:14:59,050 Geen. 310 00:14:59,050 --> 00:15:02,250 Watter getal is ek per ongeluk verteenwoordig hier? 311 00:15:02,250 --> 00:15:03,550 Dit is eintlik die nommer 3. 312 00:15:03,550 --> 00:15:05,008 >> So watter een wil ek afskakel? 313 00:15:05,008 --> 00:15:09,634 Die swart telefoon or-- Wel, as they're-- Swart telefoon of die wit selfoon? 314 00:15:09,634 --> 00:15:10,300 Die wit telefoon. 315 00:15:10,300 --> 00:15:17,020 So as ek draai dit af en ons lyn dit hier het ons 'n 1 316 00:15:17,020 --> 00:15:19,487 in die 2 se plek en 'n 0 in die 1 se plek. 317 00:15:19,487 --> 00:15:21,195 En so ek is nou verteenwoordig die aantal 2. 318 00:15:21,195 --> 00:15:24,680 En dit, natuurlik, sou die getal wees 3, want nou albei hierdie ligte 319 00:15:24,680 --> 00:15:25,350 is op. 320 00:15:25,350 --> 00:15:27,480 >> En ek sal hier stop, maar dit spreek vanself 321 00:15:27,480 --> 00:15:31,100 As ek wil die verteenwoordig nommer 4 of 8 of hoër, 322 00:15:31,100 --> 00:15:32,529 Ek gaan meer fone nodig. 323 00:15:32,529 --> 00:15:33,820 Maar dit is alles wat aangaan. 324 00:15:33,820 --> 00:15:37,800 So as jy ooit gehoor het dat binnekant van a-- dankie you-- rekenaar 325 00:15:37,800 --> 00:15:42,269 is miljoene transistors, dis net miljoene klein bietjie skakelaars. 326 00:15:42,269 --> 00:15:44,310 En hulle is nie lig bolle wat op en af ​​te skakel, 327 00:15:44,310 --> 00:15:48,340 maar hulle het nie toelaat dat elektrisiteit iewers vloei of stop dit. 328 00:15:48,340 --> 00:15:52,140 En dus is daar jou twee states-- op of af, aan of af. 329 00:15:52,140 --> 00:15:55,730 >> So sal ons nou lyk om hierdie vermoë te hê 330 00:15:55,730 --> 00:16:00,590 om hierdie konsep verteenwoordig wat Ons wil graag in werklike hardeware. 331 00:16:00,590 --> 00:16:05,520 Maar al wat ons nou het, is die vermoë om om getalle dit wil voorkom verteenwoordig. 332 00:16:05,520 --> 00:16:08,580 So hoe ons te werk gaan verteenwoordig letters van die alfabet, wat 333 00:16:08,580 --> 00:16:12,310 voel soos die volgende soort funksie wat jy wil toe te voeg tot 'n moderne rekenaar 334 00:16:12,310 --> 00:16:14,280 Sodra jy het 'n nommer? 335 00:16:14,280 --> 00:16:16,930 >> En inderdaad, as jy dink oor dit, histories, rekenaars 336 00:16:16,930 --> 00:16:19,426 was regtig ingestel om te dien as numeries sakrekenaars voorsien. 337 00:16:19,426 --> 00:16:21,300 Maar natuurlik, hierdie dae, hulle doen baie meer. 338 00:16:21,300 --> 00:16:23,799 Selfs toe hulle boot, jy sien tipies een of meer woorde. 339 00:16:23,799 --> 00:16:27,420 So hoe kan jy verteenwoordig woorde, As alles wat jy het, is, weer, 340 00:16:27,420 --> 00:16:31,054 elektrisiteit aan die einde van die dag, of anders gestel 0 en 1 se? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Ja. 343 00:16:35,690 --> 00:16:38,320 Ja, ek bedoel, ons soort het hierdie gister in een of ander vorm, 344 00:16:38,320 --> 00:16:40,200 waar op 'n sekere punt, Ek dink ek arbitrêr 345 00:16:40,200 --> 00:16:46,741 het gesê dat, as ons wil hê dat die verteenwoordig letter A, kon ons net noem dat 'n 1. 346 00:16:46,741 --> 00:16:49,990 Dit was in die konteks van kriptografie, waar ons net nodig 'n soort van kode, 347 00:16:49,990 --> 00:16:51,160 'n soort van kartering. 348 00:16:51,160 --> 00:16:56,680 >> So miskien A sal verteenwoordig as 'n 1, en B sal verteenwoordig word as 'n 2, 349 00:16:56,680 --> 00:17:01,560 en Z word verteenwoordig as 'n 26, byvoorbeeld. 350 00:17:01,560 --> 00:17:07,430 En dan is die enigste nadeel is dat as ek gaan briewe enkodeer in my e-pos 351 00:17:07,430 --> 00:17:10,430 of in my sms-boodskappe as getalle, julle almal 352 00:17:10,430 --> 00:17:12,640 moet saamstem met die gebruik Dieselfde stel konvensies. 353 00:17:12,640 --> 00:17:14,619 En inderdaad, die wêreld het presies dit gedoen. 354 00:17:14,619 --> 00:17:18,040 >> Daar is 'n stelsel in die wêreld genoem ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 -Kode vir Inligting-wisselaar, wat is eenvoudig 'n besluit 'n paar jaar 356 00:17:21,640 --> 00:17:25,720 gelede dat die mens gemaak wat besluit dat 'n gaan gelyk, nie 357 00:17:25,720 --> 00:17:32,260 1, 2, en 26, en so forth-- dit is 'n bietjie different-- maar 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 En Ek sal optrek 'n grafiek in net 'n oomblik. 359 00:17:34,010 --> 00:17:34,580 Maar dit is arbitrêr. 360 00:17:34,580 --> 00:17:36,329 Maar dit maak nie saak dat dit arbitrêr. 361 00:17:36,329 --> 00:17:38,620 Die wêreld moet net konsekwent wees. 362 00:17:38,620 --> 00:17:40,540 >> Nou, meer onlangs, daar is iets liefhebber 363 00:17:40,540 --> 00:17:45,430 genoem Unicode, want soort ter wêreld van besef, nadat uitvind rekenaars, 364 00:17:45,430 --> 00:17:50,977 dat daar meer as goed 256 simbole in die wêreld 365 00:17:50,977 --> 00:17:53,560 dat ons dalk wil verteenwoordig, veral as jy voer 366 00:17:53,560 --> 00:17:58,420 Asiatiese tale en ander symbologies dat meer uitdrukking as wat jy nodig het 367 00:17:58,420 --> 00:18:02,150 kan inpas in die vroegste weergawe van hierdie kode, wat ASCII genoem. 368 00:18:02,150 --> 00:18:05,250 So Unicode kan eintlik jy meer 0 en 2 gebruik. 369 00:18:05,250 --> 00:18:08,830 In die besonder, hou jy hoor die woord grepe in die samelewing en selfs net 370 00:18:08,830 --> 00:18:09,400 gister. 371 00:18:09,400 --> 00:18:12,040 En 'n greep is wat nou weer? 372 00:18:12,040 --> 00:18:14,840 >> Wat is 'n byte? 373 00:18:14,840 --> 00:18:15,700 Dis net 8 stukkies. 374 00:18:15,700 --> 00:18:17,150 So, wat beteken dit werklik? 375 00:18:17,150 --> 00:18:22,400 Wel, dit beteken, vroeër, toe ons praat oor binêre en ek is met behulp van 376 00:18:22,400 --> 00:18:28,010 arbitrêr drie stukkies toe ons praat oor binary-- die 1 se plek, 377 00:18:28,010 --> 00:18:33,600 die 2 se plek, en die 4 se place-- goed, 'n greep beteken net dat jy praat 378 00:18:33,600 --> 00:18:38,730 nie in eenhede van drie, maar vier, vyf, ses, sewe agt, 379 00:18:38,730 --> 00:18:46,910 wat gee ons 8 se plek, 16's, 32's, 64's en 128's. 380 00:18:46,910 --> 00:18:50,010 >> Met ander woorde, 'n bietjie is nie al wat nuttig 'n eenheid van meet, 381 00:18:50,010 --> 00:18:53,132 want dit is net soos 'n klein bietjie stukkie inligting, aan of af. 382 00:18:53,132 --> 00:18:54,840 So 'n paar jaar gelede, die wêreld net besluit 383 00:18:54,840 --> 00:18:59,060 dis 'n bietjie meer gerieflik om te praat in Ingevolge grepe, agt dinge op 'n slag. 384 00:18:59,060 --> 00:19:01,670 En so dus gebore die idee van 'n greep. 385 00:19:01,670 --> 00:19:03,640 En so het ons agt stukkies hier. 386 00:19:03,640 --> 00:19:06,810 >> En dit blyk ook vir soortgelyke redes, die wêreld besluit jaar 387 00:19:06,810 --> 00:19:12,439 gelede dat 'n ASCII brief verteenwoordig, jy gaan eenhede gebruik van 8 stukkies. 388 00:19:12,439 --> 00:19:14,230 So selfs as jy dit nie doen nie nodig dat baie, jy 389 00:19:14,230 --> 00:19:18,130 altyd gaan 8 stukkies gebruik om verteenwoordig 'n letter van die alfabet. 390 00:19:18,130 --> 00:19:20,950 En dit is gerieflik, want dan as jy 391 00:19:20,950 --> 00:19:28,720 'n boodskap ontvang dat 'n 0 0 0 1 1 het 1 1 0 gevolg deur 'n ander 1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1, so as jy ontvang 16 stukkies, die wêreld kan net 393 00:19:33,320 --> 00:19:37,460 aanvaar dat die eerste 8 is een letter en die tweede 8 is nog 'n brief. 394 00:19:37,460 --> 00:19:39,240 >> Maak nie saak hoeveel daar is. 395 00:19:39,240 --> 00:19:41,460 Dit is belangrik dat net ons is almal in ooreenstemming 396 00:19:41,460 --> 00:19:42,950 wanneer ons die interpretasie van hierdie stukkies. 397 00:19:42,950 --> 00:19:44,377 En dit was net random. 398 00:19:44,377 --> 00:19:47,210 Dit beteken iets, maar ek het nie regtig dink oor wat dit beteken. 399 00:19:47,210 --> 00:19:49,620 >> Dit is dus 'n klein wit leuentjie. 400 00:19:49,620 --> 00:19:51,990 Oorspronklik, ASCII eintlik slegs 7 stukkies. 401 00:19:51,990 --> 00:19:54,180 En op die agtste bietjie is genoem uitgebreide ASCII. 402 00:19:54,180 --> 00:19:56,290 Maar die punt is, uiteindelik, dieselfde. 403 00:19:56,290 --> 00:19:58,850 Die wêreld in die algemeen gestandaardiseerde op 8 stukkies. 404 00:19:58,850 --> 00:20:04,290 >> So dit lyk 'n bietjie wees beperk, want ek kan net 405 00:20:04,290 --> 00:20:07,970 verteenwoordig kapitaal A, kapitaal B deur kapitaal Z. 406 00:20:07,970 --> 00:20:10,940 Maar inderdaad nie, as ek gaan aan- daar is 'n klomp van die hulpbronne 407 00:20:10,940 --> 00:20:13,695 aanlyn, byvoorbeeld, asciitable.com, hierdie 408 00:20:13,695 --> 00:20:16,310 gaan 'n bietjie wees oorweldigend op die eerste. 409 00:20:16,310 --> 00:20:18,910 Maar ek sal uitwys Wat is hier belangrik. 410 00:20:18,910 --> 00:20:24,090 >> Dit gebeur net om be-- en ek sal walk-- Kom ons kyk, as ek hier gaan. 411 00:20:24,090 --> 00:20:27,990 Hier is, in die desimale kolom, die nommer 65. 412 00:20:27,990 --> 00:20:32,201 En op die brief regterkantste kolom karakter, Chr, is die letter A 413 00:20:32,201 --> 00:20:34,450 En jy kan ignoreer nie, want nou, alles in die middel. 414 00:20:34,450 --> 00:20:36,769 Dit is heksadesimaal, oktale, en 'n HTML-kode. 415 00:20:36,769 --> 00:20:39,810 Om hierdie webwerf is net probeer om te gooi 'n baie inligting oor jou op een slag. 416 00:20:39,810 --> 00:20:42,970 Maar al wat ons omgee is die desimale kolom en die kolom karakter. 417 00:20:42,970 --> 00:20:46,190 >> So deur die logika, wat die getal wat die wêreld 418 00:20:46,190 --> 00:20:50,510 het besluit verteenwoordig 'n klein 'n? 419 00:20:50,510 --> 00:20:52,230 Ja, 97. 420 00:20:52,230 --> 00:20:55,850 En net om te verwar potensieel effens, 421 00:20:55,850 --> 00:21:03,715 watter getal het die wêreld besluit sou die nommer 1 verteenwoordig? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Reg, want we-- 49, blyk dit hier, in die onderste linker. 424 00:21:10,910 --> 00:21:12,320 >> Nou, wat moet ek daarmee? 425 00:21:12,320 --> 00:21:14,830 So dit blyk dat in rekenaarstelsels, 426 00:21:14,830 --> 00:21:16,840 Daar is oor die algemeen 'n fundamentele verskil 427 00:21:16,840 --> 00:21:19,920 tussen 'n nommer en 'n karakter. 428 00:21:19,920 --> 00:21:22,330 'N Aantal is die ding wat ons geleer grootword wanneer 429 00:21:22,330 --> 00:21:23,830 ons super jong in graad skool. 430 00:21:23,830 --> 00:21:25,110 Dit is dinge wat jy reken met. 431 00:21:25,110 --> 00:21:30,220 Maar 'n karakter is net 'n vorm, 'n Than, so te sê, op die skerm. 432 00:21:30,220 --> 00:21:36,200 >> Nou, die mens wat ons soort van sien iets wat lyk soos volg. 433 00:21:36,200 --> 00:21:39,060 En ons sê: Ag, dit is die nommer 2. 434 00:21:39,060 --> 00:21:44,999 Maar nee, dit is net 'n simbool wat lyk soos wat ons weet as die nommer 2. 435 00:21:44,999 --> 00:21:46,790 En dus is daar hierdie fundamentele onderskeid 436 00:21:46,790 --> 00:21:50,340 tussen werklike getalle en karakters. 437 00:21:50,340 --> 00:21:52,130 Dit is 'n aantal. 438 00:21:52,130 --> 00:21:54,420 Maar oor die algemeen, in die konteks van 'n rekenaar, 439 00:21:54,420 --> 00:21:56,809 As jy in plaas sien iets quoted-- 440 00:21:56,809 --> 00:21:58,600 en jy nie altyd maar moet sien dit aangehaal, 441 00:21:58,600 --> 00:22:01,474 maar ter wille van discussion-- as sien jy aanhalingstekens rondom die getal, 442 00:22:01,474 --> 00:22:02,730 Dit is nou 'n karakter. 443 00:22:02,730 --> 00:22:06,330 So hierdie nommer 2 onder die kap binnekant van 'n rekenaar 444 00:22:06,330 --> 00:22:12,220 sou word verteenwoordig met 'n patroon bisse wat die getal verteenwoordig 445 00:22:12,220 --> 00:22:14,850 50 volgens die grafiek aanlyn. 446 00:22:14,850 --> 00:22:18,300 >> Maar, as 'n rekenaar net sien dit, hierdie 447 00:22:18,300 --> 00:22:24,580 sou word verteenwoordig met die patroon van bietjie 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 AANGESIEN hierdie karakter sou eintlik as-- en nou verteenwoordig word, 449 00:22:29,595 --> 00:22:34,710 Ek het 'n bietjie harder-- so dit dink karakter sou word verteenwoordig met 0 450 00:22:34,710 --> 00:22:39,080 0 1-- wat moet ek hier? 451 00:22:39,080 --> 00:22:44,450 0 0 1 1 0 0 1 0. 452 00:22:44,450 --> 00:22:45,480 Hoe het ek dit doen? 453 00:22:45,480 --> 00:22:49,580 Wel, dit is die getal 50, as jy vermenigvuldig dit uit die gebruik van hierdie kolomme, 454 00:22:49,580 --> 00:22:53,530 dit is die nommer 2, en so dit is waarom daar is hierdie digotomie. 455 00:22:53,530 --> 00:22:55,850 >> En dit is net 'n teaser nou vir funksies 456 00:22:55,850 --> 00:22:59,710 wat bestaan ​​in programmeertale dat ons sal raak op kortliks later vandag. 457 00:22:59,710 --> 00:23:01,950 In programmeertale, jy het oor die algemeen, 458 00:23:01,950 --> 00:23:04,495 maar nie altyd nie, dinge noem verskillende tipes data. 459 00:23:04,495 --> 00:23:06,870 Met ander woorde, 'n programmer-- wanneer hy of sy skryf, 460 00:23:06,870 --> 00:23:11,150 'n programmeerder kry om te besluit in watter formaat om sy of haar data te stoor. 461 00:23:11,150 --> 00:23:14,120 Jy kan óf te stoor as rou getalle, soos die nommer 2. 462 00:23:14,120 --> 00:23:17,940 Of jy kan dit stoor as snare, of rye van karakters 463 00:23:17,940 --> 00:23:21,550 dat jy oor die algemeen sou uitspreek met aanhalings in jou programmeringstaal. 464 00:23:21,550 --> 00:23:25,230 >> Jy kan dinge het called-- Ek sal eenvoudig vir en noem dit 465 00:23:25,230 --> 00:23:28,870 werklike numbers-- so getalle wat is nie heelgetalle soos die nommer 2, 466 00:23:28,870 --> 00:23:31,310 maar getalle graag 4.56. 467 00:23:31,310 --> 00:23:33,490 So kan ook reële getalle het desimale punte, 468 00:23:33,490 --> 00:23:36,340 so dit is 'n ander fundamentele stuk data in 'n rekenaar. 469 00:23:36,340 --> 00:23:41,920 En dan kan jy selfs ' ander tipes data steeds. 470 00:23:41,920 --> 00:23:45,810 So dit is net 'n teaser regtig van die eenvoudigste van ontwerp besluite 471 00:23:45,810 --> 00:23:50,960 wat 'n programmeerder mag maak onder die enjinkap. 472 00:23:50,960 --> 00:23:52,925 >> So nog net vrae? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 So kom ons probeer om te maak dit 'n bietjie meer real. 475 00:23:59,860 --> 00:24:02,120 Dit hardeware is nie soveel meer in gebruik nie. 476 00:24:02,120 --> 00:24:07,420 Maar die meeste mense in hierdie kamer waarskynlik grootgeword met en gebruik steeds hardeskywe 477 00:24:07,420 --> 00:24:08,010 een of ander manier. 478 00:24:08,010 --> 00:24:10,100 >> Hoewel die meeste van ons skootrekenaars nie meer 479 00:24:10,100 --> 00:24:15,900 het toestelle wat werk soos hierdie, plaas skootrekenaars vandag algemeen 480 00:24:15,900 --> 00:24:18,590 het vaste toestand dryf met geen bewegende dele. 481 00:24:18,590 --> 00:24:22,840 En dit is geneig om duurder wees, Ongelukkig nie, maar 'n bietjie vinniger 482 00:24:22,840 --> 00:24:27,230 en a-- goed, dikwels, baie vinniger, Dit is een van die redes. 483 00:24:27,230 --> 00:24:28,980 En ook dit maak nie genereer soveel hitte. 484 00:24:28,980 --> 00:24:31,680 Dit kan kleiner wees, so dit is oor die algemeen 'n netto positiewe. 485 00:24:31,680 --> 00:24:35,030 >> Maar dit stel ons in staat om te karteer 'n bietjie meer konkreet wat 486 00:24:35,030 --> 00:24:38,460 ons praat oor die 0 en 1 se vlak nou 'n fisiese toestel. 487 00:24:38,460 --> 00:24:40,810 Dit is een ding vir my om te praat ongeveer 0 en 1 in terme 488 00:24:40,810 --> 00:24:43,990 van my selfoon of abstrak in terme skakelaars om op en af. 489 00:24:43,990 --> 00:24:45,340 Maar wat van hardeskywe? 490 00:24:45,340 --> 00:24:48,495 In jou skootrekenaars, as jy 'n ouer een of in jou rekenaar, 491 00:24:48,495 --> 00:24:51,200 of beslis in bedieners vandag, waar jy 492 00:24:51,200 --> 00:24:53,070 hardeskywe wat 'n terabyte van ruimte, 493 00:24:53,070 --> 00:24:55,560 4 terabyte van ruimte, goed wat beteken dit? 494 00:24:55,560 --> 00:24:59,560 >> 'N hardeskyf met 1 terabyte van ruimte middel 495 00:24:59,560 --> 00:25:03,890 daar is 1000000000000 grepe binnekant van dit een of ander manier, 496 00:25:03,890 --> 00:25:10,450 Of anders gestel 8000000000000 stukkies binnekant. 497 00:25:10,450 --> 00:25:16,240 1 terabyte sou wees 8 terabis of 1000000000000 stukkies, wat 498 00:25:16,240 --> 00:25:19,330 beteken as jy 'n harde ry, jy het een of ander manier 499 00:25:19,330 --> 00:25:22,400 of ander 'n triljoen 0 se en 1 se binnekant van dit. 500 00:25:22,400 --> 00:25:25,360 En as ons net 'n blik op 'n arbitrêre foto van 'n hardeskyf 501 00:25:25,360 --> 00:25:30,110 verteenwoordiger, dit is wat 'n harde ry kan tipies lyk binnekant. 502 00:25:30,110 --> 00:25:32,600 >> Dit is ook 'n soort van soos 'n ou grammofoon speler 503 00:25:32,600 --> 00:25:35,350 maar oor die algemeen met verskeie rekords in, sodat 504 00:25:35,350 --> 00:25:38,270 om speak-- verskeie borde, soos hulle genoem word, 505 00:25:38,270 --> 00:25:42,259 metaal omsendbrief skywe, en dan 'n bietjie lees kop, 506 00:25:42,259 --> 00:25:43,550 baie soos 'n ou platespeler. 507 00:25:43,550 --> 00:25:46,589 En dit lees kop beweeg heen en voort en een of ander manier lees die stukkies. 508 00:25:46,589 --> 00:25:49,380 En wat is hierdie borde, selfs al ons mense hulle nie kan sien nie, 509 00:25:49,380 --> 00:25:52,757 óf in werklikheid of in hierdie foto, daar is klein bietjie magnetiese deeltjies. 510 00:25:52,757 --> 00:25:55,090 En selfs as jy het 'n lang vergeet hoe elektrisiteit werk, 511 00:25:55,090 --> 00:25:57,550 'n magnetiese deeltjies dit is oor die algemeen aangekla 512 00:25:57,550 --> 00:26:00,570 'n Noord-end en 'n Suid- end-- so noord en suid. 513 00:26:00,570 --> 00:26:03,000 En so het die wêreld net besluit 'n geruime tyd gelede 514 00:26:03,000 --> 00:26:06,570 dat, indien 'n magnetiese protokol wese is in lyn soos hierdie, noord-suid, 515 00:26:06,570 --> 00:26:07,610 kom ons noem dit 'n 1. 516 00:26:07,610 --> 00:26:10,470 As dit plaas Suid-noord, laat ons net noem dat 'n 0. 517 00:26:10,470 --> 00:26:13,350 En so as jy op jou beskikking 'n triljoen 518 00:26:13,350 --> 00:26:16,300 klein bietjie magnetiese particles-- en hopelik, 519 00:26:16,300 --> 00:26:18,740 die hardeware vindingrykheid in Om rond te draai diegene 520 00:26:18,740 --> 00:26:24,450 as jy sien fit-- as jy wil verteenwoordig 'n hele klomp van 0 se jy 521 00:26:24,450 --> 00:26:28,120 hoef net 8 magnetiese deeltjies al in lyn hou hiervan. 522 00:26:28,120 --> 00:26:30,330 En as jy wil verteenwoordig agt 1'e, jy net 523 00:26:30,330 --> 00:26:33,170 moet 8 magnetiese deeltjies in lyn rug aan rug aan rug hou hiervan. 524 00:26:33,170 --> 00:26:35,515 >> Wat bedoel ek met die magnetiese deeltjies? 525 00:26:35,515 --> 00:26:38,390 Om eerlik te wees, al die jare later, die Al wat nog kom myns insiens 526 00:26:38,390 --> 00:26:42,139 is hierdie man, as jy grootgeword met hierdie ding. 527 00:26:42,139 --> 00:26:43,930 Dit is 'n little-- vir diegene unfamiliar-- n 528 00:26:43,930 --> 00:26:47,810 bietjie kinderjare speelgoed wat het hierdie haarloos man hier 529 00:26:47,810 --> 00:26:51,690 wat al hierdie klein bietjie swart magnetiese deeltjies wat kom met dit. 530 00:26:51,690 --> 00:26:53,930 En die gebruik van daardie rooi stok, wat net 'n magneet, 531 00:26:53,930 --> 00:26:58,460 jy kan soort gee hom 'n snor of wenkbroue of hare of enigiets op hom. 532 00:26:58,460 --> 00:27:00,710 So in werklikheid, as ons zoom in, byvoorbeeld, die 533 00:27:00,710 --> 00:27:02,950 is die soort spel wat jy kan speel met vaag Willy. 534 00:27:02,950 --> 00:27:06,570 >> En dit is net om te sê, hierdie is veel groter magnetiese deeltjies 535 00:27:06,570 --> 00:27:09,890 as is eintlik op 'n hardeskyf, en veel minder magnetiese deeltjies. 536 00:27:09,890 --> 00:27:11,640 Maar laat ons eintlik sien dan as jy het 537 00:27:11,640 --> 00:27:14,720 klein magnetiese deeltjies in 'n hardeskyf, hoe kan jy eintlik 538 00:27:14,720 --> 00:27:19,090 gebruik die om data voor te stel. 539 00:27:19,090 --> 00:27:20,070 >> [Video speel] 540 00:27:20,070 --> 00:27:24,190 >> -Die Hardeskyf is waar jou rekenaar winkels meeste van sy permanente data. 541 00:27:24,190 --> 00:27:27,170 Om dit te doen, die data reis van geheue saam 542 00:27:27,170 --> 00:27:31,720 met sagteware seine dat die vertel hardeskyf hoe om die data te stoor. 543 00:27:31,720 --> 00:27:36,570 Die hardeskyf kringe vertaal diegene seine in spanning skommelinge. 544 00:27:36,570 --> 00:27:40,880 Hierdie op sy beurt, beheer oor die hardeskyf se beweeg parts-- sommige van die min bewegende 545 00:27:40,880 --> 00:27:43,440 dele links in die moderne rekenaar. 546 00:27:43,440 --> 00:27:47,650 >> Sommige van die seine te beheer 'n motor, wat draai-metaal bedek borde. 547 00:27:47,650 --> 00:27:50,980 Jou data is eintlik gestoor word op hierdie borde. 548 00:27:50,980 --> 00:27:56,250 Ander seine beweeg die lees / skryf koppe om te lees of data op die borde skryf. 549 00:27:56,250 --> 00:28:00,100 Dit masjinerie is so akkuraat dat 'n menslike haar kon nie eens 550 00:28:00,100 --> 00:28:02,800 slaag tussen die koppe en spin borde. 551 00:28:02,800 --> 00:28:04,887 Tog, dit alles werk op geweldige spoed. 552 00:28:04,887 --> 00:28:05,470 [Einde TERUGSPEEL] 553 00:28:05,470 --> 00:28:06,780 En jy kan sien op die stertkant van die video, 554 00:28:06,780 --> 00:28:08,340 Daar is oor die algemeen verskeie borde. 555 00:28:08,340 --> 00:28:10,250 En sodat lees kop is nie net die lees van die top. 556 00:28:10,250 --> 00:28:12,458 Dit is soort van soos drie of vier of meer lees koppe 557 00:28:12,458 --> 00:28:14,920 die gewemel soos hierdie, lees data gelyktydig. 558 00:28:14,920 --> 00:28:17,407 >> Daar is dus 'n baie kompleksiteit en soort van tydsberekening 559 00:28:17,407 --> 00:28:18,740 wat betrokke is in 'n hardeskyf. 560 00:28:18,740 --> 00:28:21,920 En die ding draai regtig darn vinnig, so daar is 'n baie kompleksiteit. 561 00:28:21,920 --> 00:28:25,220 Maar laat ons in 'n bietjie dieper zoom en sien waar is hierdie magnetiese deeltjies 562 00:28:25,220 --> 00:28:27,370 en hoe gaan ons kry op hulle. 563 00:28:27,370 --> 00:28:28,750 >> [Video speel] 564 00:28:28,750 --> 00:28:31,830 >> kyk -Laat se na wat ons net sien in slow motion. 565 00:28:31,830 --> 00:28:35,230 Wanneer 'n kort pols van elektrisiteit gestuur om die lees / skryf kop, 566 00:28:35,230 --> 00:28:39,000 dit flips op 'n klein elektromagnetiese vir 'n fraksie van 'n sekonde. 567 00:28:39,000 --> 00:28:41,390 Die magneet skep ' gebied, wat verander 568 00:28:41,390 --> 00:28:44,600 die polariteit van 'n klein, klein gedeelte van die metaal deeltjies 569 00:28:44,600 --> 00:28:46,960 wat laag oppervlak elke skottel se. 570 00:28:46,960 --> 00:28:50,020 'N patroon reeks van hierdie klein aangekla gebiede op die skyf 571 00:28:50,020 --> 00:28:54,590 verteenwoordig 'n enkele stukkie van data in die binêre getallestelsel wat gebruik word deur rekenaars. 572 00:28:54,590 --> 00:28:57,510 >> Nou, as die huidige gestuur een pad deur die lees / skryf kop, 573 00:28:57,510 --> 00:28:59,899 die gebied is gepolariseer in een rigting. 574 00:28:59,899 --> 00:29:01,940 As die huidige gestuur in die teenoorgestelde rigting, 575 00:29:01,940 --> 00:29:04,020 die polarisasie is omgekeer. 576 00:29:04,020 --> 00:29:06,440 Hoe kry jy data van die hardeskyf? 577 00:29:06,440 --> 00:29:08,190 Net om te keer die proses. 578 00:29:08,190 --> 00:29:10,440 Dit is dus die deeltjies op die skyf wat die huidige kry 579 00:29:10,440 --> 00:29:12,260 in die lees / skryf kop beweeg. 580 00:29:12,260 --> 00:29:14,580 Saam miljoene hierdie gemagnetiseerde segmente, 581 00:29:14,580 --> 00:29:16,220 en jy het 'n lêer het. 582 00:29:16,220 --> 00:29:21,030 >> Nou, kan die stukke van 'n enkele lêer regoor borde n ry se 583 00:29:21,030 --> 00:29:24,060 soort van soos die gemors papiere op jou lessenaar. 584 00:29:24,060 --> 00:29:27,590 So 'n spesiale ekstra lêer hou spoor van waar alles is. 585 00:29:27,590 --> 00:29:30,440 Het jy nie hê dat julle gehad iets soos dit? 586 00:29:30,440 --> 00:29:31,290 >> [Einde TERUGSPEEL] 587 00:29:31,290 --> 00:29:36,260 >> So word verwys na daar, miskien, is die onderwerp van gister van skrap. 588 00:29:36,260 --> 00:29:38,380 Wanneer jy verwyder 'n lêer, gister gesê ons 589 00:29:38,380 --> 00:29:41,020 dat 'n rekenaar eintlik nie wat, as jy iets sleep 590 00:29:41,020 --> 00:29:44,110 om die asblik of asblik bin? 591 00:29:44,110 --> 00:29:45,150 Dit vergeet dit net. 592 00:29:45,150 --> 00:29:47,540 Maar die 0'e en 1'e die magnetiese deeltjies 593 00:29:47,540 --> 00:29:50,640 wat lyk soos rooi en blou dinge hier, of my arm hier, 594 00:29:50,640 --> 00:29:52,350 is daar steeds op die hardeskyf. 595 00:29:52,350 --> 00:29:56,090 >> En so bestaan ​​daar software-- Norton Utilities en Yesteryear 596 00:29:56,090 --> 00:29:58,159 en ander meer moderne software-- dat net 597 00:29:58,159 --> 00:30:01,200 sal 'n hele hardeskyf scan soek by al die 0 en 1, omdat dit 598 00:30:01,200 --> 00:30:06,890 blyk dat die meeste lêer formate- Word-dokumente, Excel-lêers, beelde, 599 00:30:06,890 --> 00:30:10,380 video files-- almal sekere patrone wat algemeen onder hulle is. 600 00:30:10,380 --> 00:30:12,550 Elke video lêer mag wees van 'n ander video, 601 00:30:12,550 --> 00:30:14,870 maar die eerste paar stukkies is gewoonlik dieselfde. 602 00:30:14,870 --> 00:30:16,790 Of die laaste paar stukkies is gewoonlik dieselfde. 603 00:30:16,790 --> 00:30:19,910 >> En so met 'n hoë waarskynlikheid, jy kan kyk vir diegene patrone. 604 00:30:19,910 --> 00:30:23,700 En selfs as die lêer is vergete, jy kan sê met 'n hoë waarskynlikheid, 605 00:30:23,700 --> 00:30:28,460 maar dit lyk soos 'n Word-dokument, Kom ons herwin dit en un-vergeet nie, 606 00:30:28,460 --> 00:30:28,990 as jy wil. 607 00:30:28,990 --> 00:30:32,330 En so dit is hoe jy kan herstel data wat óf per ongeluk was 608 00:30:32,330 --> 00:30:36,560 verwyder of verwyder of doelbewus verwyder om watter doeleindes. 609 00:30:36,560 --> 00:30:42,530 >> In teenstelling hiermee, veilige skrap doen wat in die konteks van 'n foto soos hierdie? 610 00:30:42,530 --> 00:30:44,059 Presies, maak hulle almal ewekansige. 611 00:30:44,059 --> 00:30:46,350 Daarom is dit soort van beweeg van hulle af, sommige van hulle het, 612 00:30:46,350 --> 00:30:49,433 laat sommige van hulle onveranderd, en oor die algemeen maak ewekansige geluid daaruit, 613 00:30:49,433 --> 00:30:52,960 of net miskien maak al hulle 0 of almal van hulle 1 se. 614 00:30:52,960 --> 00:30:56,350 En dit te kan oor die algemeen skrop jou data weg. 615 00:30:56,350 --> 00:31:00,160 >> So laat ons nou terugkeer na die kwessie van Rekenaardenke, waardeur 616 00:31:00,160 --> 00:31:03,270 Ons het die formule insette. 617 00:31:03,270 --> 00:31:06,390 En algoritmes gee jy uitgange uiteindelik. 618 00:31:06,390 --> 00:31:09,270 Ons fokus nou op insette en uitsette, want nou het ek 619 00:31:09,270 --> 00:31:12,159 eis het ons 'n manier om verteenwoordig en uitgange. 620 00:31:12,159 --> 00:31:13,450 Ons is net gaan om binêre gebruik. 621 00:31:13,450 --> 00:31:15,910 >> En maak nie saak wat ons wil vandag verteenwoordig, 622 00:31:15,910 --> 00:31:20,230 of dit nou 'n nommer of 'n brief of duisende daarvan in 'n telefoon boek 623 00:31:20,230 --> 00:31:23,210 of beelde of films, aan die einde van die dag, dis al 0 en 1 se. 624 00:31:23,210 --> 00:31:26,640 En ek sê dat, alhoewel hierdie is 'n super eenvoudige wêreld met net 0 se 625 00:31:26,640 --> 00:31:28,240 en 1'e, kan ons onsself opbou. 626 00:31:28,240 --> 00:31:32,210 En ons het 'n voorbeeld van gesien wat met letters tot dusver. 627 00:31:32,210 --> 00:31:35,615 >> So laat ons nou fokus op hierdie middel bestanddeel, 'n algoritme. 628 00:31:35,615 --> 00:31:38,190 En laat ons terugkeer tot die voorbeeld van Mike Smith. 629 00:31:38,190 --> 00:31:41,689 So in hierdie telefoon boek, wat weliswaar, ons nie soveel meer gebruik, 630 00:31:41,689 --> 00:31:42,980 daar is 'n probleem wat opgelos moet word. 631 00:31:42,980 --> 00:31:45,040 Ons wil iemand soos Mike Smith vind. 632 00:31:45,040 --> 00:31:47,520 >> En wat kan ek doen om Mike vind? 633 00:31:47,520 --> 00:31:51,197 Wel, ek kon net oop te stel hierdie boek, begin by die eerste bladsy, 634 00:31:51,197 --> 00:31:52,780 en besef, o, ek is in die A-afdeling. 635 00:31:52,780 --> 00:31:53,510 Mike is daar nog nie. 636 00:31:53,510 --> 00:31:55,510 Ek moet die S afdeling vir Smith. 637 00:31:55,510 --> 00:31:58,192 So hou net draai een bladsy op 'n slag. 638 00:31:58,192 --> 00:32:00,900 Laat my voorgee dat dit alles wit bladsye en nie geel bladsye, 639 00:32:00,900 --> 00:32:02,910 want ons gaan nie om uit te vind Mike in die geel bladsye in elk geval. 640 00:32:02,910 --> 00:32:04,034 Maar ek is in die wit bladsye. 641 00:32:04,034 --> 00:32:05,340 En nou, ek is in die afdeling B. 642 00:32:05,340 --> 00:32:06,810 Ek het nog vir hom nie gevind nie. 643 00:32:06,810 --> 00:32:08,890 So ek hou draai een bladsy op 'n slag. 644 00:32:08,890 --> 00:32:10,130 >> Dit is 'n algoritme. 645 00:32:10,130 --> 00:32:12,440 Dit is 'n stel instruksies vir die oplossing van 'n probleem. 646 00:32:12,440 --> 00:32:16,480 Met ander woorde, kyk na bladsy, as Mike is nie daarop, 647 00:32:16,480 --> 00:32:20,020 draai bladsy, en herhaal weer en weer en weer, 648 00:32:20,020 --> 00:32:21,760 ideaal afkyk as jy dit doen. 649 00:32:21,760 --> 00:32:24,120 So is hierdie algoritme, hierdie proses, korrek? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Jammer. 652 00:32:28,830 --> 00:32:30,056 Nee, ek hoor 'n paar nommers. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, maar dit is-- ja, dit is beslis vervelig. 655 00:32:36,125 --> 00:32:39,000 Soos ons sal hier die hele dag as ek wees hou op soek na Mike teen hierdie spoed. 656 00:32:39,000 --> 00:32:41,430 Maar laat ek beweer dit is korrek. 657 00:32:41,430 --> 00:32:43,850 Dit is dom, maar dit is korrek. 658 00:32:43,850 --> 00:32:47,209 >> Aan die einde van die dag, solank dit dalk neem, ek sal Mike vind as hy daar 659 00:32:47,209 --> 00:32:48,250 en ek aandag. 660 00:32:48,250 --> 00:32:50,230 En ek uiteindelik sy bladsy te bereik. 661 00:32:50,230 --> 00:32:52,890 En as ek te ver, as Ek kry die T artikel, 662 00:32:52,890 --> 00:32:55,900 dan kan ek effens te optimaliseer en net sê, hm, al gedoen. 663 00:32:55,900 --> 00:32:57,980 Ek hoef nie eens te mors tyd gaan die Z se. 664 00:32:57,980 --> 00:33:00,010 Maar dit is 'n baie lineêre benadering, as jy 665 00:33:00,010 --> 00:33:03,370 sal 'n baie soort van links na regs benadering, 'n reguit lyn. 666 00:33:03,370 --> 00:33:05,560 En sy korrekte maar stadig. 667 00:33:05,560 --> 00:33:09,250 >> So ek onthou van graad skool, sorteer van 'n optimalisering van 'n eerste padskraper, 668 00:33:09,250 --> 00:33:13,756 waar ek geleer hoe om nie te tel deur mense nie, maar deur twos-- so 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 Dit is 'n, veel moeiliker om doen nie, maar in teorie, dis 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, en so meer. 671 00:33:20,149 --> 00:33:21,190 Hoe gaan dit algoritme? 672 00:33:21,190 --> 00:33:23,150 Is dit meer doeltreffend? 673 00:33:23,150 --> 00:33:23,880 Is dit vinniger? 674 00:33:23,880 --> 00:33:25,365 >> GEHOOR: Dis doeltreffende. 675 00:33:25,365 --> 00:33:28,560 >> David Malan: Ja, so dit is def-- dis letterlik twee keer so vinnig, in die veronderstelling ek 676 00:33:28,560 --> 00:33:30,170 doen nie raak geskakel met my vingers. 677 00:33:30,170 --> 00:33:32,294 Dit is twee keer so vinnig, want Ek draai deur twee 678 00:33:32,294 --> 00:33:36,560 bladsye in 'n keer in plaas van een, maar dit is potensieel in korrekte, want hoekom? 679 00:33:36,560 --> 00:33:37,852 >> Gehoor: Jy draai 'n paar. 680 00:33:37,852 --> 00:33:41,185 David Malan: Right, wat as Mike gebeur om miskien word sandwiched-- toe ek later is 681 00:33:41,185 --> 00:33:44,370 in die telefoon boek, Mike gebeur te wees landgebonde tussen hierdie twee bladsye, 682 00:33:44,370 --> 00:33:46,720 en ek het net blindelings slaan daaroor. 683 00:33:46,720 --> 00:33:48,490 So ons moet 'n bietjie los daar. 684 00:33:48,490 --> 00:33:51,290 Sodra ek druk die T artikel, ek kan nie net met vertroue sê, 685 00:33:51,290 --> 00:33:52,420 Ons het dit nie vind Mike Smith. 686 00:33:52,420 --> 00:33:53,770 Ek het waarskynlik om terug te verdubbel. 687 00:33:53,770 --> 00:34:00,210 Of in werklikheid, as ek kom iemand vernoem S-N, in plaas van S-M vir Smith, 688 00:34:00,210 --> 00:34:02,790 onmiddellik, kon ek verdubbel terug, want miskien het hy 689 00:34:02,790 --> 00:34:03,900 was op die vorige bladsy. 690 00:34:03,900 --> 00:34:05,070 >> Maar ek hoef nie te ver terug verdubbel. 691 00:34:05,070 --> 00:34:08,030 In teorie, as ek dit doen op die regte tyd, ek een bladsy terug te gaan net. 692 00:34:08,030 --> 00:34:10,139 So dit is die toevoeging van net een ekstra stap. 693 00:34:10,139 --> 00:34:13,070 So ek het twee keer so vinnig gegaan, maar dit kos my 'n ekstra bladsy. 694 00:34:13,070 --> 00:34:14,699 Maar dit voel soos 'n netto oorwinning. 695 00:34:14,699 --> 00:34:17,230 >> Maar dit is nie hoe die meeste mense in hierdie kamer sal hierdie probleem op te los. 696 00:34:17,230 --> 00:34:20,313 Wat sou 'n tipiese persoon, miskien 'n n paar jaar gelede te doen, om Mike Smith vind? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Ja, hulle het niks gevind Mike. 699 00:34:24,800 --> 00:34:27,190 Wat doen ek? 700 00:34:27,190 --> 00:34:31,027 So kry 'n bietjie nader, maar ek doen know-- wat waar is oor 'n telefoon boek? 701 00:34:31,027 --> 00:34:32,110 GEHOOR: Dis opeenvolgende. 702 00:34:32,110 --> 00:34:32,760 David Malan: Dis opeenvolgende. 703 00:34:32,760 --> 00:34:33,750 Dis alfabetiese. 704 00:34:33,750 --> 00:34:36,540 En so as ek in die M artikel, Mike is duidelik na regs, 705 00:34:36,540 --> 00:34:39,949 Ek kan letterlik skeur die probleem in half-- 706 00:34:39,949 --> 00:34:44,360 dit is gewoonlik makliker as that-- traan die probleem in die helfte en gooi dit weg, 707 00:34:44,360 --> 00:34:47,627 sodat nou, ek het 'n probleem wat nie meer as 1000 pages-- wat hard was, 708 00:34:47,627 --> 00:34:50,210 want ek dink ek eintlik geskeur die telefoon boek hierdie time-- nie 709 00:34:50,210 --> 00:34:52,219 1000 bladsye, maar 500. 710 00:34:52,219 --> 00:34:54,750 >> So die probleem is letterlik helfte so groot. 711 00:34:54,750 --> 00:34:58,170 En dis nogal dwingende, omdat met my vorige algoritmes, weergawe 712 00:34:58,170 --> 00:35:02,870 1 en 2, is ek net die maak van die probleem een bladsy kleiner, twee bladsye kleiner 713 00:35:02,870 --> 00:35:03,470 op 'n slag. 714 00:35:03,470 --> 00:35:07,230 AANGESIEN tog, ek het dit 500 bladsye kleiner alles op een slag. 715 00:35:07,230 --> 00:35:10,089 >> OK, so nou, Karim stel dat ek regs gaan die helfte. 716 00:35:10,089 --> 00:35:12,380 So ek gaan min of meer gaan om die middel, gee of neem. 717 00:35:12,380 --> 00:35:15,185 En as ek dit gedoen het wiskundig, Ek kon gaan reg om die middel. 718 00:35:15,185 --> 00:35:17,060 En nou, besef ek: Ag, Ek is in die T-afdeling. 719 00:35:17,060 --> 00:35:18,280 Ek het eintlik het te ver gaan. 720 00:35:18,280 --> 00:35:21,670 >> Maar ek kan, weer, skeur die probleem in die helfte, gooi dit weg. 721 00:35:21,670 --> 00:35:23,330 En my grepe nie so groot. 722 00:35:23,330 --> 00:35:28,780 Dis net, wat, 256 bladsye of 250 bladsye, gee of neem op die oomblik. 723 00:35:28,780 --> 00:35:31,570 Maar dit is nog steeds baie meer as een bladsy of twee bladsye. 724 00:35:31,570 --> 00:35:33,345 >> En so nou gaan ek min of meer na die middel. 725 00:35:33,345 --> 00:35:35,330 O, ek het nie regtig ver genoeg gaan nou. 726 00:35:35,330 --> 00:35:37,880 So ek herhaal, herhaal, herhaal, herhaal, totdat ek hopelik 727 00:35:37,880 --> 00:35:40,360 gelaat met net een bladsy. 728 00:35:40,360 --> 00:35:44,000 >> Sodat nooi die vraag, as ek begin met ongeveer 1000 bladsye, 729 00:35:44,000 --> 00:35:47,340 hoeveel stappe het dit my met weergawe 1 van my algoritme? 730 00:35:47,340 --> 00:35:50,420 Wel, as Mike is in die S artikel, in die ergste geval, 731 00:35:50,420 --> 00:35:52,630 dit is redelik naby aan die einde van die alfabet. 732 00:35:52,630 --> 00:35:56,559 So as die telefoon boek het 1000 bladsye, Ek sal Mike vind binne 1,000 bladsye, 733 00:35:56,559 --> 00:35:57,100 gee of neem. 734 00:35:57,100 --> 00:35:59,750 Miskien is dit soos 800 of so, maar dit is redelik naby aan 1000. 735 00:35:59,750 --> 00:36:01,680 >> AANGESIEN dit met die tweede algoritme, hoeveel 736 00:36:01,680 --> 00:36:06,840 bladsy draai maksimaal sou ek vereis dat Mike Smith vind? 737 00:36:06,840 --> 00:36:09,970 Daar is 1000 bladsye, maar ek is doen hulle twee op 'n slag. 738 00:36:09,970 --> 00:36:13,045 Reg, so Max soos 500ish, omdat As ek gaan deur die hele telefoon boek, 739 00:36:13,045 --> 00:36:14,170 op watter punt kan ek ophou. 740 00:36:14,170 --> 00:36:16,669 Maar ek kan afskeer 'n paar deur net stop by die T-afdeling. 741 00:36:16,669 --> 00:36:19,880 Maar dit is in die ergste geval 500 bladsye. 742 00:36:19,880 --> 00:36:24,710 >> So hoeveel keer kan ek verdeel 'n 1,00o-bladsy telefoon boek weer in die helfte 743 00:36:24,710 --> 00:36:30,450 en weer en again-- uit 1000 tot 500 tot 250-125? 744 00:36:30,450 --> 00:36:32,250 Hoe lank voor ek getref een bladsy? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Ja, dit is ongeveer 10. 747 00:36:36,370 --> 00:36:40,780 Afhangende van afronding en sulke, dis ongeveer 10 bladsye totale behoefte aan verander 748 00:36:40,780 --> 00:36:43,290 of telefoon boeke moet geskeur. 749 00:36:43,290 --> 00:36:44,710 >> So dit is redelik sterk. 750 00:36:44,710 --> 00:36:48,170 Ons het begin met 'n 1000-bladsy probleem in al drie van hierdie stories. 751 00:36:48,170 --> 00:36:51,850 Maar in die eerste algoritme, dit het my ergste geval, 1000 bladsy 752 00:36:51,850 --> 00:36:52,740 draai na Mike vind. 753 00:36:52,740 --> 00:36:55,590 Tweede algoritme, 500 bladsye aan Mike vind. 754 00:36:55,590 --> 00:36:58,480 Derde algoritme, 10 bladsye aan Mike vind. 755 00:36:58,480 --> 00:37:00,230 En dit is selfs meer kragtige wanneer jy dink 756 00:37:00,230 --> 00:37:01,860 oor n soort van 'n teenoorgestelde scenario. 757 00:37:01,860 --> 00:37:05,680 Veronderstel dat die telefoon maatskappy volgende jaar saamsmelt miskien twee dorpe bymekaar, 758 00:37:05,680 --> 00:37:08,550 en die telefoon boek is skielik hierdie dik, in plaas van dit wat, 759 00:37:08,550 --> 00:37:12,470 so 2000 bladsye in plaas van 1,000. 760 00:37:12,470 --> 00:37:15,640 Wel, my eerste algoritme op soek na Mike Smith in 'n 2000-bladsy telefoon boek, 761 00:37:15,640 --> 00:37:21,460 erger geval, dit gaan oor te neem hoeveel bladsy draai volgende jaar? 762 00:37:21,460 --> 00:37:24,800 >> Telefoon boek is 2000 bladsye, so-- goed, nie een meer. 763 00:37:24,800 --> 00:37:29,540 As die telefoon boek is twee keer so dik in die eerste algoritme, eerste algoritme, 764 00:37:29,540 --> 00:37:30,380 2000, of hoe? 765 00:37:30,380 --> 00:37:33,005 In die ergste geval, Mike is regtig naby aan die einde van die boek, 766 00:37:33,005 --> 00:37:34,110 so dit is bladsy beurte 2000. 767 00:37:34,110 --> 00:37:38,070 Tweede algoritme gaan deur twees, soos 1000 bladsye. 768 00:37:38,070 --> 00:37:41,490 >> Maar wat dink jy in my derde en mees onlangse algoritme? 769 00:37:41,490 --> 00:37:44,950 As die telefoon maatskappy verdubbel die aantal bladsye van 1000 tot 2000, 770 00:37:44,950 --> 00:37:47,770 Hoeveel keer moet ek skeur daardie boek in die helfte om Mike vind? 771 00:37:47,770 --> 00:37:48,710 >> Publiek: Net een. 772 00:37:48,710 --> 00:37:51,001 >> David Malan: Net nog 'n, want met bladsy traan een, 773 00:37:51,001 --> 00:37:53,270 Ek kan letterlik verdeel en oorwin, as jy wil, 774 00:37:53,270 --> 00:37:57,410 dat die probleem in die helfte neem 'n massiewe hap uit dit. 775 00:37:57,410 --> 00:38:01,420 En dus is dit 'n voorbeeld van doeltreffendheid en waarskynlik 'n algoritme 776 00:38:01,420 --> 00:38:04,100 waarmee ons almal soort intuïtief bekend. 777 00:38:04,100 --> 00:38:07,780 Maar dit is net so korrek soos my ander algoritmes 778 00:38:07,780 --> 00:38:09,630 met daardie Tweak vir die tweede algoritme, 779 00:38:09,630 --> 00:38:11,290 maar dit is soveel meer doeltreffend te maak. 780 00:38:11,290 --> 00:38:14,030 >> En in werklikheid, wat 'n rekenaar wetenskaplike, of op sy beurt 'n programmeerder, 781 00:38:14,030 --> 00:38:17,580 sou tipies doen wanneer skryf kode is probeer om uit te vind, 782 00:38:17,580 --> 00:38:19,960 Goed, ek wil nie hê my program net reg wees, 783 00:38:19,960 --> 00:38:23,220 Ek wil dit ook aan doeltreffende wees en probleme op te los well. 784 00:38:23,220 --> 00:38:26,450 Stel jou in die werklike wêreld van vandag, soos Google indekse, soek 785 00:38:26,450 --> 00:38:31,580 soos miljarde bladsye, dink as hulle gebruik die eerste algoritme om katte te vind 786 00:38:31,580 --> 00:38:34,620 onder 'n miljard pages-- kyk na die eerste bladsy in hul databasis, 787 00:38:34,620 --> 00:38:37,700 die tweede, die derde, net op soek vir 'n kat, op soek na 'n kat. 788 00:38:37,700 --> 00:38:40,350 Dit is pretty darn stadig dit wil voorkom. 789 00:38:40,350 --> 00:38:43,170 Hulle kon plaas gebruik iets genoem binêre soek, wat 790 00:38:43,170 --> 00:38:47,420 geen coincidence-- bi beteken twee, ons hou verdeel iets in 2, in half-- 791 00:38:47,420 --> 00:38:50,205 hulle kon binêre soek gebruik en miskien vind katte nog vinniger, 792 00:38:50,205 --> 00:38:51,830 of wat dit ookal is wat jy op soek is na. 793 00:38:51,830 --> 00:38:54,125 >> En eerlik, daar is selfs liefhebber algoritmes 794 00:38:54,125 --> 00:38:56,250 wat veel meer as net doen verdeel dinge in die helfte 795 00:38:56,250 --> 00:38:58,180 ten einde inligting vinnig te vind. 796 00:38:58,180 --> 00:39:00,880 En ons sal 'n bietjie gesels oor dié ná middagete vandag. 797 00:39:00,880 --> 00:39:02,640 So laat ek net probeer om hierdie verteenwoordig. 798 00:39:02,640 --> 00:39:05,380 Ons hoef nie in te gaan enige wiskunde of werklike getalle. 799 00:39:05,380 --> 00:39:07,070 Ons kan in die abstrakte praat hieroor. 800 00:39:07,070 --> 00:39:11,580 >> Maar laat ek net voor, as jy is 'n gesprek nou 801 00:39:11,580 --> 00:39:13,491 met die ingenieurs stel hierdie algoritme 802 00:39:13,491 --> 00:39:15,490 en jy probeer om te maak 'n berekende besluit, 803 00:39:15,490 --> 00:39:17,285 want miskien die ingenieur sê vir julle, julle 804 00:39:17,285 --> 00:39:19,910 weet wat, ek het 'n kan implementeer lineêre soek in soos twee minute. 805 00:39:19,910 --> 00:39:21,150 Dit is so maklik. 806 00:39:21,150 --> 00:39:24,790 Binêre soek is nie so fancy nie, maar dit gaan om my te vang soos 10 minute, 807 00:39:24,790 --> 00:39:26,650 so 5 keer so lank. 808 00:39:26,650 --> 00:39:30,900 >> Daar is 'n handel hier, selfs in terme om te besluit watter sagteware te skryf. 809 00:39:30,900 --> 00:39:34,760 Het jy die eenvoudiger algoritme te skryf, wat net twee minute sal neem jy? 810 00:39:34,760 --> 00:39:39,880 Of dink jy spandeer meer tyd, 10 minute, skryf die liefhebber algoritme? 811 00:39:39,880 --> 00:39:43,540 Hoe besluit jy daardie soort van die vraag? 812 00:39:43,540 --> 00:39:46,710 Of jy kan dit 'n bietjie meer werklik te maak. 813 00:39:46,710 --> 00:39:50,610 Ek vertel my baas dit gaan neem my óf 'n week of 10 weke 814 00:39:50,610 --> 00:39:52,490 om die implementering sagteware op hierdie manier, hoe 815 00:39:52,490 --> 00:39:56,103 jy besluit watter algoritme om groen lig? 816 00:39:56,103 --> 00:39:56,603 Karim? 817 00:39:56,603 --> 00:39:57,550 >> Gehoor: Die publiek, dink ek. 818 00:39:57,550 --> 00:39:57,960 >> David Malan: Die gehoor. 819 00:39:57,960 --> 00:39:59,460 Wat is jou bedoeling met die gehoor? 820 00:39:59,460 --> 00:40:03,460 >> Publiek: As dit gaan om gebruik te word deur die gebruikers 821 00:40:03,460 --> 00:40:09,050 wat [onhoorbaar] deur gebruikers [onhoorbaar]. 822 00:40:09,050 --> 00:40:11,232 Maar as dit is iets wat jy net doen vir jouself 823 00:40:11,232 --> 00:40:13,946 om 'n probleem te fasiliteer, [Onhoorbaar] vinniger. 824 00:40:13,946 --> 00:40:16,820 David Malan: Ja, dit is 'n vinnige en vuil is 'n goeie manier om dit te beskryf. 825 00:40:16,820 --> 00:40:18,695 In werklikheid, as jy beskryf baie van my tyd 826 00:40:18,695 --> 00:40:23,630 in grad skool, waardeur dikwels, Ek het slegte kode doelbewus so-- 827 00:40:23,630 --> 00:40:26,490 ten minste, dit is hoe ek gerasionaliseer it-- doelbewus so, 828 00:40:26,490 --> 00:40:30,670 want selfs al het ek is-kode skryf dit was relatief stadig uit te voer, 829 00:40:30,670 --> 00:40:33,750 Ek was in staat om die kode self skryf redelik vinnig, besteding 'n paar minute 830 00:40:33,750 --> 00:40:35,107 of uur nie dae. 831 00:40:35,107 --> 00:40:37,190 En dit blyk, ek soms nodig om te slaap. 832 00:40:37,190 --> 00:40:41,270 So selfs as my kode vereis 8 uur te hardloop, wel dit is goed, 833 00:40:41,270 --> 00:40:42,850 Ek sal net gaan slaap terwyl dit loop. 834 00:40:42,850 --> 00:40:46,350 >> So op die oomblik, het ek gedink dit was baie slim, selfs al het ek glo 835 00:40:46,350 --> 00:40:48,990 deurgewerk my PhD baie stadig. 836 00:40:48,990 --> 00:40:52,270 Maar die omgekeerde van wat dat, as ek skryf sagteware 837 00:40:52,270 --> 00:40:55,930 vir ander mense wat saak meer as ek, wel, 838 00:40:55,930 --> 00:40:59,580 met hulle wag 8 uur om terug te kry hul resultate 839 00:40:59,580 --> 00:41:01,350 is nie alles wat aantreklik. 840 00:41:01,350 --> 00:41:04,090 En so spandeer meer tyd voorlangs te sagteware te skryf 841 00:41:04,090 --> 00:41:07,300 dit is meer doeltreffend, meer soos ons derde algoritme, 842 00:41:07,300 --> 00:41:09,780 waarskynlik tot voordeel van die gebruikers met verloop van tyd. 843 00:41:09,780 --> 00:41:12,710 So dit hang regtig oor tyd hoe daardie koste optel. 844 00:41:12,710 --> 00:41:14,960 As jy gaan om te skryf sagteware om dit te gebruik wanneer, 845 00:41:14,960 --> 00:41:17,240 waarskynlik kan net so goed doen vinnige en vuil, soos hulle sê. 846 00:41:17,240 --> 00:41:18,198 gooi dit net saam. 847 00:41:18,198 --> 00:41:20,560 Dis kode wat verleentheid jy, dit is so sleg, 848 00:41:20,560 --> 00:41:23,860 maar dit kry die werk korrek gedoen, selfs al is dit nie doeltreffend. 849 00:41:23,860 --> 00:41:27,200 Aan die ander kant, jy spandeer meer tyd oor iets, kry dit net reg. 850 00:41:27,200 --> 00:41:30,730 En dan afgeskryf oor tyd, wat vooraf koste van tyd 851 00:41:30,730 --> 00:41:34,330 is waarskynlik die moeite werd, as jy hou optimalisering vir die algemene geval. 852 00:41:34,330 --> 00:41:37,620 >> En inderdaad, dit is 'n tema in ontwikkeling, of rekenaarwetenskap meer 853 00:41:37,620 --> 00:41:41,390 oor die algemeen, probeer om te optimaliseer nie vir die ongewoon geval 854 00:41:41,390 --> 00:41:44,390 maar die algemene case-- wat operasie gaan weer en weer gebeur nie? 855 00:41:44,390 --> 00:41:47,730 As jy gaan om miljarde te hê van gebruikers wat soek op jou webwerf, 856 00:41:47,730 --> 00:41:52,030 moet jy waarskynlik spandeer die ekstra weke voorlangs skryf beter sagteware, 857 00:41:52,030 --> 00:41:53,670 sodat al jou gebruikers te bevoordeel. 858 00:41:53,670 --> 00:41:57,840 Nou, laat ons probeer om dit 'n vang bietjie picturaal, maar nie soseer 859 00:41:57,840 --> 00:41:58,610 numeries. 860 00:41:58,610 --> 00:42:01,680 >> So hier is net 'n ou skool grafiek. 861 00:42:01,680 --> 00:42:04,260 En laat my sê dat dit tyd. 862 00:42:04,260 --> 00:42:06,660 En dit maak nie saak what-- eintlik nie, selfs nie die tyd. 863 00:42:06,660 --> 00:42:08,320 Kom ons sit dit op die ander as. 864 00:42:08,320 --> 00:42:15,700 Kom ons sê dat dit die tyd, en dit is die grootte van die probleem. 865 00:42:15,700 --> 00:42:17,830 >> En 'n rekenaarwetenskaplike kan oor die algemeen noem 866 00:42:17,830 --> 00:42:20,820 dit net n. N is soos ons go-to veranderlike, waar 867 00:42:20,820 --> 00:42:26,351 N is 'n nommer, N nommer, en dit is die aantal watter insette wat jy het. 868 00:42:26,351 --> 00:42:28,100 So in hierdie geval, N is die aantal bladsye. 869 00:42:28,100 --> 00:42:30,150 Daarom is dit dalk 1000 in die geval het ons net vertel. 870 00:42:30,150 --> 00:42:31,969 >> So tyd kan 'n eenheid van meet wees. 871 00:42:31,969 --> 00:42:32,760 Miskien is dit die tweede. 872 00:42:32,760 --> 00:42:33,410 Miskien is dit dae. 873 00:42:33,410 --> 00:42:34,590 Miskien is dit soos bladsy draaie. 874 00:42:34,590 --> 00:42:35,215 Maak nie saak nie. 875 00:42:35,215 --> 00:42:38,840 Wat jy ook al wil in tel, wat sal tyd wees of kos in dieselfde. 876 00:42:38,840 --> 00:42:42,400 >> So met daardie heel eerste algoritme, as ek byvoorbeeld 877 00:42:42,400 --> 00:42:45,920 'n 1000-bladsy telefoon boek, Ek gaan 'n punt daar trek, 878 00:42:45,920 --> 00:42:51,450 want as dit is 1000 bladsye, dit het ongeveer 1000 bladsy draai, gee of neem. 879 00:42:51,450 --> 00:42:54,100 En dan as ek het 'n 2000-bladsy telefoon boek, 880 00:42:54,100 --> 00:42:57,200 en ek gaan 'n tweede stel dot hier, want vir 2000 bladsye, 881 00:42:57,200 --> 00:42:59,810 dit is soos 2000 sekondes of page draai of wat ook al. 882 00:42:59,810 --> 00:43:02,480 En so toe ek vroeër gesê het, dit is soort van 'n lineêre verwantskap, 883 00:43:02,480 --> 00:43:06,020 dit was doelbewuste, want ek wou later is-- reg now-- 'n streep te trek. 884 00:43:06,020 --> 00:43:07,770 Dit is soort van 'n reguit lyn verhouding. 885 00:43:07,770 --> 00:43:10,180 Die helling is 1/1, as jy wil. 886 00:43:10,180 --> 00:43:14,630 >> Intussen het die tweede algoritme gesê, as jy het 1000 bladsye 887 00:43:14,630 --> 00:43:17,680 en jy is met behulp van die tweede algoritme, waar ek deur 2 se getel, draai 888 00:43:17,680 --> 00:43:22,564 twee bladsye op 'n slag, moet ek trek 'n kol onder of bo my oorspronklike dot? 889 00:43:22,564 --> 00:43:23,450 >> Publiek: hieronder. 890 00:43:23,450 --> 00:43:27,992 >> David Malan: Hier, want soos ons gesien het, dit neem minder tyd, die helfte soveel tyd. 891 00:43:27,992 --> 00:43:29,950 So het die dot moet die helfte wees so hoog as die ander. 892 00:43:29,950 --> 00:43:33,330 En dieselfde deal hier, hierdie dot moet min of meer daar waarskynlik. 893 00:43:33,330 --> 00:43:39,666 En so is my tweede algoritme, insgelyks, 'n lineêre verwantskap met die tyd. 894 00:43:39,666 --> 00:43:41,990 En ons kan dit teken as sodanig. 895 00:43:41,990 --> 00:43:45,950 >> So nou, die derde en finale algoritme is 'n bietjie moeiliker om te trek. 896 00:43:45,950 --> 00:43:49,530 Maar intuïtief, as Ek het 1000 bladsye met my derde algoritme, 897 00:43:49,530 --> 00:43:52,340 Dit moet eers my soos 10 stappe. 898 00:43:52,340 --> 00:43:57,500 En as Ek het 2000 bladsye het met my derde algoritme, 899 00:43:57,500 --> 00:44:01,570 Dit moet my vat nie 10 stappe, maar 11, net nog 'n. 900 00:44:01,570 --> 00:44:03,610 So ons net-net gaan om dit te sien. 901 00:44:03,610 --> 00:44:06,010 >> En dit blyk dat indien Ek zoem in op hierdie, ek is 902 00:44:06,010 --> 00:44:09,320 gaan oordryf ter wille van effek, die vorm van die lyn, uiteindelik, 903 00:44:09,320 --> 00:44:11,990 is nie 'n reguit line-- want, wel as 't ware 904 00:44:11,990 --> 00:44:15,390 Dit sou meer soos die kyk others-- dit is eintlik 'n geboë lyn 905 00:44:15,390 --> 00:44:19,265 dat, as ons in zoom, gaan veel meer so lyk. 906 00:44:19,265 --> 00:44:21,670 It-- goed, OK, ignoreer hierdie deel. 907 00:44:21,670 --> 00:44:25,330 Dit was my pen gaan van hoek. 908 00:44:25,330 --> 00:44:29,000 Dit is 'n geboë lyn wat altyd toeneem, altyd, altyd, altyd 909 00:44:29,000 --> 00:44:32,100 toeneem, maar net skaars. 910 00:44:32,100 --> 00:44:36,260 >> En so met verloop van tyd, het jy 'n verhouding wat meer soos hierdie. 911 00:44:36,260 --> 00:44:37,540 Dit lyk amper reguit. 912 00:44:37,540 --> 00:44:40,330 Maar dis nog so stadig aan die toeneem. 913 00:44:40,330 --> 00:44:44,780 Maar vir byna al die punte saam jou x-as, horisontale as, 914 00:44:44,780 --> 00:44:46,550 dis laer as die ander lyne. 915 00:44:46,550 --> 00:44:49,930 >> So dit kan 'n verhouding wees N, waar as jy 'n bladsy, 916 00:44:49,930 --> 00:44:51,100 neem jou N sekondes. 917 00:44:51,100 --> 00:44:53,320 Dit kan 'n verhouding N / 2 wees. 918 00:44:53,320 --> 00:44:56,710 Jy het N bladsye, dit neem jy N / 2 sekondes, die helfte soveel. 919 00:44:56,710 --> 00:45:00,590 En dit is 'n logaritmiese verhouding, wat 920 00:45:00,590 --> 00:45:08,920 As jy onthou, teken basis 2 van N vang hierdie soort van groei, om so te praat. 921 00:45:08,920 --> 00:45:12,000 So is dit die soort van heilige graal onder die drie van hierdie 922 00:45:12,000 --> 00:45:15,940 hier, want dit is net soveel meer doeltreffende, maar waarskynlik meer kompleks 923 00:45:15,940 --> 00:45:18,610 om te implementeer. 924 00:45:18,610 --> 00:45:20,510 Enige vrae? 925 00:45:20,510 --> 00:45:26,220 >> Wel laat ek dit doen, laat my oop te stel 'n teks venster 926 00:45:26,220 --> 00:45:29,100 net so kan ons probeer om formaliseer hier iets. 927 00:45:29,100 --> 00:45:32,410 Laat my nou gaan voort en uitvoering van hierdie algoritme 928 00:45:32,410 --> 00:45:35,170 vir die vind van Mike Smith in kode, as jy wil, pseudokode kode. 929 00:45:35,170 --> 00:45:36,620 Ek is nie van plan om Java of C ++ gebruik. 930 00:45:36,620 --> 00:45:38,610 Ek gaan net om soort van gebruik Engels-agtige sintaksis, wat ons 931 00:45:38,610 --> 00:45:40,151 sou oor die algemeen noem pseudokode kode. 932 00:45:40,151 --> 00:45:41,660 Hier het ek 'n leeg venster. 933 00:45:41,660 --> 00:45:48,180 En ek sê stap 1 van die baie eerste algoritme is haal telefoon boek. 934 00:45:48,180 --> 00:45:51,740 Stap 2 is oop boek na die eerste bladsy. 935 00:45:51,740 --> 00:45:58,080 Stap 3 sal wees kyk na bladsy vir Mike Smith. 936 00:45:58,080 --> 00:46:02,740 As op bladsy, bel Mike. 937 00:46:02,740 --> 00:46:11,640 anders beurt bladsy en gaan na stap 3. 938 00:46:11,640 --> 00:46:13,590 Gedoen, kom ons sê. 939 00:46:13,590 --> 00:46:18,110 >> En dus is dit nie heeltemal perfek nie, wat ons sal sien in 'n oomblik. 940 00:46:18,110 --> 00:46:21,050 Maar laat ons kyk wat konsepte Ek het hier bekend gestel. 941 00:46:21,050 --> 00:46:24,450 So stap 1 en 2 en 3 is pretty much werkwoorde. 942 00:46:24,450 --> 00:46:26,544 Hulle is state, actions-- doen. 943 00:46:26,544 --> 00:46:28,710 En so in 'n programmeertaal taal, sou ons in die algemeen 944 00:46:28,710 --> 00:46:32,349 noem hulle state of funksies of prosedures, 945 00:46:32,349 --> 00:46:33,640 noem dit 'n aantal van die dinge. 946 00:46:33,640 --> 00:46:35,460 Maar hulle actions-- net dit te doen. 947 00:46:35,460 --> 00:46:40,370 >> Stap 4 is fundamenteel verskil, want dit is soort van 'n vraag. 948 00:46:40,370 --> 00:46:42,400 Dit sê ons soort van 'n vurk in die pad. 949 00:46:42,400 --> 00:46:48,000 As Mike is op die bladsy, bel hom so draai links, as jy wil. 950 00:46:48,000 --> 00:46:52,170 En indien nie, gaan terug na 'n paar ander page-- of liewer, jammer, 951 00:46:52,170 --> 00:46:56,650 gaan terug na 'n ander stap, wat veroorsaak 'n soort van herhaling konstruk. 952 00:46:56,650 --> 00:46:59,530 En ons doen dit weer en weer en weer. 953 00:46:59,530 --> 00:47:01,300 >> En eintlik, jy weet wat? 954 00:47:01,300 --> 00:47:01,800 Ja. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 anders as aan die einde van boek stop. 957 00:47:09,010 --> 00:47:11,624 So ons moet soort van 'n derde toestand, omdat jy 958 00:47:11,624 --> 00:47:14,290 kan nie bly draai die bladsy advertensie nauseum, want uiteindelik, sal ek 959 00:47:14,290 --> 00:47:15,320 druk op die einde van die boek. 960 00:47:15,320 --> 00:47:18,546 En 'n fout in 'n program kan wees nie verwag dat scenario. 961 00:47:18,546 --> 00:47:21,420 En dan het ek net besef, O, wag 'n minuut, ek moet 'n derde scenario. 962 00:47:21,420 --> 00:47:23,900 As ek uit bladsye, ek moet regtig net ophou. 963 00:47:23,900 --> 00:47:25,330 Andersins, dit is ongedefinieerd. 964 00:47:25,330 --> 00:47:29,260 Wat gaan gebeur as ek hou sê draai die bladsy en gaan terug, 965 00:47:29,260 --> 00:47:31,810 dit is wanneer rekenaars vries of ongeluk, wanneer jy getref 966 00:47:31,810 --> 00:47:34,160 sommige onverwagte situasie soos dit. 967 00:47:34,160 --> 00:47:37,280 >> Nou, wat van Mike derde algorithm-- Smith se 968 00:47:37,280 --> 00:47:43,150 haal die telefoon boek, oopboek om first-- om 969 00:47:43,150 --> 00:47:48,640 nee, nie eerste bladsy van hierdie tyd, om middle-- O, wel, wat sou 970 00:47:48,640 --> 00:47:49,640 wees die tweede algoritme. 971 00:47:49,640 --> 00:47:50,590 Kom ons slaan na die derde. 972 00:47:50,590 --> 00:47:50,930 >> Publiek: Ag, ek is jammer. 973 00:47:50,930 --> 00:47:51,971 >> David Malan: Dit is goed. 974 00:47:51,971 --> 00:47:58,590 Kom ons slaan na die third-- oop om middel- en nou kyk vir Mike Smith. 975 00:47:58,590 --> 00:48:02,300 As op bladsy, bel Mike. 976 00:48:02,300 --> 00:48:04,910 En dan wat wil ons hier sê? 977 00:48:04,910 --> 00:48:06,134 anders wat? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Ons kan dit uitspreek in 'n aantal maniere. 980 00:48:12,370 --> 00:48:13,369 Daar is geen regte antwoord. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, as dit nie weer nie, maar ons moet be-- OK, wil ons verdeel in twee, 983 00:48:23,735 --> 00:48:25,630 maar wil ons links om te gaan of gaan reg? 984 00:48:25,630 --> 00:48:29,560 Hoe kan ons druk dat die idee? 985 00:48:29,560 --> 00:48:31,790 Wel, in die geval Mike se, ja, dit is regverdig. 986 00:48:31,790 --> 00:48:35,050 Maar OK, so dit is eintlik 'n goeie punt. 987 00:48:35,050 --> 00:48:35,550 Dis goed. 988 00:48:35,550 --> 00:48:36,924 Ons sal aanhou gaan met hierdie logika. 989 00:48:36,924 --> 00:48:38,182 So-- 990 00:48:38,182 --> 00:48:39,810 >> Publiek: Minder as die helfte. 991 00:48:39,810 --> 00:48:40,560 David Malan: Ja. 992 00:48:40,560 --> 00:48:49,820 So anders as bladsy is, sal ons sê, minder as Smith, aan die linkerkant van Smith, 993 00:48:49,820 --> 00:48:52,220 then-- laat ons sien, is hierdie gaan bemoeilik? 994 00:48:52,220 --> 00:49:01,885 anders as bladsy kom voor Smith, traan in die helfte, weggooi wat die helfte? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> Publiek: Ek het gedink dit was [onhoorbaar]. 997 00:49:09,140 --> 00:49:11,650 >> David Malan: ek hoor beide antwoorde. 998 00:49:11,650 --> 00:49:12,431 >> Publiek: linkerkant. 999 00:49:12,431 --> 00:49:14,430 David Malan: OK, gooi weg gelaat helfte, as Lakisa 1000 00:49:14,430 --> 00:49:19,700 het vroeër gesê, die verlaat helfte, dan het ek soort 1001 00:49:19,700 --> 00:49:23,940 wil net gaan aan- ek regs gaan. 1002 00:49:23,940 --> 00:49:27,380 Of anders gestel, en ek het 'n bietjie bietjie van 'n gemors van die begin hier, 1003 00:49:27,380 --> 00:49:30,760 Ek wil effektief te gaan weer stap 2, 1004 00:49:30,760 --> 00:49:38,270 waar oop vir die middle-- of open-- ja, laat ons net sê, bladsye middel. 1005 00:49:38,270 --> 00:49:39,020 En dit is vasgestel nie. 1006 00:49:39,020 --> 00:49:39,936 Dit is nie meer 'n boek. 1007 00:49:39,936 --> 00:49:42,210 Dis net die helfte van 'n boek, so oop bladsye middel. 1008 00:49:42,210 --> 00:49:44,010 >> else-- was amper daar. 1009 00:49:44,010 --> 00:49:54,000 Stap 6, anders as bladsy kom nadat Smith, skeur in die helfte, weggooi reg helfte, 1010 00:49:54,000 --> 00:49:55,680 dan gaan jy na stap 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 anders hou, 'n vierde scenario as Ons het geen bladsye links te draai. 1013 00:50:05,230 --> 00:50:06,394 So kan ons hierdie skoon te maak. 1014 00:50:06,394 --> 00:50:07,560 En ons moet hierdie skoon te maak. 1015 00:50:07,560 --> 00:50:10,656 Dit is baie pseudokode kode, as jy wil, 'n baie hoë vlak beskrywing. 1016 00:50:10,656 --> 00:50:12,280 Maar dit beteken oor die algemeen op te vang die idee. 1017 00:50:12,280 --> 00:50:16,040 >> En, weer, in hierdie scenario, ons het die idee van 'n toestand, 1018 00:50:16,040 --> 00:50:20,450 'n tak, 'n vurk in die pad, maak 'n decision-- as dit, gaan op hierdie manier, 1019 00:50:20,450 --> 00:50:23,082 anders as, gaan op hierdie manier, anders as, daarheen gaan nie. 1020 00:50:23,082 --> 00:50:25,040 En dit is 'n baie algemene ontwikkeling tegniek 1021 00:50:25,040 --> 00:50:27,721 om te besluit watter rigting om te gaan, om so te praat. 1022 00:50:27,721 --> 00:50:29,970 En ons het ook 'n soort van herhaling struktuur, waar 1023 00:50:29,970 --> 00:50:32,440 ons iets doen weer en weer. 1024 00:50:32,440 --> 00:50:34,820 >> Nou, dit blyk dat baie soos in hierdie voorbeeld, 1025 00:50:34,820 --> 00:50:37,660 synde super akkurate belangrik. 1026 00:50:37,660 --> 00:50:42,180 Maar ons het ook iets gesien dat ons hou die roeping onttrekking. 1027 00:50:42,180 --> 00:50:45,490 Wat beteken dit om af te haal telefoon boek? 1028 00:50:45,490 --> 00:50:47,740 Ons is net soort van die neem van as vanselfsprekend aanvaar in hierdie kamer 1029 00:50:47,740 --> 00:50:49,340 dat het 'n paar semantiese betekenis. 1030 00:50:49,340 --> 00:50:51,740 Almal van ons het net soort van weet, o, Wel, die telefoon optel boek. 1031 00:50:51,740 --> 00:50:52,864 Wat beteken dit werklik? 1032 00:50:52,864 --> 00:50:59,060 Wel, dit werklik beteken brei hand, leun oor, uit te brei vingers, 1033 00:50:59,060 --> 00:51:03,890 knyp boek tussen vingers, opstaan, trek hand na jou toe. 1034 00:51:03,890 --> 00:51:05,940 En ons kan regtig nie pedanties oor hierdie, 1035 00:51:05,940 --> 00:51:08,640 regtig dat super akkurate oor wat ek doen. 1036 00:51:08,640 --> 00:51:13,300 Maar al daardie stappe gesamentlik wat dit beteken om af te haal 'n telefoon boek. 1037 00:51:13,300 --> 00:51:16,940 >> En so het vroeër, toe ek gesê het: elke van hierdie eerste twee state 1038 00:51:16,940 --> 00:51:20,830 kan wees gedink as 'n voortgaan of 'n funksie, 1039 00:51:20,830 --> 00:51:24,090 regtig dit verteenwoordig wat ons hou 'n beroep 'n abstraksie. 1040 00:51:24,090 --> 00:51:28,770 Dit is soos 'n hoë vlak konseptuele beskrywing van 'n probleem wat 1041 00:51:28,770 --> 00:51:31,110 eintlik behels 'n hele paar stappe. 1042 00:51:31,110 --> 00:51:34,190 En so gaan dit ook 'n herhalende onderwerp in programmering, 1043 00:51:34,190 --> 00:51:41,125 waardeur ek dalk 'n program te skryf gebruik van sintaksis soos this-- 1044 00:51:41,125 --> 00:51:42,000 pick_up_phone_book (). 1045 00:51:42,000 --> 00:51:44,344 1046 00:51:44,344 --> 00:51:46,510 En dan sintakties, ek is gaan om iets te steel 1047 00:51:46,510 --> 00:51:48,090 van die meeste programmeertale. 1048 00:51:48,090 --> 00:51:51,270 >> Nou, stap 1 lyk selfs meer soos 'n funksie, 1049 00:51:51,270 --> 00:51:53,160 as 'n programmeerder sou dit noem. 1050 00:51:53,160 --> 00:51:58,650 Dit lyk soos 'kode wat iemand het 'n naam gegee en gegee 1051 00:51:58,650 --> 00:52:03,300 om my te somehow-- gebruik in ander woorde, wat die lyn Ek het uitgelig 1052 00:52:03,300 --> 00:52:07,050 verteenwoordig funksies wat dalk Ek het nie eens te implementeer myself. 1053 00:52:07,050 --> 00:52:10,410 Iemand ouer, wyser as my reeds uitgepluis 1054 00:52:10,410 --> 00:52:12,700 hoe jy die idee uit te druk van die optel van 'n telefoon boek. 1055 00:52:12,700 --> 00:52:15,860 En dit is soos die vyf stappe wat ek net afgerammel, uit die bokant van my kop. 1056 00:52:15,860 --> 00:52:19,350 >> Maar hy of sy reeds in werking gestel hierdie, het die verskeie stappe 1057 00:52:19,350 --> 00:52:22,339 'n naam, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 En die hakies is net wat die meeste programmeerders 1059 00:52:24,380 --> 00:52:27,100 doen aan die einde van stellings soos hierdie. 1060 00:52:27,100 --> 00:52:30,190 Ek kan nou op staan ​​sy of haar skouers en nooit weer, 1061 00:52:30,190 --> 00:52:32,465 dink oor wat dit beteken af te haal 'n telefoon boek. 1062 00:52:32,465 --> 00:52:34,090 Ek kan net sê, haal die telefoon boek. 1063 00:52:34,090 --> 00:52:36,690 En dit is presies wat almal van ons mense het hier. 1064 00:52:36,690 --> 00:52:38,940 >> Toe ons waarskynlik 1 jaar oud, 2 jaar oud, 1065 00:52:38,940 --> 00:52:41,690 Iemand het om ons te leer wat dit bedoel om af te haal 'n telefoon boek. 1066 00:52:41,690 --> 00:52:43,810 En sedertdien, Ons het weg onttrek 1067 00:52:43,810 --> 00:52:46,739 van dié baie oninteressant meganiese stappe. 1068 00:52:46,739 --> 00:52:48,530 En ons het net 'n intuïtiewe begrip 1069 00:52:48,530 --> 00:52:50,480 van wat dit beteken om haal 'n telefoon boek. 1070 00:52:50,480 --> 00:52:55,730 >> En jy kan nou ekstrapoleer meer ingewikkeld things-- 1071 00:52:55,730 --> 00:52:57,640 bou 'n gebou. 1072 00:52:57,640 --> 00:52:59,940 Soos om 'n paar mense, wat eintlik beteken. 1073 00:52:59,940 --> 00:53:03,080 Om kontrakteurs, argitekte, wat het 'n paar betekenis. 1074 00:53:03,080 --> 00:53:06,400 En hulle sal weet wat om te doen indien Ek het gesê, gaan bou 'n gebou. 1075 00:53:06,400 --> 00:53:10,520 >> Maar die meeste van ons in die kamer kon nie hanteer dat die vlak van abstraksie. 1076 00:53:10,520 --> 00:53:14,850 Jy moet vertel ons graag gaan kry skop en gaan kry die beton 1077 00:53:14,850 --> 00:53:17,250 en spyker die stukke hout saam en alles anders 1078 00:53:17,250 --> 00:53:18,830 is betrokke by die bou van 'n gebou. 1079 00:53:18,830 --> 00:53:21,690 En dit is omdat ons nie nog geprogrammeer om te verstaan 1080 00:53:21,690 --> 00:53:23,629 wat dit beteken om 'n gebou op te rig. 1081 00:53:23,629 --> 00:53:24,920 Ons het nie daardie onttrekking. 1082 00:53:24,920 --> 00:53:26,570 Ons het nie daardie funksie. 1083 00:53:26,570 --> 00:53:29,930 >> En so wat jy sal sien in programmeertale, in die algemeen, 1084 00:53:29,930 --> 00:53:34,570 veral meer moderne tale, soos Java, PHP, Ruby, en Python, 1085 00:53:34,570 --> 00:53:37,610 hulle is baie meer volwasse as ouer tale, 1086 00:53:37,610 --> 00:53:40,140 soos C en C ++ en nog ander. 1087 00:53:40,140 --> 00:53:42,580 En so kom hulle met meer funksie gebou in. 1088 00:53:42,580 --> 00:53:45,640 Meer kode is geskryf deur mense in die verlede 1089 00:53:45,640 --> 00:53:50,520 dat ons nou kan bel of dagvaar of te gebruik, as ek sinspeel 1090 00:53:50,520 --> 00:53:52,231 op met uitgelig hierdie lyn hier. 1091 00:53:52,231 --> 00:53:55,230 En so selfs al is ons nie praat oor programmeertale per se nie, 1092 00:53:55,230 --> 00:54:00,230 net pseudokode kode, al die idees is nog in daardie bespreking. 1093 00:54:00,230 --> 00:54:04,600 En dit blyk presisie is super belangrik, net soos abstraksie. 1094 00:54:04,600 --> 00:54:06,570 En laat ons probeer om kommunikeer dat soos volg. 1095 00:54:06,570 --> 00:54:11,000 >> Ek het per ongeluk kan deursny dit deur flikker 'n skyfie op die skerm 1096 00:54:11,000 --> 00:54:12,260 voortydig. 1097 00:54:12,260 --> 00:54:16,550 Maar laat ek vra vir 'n dapper vrywilligers, As jy nie omgee nie opkom. 1098 00:54:16,550 --> 00:54:19,040 Jy wil wees in die voorkant van die kamera, as jy is ok met dit. 1099 00:54:19,040 --> 00:54:24,950 Sou iemand graag kom en gee instruksies om jou kollegas hier? 1100 00:54:24,950 --> 00:54:29,540 Net moet hier oor kom en staan ​​hier oor en sê sommige woorde. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria glimlag die meeste en die voorkoms van my oë die mees. 1102 00:54:32,890 --> 00:54:34,740 Sou jy bereid wees om op te kom nie? 1103 00:54:34,740 --> 00:54:35,240 OK. 1104 00:54:35,240 --> 00:54:38,480 En as al die ander mense op jou sitplekke kon neem 'n stukkie afvalpapier, 1105 00:54:38,480 --> 00:54:39,750 as jy wil. 1106 00:54:39,750 --> 00:54:40,760 Gevoer papier is fyn. 1107 00:54:40,760 --> 00:54:41,990 Kom om op hierdie manier. 1108 00:54:41,990 --> 00:54:44,580 Of 'n paar van die papier wat jy gister gegee, 1109 00:54:44,580 --> 00:54:46,493 net 'n leë vel papier, as jy kon. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 En as jy het nie, net vra jou naaste as jy kon. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> So op hierdie oomblik, vir hierdie voorbeeld, Victoria 1114 00:55:07,580 --> 00:55:11,520 gaan die rol van speel 'n programmeerder, 'n ingenieur, wat 1115 00:55:11,520 --> 00:55:16,130 moet jy die program alles, as die rekenaars, om iets te doen. 1116 00:55:16,130 --> 00:55:19,570 En ons sal sien wat aannames jy besluit om te maak. 1117 00:55:19,570 --> 00:55:22,700 Ons sal sien hoe akkuraat sy verkies om te wees. 1118 00:55:22,700 --> 00:55:26,220 En as hierdie demonstrasie gaan pedagogies goed, baie foute 1119 00:55:26,220 --> 00:55:29,220 gemaak sal word, dat ons dan sal gebruik wat as 'n geleentheid vir bespreking. 1120 00:55:29,220 --> 00:55:32,010 Maar die uitdaging vir jou moet wees om die foute te vermy, 1121 00:55:32,010 --> 00:55:32,896 'n goeie programmeerder. 1122 00:55:32,896 --> 00:55:35,520 En so het die uitdaging op hande, indien jy graag hier oor te loop, 1123 00:55:35,520 --> 00:55:38,799 is in die voorkant van Victoria op die skerm here-- en hopelik, niemand van julle 1124 00:55:38,799 --> 00:55:40,590 onthou wanneer ek flits op die skerm. 1125 00:55:40,590 --> 00:55:44,097 En moenie omdraai glad nie, want Daar is nog 'n skerm in hierdie kamer 1126 00:55:44,097 --> 00:55:44,930 dat ek af kan draai. 1127 00:55:44,930 --> 00:55:46,620 So moenie omdraai. 1128 00:55:46,620 --> 00:55:49,090 >> In die voorkant van Victoria is dat dieselfde gil. 1129 00:55:49,090 --> 00:55:54,170 En haar werk is nou vir jou vertel al op jou stuk papier wat om te teken. 1130 00:55:54,170 --> 00:55:57,020 En ons sal sien, wat gebaseer is op verbale instruksies alleen, 1131 00:55:57,020 --> 00:56:00,020 rekenaarkode, as jy wil, hoe akkuraat jou tekeninge 1132 00:56:00,020 --> 00:56:02,330 are-- jou implementering is. 1133 00:56:02,330 --> 00:56:02,980 Maak sin? 1134 00:56:02,980 --> 00:56:03,604 >> Gehoor: Ja. 1135 00:56:03,604 --> 00:56:04,980 David Malan: OK, uit te voer. 1136 00:56:04,980 --> 00:56:06,030 >> Publiek: Trek 'n vierkant. 1137 00:56:06,030 --> 00:56:09,050 >> [Gelag] 1138 00:56:09,050 --> 00:56:12,310 >> David Malan: En nee vrae kan gevra word. 1139 00:56:12,310 --> 00:56:13,720 Kan dit net doen wat jy vertel. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 O ja, en as jy skyfies vandag open met 'n blad, moenie kyk na jou blad. 1142 00:56:22,550 --> 00:56:23,670 OK? 1143 00:56:23,670 --> 00:56:26,135 >> Publiek: OK, trek 'n sirkel. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 A slope-- kan ek sê helling? 1146 00:56:34,872 --> 00:56:35,830 David Malan: aan jou. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 Publiek: A helling. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 En 'n driehoek. 1151 00:56:49,795 --> 00:56:50,850 >> David Malan: Alle reg. 1152 00:56:50,850 --> 00:56:52,286 En hier bly vir net 'n oomblik. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 En ek gaan kom rond in net 'n oomblik. 1155 00:56:58,910 --> 00:57:02,420 En nie nodig om jou naam daarop sit. 1156 00:57:02,420 --> 00:57:05,030 Laat my rondom kom en haal jou tekeninge, 1157 00:57:05,030 --> 00:57:08,330 As jy nie omgee nie skeur hulle uit. 1158 00:57:08,330 --> 00:57:12,110 >> Hier is wat ons terug gekry. 1159 00:57:12,110 --> 00:57:14,770 Ek sal dit projekteer op die skerm. 1160 00:57:14,770 --> 00:57:18,310 Ek sien 'n vierkant, 'n sirkel, 'n helling, en 'n driehoek. 1161 00:57:18,310 --> 00:57:20,130 So dit was 'n antwoord daar. 1162 00:57:20,130 --> 00:57:23,640 En let's-- Oeps. 1163 00:57:23,640 --> 00:57:25,370 Dankie. 1164 00:57:25,370 --> 00:57:30,710 Hier is nog 'n verskeidenheid, en een agter dit. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Sodat hulle almal lyk die gees te vang. 1167 00:57:37,120 --> 00:57:38,600 Dankie. 1168 00:57:38,600 --> 00:57:44,970 Daar is 'n ander, en hier is 'n ander een. 1169 00:57:44,970 --> 00:57:51,590 Die helling interpretasie is 'n bietjie anders, bietjie krom. 1170 00:57:51,590 --> 00:57:57,140 En die naaste, hetsy as gevolg van die wonderlike spesifisiteit waarmee jy 1171 00:57:57,140 --> 00:58:03,520 beskryf, of miskien het jy soort sien voordat dit inderdaad 1172 00:58:03,520 --> 00:58:06,340 wat Victoria was eintlik beskryf. 1173 00:58:06,340 --> 00:58:09,190 >> Maar nou, dié van julle wat nie kry dit heeltemal reg, 1174 00:58:09,190 --> 00:58:11,140 Kom ons bied 'n paar besware hier. 1175 00:58:11,140 --> 00:58:13,770 So Victoria eerste gesê Teken 'n vierkant. 1176 00:58:13,770 --> 00:58:15,830 En nou, kan ons aanneem ter wille van vandag 1177 00:58:15,830 --> 00:58:17,538 dat almal weet hoe om 'n vierkant te teken. 1178 00:58:17,538 --> 00:58:20,590 Maar dit is nie heeltemal duidelik nie, reg? 1179 00:58:20,590 --> 00:58:23,220 Hoe anders kan jy getrek 'n vierkant, of waar 1180 00:58:23,220 --> 00:58:27,114 dalk 'n paar van die dubbelsinnighede hier vir die rekenaar? 1181 00:58:27,114 --> 00:58:28,280 Publiek: ligging en grootte. 1182 00:58:28,280 --> 00:58:28,980 David Malan: ligging, reg? 1183 00:58:28,980 --> 00:58:32,070 Almal van julle het 'n papier van 'n paar vorm, algemeen reghoeke, maar effens 1184 00:58:32,070 --> 00:58:32,830 verskillende groottes. 1185 00:58:32,830 --> 00:58:36,250 Maar jy beslis kon getrek, As jy wil, 'n groot vierkant, miskien 1186 00:58:36,250 --> 00:58:37,220 'n klein vierkant. 1187 00:58:37,220 --> 00:58:38,417 Miskien is dit roteer. 1188 00:58:38,417 --> 00:58:39,500 Ek dink nie ons het gesien dat. 1189 00:58:39,500 --> 00:58:41,790 Maar dit kan meer diamant gewees soos maar nog steeds, nietemin, 1190 00:58:41,790 --> 00:58:42,900 Wiskundig 'n vierkant. 1191 00:58:42,900 --> 00:58:44,850 So dit was waarskynlik dubbelsinnig. 1192 00:58:44,850 --> 00:58:46,709 >> En sy antwoord: 'n sirkel. 1193 00:58:46,709 --> 00:58:49,250 Sommige van julle het dit langs trek dit, wat nie onredelik, 1194 00:58:49,250 --> 00:58:52,450 omdat die mens geneig om te dink of lees regs na links in die meeste tale, sodat nie 1195 00:58:52,450 --> 00:58:53,017 'n slegte raaiskoot. 1196 00:58:53,017 --> 00:58:55,100 Maar dit sirkel kan hê was binne-in die vierkant, 1197 00:58:55,100 --> 00:58:57,600 rondom die kon gewees het vierkante, kan elders gewees 1198 00:58:57,600 --> 00:58:59,480 op die vel, so waarskynlik dubbelsinnig. 1199 00:58:59,480 --> 00:59:03,290 >> Helling kan dalk gewees het neem die meeste vryhede mondelings 1200 00:59:03,290 --> 00:59:04,200 met wat dit beteken. 1201 00:59:04,200 --> 00:59:06,980 En sommige van julle dit vertaal dit as 'n kronkel lyn 1202 00:59:06,980 --> 00:59:08,560 of 'n reguit lyn en dies meer. 1203 00:59:08,560 --> 00:59:11,719 En dan driehoek ook kan hê is gerig in 'n aantal maniere. 1204 00:59:11,719 --> 00:59:14,760 So in kort, selfs met iets wat jy blik en jy soos, wow, so 1205 00:59:14,760 --> 00:59:17,020 eenvoudige, 'n kind kon trek dit goed nie 1206 00:59:17,020 --> 00:59:19,640 regtig nie, tensy jy super, super oortuigende 1207 00:59:19,640 --> 00:59:22,045 en vertel die rekenaar presies wat om te doen. 1208 00:59:22,045 --> 00:59:24,420 So as ons kon, as jy ' 'n ander vel papier, kom ons 1209 00:59:24,420 --> 00:59:26,710 probeer om hierdie keer meer. 1210 00:59:26,710 --> 00:59:29,880 En ek gaan Victoria een gee ander voorbeeld op die skerm hier. 1211 00:59:29,880 --> 00:59:34,060 En weer, moenie omdraai en kyk nie na jou skyfies. 1212 00:59:34,060 --> 00:59:37,304 En Ek sal haar 'n oomblik om te gee dink oor hoe om dit te beskryf. 1213 00:59:37,304 --> 00:59:39,012 Moet nie toelaat dat hulle sien die vrees in jou oë. 1214 00:59:39,012 --> 00:59:40,820 >> [Gelag] 1215 00:59:40,820 --> 00:59:43,710 >> En weer, hierdie keer hefboom sommige van daardie wegneemetes 1216 00:59:43,710 --> 00:59:48,130 en probeer om byna almal kry ten minste die regte antwoord. 1217 00:59:48,130 --> 00:59:52,260 >> Publiek: OK, neem 'n stuk papier, lyk 1218 00:59:52,260 --> 00:59:54,500 in die middel van daardie stuk papier. 1219 00:59:54,500 --> 00:59:59,591 In die middel van daardie stuk papier, trek 'n kubus. 1220 00:59:59,591 --> 01:00:01,244 >> [Gelag] 1221 01:00:01,244 --> 01:00:02,660 David Malan: Wat het ons geleer? 1222 01:00:02,660 --> 01:00:03,540 Ons was so naby. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, herhaal as jy kon, vir almal. 1225 01:00:09,045 --> 01:00:13,210 >> Publiek: In die middel van die stuk papier, trek 'n voorwerp, 1226 01:00:13,210 --> 01:00:14,842 wat lyk soos 'n kubus. 1227 01:00:14,842 --> 01:00:17,332 >> David Malan: OK, dis al wat jy kry om te werk met. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Laat my toe om analitiese wees en nie soseer krities, 1230 01:00:23,080 --> 01:00:25,720 maar om die eis te maak dat Victoria beslis 1231 01:00:25,720 --> 01:00:28,967 lyk baie dink in hoë vlak abstraksies, wat 1232 01:00:28,967 --> 01:00:29,800 is nie onredelik nie. 1233 01:00:29,800 --> 01:00:32,160 Want anders, ons wil almal wees mooi abnormaal, 1234 01:00:32,160 --> 01:00:35,740 As ons ooit so presies te wees met alles wat ons doen in die wêreld. 1235 01:00:35,740 --> 01:00:38,890 >> Maar sê gaan na die middle-- ek gedink ons ​​op so 'n goeie track 1236 01:00:38,890 --> 01:00:42,340 daar, soos gaan tot by die helfte van die bladsy, en dan trek 'n kubus. 1237 01:00:42,340 --> 01:00:45,730 So sy denke in abstraksies, want sy is nog steeds lees 1238 01:00:45,730 --> 01:00:48,490 wat op die skerm soos inderdaad 'n kubus. 1239 01:00:48,490 --> 01:00:51,185 Maar daar is so baie geleenthede vir interpretasie is daar. 1240 01:00:51,185 --> 01:00:53,560 En in werklikheid, daar is so baie ander maniere wat jy kan uitdruk 1241 01:00:53,560 --> 01:00:55,101 dat, wat ek sal voorstel in 'n oomblik. 1242 01:00:55,101 --> 01:00:59,770 So hier het ons 'n inkarnasie van die picture-- whoops-- een 1243 01:00:59,770 --> 01:01:02,830 inkarnasie van die prentjie, so 'n bietjie drie dimensionaliteit om dit, 1244 01:01:02,830 --> 01:01:04,160 wat is lekker. 1245 01:01:04,160 --> 01:01:08,470 >> Hier is nog 'n, waar jy die dieselfde, maar dit is soort van 'n oop blokkie. 1246 01:01:08,470 --> 01:01:12,020 Sommige mense het dit 'n bietjie meer plat, twee dimensionele. 1247 01:01:12,020 --> 01:01:13,910 En dit is goed. 1248 01:01:13,910 --> 01:01:17,380 So is daar inderdaad in die middel van die papier. 1249 01:01:17,380 --> 01:01:22,720 Hierdie een ek dink jy sal soos, want as ons hier gaan, 1250 01:01:22,720 --> 01:01:25,130 dit is wat sy beskryf. 1251 01:01:25,130 --> 01:01:29,570 So nou, laat my stel hoe anders Ons kan hierdie situasie beskryf. 1252 01:01:29,570 --> 01:01:34,070 >> Terug in die dag, een van die mees meer algemene maniere om te leer programmeer 1253 01:01:34,070 --> 01:01:38,900 was om kode te skryf, skryf lyne van instruksies, 1254 01:01:38,900 --> 01:01:42,640 daardie beheerde 'n bietjie skilpad op die skerm. 1255 01:01:42,640 --> 01:01:45,660 Logo en ander variante van hierdie was die naam van die taal. 1256 01:01:45,660 --> 01:01:47,550 En die skilpad het in 'n wêreld. 1257 01:01:47,550 --> 01:01:49,970 >> So veronderstel dit reghoekige ruimte is sy wêreld. 1258 01:01:49,970 --> 01:01:53,340 En jy sal begin deur assuming-- ek weet nie regtig hoe om skilpad trek, 1259 01:01:53,340 --> 01:01:54,740 so laat ons doen dit so. 1260 01:01:54,740 --> 01:01:57,340 En dan is hy 'n dop en dan miskien 'n paar voete. 1261 01:01:57,340 --> 01:01:59,840 So jy kan hierdie klein hê karakter op die skerm. 1262 01:01:59,840 --> 01:02:02,270 >> En die doel van hierdie programmeertaal 1263 01:02:02,270 --> 01:02:06,070 was om die skilpad te dwing optrek, af, links, regs 1264 01:02:06,070 --> 01:02:08,420 en sy pen neer te sit of haal sy pen up, 1265 01:02:08,420 --> 01:02:12,720 sodat hy kan eintlik stel op die skerm in hierdie baie plat vierkantige wêreld. 1266 01:02:12,720 --> 01:02:16,850 So waar ek gedink dat jy dalk gaan, en waar jy moet duik oorweeg 1267 01:02:16,850 --> 01:02:19,520 af te geestelik wanneer beskryf instruksies meer algemeen, 1268 01:02:19,520 --> 01:02:21,720 Ek sou eis, is sit jou pen in die middle-- 1269 01:02:21,720 --> 01:02:23,100 en ons sal ontslae te raak van die kry skilpad, want ek kan nie regtig 1270 01:02:23,100 --> 01:02:24,680 ons teken hom baie goed. 1271 01:02:24,680 --> 01:02:27,170 >> En nou, hoe anders kon Ek sê trek 'n kubus? 1272 01:02:27,170 --> 01:02:32,830 Wel, ons kan iets soos trekking sê 'n skuins lyn noordooste, byvoorbeeld, 1273 01:02:32,830 --> 01:02:35,182 of op 'n hoek van 45 grade opwaarts. 1274 01:02:35,182 --> 01:02:36,640 En dit kan my hier gekry het. 1275 01:02:36,640 --> 01:02:38,380 En ek is redelik ver van 'n kubus. 1276 01:02:38,380 --> 01:02:42,430 Maar nou, kan ek iets sê soos draai 90 grade na links 1277 01:02:42,430 --> 01:02:47,370 en trek 'n streep van ewe lank noordweste. 1278 01:02:47,370 --> 01:02:49,470 En ek kon voortgaan met 'n soortgelyke rigtings. 1279 01:02:49,470 --> 01:02:50,720 En dit gaan nie maklik wees nie. 1280 01:02:50,720 --> 01:02:53,345 En eerlik, sou ons waarskynlik het hier vir vyf minute was. 1281 01:02:53,345 --> 01:02:59,600 Maar miskien sal ons gekry het om iets wat aan die einde van die dag, 1282 01:02:59,600 --> 01:03:04,280 beland om 'n kubus, maar ons geduik binnekant van daardie onttrekking 1283 01:03:04,280 --> 01:03:06,370 om dit te doen op so 'n lae vlak wat jy nie kan regtig 1284 01:03:06,370 --> 01:03:09,795 sien wat jy doen totdat die hele ding is eintlik daar op die bladsy. 1285 01:03:09,795 --> 01:03:12,670 En dus is dit 'n algemene beginsel, weer van programming-- hierdie idee 1286 01:03:12,670 --> 01:03:13,320 van abstraksie. 1287 01:03:13,320 --> 01:03:15,920 Dit is so wonderlik kragtige, want weer, 1288 01:03:15,920 --> 01:03:19,281 Sy het net gesê, trek 'n kubus, wat al ons pretty much sal baie vinnig grok. 1289 01:03:19,281 --> 01:03:21,030 Ons wil net verstaan, OK, trek 'n kubus. 1290 01:03:21,030 --> 01:03:24,030 Ons kan nie weet wat die oriëntasie, sodat ons kan 'n bietjie meer presies te wees, 1291 01:03:24,030 --> 01:03:26,297 maar ons kan oor die algemeen beeld of weet wat 'n kubus is. 1292 01:03:26,297 --> 01:03:28,130 En dit is nuttig, want as elke keer as jy 1293 01:03:28,130 --> 01:03:31,540 gaan sit as 'n programmeerder by u sleutelbord om die kode te skryf, 1294 01:03:31,540 --> 01:03:33,912 As jy het om te dink aan so ' 'n lae vlak, niemand van ons 1295 01:03:33,912 --> 01:03:35,120 sou ooit iets gedoen. 1296 01:03:35,120 --> 01:03:38,259 En in elk geval, nie een van ons sou geniet die proses van die skryf-kode. 1297 01:03:38,259 --> 01:03:41,550 Dit sou wees soos die skryf in 0 en 1 se wat eerlik was nie so lank gelede 1298 01:03:41,550 --> 01:03:43,680 die mens is-kode skryf in 0 en 1 se. 1299 01:03:43,680 --> 01:03:46,960 En ons het baie vinnig met hierdie hoër vlak languages-- 1300 01:03:46,960 --> 01:03:49,410 C ++ en Java en ander. 1301 01:03:49,410 --> 01:03:52,500 >> So kom ons probeer dit weer net flip die tafels, sodat ons almal 1302 01:03:52,500 --> 01:03:55,450 het die kans om te dink in plaas van die dieselfde manier. 1303 01:03:55,450 --> 01:03:59,230 Kan ons nog 'n vrywilliger hierdie tyd om te kom tot die direksie en trek, 1304 01:03:59,230 --> 01:04:01,480 nie opsê? 1305 01:04:01,480 --> 01:04:02,070 Ja, OK. 1306 01:04:02,070 --> 01:04:04,820 Ben, kom op tot. 1307 01:04:04,820 --> 01:04:08,510 En Ben, in hierdie geval, as jy gesig die raad, kyk nie links, 1308 01:04:08,510 --> 01:04:09,370 kyk nie reg nie. 1309 01:04:09,370 --> 01:04:12,367 Slegs doen wat jou kollegas hier vertel jou. 1310 01:04:12,367 --> 01:04:14,950 En vir almal in die kamer, jy is nou die programmeerder. 1311 01:04:14,950 --> 01:04:16,020 Hy is die rekenaar. 1312 01:04:16,020 --> 01:04:21,395 En die prentjie wat ek hier gekies vooruit is hierdie een hier. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Hulle is just-- hulle dink van 'n snaakse grap is al. 1315 01:04:27,660 --> 01:04:31,510 >> So sou beteken iemand wil vrywilliger die eerste instruksie 1316 01:04:31,510 --> 01:04:35,470 of stelling dat indien pen opdrag Ben se? 1317 01:04:35,470 --> 01:04:40,850 En ons sal dit gesamentlik te doen, miskien een opdrag van elke persoon. 1318 01:04:40,850 --> 01:04:41,440 Ek is jammer? 1319 01:04:41,440 --> 01:04:42,440 >> Publiek: Trek 'n sirkel. 1320 01:04:42,440 --> 01:04:45,866 David Malan: Trek 'n sirkel is die eerste ding wat ek gehoor het. 1321 01:04:45,866 --> 01:04:47,100 >> Publiek: Up top. 1322 01:04:47,100 --> 01:04:48,140 >> David Malan: Up top. 1323 01:04:48,140 --> 01:04:52,504 OK, kan ons u verwyder, ongedaan te maak. 1324 01:04:52,504 --> 01:04:53,420 En nou, iemand anders. 1325 01:04:53,420 --> 01:04:55,994 Dan sal jy gemaklik wees bied die volgende opdrag? 1326 01:04:55,994 --> 01:05:02,070 >> Gehoor: Ja, trek die sentrum van die onderkant van die sirkel, 1327 01:05:02,070 --> 01:05:07,121 met 'n small-- 'n bietjie klein ruimte van daardie, 1328 01:05:07,121 --> 01:05:15,420 trek 'n reguit lyn af na drie kwartale van die pad af die direksie 1329 01:05:15,420 --> 01:05:17,845 'n effense hoek om jou linkerkant. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> David Malan: Goeie. 1332 01:05:22,620 --> 01:05:24,086 >> Publiek: effens skuins. 1333 01:05:24,086 --> 01:05:32,807 >> David Malan: Herroep, beheer-Z. OK. 1334 01:05:32,807 --> 01:05:34,890 Andrew, jy wil aan te bied die volgende opdrag? 1335 01:05:34,890 --> 01:05:35,515 >> Publiek: Seker. 1336 01:05:35,515 --> 01:05:43,250 Van die onderkant van die lyn, 'n verdere effense angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops-- miskien oor 'n derde van die lengte [onhoorbaar], 1338 01:05:49,024 --> 01:05:52,928 effense hoek afwaarts en soos 'n derde van die lengte van [onhoorbaar]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 So ja, van daardie punt, trek 'n streep 'n derde 1341 01:06:00,578 --> 01:06:04,150 van die lengte van die vorige lyn verder aan die linkerkant. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> David Malan: Dit OK? 1344 01:06:10,040 --> 01:06:12,330 Reguitlyn, dit is OK? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, wat jy wil om die volgende aan te bied nie? 1346 01:06:14,900 --> 01:06:28,564 >> Gehoor: [onhoorbaar] van die onderkant van die sirkel, [onhoorbaar]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Teken op die regterkant van [onhoorbaar] sentimeter. 1349 01:06:45,126 --> 01:06:46,560 >> [Gelag] 1350 01:06:46,560 --> 01:06:49,872 >> David Malan: Ek dink jy gaan moet omskep dis duim hier. 1351 01:06:49,872 --> 01:06:50,764 >> Publiek: Stop. 1352 01:06:50,764 --> 01:06:52,186 >> [Gelag] 1353 01:06:52,186 --> 01:06:54,570 >> David Malan: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?] Wat jy wil om die volgende aan te bied nie? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> Publiek: Teken 'n [onhoorbaar] die boonste [onhoorbaar] dieselfde. 1357 01:07:15,443 --> 01:07:28,829 [Onhoorbaar] sirkel, te vestig op die [Onhoorbaar] en trek [onhoorbaar]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> David Malan: OK, nie meer ongedaan te maak. 1360 01:07:36,730 --> 01:07:38,390 Kom ons doen een of twee meer instruksies. 1361 01:07:38,390 --> 01:07:40,825 Chris, jy wil een aanbied? 1362 01:07:40,825 --> 01:07:46,182 >> Publiek: Aan die onderkant van die sirkel, [onhoorbaar] 1363 01:07:46,182 --> 01:07:51,528 trek 'n gelyke lyn Hellend Vlak afwaartse na links [onhoorbaar]. 1364 01:07:51,528 --> 01:07:59,304 1365 01:07:59,304 --> 01:08:00,590 >> David Malan: OK. 1366 01:08:00,590 --> 01:08:01,170 Andrew? 1367 01:08:01,170 --> 01:08:02,472 Ons did-- Karim? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> Publiek: Vanaf die regte lyn, die einde van die links lyn, die onderkant, 1370 01:08:13,765 --> 01:08:21,012 jy gaan reg oor te gaan dieselfde lengte as die lyn 1371 01:08:21,012 --> 01:08:27,680 jy op, teken aan die reg [onhoorbaar]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Onhoorbaar] grade, so [onhoorbaar] grade aan die regterkant. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> David Malan: Alle reg. 1376 01:08:43,500 --> 01:08:44,029 Kom ons breek. 1377 01:08:44,029 --> 01:08:44,950 Moet tog nie omdraai. 1378 01:08:44,950 --> 01:08:46,783 Kom ons breek, en laat ons Probeer een ander poging 1379 01:08:46,783 --> 01:08:48,850 voordat ons openbaar Ben wat hy is teken. 1380 01:08:48,850 --> 01:08:51,189 Kan jy shuffle Ben om die right-- of eintlik, 1381 01:08:51,189 --> 01:08:54,080 nee, laat ons net gee die ander styl, selfs beter. 1382 01:08:54,080 --> 01:08:57,640 So sal iemand nou wil meer van die benadering 1383 01:08:57,640 --> 01:09:02,149 dat Victoria het vroeër op, waar Ons praat in 'n hoër vlak onttrekking 1384 01:09:02,149 --> 01:09:05,149 en in net 'n sin of twee te beskryf Ben 1385 01:09:05,149 --> 01:09:07,229 wat om te trek sonder om in die onkruid, 1386 01:09:07,229 --> 01:09:10,670 so op hierdie 'n laer vlak te praat,? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [Gelag] 1389 01:09:11,706 --> 01:09:14,249 Publiek: Teken 'n figuur van die loop man. 1390 01:09:14,249 --> 01:09:18,866 En sy bene en arms het na die regterkant wees. 1391 01:09:18,866 --> 01:09:20,505 >> David Malan: OK, dit is al wat jy kry. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 Alles reg. 1394 01:09:27,710 --> 01:09:31,609 Hoekom het ons nie openbaar aan Ben wat hy gedoen het. 1395 01:09:31,609 --> 01:09:32,890 So 'n rondte van applous. 1396 01:09:32,890 --> 01:09:35,700 Dit was die moeilikste miskien. 1397 01:09:35,700 --> 01:09:37,931 >> So selfs al is ons praat in redelik dom terme 1398 01:09:37,931 --> 01:09:39,680 oor net teken foto's, hopelik jy 1399 01:09:39,680 --> 01:09:44,226 kan dit baie waardeer die graad van uitdrukking wat nodig mag wees 1400 01:09:44,226 --> 01:09:45,850 ten einde 'n rekenaar wat om te doen te vertel. 1401 01:09:45,850 --> 01:09:50,370 En in werklikheid, die feit dat Ben was in staat om dit so vinnig trek 1402 01:09:50,370 --> 01:09:54,227 is 'n soort van bewys van die gebruik van 'n taal, miskien 'n hoër vlak 1403 01:09:54,227 --> 01:09:57,060 weergawe van die Engelse, wat hom toelaat om net te gebruik woorde, of woorde hoor 1404 01:09:57,060 --> 01:09:59,990 van Victoria, wat hom toelaat hierdie abstractions-- net trek 1405 01:09:59,990 --> 01:10:03,020 'n figuur loop om die right-- dié soort van het 1406 01:10:03,020 --> 01:10:07,100 sommige semantiese betekenis aan dit wat nie naastenby so voor die hand liggend as jy net 1407 01:10:07,100 --> 01:10:10,310 en gesê: sit jou pen neer, trek om die reg, trek aan die linkerkant. 1408 01:10:10,310 --> 01:10:12,420 >> En so gaan dit ook baie algemeen in programmering. 1409 01:10:12,420 --> 01:10:15,253 Dit sou gesê dat dit soos 'n 'n baie lae vlak taal, ontwikkeling 1410 01:10:15,253 --> 01:10:16,730 in 0 en 1 se as jy wil. 1411 01:10:16,730 --> 01:10:19,320 En dit sal 'n hoër vlak wees taal programmering in Java, 1412 01:10:19,320 --> 01:10:20,278 of iets soos dit. 1413 01:10:20,278 --> 01:10:22,050 'N bietjie van 'n oorvereenvoudiging, maar dit is 1414 01:10:22,050 --> 01:10:24,310 die soort van soos emosionele voel dat jy voel wanneer 1415 01:10:24,310 --> 01:10:26,630 met behulp van 'n soort van ding of 'n ander. 1416 01:10:26,630 --> 01:10:32,650 'N bietjie van frustrasie hier deur die behoefte vir sodanige presisie, maar die geleentheid 1417 01:10:32,650 --> 01:10:34,930 om 'n bietjie losser wees met die interpretasie hier. 1418 01:10:34,930 --> 01:10:38,060 Maar natuurlik, foute kan ontstaan ​​as gevolg. 1419 01:10:38,060 --> 01:10:40,500 >> As jy wil te home-- ons sal hierdie een in class-- nie 1420 01:10:40,500 --> 01:10:41,900 maar as jy wil bring hierdie een huis, 1421 01:10:41,900 --> 01:10:43,387 Ek het gedink ons ​​sou duik in hierdie. 1422 01:10:43,387 --> 01:10:45,970 So as jy wil hierdie speel speletjie saam met jou beduidende ander 1423 01:10:45,970 --> 01:10:49,180 of kinders of dies meer, jy kan geniet wat sowel. 1424 01:10:49,180 --> 01:10:54,460 >> So laat ons gaan voort en kyk na 'n laaste ding hier vir Rekenaardenke. 1425 01:10:54,460 --> 01:10:57,010 En dit bring ons by Johannes Oliver, nie vir die clip 1426 01:10:57,010 --> 01:11:00,070 jy dalk gisteraand gesien het, maar 'n bietjie onlangse uitgawe. 1427 01:11:00,070 --> 01:11:03,310 'N Paar maande terug, Volkswagen het nogal 'n bietjie van kritiek 1428 01:11:03,310 --> 01:11:05,651 om watter rede, as jy weet? 1429 01:11:05,651 --> 01:11:07,025 Wat het hulle in die moeilikheid vir? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Ja, so emissions-- hulle probeer uitstoot klop 1432 01:11:14,030 --> 01:11:19,100 toetse deur in wese met hul motors besoedel die omgewing minder 1433 01:11:19,100 --> 01:11:23,620 wanneer hul motors getoets en die omgewing besoedel meer 1434 01:11:23,620 --> 01:11:25,547 wanneer die motors is nie getoets. 1435 01:11:25,547 --> 01:11:28,630 En wat is toenemend interessante in die wêreld, as jy kan afgeleide het 1436 01:11:28,630 --> 01:11:34,072 uit besprekings van like-- wat it-- CarPlay, Apple se sagteware vir motors 1437 01:11:34,072 --> 01:11:35,780 en die feit dat baie van ons toenemend 1438 01:11:35,780 --> 01:11:38,390 het raakskerms in ons motors, daar is 'n skrikwekkende bedrag 1439 01:11:38,390 --> 01:11:41,250 van sagteware in mense se motors vandag, wat 1440 01:11:41,250 --> 01:11:45,650 eerlik open 'n hele blikkie wurms wanneer dit kom by veiligheid en fisiese risiko. 1441 01:11:45,650 --> 01:11:48,070 Maar vir vandag, laat ons fokus op net wat 1442 01:11:48,070 --> 01:11:52,170 betrokke by die skryf sagteware wat dalk die stelsel het gamed. 1443 01:11:52,170 --> 01:11:54,510 >> Vir die definisie van die probleem, vir diegene wat nie vertroud, 1444 01:11:54,510 --> 01:11:55,740 Kom ons neem 'n blik op John Oliver. 1445 01:11:55,740 --> 01:11:58,115 En vir diegene wat vertroud is met die probleem, laat ons kyk na dit 1446 01:11:58,115 --> 01:12:00,480 in 'n prettige lens via John Oliver sowel. 1447 01:12:00,480 --> 01:12:05,810 So laat my getref speel op hierdie, ek dink, drie minute inleiding. 1448 01:12:05,810 --> 01:12:07,074 Vervloek dit. 1449 01:12:07,074 --> 01:12:07,740 [Video speel] 1450 01:12:07,740 --> 01:12:08,170 -Cars-- 1451 01:12:08,170 --> 01:12:09,919 David Malan: Dit is duidelik dat, op YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --the Slimste karakters in die Fast and Furious films. 1453 01:12:12,500 --> 01:12:16,080 Hierdie week, Duitse automaker Volkswagen gevind homself 1454 01:12:16,080 --> 01:12:19,430 in die middel van 'n skandaal van potensieel kriminele proporsies. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Is verspanning vir miljarde in boetes, moontlik 'n kriminele klag 1456 01:12:23,020 --> 01:12:25,530 vir sy bestuurders, soos die maatskappy vra om verskoning 1457 01:12:25,530 --> 01:12:28,790 vir rigging 11 miljoen motors te help dit klop uitstoot toetse. 1458 01:12:28,790 --> 01:12:32,110 >> -Certain Diesel modelle is ontwerp met gesofistikeerde sagteware wat 1459 01:12:32,110 --> 01:12:35,410 gebruik inligting, insluitend die posisie van die stuurwiel en voertuig 1460 01:12:35,410 --> 01:12:38,820 spoed, om vas te stel die motor was ondergaan uitstoot toets. 1461 01:12:38,820 --> 01:12:42,620 Onder daardie omstandighede, die enjin sou giftige uitlaatgasse te verminder. 1462 01:12:42,620 --> 01:12:46,040 Maar die motor getuig om verbypad dat wanneer dit gedryf. 1463 01:12:46,040 --> 01:12:51,370 Uitstoot verhoog 10-40 keer bo aanvaarbare EPA vlakke. 1464 01:12:51,370 --> 01:12:55,920 >> -Wow 10 tot 40 keer groter as die EPA kan. 1465 01:12:55,920 --> 01:12:59,570 Dit is die ergste ding Volkswagen het ooit gedoen het, 1466 01:12:59,570 --> 01:13:04,200 is iets wat jy kan sê of jy het nog nooit gehoor van die Tweede Wêreldoorlog. 1467 01:13:04,200 --> 01:13:09,710 Maar miskien is die sekerste teken van hoe veel moeite Volkswagen is in, 1468 01:13:09,710 --> 01:13:12,730 is dat mense op die heel top het uitgetree. 1469 01:13:12,730 --> 01:13:16,320 Die hoof uitvoerende beampte bedank het gister ná skommeling skadebeheer doen, 1470 01:13:16,320 --> 01:13:20,380 sê hy eindeloos jammer was, wat geklink groot totdat dit blyk 1471 01:13:20,380 --> 01:13:22,920 Hy was slegs 10% jammer maar het sy mond getuig 1472 01:13:22,920 --> 01:13:25,600 kunsmatig opblaas sy sorriness. 1473 01:13:25,600 --> 01:13:29,700 En intussen, Volkswagen se Amerikaanse hoof het 'n verskoning van sy eie. 1474 01:13:29,700 --> 01:13:33,580 >> -Laat Se duidelik wees oor hierdie, Ons maatskappy is oneerlik. 1475 01:13:33,580 --> 01:13:37,140 En in my Duitse woorde, ons het heeltemal geskroef. 1476 01:13:37,140 --> 01:13:41,360 >> -Yeah, Maar heeltemal geskroef up is nie Duitse werke. 1477 01:13:41,360 --> 01:13:43,750 En die Duitse taal het baie mooi frases 1478 01:13:43,750 --> 01:13:50,070 om situasies te beskryf net soos hierdie, soos [Duits], wat min of meer beteken, 1479 01:13:50,070 --> 01:13:52,870 die hartseer wat kom van sake wat verband hou leuens, 1480 01:13:52,870 --> 01:13:59,060 of [Duits], wat vertaal as shaming kinders vader wat 1481 01:13:59,060 --> 01:14:00,352 wolke van petrol. 1482 01:14:00,352 --> 01:14:02,060 Dit is 'n pragtige taal. 1483 01:14:02,060 --> 01:14:04,660 Dit seile net buite die tong. 1484 01:14:04,660 --> 01:14:07,920 En by the way, terwyl die man se verskoning kan opreg geklink het, 1485 01:14:07,920 --> 01:14:12,260 Dit is opmerklik Hy het gepraat by 'n amptelike bekendstelling party vir die 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, wat beteken dat binnekort nadat sê jammer, het hy gesê dit. 1487 01:14:17,310 --> 01:14:18,850 >> -Thank You very much vir die komende. 1488 01:14:18,850 --> 01:14:19,630 Geniet die aand. 1489 01:14:19,630 --> 01:14:21,300 Tot volgende is Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [Speel van musiek] 1491 01:14:24,640 --> 01:14:28,230 >> -OK, OK, eindig jou verskoning met tot volgende 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz nie skree nugter berou. 1493 01:14:31,940 --> 01:14:35,830 Dit skree, vra ons Bon Jovi, en hy het gesê nee. 1494 01:14:35,830 --> 01:14:38,600 merk Volkswagen se is erg beskadig. 1495 01:14:38,600 --> 01:14:42,466 En eerlik, hul nuwe advertensie veldtog is nie juis help. 1496 01:14:42,466 --> 01:14:47,289 >> - [Duits], het ons by Volkswagen wil om verskoning te vra vir jou mislei met 1497 01:14:47,289 --> 01:14:47,930 ons voertuie. 1498 01:14:47,930 --> 01:14:48,513 >> [Einde TERUGSPEEL] 1499 01:14:48,513 --> 01:14:54,090 David Malan: So dit was 'n ompad of-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 dit was 'n ompad van die bekendstelling van 'n fundamentele probleem 1501 01:14:58,730 --> 01:15:02,810 in sagteware, en dit is dat jy moet aan sekere voorwaardes op te spoor. 1502 01:15:02,810 --> 01:15:07,680 En so het die vraag aan die hand hier is, hoe 'n motor potensieel, 1503 01:15:07,680 --> 01:15:09,870 soos toegepas in sagteware deur hierdie programmeerders, 1504 01:15:09,870 --> 01:15:11,850 ontdek dat dit eintlik getoets? 1505 01:15:11,850 --> 01:15:14,150 So om super duidelik wees, wat hulle doen 1506 01:15:14,150 --> 01:15:17,940 was, in 'n omgewing waar die programmeerders uitgepluis 1507 01:15:17,940 --> 01:15:20,460 die motor is wat getoets, hulle een of ander manier gemaak 1508 01:15:20,460 --> 01:15:24,840 die motor stoot minder uitstoot, minder uitstoot, sodat minder giftige dampe 1509 01:15:24,840 --> 01:15:25,470 en so. 1510 01:15:25,470 --> 01:15:27,261 Maar wanneer dit normaalweg ry op die pad, 1511 01:15:27,261 --> 01:15:30,350 Dit sou net stoot so veel besoedeling soos dit wou. 1512 01:15:30,350 --> 01:15:33,870 >> So, hoe kan ons skryf die pseudokode vir hierdie algoritme? 1513 01:15:33,870 --> 01:15:37,820 Hoe kan ons skryf die pseudokode vir die sagteware wat in die motor? 1514 01:15:37,820 --> 01:15:43,390 Ek bedoel, in 'n neutedop, dit kook af om iets soos hierdie. 1515 01:15:43,390 --> 01:15:48,000 As getoets, uitstraal minder. 1516 01:15:48,000 --> 01:15:50,750 anders straal meer. 1517 01:15:50,750 --> 01:15:52,630 Maar dit is 'n bietjie te hoë vlak, reg? 1518 01:15:52,630 --> 01:15:58,580 >> Kom ons probeer om te duik in oor wat hierdie onttrekking van getoets middel. 1519 01:15:58,580 --> 01:16:06,340 Met ander woorde, selfs as jy weet niks oor motors, watter soort vrae 1520 01:16:06,340 --> 01:16:13,440 kan jy vra ten einde te bepaal of jy getoets, as jy die motor is? 1521 01:16:13,440 --> 01:16:19,638 Watter eienskappe kan wees bied as 'n motor word getoets? 1522 01:16:19,638 --> 01:16:21,026 >> Publiek: toets van toerusting. 1523 01:16:21,026 --> 01:16:22,420 >> David Malan: toets van toerusting. 1524 01:16:22,420 --> 01:16:26,060 So as toets toerusting buurt, dan stoot minder. 1525 01:16:26,060 --> 01:16:28,669 So ek kon dink die implementering wat met 'n soort van kameras 1526 01:16:28,669 --> 01:16:29,960 of die opsporing van wat rondom jou. 1527 01:16:29,960 --> 01:16:32,870 En laat my stel, wat voel net te ingewikkeld 1528 01:16:32,870 --> 01:16:37,914 om werklik nog meer hardeware net vir daardie doel. 1529 01:16:37,914 --> 01:16:44,830 >> Publiek: As jy in park, as jou kap oop. 1530 01:16:44,830 --> 01:16:47,320 >> David Malan: In die park of kap oop, so dit is goed. 1531 01:16:47,320 --> 01:16:47,420 >> Publiek: En motor bestuur. 1532 01:16:47,420 --> 01:16:50,480 >> David Malan: So dit is 'n bietjie meer concrete-- en motor loop. 1533 01:16:50,480 --> 01:16:55,690 So sou dit die samewerking van 'n wees paar verskillende toestande, as jy wil. 1534 01:16:55,690 --> 01:16:59,227 So as die motor is in 'n park, en selfs al is dit 'n baie meganiese ding 1535 01:16:59,227 --> 01:17:01,060 Tipies, ek kon dink skryf sagteware, 1536 01:17:01,060 --> 01:17:03,476 veral omdat daar dikwels 'n ligte daar deesdae, 1537 01:17:03,476 --> 01:17:07,400 Ek kon daar voorstel wat sagteware wat die shifter kan navraag 1538 01:17:07,400 --> 01:17:10,634 of wat nie, is jy in 'n park, is jy in ry, is jy in reverse. 1539 01:17:10,634 --> 01:17:12,550 En ek kan terug te kry 'n beantwoord dit is óf ja 1540 01:17:12,550 --> 01:17:14,400 of nee vir hierdie soort van vrae. 1541 01:17:14,400 --> 01:17:17,630 >> En so het ek kon ook waarskynlik beantwoord 'n vraag soos, is die enjinkap oop. 1542 01:17:17,630 --> 01:17:21,860 Miskien is daar 'n soort van sensor wat óf gee my terug 'n 1 of 0, 1543 01:17:21,860 --> 01:17:23,720 waar of onwaar is, die enjinkap oop. 1544 01:17:23,720 --> 01:17:28,180 En dan die motor loop, ek kon opspoor dat een of ander manier deur middel van watter meganisme? 1545 01:17:28,180 --> 01:17:30,430 Soos die motor loop, ek kon opspoor wat dit op, 1546 01:17:30,430 --> 01:17:32,127 kon ek opspoor een of ander manier dat die motor beweeg? 1547 01:17:32,127 --> 01:17:32,881 >> Publiek: RPMs. 1548 01:17:32,881 --> 01:17:35,190 >> David Malan: Ja, so daar is altyd dat naald wat 1549 01:17:35,190 --> 01:17:38,034 vertel jou hoeveel rotasies per minuut die wiele ervaar. 1550 01:17:38,034 --> 01:17:39,200 En so het ek kan kyk na dit. 1551 01:17:39,200 --> 01:17:43,090 En as dit nie 0, wat waarskynlik beteken die motor beweeg. 1552 01:17:43,090 --> 01:17:45,400 Maar ons het 'n wees bietjie versigtig daar, 1553 01:17:45,400 --> 01:17:49,780 because-- laat ons vereenvoudig this-- As ons net sê, as die motor loop, 1554 01:17:49,780 --> 01:17:53,070 Ons wil nie net uitstraal minder, Ons wil as die motor loop 1555 01:17:53,070 --> 01:17:54,310 en dit is getoets. 1556 01:17:54,310 --> 01:17:56,320 >> So is daar 'n paar ander bestanddele wat mense 1557 01:17:56,320 --> 01:18:00,550 het vermoed die sagteware doen, omdat afwesig die werklike bron-kode, 1558 01:18:00,550 --> 01:18:05,130 jy kan net soort van aflei uit die fisiese gevolge van die motor oor wat 1559 01:18:05,130 --> 01:18:08,280 kan aangaan onder die enjinkap in sagteware. 1560 01:18:08,280 --> 01:18:17,090 So as motor loop en miskien, sê, agterwiele nie beweeg, 1561 01:18:17,090 --> 01:18:19,420 kan dit wees 'n aanduiding van die een of ander toets? 1562 01:18:19,420 --> 01:18:22,830 Wat ek sinspeel op hier? 1563 01:18:22,830 --> 01:18:24,830 Ja, miskien, dis op 'n van diegene roller dinge, 1564 01:18:24,830 --> 01:18:28,340 waar soos die wiele draai in die voorkant of in die rug, 1565 01:18:28,340 --> 01:18:32,570 afhangende van of dit nou voorwiel of agterwiel-aandrywing, sodat die helfte van die wiele 1566 01:18:32,570 --> 01:18:34,420 beweeg, maar die ander twee is nie, wat 1567 01:18:34,420 --> 01:18:36,320 is 'n vreemde situasie in die werklike wêreld. 1568 01:18:36,320 --> 01:18:38,110 As jy ry op die pad, wat moet nie gebeur nie. 1569 01:18:38,110 --> 01:18:40,568 Maar as jy in 'n pakhuis op die een of ander roller stelsel, 1570 01:18:40,568 --> 01:18:41,630 wat kan inderdaad gebeur. 1571 01:18:41,630 --> 01:18:46,980 >> Ek dink mense het ook voorgestel dat miskien, As die motor loop en stuur 1572 01:18:46,980 --> 01:18:51,300 wiel nie beweeg, wat Ook kan 'n sein wees, 1573 01:18:51,300 --> 01:18:54,090 want dit is redelik vir soos 'n dadelik op 'n pad. 1574 01:18:54,090 --> 01:18:57,960 Maar selfs dan, die mens is waarskynlik beweeg dit 'n bietjie of beslis 1575 01:18:57,960 --> 01:18:59,100 oor 'n paar sekondes. 1576 01:18:59,100 --> 01:19:01,030 Of die loop van 'n minuut, die kans is dit nie 1577 01:19:01,030 --> 01:19:03,510 gaan gefikseerd in presies dieselfde posisie. 1578 01:19:03,510 --> 01:19:05,440 >> So met ander woorde, ons kan Substraction neem, 1579 01:19:05,440 --> 01:19:08,200 is jy getoets, en afbreek wat funksionaliteit 1580 01:19:08,200 --> 01:19:10,420 in hierdie komponent bestanddele. 1581 01:19:10,420 --> 01:19:13,440 En dit is werklik wat Volkswagen se ingenieurs op 'n manier gedoen. 1582 01:19:13,440 --> 01:19:17,070 Hulle het sagteware bewus te spoor indien die motor word getoets, 1583 01:19:17,070 --> 01:19:20,440 dus uitstraal minder, anders uitstraal in die gewone manier. 1584 01:19:20,440 --> 01:19:22,690 >> En die probleem hier ook is dat sagteware is nie 1585 01:19:22,690 --> 01:19:26,080 iets wat jy kan regtig sien nie, tensy jy het die sogenaamde bronkode. 1586 01:19:26,080 --> 01:19:29,060 Daar is dus twee verskillende tipes code-- ten minste twee verskillende tipes 1587 01:19:29,060 --> 01:19:30,130 van die kode in die wêreld. 1588 01:19:30,130 --> 01:19:33,150 Daar is iets genoem bron kode, wat nie in teenstelling met wat 1589 01:19:33,150 --> 01:19:37,240 ons het al skryf, bronkode. 1590 01:19:37,240 --> 01:19:40,099 >> Dit is bronkode wat geskryf is in 'n taal genoem pseudokode, 1591 01:19:40,099 --> 01:19:41,640 wat net iets Engels-agtige. 1592 01:19:41,640 --> 01:19:43,140 Daar is geen formele definisie daarvan. 1593 01:19:43,140 --> 01:19:46,770 Maar C en Java, C ++, diegene is alle formele tale wat, 1594 01:19:46,770 --> 01:19:50,610 wanneer jy skryf in hulle wat jy het is 'n teks lêer met bronkode. 1595 01:19:50,610 --> 01:19:54,850 >> Maar daar is ook iets in die wêreld genoem masjienkode. 1596 01:19:54,850 --> 01:20:00,579 En masjien-kode ongelukkig is net 0 en 1 se. 1597 01:20:00,579 --> 01:20:02,870 So masjienkode is wat masjiene verstaan, natuurlik. 1598 01:20:02,870 --> 01:20:04,470 Bronkode is wat mense verstaan. 1599 01:20:04,470 --> 01:20:08,390 >> En oor die algemeen, maar nie altyd, daar is 'n program 1600 01:20:08,390 --> 01:20:14,090 wat 'n programmeerder gebruik wat neem bron kode en draai dit in masjienkode. 1601 01:20:14,090 --> 01:20:17,400 En dat hierdie kursus algemeen bekend as 'n samesteller. 1602 01:20:17,400 --> 01:20:19,820 So jou insette is bronkode, jou uitset is masjienkode, 1603 01:20:19,820 --> 01:20:22,890 en die samesteller is 'n stuk sagteware wat daardie proses nie. 1604 01:20:22,890 --> 01:20:26,260 So hierdie kaarte eintlik mooi na ons insette, algoritmes, uitsette. 1605 01:20:26,260 --> 01:20:30,400 >> Maar dit is 'n baie spesifieke inkarnasie van dit wat om te sê dat, 1606 01:20:30,400 --> 01:20:34,200 selfs al is jy die eienaar van een van Volkswagen se motors wat hieraan skuldig is, 1607 01:20:34,200 --> 01:20:38,390 dit is nie soos jy kan net maak die kap of oop die gebruiker se handleiding of kyk 1608 01:20:38,390 --> 01:20:42,690 by die bronkode, want teen die tyd dit jou motor bereik in jou oprit, 1609 01:20:42,690 --> 01:20:45,580 Dit is reeds omskep in 0 en 1 se. 1610 01:20:45,580 --> 01:20:51,310 En dit is baie moeilik, nie onmoontlik nie, maar baie moeilik om te optel veel van enigiets 1611 01:20:51,310 --> 01:20:53,710 van net te kyk na die onderliggende 0 en 1 se. 1612 01:20:53,710 --> 01:20:57,150 So jy kan dit uit te vind, uiteindelik, as jy verstaan ​​hoe 'n masjien operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel inside-- as jy verstaan die Intel argitektuur, 1614 01:20:59,870 --> 01:21:01,440 maar dit is baie tydrowend. 1615 01:21:01,440 --> 01:21:05,010 En selfs daar, kan jy nie in staat wees om alles te sien 1616 01:21:05,010 --> 01:21:08,220 dat die kode eintlik kan doen. 1617 01:21:08,220 --> 01:21:12,521 >> Enige vrae oor hierdie of hierdie soort proses meer algemeen? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 En eintlik, kan ons hierdie gesprek te bind bespreking van Apple gister. 1620 01:21:18,300 --> 01:21:22,500 Dit is ook waarom die FBI kan nie net gaan kyk in telefoon die verdagte se 1621 01:21:22,500 --> 01:21:26,820 en vind die reëls van die kode, vir Byvoorbeeld, wat in staat stel om die wagwoord uitsluitlik 1622 01:21:26,820 --> 01:21:28,940 of in staat stel dat 80-millisekonde vertraging. 1623 01:21:28,940 --> 01:21:31,630 Omdat teen die tyd dat dit op iPhone die mede se 1624 01:21:31,630 --> 01:21:34,975 Dit is reeds omgeskakel word na 0 en 1 se. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Wel, laat ons breek hier vir ons kyk na Rekenaardenke. 1627 01:21:40,820 --> 01:21:42,320 Hoekom het ons nie neem 'n 15 minute breek. 1628 01:21:42,320 --> 01:21:44,130 En wanneer ons terugkeer, sal ons 'n blik op ontwikkeling 1629 01:21:44,130 --> 01:21:46,550 self en begin om 'n paar te karteer van hierdie hoë vlak konsepte 1630 01:21:46,550 --> 01:21:49,780 om 'n werklike, as speels, programmeertaal. 1631 01:21:49,780 --> 01:21:51,089