1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID Малан: Добре дошли отново, всички. 3 00:00:01,790 --> 00:00:05,030 Така вчера, ще припомним, че ние се фокусирахме върху тези теми тук. 4 00:00:05,030 --> 00:00:08,380 Така че имахме четири всеобхватна topics-- неприкосновеността на личния живот, сигурността и обществото; 5 00:00:08,380 --> 00:00:11,960 интернет технологии; изчислителни облаци; и в крайна сметка, уеб програмиране. 6 00:00:11,960 --> 00:00:14,170 >> Дали някой имат честотна лента или времето 7 00:00:14,170 --> 00:00:16,900 да гледате малко John Oliver снощи? 8 00:00:16,900 --> 00:00:20,120 Това всъщност е доста забавен, ако не е малко плашещо. 9 00:00:20,120 --> 00:00:24,700 Всякакви въпроси за нищо ние направихме вчера? 10 00:00:24,700 --> 00:00:27,600 Всички разяснения? 11 00:00:27,600 --> 00:00:35,580 Всички въпроси, които искате да направите сме сигурни, че засегна днес в някаква форма? 12 00:00:35,580 --> 00:00:37,300 Така че чисто. 13 00:00:37,300 --> 00:00:38,760 >> Така че това, което е на дневен ред за днес? 14 00:00:38,760 --> 00:00:41,301 Така че аз смятахме, че ще започне днес с поглед към това, което е като цяло 15 00:00:41,301 --> 00:00:44,460 известен като изчислителна thinking-- в риска от oversimplifying, мислейки 16 00:00:44,460 --> 00:00:46,636 като компютър, може би мислене като инженер, 17 00:00:46,636 --> 00:00:48,510 и се опитва да започне да организиране на вашите мисли 18 00:00:48,510 --> 00:00:52,039 или да ви даде по-добро чувство за за какво става дума в действителност командващ 19 00:00:52,039 --> 00:00:54,080 компютър, за да се направи нещо по пътя на програмирането. 20 00:00:54,080 --> 00:00:56,663 И ние ще я държи на доста високо ниво, доста много английски, 21 00:00:56,663 --> 00:00:59,850 но се опитват да използват на познат примери за формализиране как 22 00:00:59,850 --> 00:01:01,450 ще отидат за решаване на проблемите. 23 00:01:01,450 --> 00:01:04,080 >> И ние ще преразгледаме някои CS теми, като абстракция, 24 00:01:04,080 --> 00:01:06,040 който излезе няколко пъти вчера, 25 00:01:06,040 --> 00:01:07,554 алгоритми, и след това представителство. 26 00:01:07,554 --> 00:01:09,720 И това е мястото, където ще започнем днес в един момент. 27 00:01:09,720 --> 00:01:11,481 След това ние ще разгледаме по програмиране. 28 00:01:11,481 --> 00:01:13,480 Ние ще разгледаме в някакъв основните конструкции 29 00:01:13,480 --> 00:01:16,450 с които може да сте запознати и дори може да се намери доста интуитивен. 30 00:01:16,450 --> 00:01:18,370 >> Ние ще разгледаме, в действителност, при програмиране на проба 31 00:01:18,370 --> 00:01:21,244 среда, която е много достъпна, много игриво, а всъщност целенасочена 32 00:01:21,244 --> 00:01:22,555 за възрасти 12 и нагоре. 33 00:01:22,555 --> 00:01:25,930 Ние ще прекара няколко минути там и след това да вземе нещата до по-ниско ниво 34 00:01:25,930 --> 00:01:30,360 и всъщност говорим за някои от алгоритмите и структурите от данни, 35 00:01:30,360 --> 00:01:32,360 така да се каже, че програмисти обикновено използват 36 00:01:32,360 --> 00:01:35,040 за решаване на проблеми, много повече ефикасно, отколкото може да 37 00:01:35,040 --> 00:01:37,322 да може да разчита на тях напълно. 38 00:01:37,322 --> 00:01:40,280 Тогава, след обяд, ние ще разгледаме при технологични купчини, което е просто 39 00:01:40,280 --> 00:01:42,240 един луксозен начин на казвайки колекции от технологии 40 00:01:42,240 --> 00:01:43,690 които може да използвате, за да решаване на някакъв проблем. 41 00:01:43,690 --> 00:01:46,670 И ние ще говорим за азбуката супа от езици, които съществуват today-- 42 00:01:46,670 --> 00:01:50,930 Java и Python и C ++ и PHP и Ruby и всякакви други неща. 43 00:01:50,930 --> 00:01:53,740 >> Ние ще отнеме кратко поглед при моделите на дизайна. 44 00:01:53,740 --> 00:01:57,730 Програмистите, с течение на времето, ПРИЕХА методологии 45 00:01:57,730 --> 00:02:00,690 че са склонни да им помогне решаване на проблемите по-лесно. 46 00:02:00,690 --> 00:02:04,390 Когато започнете да виждате себе си писмено един и същи вид на код отново и отново, 47 00:02:04,390 --> 00:02:08,080 хора формализират тези повторения и имена приписваме на тях 48 00:02:08,080 --> 00:02:10,084 и след това да ги използвате и насърчаване на тях, в крайна сметка. 49 00:02:10,084 --> 00:02:12,250 И ние ще говорим малко по- за мобилни стратегии, 50 00:02:12,250 --> 00:02:16,099 като това, което означава да всъщност направи мобилно приложение или мобилен уебсайт. 51 00:02:16,099 --> 00:02:17,140 Смятате ли да го направи за Android? 52 00:02:17,140 --> 00:02:17,730 Смятате ли да го направи за IOS? 53 00:02:17,730 --> 00:02:19,160 Смятате ли да го направи и за двете тези? 54 00:02:19,160 --> 00:02:20,326 И какви са компромисите? 55 00:02:20,326 --> 00:02:23,180 И накрая, ние ще се уеб програмиране поглед, който 56 00:02:23,180 --> 00:02:25,380 е събирателен термин Наистина, описваща всяко време 57 00:02:25,380 --> 00:02:28,410 пишете софтуер, който е означаваше да тече в интернет, 58 00:02:28,410 --> 00:02:30,430 дали на телефони или настолни компютри или лаптопи. 59 00:02:30,430 --> 00:02:33,490 Ще вземем един кратък преглед на бази данни и дизайна 60 00:02:33,490 --> 00:02:39,049 в него, дори и само защото почти всеки интересна уеб-базирано приложение 61 00:02:39,049 --> 00:02:40,590 тези дни има някаква база данни. 62 00:02:40,590 --> 00:02:42,380 В противен случай би Просто се статично съдържание. 63 00:02:42,380 --> 00:02:45,254 И на база данни ви позволява да направите промени с течение на времето, независимо дали сами 64 00:02:45,254 --> 00:02:45,960 или от потребителите. 65 00:02:45,960 --> 00:02:47,820 И ние ще разгледаме как можете ще отидат за проектиране 66 00:02:47,820 --> 00:02:50,510 тази база данни и вида на жаргон че може да излезе в един инженер 67 00:02:50,510 --> 00:02:52,790 обсъждане на бяла дъска когато действително прилагане 68 00:02:52,790 --> 00:02:53,900 приложение за първи път. 69 00:02:53,900 --> 00:02:57,002 >> Ще поговорим накратко за API, полезни услуги 70 00:02:57,002 --> 00:02:59,960 които можете да използвате, за да застане на раменете на другите, независимо дали фирми 71 00:02:59,960 --> 00:03:02,619 или физически лица, както и решаване на вашия собствени проблеми по-бързо. 72 00:03:02,619 --> 00:03:04,785 И тогава ние ще се бъркам може би малко с JavaScript, 73 00:03:04,785 --> 00:03:08,900 език за програмиране, който се използва както в браузърите тези дни, но също така 74 00:03:08,900 --> 00:03:09,820 в сървърите. 75 00:03:09,820 --> 00:03:11,890 И може би, ние ще отново, времето позволява, 76 00:03:11,890 --> 00:03:15,670 някои от най-практичните неща в мрежата ние вчера и се интегрират двете 77 00:03:15,670 --> 00:03:17,630 заедно преди да се отложи. 78 00:03:17,630 --> 00:03:22,380 >> Така че с that-- какво е ahead-- е Има ли нещо липсва, че сте 79 00:03:22,380 --> 00:03:26,289 бихме искали да сме сигурни, поставете и засегна в някакъв момент. 80 00:03:26,289 --> 00:03:28,330 Ако това е извор на ум, това доведе до преди дълго. 81 00:03:28,330 --> 00:03:32,010 Но защо да не започнем с Посетете изчислителна мислене. 82 00:03:32,010 --> 00:03:35,420 >> И нека да предложа изчислителна мислене е, отново, 83 00:03:35,420 --> 00:03:38,830 сортиране на описанието на високо ниво на какво може да се направи компютърен учен. 84 00:03:38,830 --> 00:03:42,470 И наистина, нека да започнем с три съставки, 85 00:03:42,470 --> 00:03:44,207 може да отиде в изчислителната мислене. 86 00:03:44,207 --> 00:03:45,790 Това е само един от начините за това описване. 87 00:03:45,790 --> 00:03:48,490 Ние със сигурност може да се определи това във всяка редица начини. 88 00:03:48,490 --> 00:03:50,630 >> Но нека да предложи, за по-голяма днес, 89 00:03:50,630 --> 00:03:53,910 че проблемите на света, всички проблеми на света, 90 00:03:53,910 --> 00:03:56,730 когато подхожда с компютърен специалист би могъл 91 00:03:56,730 --> 00:04:00,990 да се разглежда като това, което ние ще повиквания входове, които 92 00:04:00,990 --> 00:04:08,142 Трябва да се подава в това, което ние ще наричаме алгоритми, които след това дават резултати. 93 00:04:08,142 --> 00:04:10,600 С други думи, цялата свят на решаване на проблеми I претенция 94 00:04:10,600 --> 00:04:13,140 може да се дестилира в тези три съставки. 95 00:04:13,140 --> 00:04:14,450 Така че това, което мога да кажа от входа? 96 00:04:14,450 --> 00:04:17,060 Входове е точно това, което сте подаде, за да се реши. 97 00:04:17,060 --> 00:04:20,052 >> Например, ето старото училище проблем. 98 00:04:20,052 --> 00:04:22,760 Ако имам телефонен указател тук и Искам да гледам нещо в нея, 99 00:04:22,760 --> 00:04:23,760 това е моят принос. 100 00:04:23,760 --> 00:04:26,260 Аз имам 1000 или така страници в телефонния указател. 101 00:04:26,260 --> 00:04:27,780 Това е входът към моя проблем. 102 00:04:27,780 --> 00:04:31,507 И аз искам да се намери нещо като Майк Смит, така приятел 103 00:04:31,507 --> 00:04:33,840 чието име и номер е надявам се в тази адресна книга. 104 00:04:33,840 --> 00:04:36,430 >> Това е преди дните на клетка телефони, така че не може просто да го търсят. 105 00:04:36,430 --> 00:04:38,540 Така че аз трябва да го направя стари училище и действително търсене 106 00:04:38,540 --> 00:04:41,331 тези входове за някакъв отговор. 107 00:04:41,331 --> 00:04:43,580 И този отговор е просто ще да се нарича изхода. 108 00:04:43,580 --> 00:04:44,871 Така че входът е в телефонния указател. 109 00:04:44,871 --> 00:04:47,787 Алгоритъмът е каквото и набор от стъпки да използвам, за да намерите Майк Смит. 110 00:04:47,787 --> 00:04:50,120 И изходът е, да се надяваме, телефонен номер Майк Смит. 111 00:04:50,120 --> 00:04:52,703 И това след това ще бъде просто представител на най-никакъв проблем 112 00:04:52,703 --> 00:04:55,210 да с вас се предават входове и искат да произвеждат продукция. 113 00:04:55,210 --> 00:04:59,459 >> Така че, преди да помисли за процеса от които можем да решим този проблем, 114 00:04:59,459 --> 00:05:01,250 намиране на Майк Смит и нещо такова, 115 00:05:01,250 --> 00:05:04,090 нека разгледаме първата и на last-- входове и изходи. 116 00:05:04,090 --> 00:05:08,060 Физически, разбира се, на входа тук е цял куп хартия слепени 117 00:05:08,060 --> 00:05:09,400 под формата на телефонен указател. 118 00:05:09,400 --> 00:05:13,660 Но компютри, на course-- лаптопи и настолни компютри и дори телефони 119 00:05:13,660 --> 00:05:16,430 тези days-- това са електронни устройства. 120 00:05:16,430 --> 00:05:20,920 >> И в края на деня, това, което е единственият вход към компютър? 121 00:05:20,920 --> 00:05:23,299 Е, това е нещо като този захранващ кабел тук. 122 00:05:23,299 --> 00:05:25,590 Аз го включете в стената, и Получавам поток от електрони, 123 00:05:25,590 --> 00:05:27,048 което ми позволява да стартирате машината. 124 00:05:27,048 --> 00:05:30,420 Или може би тези електрони са създаден по силата на моята батерия. 125 00:05:30,420 --> 00:05:33,790 Но в края на деня, това е единственото нещо, което става в моя лаптоп. 126 00:05:33,790 --> 00:05:35,772 И толкова много интересно неща е в крайна сметка 127 00:05:35,772 --> 00:05:37,480 излиза, дали по пътя на принтера 128 00:05:37,480 --> 00:05:40,320 или на екрана или audially или други подобни. 129 00:05:40,320 --> 00:05:45,320 >> Така че, ако всичко, което имаме като наш основен принос към компютър 130 00:05:45,320 --> 00:05:49,160 ток, така че просто електрони вървят в и или навън, 131 00:05:49,160 --> 00:05:54,465 и така, как можем да използваме този вход да всъщност представляват информация? 132 00:05:54,465 --> 00:05:57,090 С други думи, как да стигнем от прост поток електроенергия 133 00:05:57,090 --> 00:06:00,350 да, представляващ действителните номера или действителни писма 134 00:06:00,350 --> 00:06:03,620 или действителни изображения на екрана или действителни филми или имейли 135 00:06:03,620 --> 00:06:05,690 или произволен брой от тях концепции-високо ниво, 136 00:06:05,690 --> 00:06:07,680 ако щете, че в край на деня по някакъв начин 137 00:06:07,680 --> 00:06:11,950 трябва да се съхраняват в този Електронната механично устройство 138 00:06:11,950 --> 00:06:16,260 използвайки само тези, които просто ingredients-- електрони, идващи в и извън? 139 00:06:16,260 --> 00:06:19,530 >> Така изглежда, че, в най-простата форма, 140 00:06:19,530 --> 00:06:23,260 единственият вид на състояния Имам в моя свят, така че 141 00:06:23,260 --> 00:06:25,350 да speak-- условия в моя world-- е било 142 00:06:25,350 --> 00:06:33,020 Имам електрони, вливащи, ток тече, или правя not-- така нататък, на разстояние. 143 00:06:33,020 --> 00:06:35,850 И нека да се формализира и изключване, като компютърен учен мощ, 144 00:06:35,850 --> 00:06:37,255 само с 1 и 0. 145 00:06:37,255 --> 00:06:39,880 Нека просто да опиша някои произволно но последователен номер, за да го. 146 00:06:39,880 --> 00:06:41,970 1 означава върху, 0 означава изключване. 147 00:06:41,970 --> 00:06:45,427 Или може би също разглеждаме това като истинските средства за и фалшиви средства. 148 00:06:45,427 --> 00:06:47,510 Вие също може да се направи черен и бяло или червено и синьо. 149 00:06:47,510 --> 00:06:48,759 Ти просто трябва две описания. 150 00:06:48,759 --> 00:06:52,240 И компютър учени би обикновено просто използвайте 0 и 1. 151 00:06:52,240 --> 00:06:58,980 >> Така че, ако това е така, ми само азбука състояща се от 0 и 1 е, как 152 00:06:58,980 --> 00:07:03,360 бих могъл да стигне до изравняване на броя 2 в компютъра си, да не говорим за номер 3 153 00:07:03,360 --> 00:07:06,140 или буква от азбуката или изображение или филм? 154 00:07:06,140 --> 00:07:08,910 Как ние някак работят поетапно себе си от този основен принцип 155 00:07:08,910 --> 00:07:12,080 0 и 1 и действително представляват нещо по-интересно? 156 00:07:12,080 --> 00:07:14,430 >> Е, нека да поставим този въпрос задържана само за миг 157 00:07:14,430 --> 00:07:17,520 и помисли за нещо надяваме запознати, 158 00:07:17,520 --> 00:07:21,150 дори ако не сте наистина мислех за то във всеки детайл, за 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 повече години. 160 00:07:22,520 --> 00:07:24,780 Това е, което? 161 00:07:24,780 --> 00:07:28,050 Как бихте се произнесе, че? 162 00:07:28,050 --> 00:07:30,770 Не е подвеждащ въпрос. 163 00:07:30,770 --> 00:07:32,950 Редица, но какво е това? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3, или 123. 165 00:07:34,842 --> 00:07:37,800 И ми хареса как се казва 1, 2, 3, защото това е един от начините за това гледане. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, това е последователност от три символа. 167 00:07:39,870 --> 00:07:42,005 Това е снимки, които ние Сега имаме думи за. 168 00:07:42,005 --> 00:07:44,880 И ако нещо ги чете заедно, типична човешка на английски език 169 00:07:44,880 --> 00:07:46,600 бих казал, 123. 170 00:07:46,600 --> 00:07:48,350 И това е нещо като по-висока концепция ниво, 171 00:07:48,350 --> 00:07:50,340 чувства като разумно голям брой. 172 00:07:50,340 --> 00:07:51,490 >> Но как се стигна до там? 173 00:07:51,490 --> 00:07:54,640 Е, това да мине известно време, тъй като сте мислил за това по този начин, 174 00:07:54,640 --> 00:07:56,680 Но да се върнем в моя ден, I вид научил това 175 00:07:56,680 --> 00:08:01,030 като колона за 1-те, 10-те си колона, и на 100 години колона. 176 00:08:01,030 --> 00:08:06,400 Така че, както казва Lakisa, че е 1, 2, 3, но тя също е 123. 177 00:08:06,400 --> 00:08:08,700 Но как да се получи от първата до последната? 178 00:08:08,700 --> 00:08:12,340 >> Е, вие обикновено ще направи в колона от 100 години, имам 1. 179 00:08:12,340 --> 00:08:14,794 Така че това е като да кажеш 100 пъти 1. 180 00:08:14,794 --> 00:08:16,210 И след това в колона 10, аз имам 2. 181 00:08:16,210 --> 00:08:18,464 Така че това е като да кажеш, 10 пъти по 2. 182 00:08:18,464 --> 00:08:19,630 В колона на 1 е, имам 3. 183 00:08:19,630 --> 00:08:21,720 Така че това е като да кажеш, 1 пъти 3. 184 00:08:21,720 --> 00:08:24,290 >> И ако добавите тези неща заедно, това, разбира се, 185 00:08:24,290 --> 00:08:27,470 е 100 плюс 10 плюс 3. 186 00:08:27,470 --> 00:08:31,750 И, о, това е защо аз се получи това по-високо ниво понятие от 123. 187 00:08:31,750 --> 00:08:37,220 Това е просто основна математика, при което те символи имат тежести за тях, ако 188 00:08:37,220 --> 00:08:39,620 ще, Заместител или стойности на колони. 189 00:08:39,620 --> 00:08:42,090 И след като съм се размножават всичко навън, да получа този номер. 190 00:08:42,090 --> 00:08:47,840 >> Така че колко от вас знаят как да говорят binary-- 0 и 1's-- като компютър? 191 00:08:47,840 --> 00:08:50,410 ОК, перфектен, никой, или никой от вас не мисля, че правя. 192 00:08:50,410 --> 00:08:52,550 Но аз ще ви претендира всъщност, че това вече. 193 00:08:52,550 --> 00:08:55,330 Ние просто трябва да се подреди на ощипване нашия мисловен модел малко. 194 00:08:55,330 --> 00:08:57,250 Процесът обаче е точно същото. 195 00:08:57,250 --> 00:09:01,460 >> Нека оставим това там горе и вместо дръпнете това надолу за миг. 196 00:09:01,460 --> 00:09:05,060 В света на компютрите, имаме само 0 и 1 в. 197 00:09:05,060 --> 00:09:07,240 И така, това, което е няма да се промени е това, което? 198 00:09:07,240 --> 00:09:10,920 Е, в моя човешки свят, в десетична система, декември смисъл 10, 199 00:09:10,920 --> 00:09:12,740 Имам колко цифри на мое разположение? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, нали? 202 00:09:16,540 --> 00:09:17,880 От 0 до 9, разбира се. 203 00:09:17,880 --> 00:09:21,210 >> И затова ние имаме 10 на място и на 100 години място. 204 00:09:21,210 --> 00:09:22,380 Къде е, че идва от? 205 00:09:22,380 --> 00:09:24,430 Е, това е 10 на степен 0. 206 00:09:24,430 --> 00:09:28,440 Това е 10 на степен 1, 10 на силата на 2, и така нататък. 207 00:09:28,440 --> 00:09:32,110 Можете просто да се умножи вашите колони от 10, като се започне с просто 1 208 00:09:32,110 --> 00:09:33,700 в най-дясната този тук. 209 00:09:33,700 --> 00:09:35,490 >> Така че в света на компютри, ако само 210 00:09:35,490 --> 00:09:39,600 Трябва binary-- двупосочно значение 2-- или 0 и 1, ние просто 211 00:09:39,600 --> 00:09:42,420 Наистина трябва да се промени на базата на които математиката. 212 00:09:42,420 --> 00:09:46,410 Така че, с други думи, сега просто ще има колона за 1 и the-- 213 00:09:46,410 --> 00:09:51,270 къде е този going-- колона на 2-те години, колона на 4, а може би и отвъд. 214 00:09:51,270 --> 00:09:52,250 Защо така? 215 00:09:52,250 --> 00:09:55,650 Е, това е 2 на 0-ия властта. 216 00:09:55,650 --> 00:09:57,270 Това е 2 на 1. 217 00:09:57,270 --> 00:09:59,610 Това е 2 до 2 и така нататък. 218 00:09:59,610 --> 00:10:04,910 >> Така че тук, имаме 1, 10-те години, 100-те, 1000-те години, 10000 100000, на 1 219 00:10:04,910 --> 00:10:10,560 милиони, и така нататък, тук имаме 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Можете просто да се умножи по 2, вместо да се запази умножи по 10. 221 00:10:13,950 --> 00:10:16,780 Така че сега, ако целта на ръка е да представлява 222 00:10:16,780 --> 00:10:20,240 номера, използвайки само 0 и 1-те години, нека да разгледаме как да стигнем дотам. 223 00:10:20,240 --> 00:10:26,540 >> Това, разбира се, е модел 0 0 0, но това, което редица концептуално 224 00:10:26,540 --> 00:10:27,490 представлява тя? 225 00:10:27,490 --> 00:10:35,430 Е, 4 пъти 0 плюс 2 пъти 0 плюс 1 пъти 0, нека добавим онези заедно. 226 00:10:35,430 --> 00:10:40,030 4 пъти 0 е, разбира се, 0, плюс 2 0 пъти е, разбира се, 0 плюс 1 пъти 0 227 00:10:40,030 --> 00:10:40,850 е, разбира се, 0. 228 00:10:40,850 --> 00:10:44,910 Така ах, това представлява Номер ние, хората знаят, като 0. 229 00:10:44,910 --> 00:10:47,810 >> Е, сега, нека много бързо превъртане напред. 230 00:10:47,810 --> 00:10:53,600 Ако вместо това не съм представляващи 0 0 0, но нека да направим 1 0 1, 231 00:10:53,600 --> 00:10:57,010 че може да бъде как Lakisa, по-рано, просто ще го 1 0 1 произнася. 232 00:10:57,010 --> 00:11:01,020 Но сега, как ще го отведе до по-висока изравни броя ние, хората, за да знаят? 233 00:11:01,020 --> 00:11:04,220 И така, какво е този номер? 234 00:11:04,220 --> 00:11:06,060 Това е 5, броят знаем като 5. 235 00:11:06,060 --> 00:11:06,870 >> Е, защо е това? 236 00:11:06,870 --> 00:11:09,620 Е, ние можем наистина нещо минеш през нея методично 237 00:11:09,620 --> 00:11:14,880 4 пъти по 1, 0 2 пъти, 1 пъти 1. 238 00:11:14,880 --> 00:11:19,880 Добавете тези заедно, така че това е 4 плюс 0 плюс 1. 239 00:11:19,880 --> 00:11:21,577 И това е, наистина, 5. 240 00:11:21,577 --> 00:11:24,660 Така че е по-малко досаден сега правене на аритметиката отново и отново. 241 00:11:24,660 --> 00:11:26,300 Процесът обаче е точно същото. 242 00:11:26,300 --> 00:11:28,380 >> Единственото нещо, което има променена в нашия свят 243 00:11:28,380 --> 00:11:32,740 е, че нашите колони са 1, 2, 4, 8, 16, и т.н., вместо на 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1,000. 245 00:11:33,740 --> 00:11:40,000 И това е само защото нашата азбука има свива от 0 до 9 само 0-1. 246 00:11:40,000 --> 00:11:50,851 >> Така че като малък тест тук, как ще Вие сте представител на числото 7 в двоичен? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Е, 0, значи 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Кажи го отново, Карина. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Perfect. 253 00:12:03,550 --> 00:12:04,370 Защо така? 254 00:12:04,370 --> 00:12:08,530 Това е ефективно 4 плюс 2 плюс 1. 255 00:12:08,530 --> 00:12:09,580 Толкова добър. 256 00:12:09,580 --> 00:12:14,364 >> Как да представляват малко another-- как за номер 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Затвори, но назад. 259 00:12:20,690 --> 00:12:21,660 И така, какво е това? 260 00:12:21,660 --> 00:12:26,290 Има 4 плюс 1, така че това е 5 отново. 261 00:12:26,290 --> 00:12:28,310 >> Така what's-- Съжалявам, Карина? 262 00:12:28,310 --> 00:12:29,220 0 1 0. 263 00:12:29,220 --> 00:12:34,762 0 1 0 ще бъде 2, защото отново, дори ако нещо не се хвърли върху вас, 264 00:12:34,762 --> 00:12:35,470 просто направи по математика. 265 00:12:35,470 --> 00:12:40,390 4 0, 0, 2 пъти 1 е 2, 1 0 е 0. 266 00:12:40,390 --> 00:12:42,830 Така че това е броят знаем като 2. 267 00:12:42,830 --> 00:12:44,030 >> Какво ще кажете за броя 8? 268 00:12:44,030 --> 00:12:51,240 269 00:12:51,240 --> 00:12:52,730 Хм? 270 00:12:52,730 --> 00:12:53,330 Добър. 271 00:12:53,330 --> 00:12:56,130 Така че ние вид трябва друг контейнер. 272 00:12:56,130 --> 00:12:59,570 Ние се нуждаем 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 И това е вярно на нашия сортиране на стария десетичната училищна система. 274 00:13:02,280 --> 00:13:05,280 Как да ви представлява броят 1000? 275 00:13:05,280 --> 00:13:08,480 >> Е, изглежда, че е вид в трудно положение, 276 00:13:08,480 --> 00:13:10,390 ако ви помоля да представляват броя 1000, 277 00:13:10,390 --> 00:13:14,960 защото дори и да се даде като 9 от тях, 9 от тях 0 на тези, 278 00:13:14,960 --> 00:13:18,730 който е най-големият брой ви има, не сте съвсем стигнем до 1,000. 279 00:13:18,730 --> 00:13:26,920 Така че, ако 1000, просто трябва друг позиция, така че можете да направите 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 Ergo броя 1,000. 281 00:13:29,460 --> 00:13:34,200 >> Така че сега, нека картата този вид концептуална дискусия обратно към хардуер, 282 00:13:34,200 --> 00:13:37,470 където отново, входът е само този малък захранващ кабел, ток 283 00:13:37,470 --> 00:13:39,300 подадена и изтичащи. 284 00:13:39,300 --> 00:13:44,740 И така, за които да бъдат картирани от тук да има, добре, какво наистина се нуждаем? 285 00:13:44,740 --> 00:13:49,460 Е, може да се мисли, че е вътре в компютър, цял куп електрически крушки, 286 00:13:49,460 --> 00:13:50,450 ако обичаш. 287 00:13:50,450 --> 00:13:52,040 Те са наистина нарича транзистори. 288 00:13:52,040 --> 00:13:55,121 И транзистори са само превключва че може да бъде или включен или изключен. 289 00:13:55,121 --> 00:13:56,870 Така че може да се мисли за транзистор, който е на 290 00:13:56,870 --> 00:14:00,730 се позволява ток да тече и транзистор, че е изключен като спиране 291 00:14:00,730 --> 00:14:02,170 ток от течаща. 292 00:14:02,170 --> 00:14:04,130 И вместо да вземат над светлините тук, 293 00:14:04,130 --> 00:14:06,450 защо не правя този вид на нов стил на училище. 294 00:14:06,450 --> 00:14:11,360 Така че това може да бъде 1, фенерче е включен, само едва пак. 295 00:14:11,360 --> 00:14:14,050 И това може да е 0, а сега е изключен. 296 00:14:14,050 --> 00:14:18,277 >> Така че използването на този физическо устройство, I Сега може да представлява двоична система. 297 00:14:18,277 --> 00:14:19,235 Трябва ми само две състояния. 298 00:14:19,235 --> 00:14:21,660 Няма значение какво цвят е или какво е то. 299 00:14:21,660 --> 00:14:25,920 Всичко, което има значение е, че имам едно състояние на и друга държава, на разстояние. 300 00:14:25,920 --> 00:14:30,605 Така че използването на телефона ми тук, как да направя представлява броят знаем като 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 Или казано по еднакъв, какво номер съм представляващи сега? 303 00:14:38,550 --> 00:14:39,810 0, защото устройството е изключено. 304 00:14:39,810 --> 00:14:41,560 >> И ако го направя това? 305 00:14:41,560 --> 00:14:43,583 И сега, как да направя представлява броят 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Мога ли да взема назаем телефона си Тук, както направихме вчера? 308 00:14:50,930 --> 00:14:58,490 Така че нека да видим, така че, ако искате да представлява номер 2, е този номер 2? 309 00:14:58,490 --> 00:14:59,050 Не. 310 00:14:59,050 --> 00:15:02,250 Какво номер съм аз случайно представляващи тук? 311 00:15:02,250 --> 00:15:03,550 Това е всъщност броят 3. 312 00:15:03,550 --> 00:15:05,008 >> Така че кой искам да се изключи? 313 00:15:05,008 --> 00:15:09,634 Черният телефона or-- добре, ако they're-- черен телефон или на бял телефона? 314 00:15:09,634 --> 00:15:10,300 Белият телефона. 315 00:15:10,300 --> 00:15:17,020 Така че, ако изключите тази функция и ние Онлайн то до тук, ние имаме 1 316 00:15:17,020 --> 00:15:19,487 в 2-на място и 0 в място на 1 е. 317 00:15:19,487 --> 00:15:21,195 И така, аз съм сега представляващо броя 2. 318 00:15:21,195 --> 00:15:24,680 Това, разбира се, ще бъде броя 3, защото сега и двете от тези светлини 319 00:15:24,680 --> 00:15:25,350 са включени. 320 00:15:25,350 --> 00:15:27,480 >> И аз ще спра дотук, но очевидно е, 321 00:15:27,480 --> 00:15:31,100 ако искам да представлява номер 4 или 8 или по-висока, 322 00:15:31,100 --> 00:15:32,529 Отивам да се нуждаят от повече телефони. 323 00:15:32,529 --> 00:15:33,820 Но това е всичко, което се случва. 324 00:15:33,820 --> 00:15:37,800 Така че, ако някога сте чували, че вътре на A-- благодаря you-- компютър 325 00:15:37,800 --> 00:15:42,269 е милиони транзистори, че е само на милиони мънички ключове. 326 00:15:42,269 --> 00:15:44,310 И те не са светлина крушки, които се включват и изключват, 327 00:15:44,310 --> 00:15:48,340 но те или да позволява на електроенергия да тече някъде или да го спре. 328 00:15:48,340 --> 00:15:52,140 И така, има си две states-- или изключване, включване или изключване. 329 00:15:52,140 --> 00:15:55,730 >> Така че ние ще изглежда сега да имат тази способност 330 00:15:55,730 --> 00:16:00,590 да представлява тази концепция, която ние бихме искали в действителната хардуер. 331 00:16:00,590 --> 00:16:05,520 Но всички ние имаме сега, е способността да представлява номера Тя ще изглежда. 332 00:16:05,520 --> 00:16:08,580 И как ще стане, представляваща букви от азбуката, които 333 00:16:08,580 --> 00:16:12,310 се чувства като на следващия вид на функция, ще искате да добавите към една модерна компютърна 334 00:16:12,310 --> 00:16:14,280 след като имате номера? 335 00:16:14,280 --> 00:16:16,930 >> И наистина, ако мислите, че за IT, Исторически, компютри 336 00:16:16,930 --> 00:16:19,426 бяха въведени наистина да служат като калкулатори числено. 337 00:16:19,426 --> 00:16:21,300 Но, разбира се, тези дни, те правят много повече. 338 00:16:21,300 --> 00:16:23,799 Дори когато те се стартират, вие обикновено видите една или повече думи. 339 00:16:23,799 --> 00:16:27,420 Е, как да представляват думи, ако всичко, което трябва, е, отново, 340 00:16:27,420 --> 00:16:31,054 електроенергия в края на ден, или еквивалентно 0 и 1 е? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Да. 343 00:16:35,690 --> 00:16:38,320 Да, искам да кажа, ние вид направил това вчера в някаква форма, 344 00:16:38,320 --> 00:16:40,200 когато в един момент, Мисля, че произволно 345 00:16:40,200 --> 00:16:46,741 каза, че, ако искаме да представлява буква А, бихме могли просто да се обадя, че 1. 346 00:16:46,741 --> 00:16:49,990 Това е в контекста на криптография, където ние просто е необходимо някакво код, 347 00:16:49,990 --> 00:16:51,160 някакъв вид картиране. 348 00:16:51,160 --> 00:16:56,680 >> Така че може би ще бъде представен като 1, и В ще бъде представена като 2, 349 00:16:56,680 --> 00:17:01,560 и Z ще бъде представен като 26, например. 350 00:17:01,560 --> 00:17:07,430 И тогава Единственото предупреждение е, че ако аз съм Ще се кодират буквите в моите имейли 351 00:17:07,430 --> 00:17:10,430 или в моите текстови съобщения като номера, вие всички 352 00:17:10,430 --> 00:17:12,640 Трябва да се съглася за употреба същия набор от конвенции. 353 00:17:12,640 --> 00:17:14,619 И наистина, в света е направил точно това. 354 00:17:14,619 --> 00:17:18,040 >> Има система в света нарича ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Код за информационен обмен, което е просто решение няколко години 356 00:17:21,640 --> 00:17:25,720 Преди това хората правят, че реши, че ще е равно, не 357 00:17:25,720 --> 00:17:32,260 1, 2 и 26, и така forth-- това е малко different-- но 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 И аз ще спра по- диаграма в един момент. 359 00:17:34,010 --> 00:17:34,580 Но това е произволно. 360 00:17:34,580 --> 00:17:36,329 Но това няма значение че това е произволно. 361 00:17:36,329 --> 00:17:38,620 Светът трябва да е просто последователен. 362 00:17:38,620 --> 00:17:40,540 >> Сега, по-скоро, има нещо по-красиви 363 00:17:40,540 --> 00:17:45,430 наречен Unicode, защото вид в света на реализирани, след изобретяването на компютри, 364 00:17:45,430 --> 00:17:50,977 че там е повече от добре 256 символи в света 365 00:17:50,977 --> 00:17:53,560 че ние може да искате да представлява, особено когато се въведе 366 00:17:53,560 --> 00:17:58,420 Азиатски езици и други symbologies че се нуждаят от повече изразителност, отколкото си 367 00:17:58,420 --> 00:18:02,150 може да се побере в най-ранната версия на този код, който се нарича ASCII. 368 00:18:02,150 --> 00:18:05,250 Така Unicode всъщност позволява можете да използвате повече 0 и 2. 369 00:18:05,250 --> 00:18:08,830 По-специално, да поддържате изслуша Думата байта в обществото и дори само на 370 00:18:08,830 --> 00:18:09,400 вчера. 371 00:18:09,400 --> 00:18:12,040 И един байт е това, което отново? 372 00:18:12,040 --> 00:18:14,840 >> Какво е един байт? 373 00:18:14,840 --> 00:18:15,700 Това е само на 8 бита. 374 00:18:15,700 --> 00:18:17,150 Е, какво значи това наистина означава? 375 00:18:17,150 --> 00:18:22,400 Е, това означава, по-рано, когато бяхме говорим за двоичен и бях с 376 00:18:22,400 --> 00:18:28,010 произволно три бита, когато сме били говорим за binary-- място на 1 е, 377 00:18:28,010 --> 00:18:33,600 на 2 на място, а 4-те place-- добре, байт просто означава, че вие ​​говорите 378 00:18:33,600 --> 00:18:38,730 не в единици от по три, но четири, пет, шест, седем и осем, 379 00:18:38,730 --> 00:18:46,910 което ни дава 8 на място, 16-те, 32-те, 64, а 128 години. 380 00:18:46,910 --> 00:18:50,010 >> С други думи, по-малко не е всичко че полезна единица мярка, 381 00:18:50,010 --> 00:18:53,132 защото това е точно като един мъничък част от информацията, включена или изключена. 382 00:18:53,132 --> 00:18:54,840 Така че преди няколко години, света просто реши 383 00:18:54,840 --> 00:18:59,060 това е малко по-удобно да се говори в от гледна точка на байта, осем неща едновременно. 384 00:18:59,060 --> 00:19:01,670 И така, по този начин се е родил представата за един байт. 385 00:19:01,670 --> 00:19:03,640 И така, ние имаме осем бита тук. 386 00:19:03,640 --> 00:19:06,810 >> И се оказва, също за подобен причини света решават години 387 00:19:06,810 --> 00:19:12,439 Преди това да представлява писмо ASCII, започваш да се използват единици от 8 бита. 388 00:19:12,439 --> 00:19:14,230 Така че дори и да не правим нужда, че много, ти си 389 00:19:14,230 --> 00:19:18,130 Винаги ще се използва 8 бита за представляват буква от азбуката. 390 00:19:18,130 --> 00:19:20,950 И това е удобно, защото след това, ако 391 00:19:20,950 --> 00:19:28,720 получите съобщение, че има 0 0 0 1 1 1 1 0, последвано от още 1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1, така че ако получите 16 бита, светът може просто 393 00:19:33,320 --> 00:19:37,460 предположи, че първите 8 са едно писмо и втората 8 са още едно писмо. 394 00:19:37,460 --> 00:19:39,240 >> Няма значение колко са. 395 00:19:39,240 --> 00:19:41,460 Тя просто има значение, че всички сме последователна 396 00:19:41,460 --> 00:19:42,950 когато сме тълкуването на тези битове. 397 00:19:42,950 --> 00:19:44,377 И това е само случайна. 398 00:19:44,377 --> 00:19:47,210 Това означава, че нещо, но не го направих наистина мисля за това какво означава това. 399 00:19:47,210 --> 00:19:49,620 >> Така че това е една малка бяла лъжа. 400 00:19:49,620 --> 00:19:51,990 Първоначално, ASCII в действителност се използва само 7 бита. 401 00:19:51,990 --> 00:19:54,180 И на осмия бит е наречената разширена ASCII. 402 00:19:54,180 --> 00:19:56,290 Но точка е в крайна сметка същото. 403 00:19:56,290 --> 00:19:58,850 Светът като цяло стандартизиран по 8 бита. 404 00:19:58,850 --> 00:20:04,290 >> Така че това би било да бъде малко по- ограничаване, защото само аз мога да 405 00:20:04,290 --> 00:20:07,970 представляват капитал A, капитал B чрез капитал Z. 406 00:20:07,970 --> 00:20:10,940 Но наистина не, ако аз отида to-- има един куп ресурси 407 00:20:10,940 --> 00:20:13,695 онлайн, например, asciitable.com, този 408 00:20:13,695 --> 00:20:16,310 ще бъде по-малко поразителен на първо време. 409 00:20:16,310 --> 00:20:18,910 Но аз ще посоча това, което е важно тук. 410 00:20:18,910 --> 00:20:24,090 >> Това просто се случва да be-- и аз ще walk-- нека да видим, ако отида тук. 411 00:20:24,090 --> 00:20:27,990 Ето, в десетичната колона, 65 броя. 412 00:20:27,990 --> 00:20:32,201 И на писмото дясната колона характер, Chr, е буквата А. 413 00:20:32,201 --> 00:20:34,450 И вие може да се игнорира, за сега, всичко в средата. 414 00:20:34,450 --> 00:20:36,769 Това е шестнадесетичен, осмична, и на HTML код. 415 00:20:36,769 --> 00:20:39,810 За този сайт просто се опитва да хвърли много информация при вас наведнъж. 416 00:20:39,810 --> 00:20:42,970 Но всички ние се грижим за е десетичната колона и колоната характер. 417 00:20:42,970 --> 00:20:46,190 >> Така че по тази логика, това, което е броят, че светът 418 00:20:46,190 --> 00:20:50,510 реши представлява малки букви а? 419 00:20:50,510 --> 00:20:52,230 Да, 97. 420 00:20:52,230 --> 00:20:55,850 И само за да обърка потенциално леко, 421 00:20:55,850 --> 00:21:03,715 какъв номер е решил света ще представлява числото 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Точно, защото we-- 49, изглежда, тук, предвидени в долния ляв ъгъл. 424 00:21:10,910 --> 00:21:12,320 >> Сега, това, което мога да кажа от това? 425 00:21:12,320 --> 00:21:14,830 Така се оказва, че в компютърните системи, 426 00:21:14,830 --> 00:21:16,840 там обикновено е фундаментална разлика 427 00:21:16,840 --> 00:21:19,920 между номер и символ. 428 00:21:19,920 --> 00:21:22,330 Редица е нещо, което ние Научих расте, когато 429 00:21:22,330 --> 00:21:23,830 ние бяхме супер млад в началното училище. 430 00:21:23,830 --> 00:21:25,110 Това е неща, които се броят с. 431 00:21:25,110 --> 00:21:30,220 Но герой е просто форма, а глиф, така да се каже, на екрана. 432 00:21:30,220 --> 00:21:36,200 >> Сега, ние, хората, някак виж нещо, което прилича това. 433 00:21:36,200 --> 00:21:39,060 И ние казваме, ох, че е номер 2. 434 00:21:39,060 --> 00:21:44,999 Но не, това е просто символ, който изглежда като това, което ние знаем като номер 2. 435 00:21:44,999 --> 00:21:46,790 И така, има тази фундаментална разлика 436 00:21:46,790 --> 00:21:50,340 между реалните числа и символи. 437 00:21:50,340 --> 00:21:52,130 Това е номер. 438 00:21:52,130 --> 00:21:54,420 Но обикновено, в контекст на компютър, 439 00:21:54,420 --> 00:21:56,809 ако вместо виж нещо като това quoted-- 440 00:21:56,809 --> 00:21:58,600 и вие не винаги трябва да се види, че цитира, 441 00:21:58,600 --> 00:22:01,474 но в името на discussion-- ако виждате кавички около броя, 442 00:22:01,474 --> 00:22:02,730 това вече е характер. 443 00:22:02,730 --> 00:22:06,330 Така че този номер 2 отдолу качулката вътрешността на компютъра 444 00:22:06,330 --> 00:22:12,220 ще бъдат представени с модел битове, които представляват броя 445 00:22:12,220 --> 00:22:14,850 50 според диаграмата онлайн. 446 00:22:14,850 --> 00:22:18,300 >> Въпреки това, ако един компютър просто вижда това, този 447 00:22:18,300 --> 00:22:24,580 ще бъде представена с модел на битова 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 Като има предвид, този герой би действително да бъде представен as-- и сега, 449 00:22:29,595 --> 00:22:34,710 Трябва да мислим малко harder-- така че това характер ще бъде представена с 0 450 00:22:34,710 --> 00:22:39,080 0 1-- какво трябва тук? 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 Как да направя това? 453 00:22:45,480 --> 00:22:49,580 Ами това е броят 50, ако тя се размножава, като се използват тези колони, 454 00:22:49,580 --> 00:22:53,530 това е номер 2, и така Ето защо съществува тази дихотомия. 455 00:22:53,530 --> 00:22:55,850 >> И това е само един закачка сега за функции 456 00:22:55,850 --> 00:22:59,710 че съществува в програмните езици че ние ще се докоснат на кратко по-късно днес. 457 00:22:59,710 --> 00:23:01,950 В езиците за програмиране, имате по принцип, 458 00:23:01,950 --> 00:23:04,495 но не винаги, нещата наричаме различни типове данни. 459 00:23:04,495 --> 00:23:06,870 С други думи, по-programmer-- когато той или тя е писмено, 460 00:23:06,870 --> 00:23:11,150 програмист получава да реши в каква формат за съхраняване на неговите данни. 461 00:23:11,150 --> 00:23:14,120 Можете или съхранение на данни като суровите цифри, като броят 2. 462 00:23:14,120 --> 00:23:17,940 Или можете да ги съхранявате като струни, или последователност от символи 463 00:23:17,940 --> 00:23:21,550 че вие ​​обикновено ще изразят с котировки във вашия език за програмиране. 464 00:23:21,550 --> 00:23:25,230 >> Можете да имате неща called-- Ще свръхопростяването и ги наричаме 465 00:23:25,230 --> 00:23:28,870 недвижими numbers-- така номера, които не са цели числа, като номер 2, 466 00:23:28,870 --> 00:23:31,310 но номера искали 4.56. 467 00:23:31,310 --> 00:23:33,490 Така че реалните числа могат също имат знака след десетичната запетая, 468 00:23:33,490 --> 00:23:36,340 така че това е различно от основно значение част от данните в компютър. 469 00:23:36,340 --> 00:23:41,920 И тогава дори може да има други типове данни на едно място. 470 00:23:41,920 --> 00:23:45,810 Така че това е просто една закачка наистина на най-простият от дизайнерски решения 471 00:23:45,810 --> 00:23:50,960 че един програмист мощ направи под предния капак. 472 00:23:50,960 --> 00:23:52,925 >> Така че някакви въпроси, просто все още? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 Така че нека да се опитаме да направим това е малко по-реално. 475 00:23:59,860 --> 00:24:02,120 Този хардуер не е толкова много в употреба вече. 476 00:24:02,120 --> 00:24:07,420 Но повечето хора в тази стая, вероятно Израснах с и все още използва твърди дискове 477 00:24:07,420 --> 00:24:08,010 по някакъв начин. 478 00:24:08,010 --> 00:24:10,100 >> Въпреки че повечето от вече нашите лаптопи не 479 00:24:10,100 --> 00:24:15,900 има устройства, които работят по този начин, вместо лаптопи днес като цяло 480 00:24:15,900 --> 00:24:18,590 имат твърди дискове без движещи се части. 481 00:24:18,590 --> 00:24:22,840 Това обикновено е по-скъпо, за съжаление, но малко по-бързо 482 00:24:22,840 --> 00:24:27,230 и A-- добре, често, много по-бързо, което е една от причините. 483 00:24:27,230 --> 00:24:28,980 И също така не го прави генерира най-много топлина. 484 00:24:28,980 --> 00:24:31,680 Тя може да бъде по-малък, така че е общо нетно положително. 485 00:24:31,680 --> 00:24:35,030 >> Но това ни позволява да присвоите малко по-конкретно какво 486 00:24:35,030 --> 00:24:38,460 ние не говорим за най-0-те и 1 на ниво сега да физическо устройство. 487 00:24:38,460 --> 00:24:40,810 Това е едно нещо за мен да се говори около 0 и 1 от гледна точка 488 00:24:40,810 --> 00:24:43,990 на моя телефон или абстрактно по отношение на ключове са и изключване. 489 00:24:43,990 --> 00:24:45,340 Но какво да кажем за твърди дискове? 490 00:24:45,340 --> 00:24:48,495 В своите лаптопи, ако имате по-стара един, или в настолния си компютър, 491 00:24:48,495 --> 00:24:51,200 или сигурност в сървъри днес, където ще трябва 492 00:24:51,200 --> 00:24:53,070 твърди дискове, които имат един терабайт пространство, 493 00:24:53,070 --> 00:24:55,560 4 терабайта пространство, добре какво означава това? 494 00:24:55,560 --> 00:24:59,560 >> А твърд диск с 1 терабайт на космически средства 495 00:24:59,560 --> 00:25:03,890 Има 1 трилион байта вътре в него по някакъв начин, 496 00:25:03,890 --> 00:25:10,450 или еквивалентно 8 трилиона бита вътре. 497 00:25:10,450 --> 00:25:16,240 1 терабайт ще бъде 8 терабита или 1 трилион бита, които 498 00:25:16,240 --> 00:25:19,330 означава, че ако имате твърд с кола, трябва по някакъв начин 499 00:25:19,330 --> 00:25:22,400 или други трилион 0 на и 1 е вътре в него. 500 00:25:22,400 --> 00:25:25,360 И ако ние просто да разгледаме един произволна снимка на твърдия диск 501 00:25:25,360 --> 00:25:30,110 представител, това е, което е трудно диск може обикновено изглежда като вътре. 502 00:25:30,110 --> 00:25:32,600 >> Това също е нещо като един стар грамофон играч 503 00:25:32,600 --> 00:25:35,350 но като цяло с множество записи вътре, така 504 00:25:35,350 --> 00:25:38,270 да speak-- множествена плата, както ги наричат, 505 00:25:38,270 --> 00:25:42,259 метални кръгли дискове, и След малко главата четене, 506 00:25:42,259 --> 00:25:43,550 много прилича на един стар грамофон. 507 00:25:43,550 --> 00:25:46,589 И че главата четене движи напред и назад и някак си чете битовете. 508 00:25:46,589 --> 00:25:49,380 И това, което е на тези плочи, дори Въпреки, че ние, хората, не могат да ги видят, 509 00:25:49,380 --> 00:25:52,757 или в реалността или в тази картина, Има мънички магнитни частици. 510 00:25:52,757 --> 00:25:55,090 И дори ако сте дълго забравил как работи електричество, 511 00:25:55,090 --> 00:25:57,550 магнитна частица който е обвинен като цяло 512 00:25:57,550 --> 00:26:00,570 има север край и на юг end-- толкова на север и на юг. 513 00:26:00,570 --> 00:26:03,000 И така, в света просто реши преди време 514 00:26:03,000 --> 00:26:06,570 че ако магнитна протокол същество е изравнен по този начин, север-юг, 515 00:26:06,570 --> 00:26:07,610 нека наречем, че 1. 516 00:26:07,610 --> 00:26:10,470 Ако това е вместо юг-север, нека просто се обади, че е 0. 517 00:26:10,470 --> 00:26:13,350 И така, ако имате най- ваше разположение един трилион 518 00:26:13,350 --> 00:26:16,300 мъничък магнитен particles-- и да се надяваме, 519 00:26:16,300 --> 00:26:18,740 изобретателността хардуер в За да се обърне на тези около 520 00:26:18,740 --> 00:26:24,450 както виждате fit--, ако искате да представляват един куп 0, вие 521 00:26:24,450 --> 00:26:28,120 Просто трябва 8 магнитни частици всички подравнени като този. 522 00:26:28,120 --> 00:26:30,330 А ако искате да представлява осем 1, можете просто 523 00:26:30,330 --> 00:26:33,170 нужда от 8 магнитни частици подравнени успоредно на резервно такова. 524 00:26:33,170 --> 00:26:35,515 >> Какво имам предвид от магнитни частици? 525 00:26:35,515 --> 00:26:38,390 Честно казано, всички тези години по-късно, на нещо, което все още ми идва на ум 526 00:26:38,390 --> 00:26:42,139 е този човек, ако Израснах с това нещо. 527 00:26:42,139 --> 00:26:43,930 Това е little-- за тези unfamiliar-- на 528 00:26:43,930 --> 00:26:47,810 малко детството играчка, че има това без козина човек тук 529 00:26:47,810 --> 00:26:51,690 че има всички тези малки малка черна магнитни частици, които идват с нея. 530 00:26:51,690 --> 00:26:53,930 И с помощта на които червената пръчка, който е само на магнит, 531 00:26:53,930 --> 00:26:58,460 ти нещо да му даде мустаци или веждите или косата или нищо за него. 532 00:26:58,460 --> 00:27:00,710 Така че в действителност, ако ние я увеличите в, например, този 533 00:27:00,710 --> 00:27:02,950 е вид игра може да играе с Wooly Willy. 534 00:27:02,950 --> 00:27:06,570 >> И това е само да се каже, те са много по-големи магнитни частици 535 00:27:06,570 --> 00:27:09,890 отколкото са в действителност на твърдия диск, и много по-малко магнитни частици. 536 00:27:09,890 --> 00:27:11,640 Но нека действително виж След това, ако е нужно 537 00:27:11,640 --> 00:27:14,720 малки магнитни частици в твърд диск, как всъщност можете да 538 00:27:14,720 --> 00:27:19,090 използвате тези за представяне на данните. 539 00:27:19,090 --> 00:27:20,070 >> [Възпроизвеждане на видео] 540 00:27:20,070 --> 00:27:24,190 >> -В Твърд диск е мястото, където вашето PC магазини повечето от неговите постоянни данни. 541 00:27:24,190 --> 00:27:27,170 За да направите това, данните, пътува от RAM заедно 542 00:27:27,170 --> 00:27:31,720 със софтуерни сигнали, които разказват за твърд диск за съхранение на тези данни. 543 00:27:31,720 --> 00:27:36,570 твърдия диск вериги превод на тези, сигнали в колебанията на напрежението. 544 00:27:36,570 --> 00:27:40,880 Това, на свой ред, управление на твърдия диск-те години преместване parts-- някои от най-малко движещи 545 00:27:40,880 --> 00:27:43,440 части, останали в съвременния компютър. 546 00:27:43,440 --> 00:27:47,650 >> Някои от контролни сигнали мотор, който се върти покрити с метал плата. 547 00:27:47,650 --> 00:27:50,980 Вашите данни са всъщност съхранявана на тези плочи. 548 00:27:50,980 --> 00:27:56,250 Други сигнали се движат четене / запис глави да се чете или записва данни на плата. 549 00:27:56,250 --> 00:28:00,100 Тази техника е толкова прецизно че човешки косъм дори не можеше да 550 00:28:00,100 --> 00:28:02,800 мине между главите и въртящ плата. 551 00:28:02,800 --> 00:28:04,887 И все пак, всичко това работи в страхотна скорост. 552 00:28:04,887 --> 00:28:05,470 [END PLAYBACK] 553 00:28:05,470 --> 00:28:06,780 И можете да видите в опашката края на видеото, 554 00:28:06,780 --> 00:28:08,340 като цяло има множество плата. 555 00:28:08,340 --> 00:28:10,250 И така, че главата да четеш не е просто четене на върха. 556 00:28:10,250 --> 00:28:12,458 Това е нещо като три или четири или повече четящи глави 557 00:28:12,458 --> 00:28:14,920 този ход като този, четене на данни едновременно. 558 00:28:14,920 --> 00:28:17,407 >> Така че има много сложност и сортиране на времето 559 00:28:17,407 --> 00:28:18,740 че е замесен в един твърд диск. 560 00:28:18,740 --> 00:28:21,920 И това нещо се върти наистина дяволски бързо, така че има много на сложност. 561 00:28:21,920 --> 00:28:25,220 Но нека да увеличите малко по-дълбоко и видим къде са тези магнитни частици 562 00:28:25,220 --> 00:28:27,370 и как се ставаме все по тях. 563 00:28:27,370 --> 00:28:28,750 >> [Възпроизвеждане на видео] 564 00:28:28,750 --> 00:28:31,830 >> поглед -Let е в това, което ние Току-що видях в забавен кадър. 565 00:28:31,830 --> 00:28:35,230 Когато един кратък импулс на ток се изпраща на главата за четене / запис, 566 00:28:35,230 --> 00:28:39,000 тя се обръща на една малка електромагнитна за част от секундата. 567 00:28:39,000 --> 00:28:41,390 Магнитът създава поле, което се променя 568 00:28:41,390 --> 00:28:44,600 полярността на една малка, малка част от металните частици 569 00:28:44,600 --> 00:28:46,960 които палто повърхност всяко блюдо се. 570 00:28:46,960 --> 00:28:50,020 A модел серия от тези малки таксувани области на диска 571 00:28:50,020 --> 00:28:54,590 представлява едно малко на данни в бройна система, използвана от компютри. 572 00:28:54,590 --> 00:28:57,510 >> Сега, ако токът е изпратен един път през главата за четене / запис, 573 00:28:57,510 --> 00:28:59,899 областта е поляризирана в една посока. 574 00:28:59,899 --> 00:29:01,940 Ако токът се изпраща в обратна посока, 575 00:29:01,940 --> 00:29:04,020 поляризацията е обърната. 576 00:29:04,020 --> 00:29:06,440 Как да получите данни от твърдия диск? 577 00:29:06,440 --> 00:29:08,190 Точно обратен процес. 578 00:29:08,190 --> 00:29:10,440 Така че това е частиците на диск, който получи на тока 579 00:29:10,440 --> 00:29:12,260 в главата за четене / запис на движещи се. 580 00:29:12,260 --> 00:29:14,580 Взети заедно милиони тези магнитни сегменти, 581 00:29:14,580 --> 00:29:16,220 и имаш файл. 582 00:29:16,220 --> 00:29:21,030 >> Сега, парчета от един файл могат да бъдат разпръснати по целия плата Пробив е, 583 00:29:21,030 --> 00:29:24,060 нещо като бъркотията на документи на бюрото си. 584 00:29:24,060 --> 00:29:27,590 Така специален допълнителен файл запазва следите, където всичко е. 585 00:29:27,590 --> 00:29:30,440 Да не ти се иска да имаше нещо такова? 586 00:29:30,440 --> 00:29:31,290 >> [END PLAYBACK] 587 00:29:31,290 --> 00:29:36,260 >> Така се намекна за там, може би, е че темата от вчера на заличаване. 588 00:29:36,260 --> 00:29:38,380 Когато изтриете файл, вчера казахме 589 00:29:38,380 --> 00:29:41,020 че един компютър всъщност прави какво, когато плъзнете нещо 590 00:29:41,020 --> 00:29:44,110 в кошчето или кошчето за боклук? 591 00:29:44,110 --> 00:29:45,150 Тя просто го забрави. 592 00:29:45,150 --> 00:29:47,540 Но за 0 и 1 е, магнитните частици 593 00:29:47,540 --> 00:29:50,640 които приличат на червено и синьо нещата тук или ръката ми тук, 594 00:29:50,640 --> 00:29:52,350 са все още там, на твърдия диск. 595 00:29:52,350 --> 00:29:56,090 >> И така, съществува software-- Norton Utilities и недалечното минало 596 00:29:56,090 --> 00:29:58,159 и други по-модерни software-- че просто 597 00:29:58,159 --> 00:30:01,200 ще сканира целия твърд диск търси при всички тези 0 и 1-те години, тъй като тя 598 00:30:01,200 --> 00:30:06,890 Оказва се, че най-файл формати-- Word документи, Excel файлове, изображения, 599 00:30:06,890 --> 00:30:10,380 видео files-- всички имат определена модели, които са често срещани сред тях. 600 00:30:10,380 --> 00:30:12,550 Всеки видео файл може да да бъде от различен видео, 601 00:30:12,550 --> 00:30:14,870 но първата няколкото бита обикновено са еднакви. 602 00:30:14,870 --> 00:30:16,790 Или последния няколко бита обикновено са еднакви. 603 00:30:16,790 --> 00:30:19,910 >> И така, с висока степен на вероятност, можете да погледнете за тези модели. 604 00:30:19,910 --> 00:30:23,700 И дори, ако файлът е бил забравен, може да се каже с висока степен на вероятност, 605 00:30:23,700 --> 00:30:28,460 но това изглежда като документ на Word, нека го възстанови и да го махнете забравя, 606 00:30:28,460 --> 00:30:28,990 ако обичаш. 607 00:30:28,990 --> 00:30:32,330 И така, това е начина, по който може да се възстанови данни, че е било случайно 608 00:30:32,330 --> 00:30:36,560 изтрити или изтрити или умишлено изтрит за каквито и да е цели. 609 00:30:36,560 --> 00:30:42,530 >> За разлика от това, сигурно изтриване какво прави в контекста на една картина като тази? 610 00:30:42,530 --> 00:30:44,059 Точно така, ги прави всичко случаен. 611 00:30:44,059 --> 00:30:46,350 Така че това нещо се движи някои от ги надолу, някои от тях нагоре, 612 00:30:46,350 --> 00:30:49,433 оставя някои от тях без промяна, и обикновено прави случаен шум от него, 613 00:30:49,433 --> 00:30:52,960 или просто може би прави всичко ги 0 е или всички от тях 1-те години. 614 00:30:52,960 --> 00:30:56,350 И това също може като цяло търкат данните си далеч. 615 00:30:56,350 --> 00:31:00,160 >> Така че нека да се върнем сега към въпроса на изчислителната мислене, при което 616 00:31:00,160 --> 00:31:03,270 имаме формула входове. 617 00:31:03,270 --> 00:31:06,390 И алгоритми дава ви извежда в крайна сметка. 618 00:31:06,390 --> 00:31:09,270 Ние се фокусираме сега на входа и изходи, защото сега, 619 00:31:09,270 --> 00:31:12,159 претенция имаме начин на представляваща входове и изходи. 620 00:31:12,159 --> 00:31:13,450 Ние просто ще се използва двоичен. 621 00:31:13,450 --> 00:31:15,910 >> И без значение какво сме Искам да представя днес, 622 00:31:15,910 --> 00:31:20,230 дали това е номер или писмо или хиляди от тях в телефонен указател 623 00:31:20,230 --> 00:31:23,210 или снимки или филми, в края на деня, всичко е 0 и 1 в. 624 00:31:23,210 --> 00:31:26,640 И аз твърдя, че, въпреки че това е супер прост свят само с 0 е 625 00:31:26,640 --> 00:31:28,240 и 1, ние можем да се изгради. 626 00:31:28,240 --> 00:31:32,210 И сме виждали един пример за че с писма до този момент. 627 00:31:32,210 --> 00:31:35,615 >> Така че нека да се съсредоточи сега по този средната съставка, един алгоритъм. 628 00:31:35,615 --> 00:31:38,190 И нека да се върнем към този Например на Майк Смит. 629 00:31:38,190 --> 00:31:41,689 Така че в този телефонен указател, който разбира се, ние не използваме толкова много повече, 630 00:31:41,689 --> 00:31:42,980 има проблем да бъде решен. 631 00:31:42,980 --> 00:31:45,040 Ние искаме да се намери някой като Майк Смит. 632 00:31:45,040 --> 00:31:47,520 >> И това, което може да направите, за да се намери Майк? 633 00:31:47,520 --> 00:31:51,197 Е, аз може просто да се отвори тази книга, започнете от първата страница, 634 00:31:51,197 --> 00:31:52,780 и осъзнават, о, аз съм в раздел А. 635 00:31:52,780 --> 00:31:53,510 Майк не е там. 636 00:31:53,510 --> 00:31:55,510 Имам нужда от секцията S за Смит. 637 00:31:55,510 --> 00:31:58,192 Така че просто да се обърна една страница в даден момент. 638 00:31:58,192 --> 00:32:00,900 Нека да се преструваме, че това е всичко, бели страници и не жълти страници, 639 00:32:00,900 --> 00:32:02,910 защото ние няма да се намери Майк в жълтите страници или иначе. 640 00:32:02,910 --> 00:32:04,034 Но аз съм в бели страници. 641 00:32:04,034 --> 00:32:05,340 И сега, аз съм в раздел Б. 642 00:32:05,340 --> 00:32:06,810 Аз все още не са го намерили. 643 00:32:06,810 --> 00:32:08,890 Така че аз продължавам да се обърна една страница в даден момент. 644 00:32:08,890 --> 00:32:10,130 >> Това е алгоритъм. 645 00:32:10,130 --> 00:32:12,440 Това е набор от инструкции за решаване на някакъв проблем. 646 00:32:12,440 --> 00:32:16,480 С други думи, погледнете страница, ако Майк не е върху него, 647 00:32:16,480 --> 00:32:20,020 превърне страница, и повторения отново и отново, 648 00:32:20,020 --> 00:32:21,760 идеално гледа надолу, както го правите. 649 00:32:21,760 --> 00:32:24,120 Така е този алгоритъм, този процес, е правилно? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Извинете. 652 00:32:28,830 --> 00:32:30,056 Не, аз чувам някои номера. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 ОК, но това is-- да, със сигурност това е досадно. 655 00:32:36,125 --> 00:32:39,000 Подобно, ние ще бъдем тук по цял ден, ако аз продължавайте да търсите за Mike при тази скорост. 656 00:32:39,000 --> 00:32:41,430 Но нека да претендира, че е правилно. 657 00:32:41,430 --> 00:32:43,850 Това е глупаво, но това е правилно. 658 00:32:43,850 --> 00:32:47,209 >> В края на деня, докато той може да вземат, аз ще намеря Майк, ако той е там 659 00:32:47,209 --> 00:32:48,250 и аз съм се обръща внимание. 660 00:32:48,250 --> 00:32:50,230 И в крайна сметка да достигне неговата страница. 661 00:32:50,230 --> 00:32:52,890 И ако получа твърде далеч, ако Да стигна до секцията T, 662 00:32:52,890 --> 00:32:55,900 тогава мога да леко оптимизиране и само да кажа, хм, всичко направено. 663 00:32:55,900 --> 00:32:57,980 Аз дори не трябва да губим път отива на Z-те години. 664 00:32:57,980 --> 00:33:00,010 Но това е много линеен подход, ако 665 00:33:00,010 --> 00:33:03,370 ще, много нещо наляво-надясно подход, по права линия. 666 00:33:03,370 --> 00:33:05,560 И неговата вярна, но бавно. 667 00:33:05,560 --> 00:33:09,250 >> Така че аз си спомням от началното училище, сортиране на оптимизация от първокласник, 668 00:33:09,250 --> 00:33:13,756 където се научих как да не се брои от тези, но от twos-- така 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 Това е A, много по-трудно да се направя, но на теория, това е 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, и така нататък. 671 00:33:20,149 --> 00:33:21,190 Какво ще кажете, че алгоритъм? 672 00:33:21,190 --> 00:33:23,150 Дали е по-ефективен? 673 00:33:23,150 --> 00:33:23,880 Дали е по-бързо? 674 00:33:23,880 --> 00:33:25,365 >> АУДИТОРИЯ: Това е ефективен. 675 00:33:25,365 --> 00:33:28,560 >> DAVID Малан: Да, така че е def-- това е буквално два пъти по-бързо, ако приемем, че 676 00:33:28,560 --> 00:33:30,170 Да не се получи спънал с пръстите ми. 677 00:33:30,170 --> 00:33:32,294 Това е два пъти по-бързо, защото Аз съм се обърна чрез две 678 00:33:32,294 --> 00:33:36,560 страници наведнъж, вместо на един, но това е потенциално по правилен, защото защо? 679 00:33:36,560 --> 00:33:37,852 >> АУДИТОРИЯ: Вие прескочите някои. 680 00:33:37,852 --> 00:33:41,185 DAVID Малан: Добре, какво ще стане ако Майк се случва да се sandwiched-- може би, когато съм по-късно 681 00:33:41,185 --> 00:33:44,370 в телефонния указател, Майк се случва да бъде сандвич между тези две страници, 682 00:33:44,370 --> 00:33:46,720 и аз просто сляпо прескачане над него. 683 00:33:46,720 --> 00:33:48,490 Така че ние се нуждаем от малко корекция там. 684 00:33:48,490 --> 00:33:51,290 След като се удари в секцията T, I Не може просто да уверено да се каже, 685 00:33:51,290 --> 00:33:52,420 не намерихме Майк Смит. 686 00:33:52,420 --> 00:33:53,770 Аз може би трябва да се удвои обратно. 687 00:33:53,770 --> 00:34:00,210 Или всъщност, след като аз достигне някой наречен S-N, вместо S-М за Смит, 688 00:34:00,210 --> 00:34:02,790 веднага, аз може да се удвои назад, защото може би той 689 00:34:02,790 --> 00:34:03,900 беше на предишната страница. 690 00:34:03,900 --> 00:34:05,070 >> Но не е нужно да се удвои обратно далеч. 691 00:34:05,070 --> 00:34:08,030 На теория, ако мога да го направя в дясно време, аз просто се върнете една страница. 692 00:34:08,030 --> 00:34:10,139 Така че това е добавянето на само една допълнителна стъпка. 693 00:34:10,139 --> 00:34:13,070 Така че аз съм отишъл два пъти по-бързо, но това ми струва едно допълнително страница. 694 00:34:13,070 --> 00:34:14,699 Но, че се чувства като нетна печалба. 695 00:34:14,699 --> 00:34:17,230 >> Но това не е как повечето хора в тази стая ще реши този проблем. 696 00:34:17,230 --> 00:34:20,313 Какво би типичен човек, може би Преди няколко години да направят, за да се намери Майк Смит? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Да, не беше намерен Майк. 699 00:34:24,800 --> 00:34:27,190 Какво да правя? 700 00:34:27,190 --> 00:34:31,027 Така че да се получи малко по-близо, но аз правя know-- това, което е вярно за телефонен указател? 701 00:34:31,027 --> 00:34:32,110 АУДИТОРИЯ: Това е последователен. 702 00:34:32,110 --> 00:34:32,760 DAVID Малан: Това е последователен. 703 00:34:32,760 --> 00:34:33,750 Това е азбучен. 704 00:34:33,750 --> 00:34:36,540 И така, ако аз съм в раздела M, Майк е ясно в дясно, 705 00:34:36,540 --> 00:34:39,949 Аз буквално може да се скъса задачата half-- 706 00:34:39,949 --> 00:34:44,360 това е обикновено по-лесно, отколкото that-- сълза проблема на половина и да го изхвърлим, 707 00:34:44,360 --> 00:34:47,627 така че сега, имам един проблем, който е вече не 1000 pages--, че е трудно, 708 00:34:47,627 --> 00:34:50,210 защото мисля, че аз всъщност се отскубна телефонния указател това не time-- 709 00:34:50,210 --> 00:34:52,219 1000 страници, но 500. 710 00:34:52,219 --> 00:34:54,750 >> Така че проблемът е буквално наполовина по-голям. 711 00:34:54,750 --> 00:34:58,170 И това е доста убедителна, защото с моите предишни алгоритми, версия 712 00:34:58,170 --> 00:35:02,870 1 и 2, правех само проблема една страница по-малки, две страници по-малки 713 00:35:02,870 --> 00:35:03,470 на време. 714 00:35:03,470 --> 00:35:07,230 Като има предвид, сега, аз го направи 500 страници малки наведнъж. 715 00:35:07,230 --> 00:35:10,089 >> ОК, така че сега, Карим предлага че отивам на дясната половина. 716 00:35:10,089 --> 00:35:12,380 Така че аз ще отида грубо до центъра, или да се даде. 717 00:35:12,380 --> 00:35:15,185 И ако го направя това математически, Мога да отида право на средата. 718 00:35:15,185 --> 00:35:17,060 И сега, аз осъзнавам, о, Аз съм в раздела T. 719 00:35:17,060 --> 00:35:18,280 Аз всъщност отидох твърде далеч. 720 00:35:18,280 --> 00:35:21,670 >> Но мога да, отново, разкъса проблем в половината, хвърлят го далеч. 721 00:35:21,670 --> 00:35:23,330 И моите байта не толкова голям. 722 00:35:23,330 --> 00:35:28,780 Това е само, какво, 256 страници или 250 страници, дават или вземат точно сега. 723 00:35:28,780 --> 00:35:31,570 Но тя все още е много по- от една страница или две страници. 724 00:35:31,570 --> 00:35:33,345 >> И така, сега, аз отивам горе-долу в средата. 725 00:35:33,345 --> 00:35:35,330 О, аз не отиде твърде далеч достатъчно сега. 726 00:35:35,330 --> 00:35:37,880 Така че повтарям, повторение, повтарям, Повтарям, докато аз съм с надежда 727 00:35:37,880 --> 00:35:40,360 остави само с една страница. 728 00:35:40,360 --> 00:35:44,000 >> Така че кани на въпроса, ако аз започна с около 1000 страници, 729 00:35:44,000 --> 00:35:47,340 колко стъпки отне ми с версия 1 на моя алгоритъм? 730 00:35:47,340 --> 00:35:50,420 Е, ако Майк е в S раздел, в най-лошия случай, 731 00:35:50,420 --> 00:35:52,630 това е доста близо до края на азбуката. 732 00:35:52,630 --> 00:35:56,559 Така че, ако телефонния указател има 1000 страници, Ще намеря Майк рамките 1000 страници, 733 00:35:56,559 --> 00:35:57,100 дай или вземи. 734 00:35:57,100 --> 00:35:59,750 Може би това е като 800 или така, но това е доста близо до 1,000. 735 00:35:59,750 --> 00:36:01,680 >> Като има предвид, във втория алгоритъм, колко 736 00:36:01,680 --> 00:36:06,840 страница оказва максимално мощ I изисква да се намери Майк Смит? 737 00:36:06,840 --> 00:36:09,970 Има 1000 страници, но аз съм ги две прави в даден момент. 738 00:36:09,970 --> 00:36:13,045 Точно, така макс като 500ish, защото ако отида през целия телефонен указател, 739 00:36:13,045 --> 00:36:14,170 в този момент, не мога да спра. 740 00:36:14,170 --> 00:36:16,669 Но мога да обръсне няколко от просто спря в секцията T. 741 00:36:16,669 --> 00:36:19,880 Но това е в най-лошия случай 500 страници. 742 00:36:19,880 --> 00:36:24,710 >> Така че колко пъти мога да разделяте 1,00o-страницата на телефонния указател на половина отново 743 00:36:24,710 --> 00:36:30,450 и отново и again-- от 1000 500 до 250-125? 744 00:36:30,450 --> 00:36:32,250 Колко време преди да се удари една страница? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Да, това е около 10. 747 00:36:36,370 --> 00:36:40,780 В зависимост от закръгляване и такива, това е около 10 страници общо нужда да се превърнат 748 00:36:40,780 --> 00:36:43,290 или телефонни указатели трябва да бъде разкъсан. 749 00:36:43,290 --> 00:36:44,710 >> Така че това е доста мощен. 750 00:36:44,710 --> 00:36:48,170 Ние започнахме с проблем с 1000-страница във всички три от тези истории. 751 00:36:48,170 --> 00:36:51,850 Но в първата алгоритъм това, Отне ми, най-лошия случай, 1000 страница 752 00:36:51,850 --> 00:36:52,740 Оказва се, за да намерите Майк. 753 00:36:52,740 --> 00:36:55,590 Второ алгоритъм 500 страници, за да намерят Майк. 754 00:36:55,590 --> 00:36:58,480 Трето алгоритъм, 10 страници, за да намерят Майк. 755 00:36:58,480 --> 00:37:00,230 И това е още по- мощен, когато си мислиш 756 00:37:00,230 --> 00:37:01,860 за сортиране на обратен сценарий. 757 00:37:01,860 --> 00:37:05,680 Да предположим, че телефонната компания следващия година може би се слива два града заедно, 758 00:37:05,680 --> 00:37:08,550 и телефонния указател е внезапно тази дебелина, вместо това, че 759 00:37:08,550 --> 00:37:12,470 така 2,000 страници, вместо на 1000. 760 00:37:12,470 --> 00:37:15,640 Е, първата ми алгоритъм търси Майк Смит в телефонния указател на 2000-страница, 761 00:37:15,640 --> 00:37:21,460 лошия случай, това ще отнеме колко страница се превръща през следващата година? 762 00:37:21,460 --> 00:37:24,800 >> Телефонен указател е 2000 страници, so-- добре, не по-един. 763 00:37:24,800 --> 00:37:29,540 Ако телефонният указател е два пъти по-дебел в първи алгоритъм, първо алгоритъм, 764 00:37:29,540 --> 00:37:30,380 2000, нали? 765 00:37:30,380 --> 00:37:33,005 В най-лошия случай, Майк е наистина В близост до края на книгата, 766 00:37:33,005 --> 00:37:34,110 така че това е 2000 страници завои. 767 00:37:34,110 --> 00:37:38,070 Второ алгоритъм става чрез двойки, като 1000 страници. 768 00:37:38,070 --> 00:37:41,490 >> Но какво ще кажеш в моята трета и най-новата алгоритъм? 769 00:37:41,490 --> 00:37:44,950 Ако телефонната компания удвоява брой страници от 1000 до 2000, 770 00:37:44,950 --> 00:37:47,770 колко повече пъти се наложи да се скъса че книгата на половина, за да намерите Майк? 771 00:37:47,770 --> 00:37:48,710 >> АУДИТОРИЯ: Само един. 772 00:37:48,710 --> 00:37:51,001 >> DAVID Малан: Само един повече, защото с една страница сълза, 773 00:37:51,001 --> 00:37:53,270 Аз буквално може да се раздели и владей, ако щете, 774 00:37:53,270 --> 00:37:57,410 че проблем в половината поемане масивна ухапване от него. 775 00:37:57,410 --> 00:38:01,420 И така, това е пример за ефективност и може би един алгоритъм 776 00:38:01,420 --> 00:38:04,100 с които всички ние сме сортиране на интуитивно запознати. 777 00:38:04,100 --> 00:38:07,780 Но това е просто като правилно като другите ми алгоритми 778 00:38:07,780 --> 00:38:09,630 с които ощипване за втората алгоритъм, 779 00:38:09,630 --> 00:38:11,290 но това е толкова много по-ефективно. 780 00:38:11,290 --> 00:38:14,030 >> И в действителност, това, което един компютър учен, или на свой ред програмист, 781 00:38:14,030 --> 00:38:17,580 обикновено би направил при писане код е да се опитаме да разбера, 782 00:38:17,580 --> 00:38:19,960 Добре, аз не искам моето програма, само за да бъде вярна, 783 00:38:19,960 --> 00:38:23,220 Аз също искам тя да бъде ефективна и решаване на проблемите добре. 784 00:38:23,220 --> 00:38:26,450 Представете си в реалния свят днес, като Google индекси, търсения 785 00:38:26,450 --> 00:38:31,580 като милиарди страници, представете си, ако те използва първия алгоритъм за намиране котки 786 00:38:31,580 --> 00:38:34,620 сред милиард pages-- гледа На първата страница в тяхната база данни, 787 00:38:34,620 --> 00:38:37,700 втората, третата, просто гледам за една котка, търси котка. 788 00:38:37,700 --> 00:38:40,350 Това е дяволски много бавно би изглеждало. 789 00:38:40,350 --> 00:38:43,170 Вместо това те биха могли да използват нещо нарича двоично търсене, което 790 00:38:43,170 --> 00:38:47,420 не coincidence-- BI означава две, ние държа се раздели нещо в 2, в half-- 791 00:38:47,420 --> 00:38:50,205 те биха могли да използват двоичен търсене и може би намери котки дори по-бързо, 792 00:38:50,205 --> 00:38:51,830 или каквото и да е, което търсите. 793 00:38:51,830 --> 00:38:54,125 >> И честно казано, има дори по-красиви алгоритми 794 00:38:54,125 --> 00:38:56,250 че направи много повече от това просто да раздели нещата на половина 795 00:38:56,250 --> 00:38:58,180 за да намерите бързо информация. 796 00:38:58,180 --> 00:39:00,880 И ние ще говорим малко по- за тези, които след обяд днес. 797 00:39:00,880 --> 00:39:02,640 Така че нека просто се опитват да представят това. 798 00:39:02,640 --> 00:39:05,380 Ние не се нуждаем, за да отидат в всяко математика или реални числа. 799 00:39:05,380 --> 00:39:07,070 Можем да говорим за това в резюмето. 800 00:39:07,070 --> 00:39:11,580 >> Но нека просто да предложи, ако са като дискусия сега 801 00:39:11,580 --> 00:39:13,491 с инженерите предлагането на този алгоритъм 802 00:39:13,491 --> 00:39:15,490 и вие се опитвате да направите изчислена решение, 803 00:39:15,490 --> 00:39:17,285 защото може би инженер, казва за вас, вие 804 00:39:17,285 --> 00:39:19,910 знам какво мога да приложи линейно търсене като две минути. 805 00:39:19,910 --> 00:39:21,150 Толкова е лесно. 806 00:39:21,150 --> 00:39:24,790 Binary търсене не е, че фантазия, но то се случва да ме вземе като 10 минути, 807 00:39:24,790 --> 00:39:26,650 така 5 пъти по-дълго. 808 00:39:26,650 --> 00:39:30,900 >> Има търговията тук, дори и от гледна точка на вземане на решение какъв софтуер да пишат. 809 00:39:30,900 --> 00:39:34,760 Смятате ли, напиши по-простия алгоритъм, които просто ще ви отнеме две минути? 810 00:39:34,760 --> 00:39:39,880 Или искаш да прекарват повече време, 10 минути, писането на любител алгоритъм? 811 00:39:39,880 --> 00:39:43,540 Как решавате, че вид на въпрос? 812 00:39:43,540 --> 00:39:46,710 Или пък може да го направи малко по-реално. 813 00:39:46,710 --> 00:39:50,610 Аз кажа на шефа си, че това ще отнеме ми или една седмица или 10 седмици 814 00:39:50,610 --> 00:39:52,490 За да се приложат софтуер по този начин, как 815 00:39:52,490 --> 00:39:56,103 да решите, които алгоритъм за зелена светлина? 816 00:39:56,103 --> 00:39:56,603 Карим? 817 00:39:56,603 --> 00:39:57,550 >> АУДИТОРИЯ: Публиката, предполагам. 818 00:39:57,550 --> 00:39:57,960 >> DAVID Малан: Публиката. 819 00:39:57,960 --> 00:39:59,460 Какво искаш да кажеш с публиката? 820 00:39:59,460 --> 00:40:03,460 >> АУДИТОРИЯ: Ако това се случва да се използва от потребители 821 00:40:03,460 --> 00:40:09,050 който [недоловим] от потребители [недоловим]. 822 00:40:09,050 --> 00:40:11,232 Но ако това е нещо, че си Просто правя за себе си 823 00:40:11,232 --> 00:40:13,946 за да се улесни проблем [Недоловим] по-бързо. 824 00:40:13,946 --> 00:40:16,820 DAVID Малан: Да, това е бърз и мръсна е добър начин да го опиша. 825 00:40:16,820 --> 00:40:18,695 В действителност, ако сте описвайки голяма част от времето си 826 00:40:18,695 --> 00:40:23,630 в град училище, при което често пъти, Написах лош код съзнателно so-- 827 00:40:23,630 --> 00:40:26,490 най-малко, това е как аз рационализирано it-- съзнателно така, 828 00:40:26,490 --> 00:40:30,670 защото въпреки че пишех код че е сравнително бавен, за да се изпълни, 829 00:40:30,670 --> 00:40:33,750 Аз бях в състояние да пише в самия код доста бързо, разходите само за няколко минути 830 00:40:33,750 --> 00:40:35,107 или не за часове дни. 831 00:40:35,107 --> 00:40:37,190 И се оказа, че от време на време е необходимо, за да заспи. 832 00:40:37,190 --> 00:40:41,270 Така че, дори ако ми код изисква 8 часа, за да се движат, и това е добре, 833 00:40:41,270 --> 00:40:42,850 Аз просто ще отида да спя, докато тя работи. 834 00:40:42,850 --> 00:40:46,350 >> Така че в момента, аз мислех, че това е много умно, въпреки че очевидно 835 00:40:46,350 --> 00:40:48,990 работил през моя д-р много бавно. 836 00:40:48,990 --> 00:40:52,270 Но обратното на това е че, ако пишех софтуер 837 00:40:52,270 --> 00:40:55,930 за други хора, които значение повече от мен, добре, 838 00:40:55,930 --> 00:40:59,580 като ги чакам 8 часа до получите обратно своите резултати от търсенето 839 00:40:59,580 --> 00:41:01,350 не е всичко, което непреодолими. 840 00:41:01,350 --> 00:41:04,090 И така прекарва повече време отпред, за да напише софтуер 841 00:41:04,090 --> 00:41:07,300 че е по-ефективно, по- като трета нашия алгоритъм, 842 00:41:07,300 --> 00:41:09,780 вероятно е от полза за потребителите с течение на времето. 843 00:41:09,780 --> 00:41:12,710 Така че това наистина зависи над време как тези разходи се натрупват. 844 00:41:12,710 --> 00:41:14,960 Ако ти започваш да се пише софтуер, за да го използвате веднъж, 845 00:41:14,960 --> 00:41:17,240 Вероятно може и да се направи бърз и мръсен, както се казва. 846 00:41:17,240 --> 00:41:18,198 Просто го хвърлят заедно. 847 00:41:18,198 --> 00:41:20,560 Това е код, който затруднява ти, това е толкова лошо, 848 00:41:20,560 --> 00:41:23,860 но това върши работа правилно, въпреки че това не е ефективно. 849 00:41:23,860 --> 00:41:27,200 Обратно на това, което прекарвате повече време на нещо, да го точно. 850 00:41:27,200 --> 00:41:30,730 И тогава амортизира с течение на времето, че първоначалните разходи на време 851 00:41:30,730 --> 00:41:34,330 вероятно е полезно, ако продължаваш оптимизиране на общия случай. 852 00:41:34,330 --> 00:41:37,620 >> И наистина, това е една тема, в програмиране, или компютърни науки повече 853 00:41:37,620 --> 00:41:41,390 като цяло, като се опитва да оптимизира не за необичайно случая 854 00:41:41,390 --> 00:41:44,390 но най-често срещаните case-- какви операция ще се случи отново и отново? 855 00:41:44,390 --> 00:41:47,730 Ако ще да има милиарди на потребителите търсене на вашия сайт, 856 00:41:47,730 --> 00:41:52,030 вероятно ще трябва да прекарат допълнителни седмици отпред пишат по-добър софтуер, 857 00:41:52,030 --> 00:41:53,670 така че всички ваши потребители се възползват. 858 00:41:53,670 --> 00:41:57,840 Сега, нека се опитаме да улови този на малко живописно, но не толкова много, 859 00:41:57,840 --> 00:41:58,610 числено. 860 00:41:58,610 --> 00:42:01,680 >> Така че тук е просто един стар училище диаграма. 861 00:42:01,680 --> 00:42:04,260 И нека да кажа, че това е времето. 862 00:42:04,260 --> 00:42:06,660 И това не е от значение what-- всъщност, не, не време. 863 00:42:06,660 --> 00:42:08,320 Нека да поставим, че от друга ос. 864 00:42:08,320 --> 00:42:15,700 Да кажем, че това е времето, и това е размера на проблема. 865 00:42:15,700 --> 00:42:17,830 >> И компютърен учен може обикновено наричаме 866 00:42:17,830 --> 00:42:20,820 това просто п. п е като нашата зелена до променлива, където 867 00:42:20,820 --> 00:42:26,351 п е число, N брой, и това е най- брой на каквито и да е материали, които имате. 868 00:42:26,351 --> 00:42:28,100 Така че в този случай, п е броя на страниците. 869 00:42:28,100 --> 00:42:30,150 Така че може да е 1000 в случай ние просто казано. 870 00:42:30,150 --> 00:42:31,969 >> Така че времето може да бъде всяка единица мярка. 871 00:42:31,969 --> 00:42:32,760 Може би, това е второто. 872 00:42:32,760 --> 00:42:33,410 Може би, това е ден. 873 00:42:33,410 --> 00:42:34,590 Може би, това е като страница завои. 874 00:42:34,590 --> 00:42:35,215 Няма значение. 875 00:42:35,215 --> 00:42:38,840 Каквото и да искате да се брои в, че ще бъде време, или да струва еквивалентно. 876 00:42:38,840 --> 00:42:42,400 >> Така че с това много първи алгоритъм, ако, например, 877 00:42:42,400 --> 00:42:45,920 имаше телефонен указател 1000-страница, Отивам да се направи една точка там, 878 00:42:45,920 --> 00:42:51,450 защото, ако това е 1000 страници, отне приблизително 1000 страница оказва, или да се даде. 879 00:42:51,450 --> 00:42:54,100 И след това, ако имах 2000-те страници на книгата телефон, 880 00:42:54,100 --> 00:42:57,200 и аз отивам да се направи втора Дот тук, защото за 2000 страници, 881 00:42:57,200 --> 00:42:59,810 това е като 2,000 секунди или страница Оказва или каквото. 882 00:42:59,810 --> 00:43:02,480 И така, когато казах по-рано, това е вид на линейна зависимост, 883 00:43:02,480 --> 00:43:06,020 че е било умишлено, защото исках по-късно on-- полето now-- да се направи линия. 884 00:43:06,020 --> 00:43:07,770 Това е вид на една права Онлайн връзка. 885 00:43:07,770 --> 00:43:10,180 Наклонът е 1/1, ако щете. 886 00:43:10,180 --> 00:43:14,630 >> Междувременно, втори алгоритъм каза, ако имаш 1000 страници 887 00:43:14,630 --> 00:43:17,680 и сте използвали втория алгоритъм, където преброих от 2-те години, превръщайки 888 00:43:17,680 --> 00:43:22,564 две страници в даден момент, трябва да се направи точка отдолу или отгоре първоначалното ми точка? 889 00:43:22,564 --> 00:43:23,450 >> АУДИТОРИЯ: По-долу. 890 00:43:23,450 --> 00:43:27,992 >> DAVID Малан: По-долу, защото както видяхме, това отнема по-малко време, двойно по-малко време. 891 00:43:27,992 --> 00:43:29,950 Така че точката трябва да бъде половината по-висока от другата. 892 00:43:29,950 --> 00:43:33,330 И същата сделка тук, тази точка вероятно трябва да бъде грубо там. 893 00:43:33,330 --> 00:43:39,666 И така, моят втори алгоритъм, по същия начин, има линейна връзка с времето. 894 00:43:39,666 --> 00:43:41,990 И ние можем да го привлече като такива. 895 00:43:41,990 --> 00:43:45,950 >> Така че сега, третата и последна алгоритъм е малко по-трудно да се направи. 896 00:43:45,950 --> 00:43:49,530 Но интуитивно, ако аз имам 1000 страници с третото ми алгоритъм, 897 00:43:49,530 --> 00:43:52,340 тя трябва да ме вземе само като 10 стъпки. 898 00:43:52,340 --> 00:43:57,500 И ако аз имам 2000 страници с третото ми алгоритъм, 899 00:43:57,500 --> 00:44:01,570 тя трябва да ми отнеме не 10 стъпки, но 11, само още един. 900 00:44:01,570 --> 00:44:03,610 Така че ние сме само едва ще видите това. 901 00:44:03,610 --> 00:44:06,010 >> И се оказва, ако Аз се фокусирам върху това, че съм 902 00:44:06,010 --> 00:44:09,320 ще преувеличават за действие, формата на тази линия, в крайна сметка, 903 00:44:09,320 --> 00:44:11,990 не е права line-- защото, наистина, ако беше, 904 00:44:11,990 --> 00:44:15,390 тя ще изглежда по-скоро като others-- това всъщност е крива линия 905 00:44:15,390 --> 00:44:19,265 че, ако ние я увеличите, ще да изглежда много по-този начин. 906 00:44:19,265 --> 00:44:21,670 It-- добре, ОК, игнорира тази част. 907 00:44:21,670 --> 00:44:25,330 Това беше моята писалка става на ъгъл. 908 00:44:25,330 --> 00:44:29,000 Това е крива линия, която е винаги увеличаване, винаги, винаги, винаги 909 00:44:29,000 --> 00:44:32,100 увеличава, но само на сантиметри. 910 00:44:32,100 --> 00:44:36,260 >> И така с течение на времето, че имате връзка, която е по-скоро това. 911 00:44:36,260 --> 00:44:37,540 Тя почти изглежда прав. 912 00:44:37,540 --> 00:44:40,330 Но това е все така бавно се увеличава. 913 00:44:40,330 --> 00:44:44,780 Но в продължение на почти всички точки по Вашата х-ос, хоризонтална ос, 914 00:44:44,780 --> 00:44:46,550 това е по-ниска от тези на други линии. 915 00:44:46,550 --> 00:44:49,930 >> Така че това може да бъде една връзка п, при което, ако имате н страници, 916 00:44:49,930 --> 00:44:51,100 ви н секунди отнема. 917 00:44:51,100 --> 00:44:53,320 Това може да бъде една връзка п / 2. 918 00:44:53,320 --> 00:44:56,710 Имате н страници, е необходимо вие N / 2 секунди, два пъти по-голяма. 919 00:44:56,710 --> 00:45:00,590 И това е логаритмична отношения, които 920 00:45:00,590 --> 00:45:08,920 Ако си спомняте, влезте база 2 на п улавя този вид растеж, така да се каже. 921 00:45:08,920 --> 00:45:12,000 Така че това е нещо свято Граал сред тримата от тях 922 00:45:12,000 --> 00:45:15,940 тук, защото това е просто много по- ефикасен, но може би по-сложна 923 00:45:15,940 --> 00:45:18,610 за изпълнение. 924 00:45:18,610 --> 00:45:20,510 Някакви въпроси? 925 00:45:20,510 --> 00:45:26,220 >> Ами нека да направим това, нека ми отвори текстов прозорец 926 00:45:26,220 --> 00:45:29,100 само така можем да се опитаме да формализират нещо тук. 927 00:45:29,100 --> 00:45:32,410 Така че нека да вървим напред сега и приложи този алгоритъм 928 00:45:32,410 --> 00:45:35,170 за намиране на Майк Смит в код, ако щете, Псевдокод код. 929 00:45:35,170 --> 00:45:36,620 Аз няма да се използва Java или C ++. 930 00:45:36,620 --> 00:45:38,610 Аз съм просто ще използвате нещо като Английски-подобен синтаксис, който ние 931 00:45:38,610 --> 00:45:40,151 обикновено наричаме Псевдокод код. 932 00:45:40,151 --> 00:45:41,660 Ето, аз имам един празен прозорец. 933 00:45:41,660 --> 00:45:48,180 И аз казвам, етап 1 от най- първи алгоритъм е вземете телефонния указател. 934 00:45:48,180 --> 00:45:51,740 Стъпка 2 е отворена книга за първа страница. 935 00:45:51,740 --> 00:45:58,080 Стъпка 3 ще бъде погледнем страница за Майк Смит. 936 00:45:58,080 --> 00:46:02,740 Ако на страница, обадете се на Майк. 937 00:46:02,740 --> 00:46:11,640 друг свой ред страница и преминете към стъпка 3. 938 00:46:11,640 --> 00:46:13,590 Съставено, да речем. 939 00:46:13,590 --> 00:46:18,110 >> И така, това не е съвсем перфектна, които ще видим в един миг. 940 00:46:18,110 --> 00:46:21,050 Но нека да разгледаме какво концепции съм въведени тук. 941 00:46:21,050 --> 00:46:24,450 Така стъпки 1 и 2 и 3 са доста много глаголи. 942 00:46:24,450 --> 00:46:26,544 Те са изявления, actions-- направите това. 943 00:46:26,544 --> 00:46:28,710 И така, в един програмен език, бихме обикновено 944 00:46:28,710 --> 00:46:32,349 ги наричат ​​отчети или функции или процедури, 945 00:46:32,349 --> 00:46:33,640 ги наричат ​​произволен брой неща. 946 00:46:33,640 --> 00:46:35,460 Но те просто сте actions-- направите това. 947 00:46:35,460 --> 00:46:40,370 >> Стъпка 4 е коренно различна, защото това е вид на задаване на въпрос. 948 00:46:40,370 --> 00:46:42,400 Той казва, че сме вид на по-разклонение на пътя. 949 00:46:42,400 --> 00:46:48,000 Ако Майк е на страницата, наричаме него, така завийте наляво, ако щете. 950 00:46:48,000 --> 00:46:52,170 И ако не, да се върна към някои друга page-- или по-скоро, съжалявам, 951 00:46:52,170 --> 00:46:56,650 се върнем към някои други стъпки, които предизвиква някаква примка конструкт. 952 00:46:56,650 --> 00:46:59,530 И ние го правим отново и отново и отново. 953 00:46:59,530 --> 00:47:01,300 >> И всъщност, знаеш ли какво? 954 00:47:01,300 --> 00:47:01,800 Да. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 иначе, ако в края на книгата спирка. 957 00:47:09,010 --> 00:47:11,624 Така че ние се нуждаем от рода на трета състояние, защото 958 00:47:11,624 --> 00:47:14,290 Не може да продължите да въртите рекламата на страница nauseum, защото в крайна сметка, аз ще 959 00:47:14,290 --> 00:47:15,320 удари в края на книгата. 960 00:47:15,320 --> 00:47:18,546 И бъг в една програма може да бъде не предвиждане на този сценарий. 961 00:47:18,546 --> 00:47:21,420 И тогава аз просто осъзнах, о, изчакайте една минута, имам нужда от трети сценарий. 962 00:47:21,420 --> 00:47:23,900 Ако аз съм от страници, I трябва наистина просто спрете. 963 00:47:23,900 --> 00:47:25,330 В противен случай, това е неопределено. 964 00:47:25,330 --> 00:47:29,260 Какво ще се случи, ако аз държа казвайки обърнем страницата и да се върна, 965 00:47:29,260 --> 00:47:31,810 Това е, когато компютрите замразяване или катастрофа, когато ви удари 966 00:47:31,810 --> 00:47:34,160 някои неочаквани ситуации като тази. 967 00:47:34,160 --> 00:47:37,280 >> Сега, какво да кажем за Mike Третият algorithm-- Смит 968 00:47:37,280 --> 00:47:43,150 вземете телефонния указател, отворена книга за first-- да 969 00:47:43,150 --> 00:47:48,640 Не, не на първа страница този път, да middle-- ох, добре, че бихме 970 00:47:48,640 --> 00:47:49,640 е втората алгоритъм. 971 00:47:49,640 --> 00:47:50,590 Нека просто да прескочите до третия. 972 00:47:50,590 --> 00:47:50,930 >> АУДИТОРИЯ: О, съжалявам. 973 00:47:50,930 --> 00:47:51,971 >> DAVID Малан: Това е добре. 974 00:47:51,971 --> 00:47:58,590 Нека просто да прескочите до third-- открито до средата и сега търсят Майк Смит. 975 00:47:58,590 --> 00:48:02,300 ако на страница, обадете се на Майк. 976 00:48:02,300 --> 00:48:04,910 И след това, което искаме да кажем тук? 977 00:48:04,910 --> 00:48:06,134 друго какво? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Ние можем да изразим това във всяка редица начини. 980 00:48:12,370 --> 00:48:13,369 Няма по-верен отговор. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 ОК, ако не отново, но ние трябва да се be-- ОК, ние искаме да се разделят на две, 983 00:48:23,735 --> 00:48:25,630 но искаме да отиде наляво или отидете нали? 984 00:48:25,630 --> 00:48:29,560 Как можем да изразим това понятие? 985 00:48:29,560 --> 00:48:31,790 Е, в случай на Майк, да, това е честно. 986 00:48:31,790 --> 00:48:35,050 Но ОК, така че това е всъщност една добра точка. 987 00:48:35,050 --> 00:48:35,550 Това е добре. 988 00:48:35,550 --> 00:48:36,924 Ние ще продължим с тази логика. 989 00:48:36,924 --> 00:48:38,182 Така-- 990 00:48:38,182 --> 00:48:39,810 >> АУДИТОРИЯ: По-малко от половината. 991 00:48:39,810 --> 00:48:40,560 DAVID Малан: Да. 992 00:48:40,560 --> 00:48:49,820 Така че иначе, ако страницата е, ние ще кажем, по-малко от Смит, отляво на Смит, 993 00:48:49,820 --> 00:48:52,220 then-- нека да видим, е това ще усложни? 994 00:48:52,220 --> 00:49:01,885 иначе, ако страница идва преди Смит, разрив в половината, изхвърляме коя половина? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> АУДИТОРИЯ: Мислех, че е [недоловим]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID Малан: чувам, така отговори. 998 00:49:11,650 --> 00:49:12,431 >> АУДИТОРИЯ: Ляв. 999 00:49:12,431 --> 00:49:14,430 DAVID Малан: ОК, хвърлят далеч лявата половина, като Lakisa 1000 00:49:14,430 --> 00:49:19,700 каза по-рано, в ляво половината, тогава аз вид 1001 00:49:19,700 --> 00:49:23,940 Искам просто да отида to-- отида надясно. 1002 00:49:23,940 --> 00:49:27,380 Или еквивалентно, и аз направих малко малко от една каша от началото тук, 1003 00:49:27,380 --> 00:49:30,760 Аз действително искате да отидете отново на стъпка 2, 1004 00:49:30,760 --> 00:49:38,270 където отворена за middle-- или open-- Да, нека просто кажем, страници до средна. 1005 00:49:38,270 --> 00:49:39,020 И това го поправя. 1006 00:49:39,020 --> 00:49:39,936 Това вече не е една книга. 1007 00:49:39,936 --> 00:49:42,210 Това е само половината от една книга, толкова отворени страници в средата. 1008 00:49:42,210 --> 00:49:44,010 >> else-- са почти там. 1009 00:49:44,010 --> 00:49:54,000 Стъпка 6, иначе ако страница идва след Smith, разкъса на две, изхвърляме дясната половина, 1010 00:49:54,000 --> 00:49:55,680 След това преминете към стъпка 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 друго откажат, четвърти сценарий, ако ние нямаме страници оставени да се обърнат. 1013 00:50:05,230 --> 00:50:06,394 Така че бихме могли да се почисти това нагоре. 1014 00:50:06,394 --> 00:50:07,560 И ние трябва да се почисти това нагоре. 1015 00:50:07,560 --> 00:50:10,656 Това е много Псевдокод код, ако ще, описание на много високо ниво. 1016 00:50:10,656 --> 00:50:12,280 Но тя не обикновено улови идеята. 1017 00:50:12,280 --> 00:50:16,040 >> И, отново, в този сценарий, ние има понятието условие, 1018 00:50:16,040 --> 00:50:20,450 клон, а разклонение на пътя, което прави а decision-- ако това, отиде по този начин, 1019 00:50:20,450 --> 00:50:23,082 иначе, ако отидете този начин, иначе, ако отидете по този начин. 1020 00:50:23,082 --> 00:50:25,040 И това е много често срещан техниката на програмиране 1021 00:50:25,040 --> 00:50:27,721 да реши в коя посока да отида, така да се каже. 1022 00:50:27,721 --> 00:50:29,970 И ние също имаме някакъв вид на примка структура, където 1023 00:50:29,970 --> 00:50:32,440 правим нещо отново и отново. 1024 00:50:32,440 --> 00:50:34,820 >> Сега се оказва, че много по- като в този пример, 1025 00:50:34,820 --> 00:50:37,660 е супер точен е важно. 1026 00:50:37,660 --> 00:50:42,180 Но ние също така съм виждал нещо че ние продължаваме да се обадите абстракция. 1027 00:50:42,180 --> 00:50:45,490 Какво означава да вдигнеш телефона книга? 1028 00:50:45,490 --> 00:50:47,740 Ние просто вид като за даденост в тази стая 1029 00:50:47,740 --> 00:50:49,340 , че има някои семантична значение. 1030 00:50:49,340 --> 00:50:51,740 Всички ние просто вид знам, о, добре, вземете телефонния указател. 1031 00:50:51,740 --> 00:50:52,864 Какво означава, че наистина означава? 1032 00:50:52,864 --> 00:50:59,060 Е, това наистина означава удължаване ръката, навеждайте над удължи с пръсти, 1033 00:50:59,060 --> 00:51:03,890 захванете книга между пръстите, изправя, дръпнете ръка към вас. 1034 00:51:03,890 --> 00:51:05,940 И ние може да бъде наистина педантичен за това, 1035 00:51:05,940 --> 00:51:08,640 Наистина е супер точен като за това, което правя. 1036 00:51:08,640 --> 00:51:13,300 Но всички тези стъпки колективно са какво означава да вземете един телефонен указател. 1037 00:51:13,300 --> 00:51:16,940 >> И така по-рано, когато казах, всеки на тези първите две твърдения 1038 00:51:16,940 --> 00:51:20,830 може да се мисли като пристъпи или функция, 1039 00:51:20,830 --> 00:51:24,090 Наистина той представлява това, което ние запази обажда абстракция. 1040 00:51:24,090 --> 00:51:28,770 Това е като на високо ниво идеен описание на един проблем, който 1041 00:51:28,770 --> 00:51:31,110 всъщност включва доста няколко стъпки. 1042 00:51:31,110 --> 00:51:34,190 И така, това също е повтарящи тема в програмирането, 1043 00:51:34,190 --> 00:51:41,125 с което бих могъл да напише програма с помощта на синтаксиса като 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 И тогава синтактично, аз съм ще открадне нещо 1047 00:51:46,510 --> 00:51:48,090 от повечето програмни езици. 1048 00:51:48,090 --> 00:51:51,270 >> Сега, стъпка 1 изглежда още по-скоро като функция, 1049 00:51:51,270 --> 00:51:53,160 като програмист ще го наречем. 1050 00:51:53,160 --> 00:51:58,650 Тя изглежда като код, че някой е дал име, за да и даде 1051 00:51:58,650 --> 00:52:03,300 за мен да се използва somehow-- в друга думи, това, което линията съм подчертани 1052 00:52:03,300 --> 00:52:07,050 представлява функционалност, която може би Аз дори не се прилагат. 1053 00:52:07,050 --> 00:52:10,410 Някой по-възрастните, по-мъдър от ми вече разбра 1054 00:52:10,410 --> 00:52:12,700 как се изразяват понятието на бране на телефонния указател. 1055 00:52:12,700 --> 00:52:15,860 И това е като петте стъпки, аз просто разтърси, разстояние от върха на главата ми. 1056 00:52:15,860 --> 00:52:19,350 >> Но той или тя вече се прилага това дава тези няколко стъпки 1057 00:52:19,350 --> 00:52:22,339 име, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 И скобите е Просто това, което повечето програмисти 1059 00:52:24,380 --> 00:52:27,100 направи в края на твърдения като това. 1060 00:52:27,100 --> 00:52:30,190 Сега може да устои на неговата или нейната раменете и никога отново, 1061 00:52:30,190 --> 00:52:32,465 мисля за това какво означава това да вземете един телефонен указател. 1062 00:52:32,465 --> 00:52:34,090 Не мога просто да кажа, вземете телефонния указател. 1063 00:52:34,090 --> 00:52:36,690 И това е точно това, което всички от нас, хората правеха тук. 1064 00:52:36,690 --> 00:52:38,940 >> Когато бяхме вероятно 1 годишен, 2-годишна възраст, 1065 00:52:38,940 --> 00:52:41,690 някой трябва да ни научи какво е означаваше да вземем един телефонен указател. 1066 00:52:41,690 --> 00:52:43,810 И оттогава, ние сме абстрахира 1067 00:52:43,810 --> 00:52:46,739 от тези, които много безинтересно механични стъпки. 1068 00:52:46,739 --> 00:52:48,530 И ние просто имаме интуитивно разбиране 1069 00:52:48,530 --> 00:52:50,480 за това какво означава да вземете един телефонен указател. 1070 00:52:50,480 --> 00:52:55,730 >> И вие може да се екстраполира сега до по-сложно things-- 1071 00:52:55,730 --> 00:52:57,640 изграждане на сграда. 1072 00:52:57,640 --> 00:52:59,940 Подобно, за някои хора, че действително има значение. 1073 00:52:59,940 --> 00:53:03,080 За изпълнители, архитекти, че има някакъв смисъл. 1074 00:53:03,080 --> 00:53:06,400 И те ще знаят какво да правят, ако Казах, отидете построи сграда. 1075 00:53:06,400 --> 00:53:10,520 >> Но повечето от нас в залата не можаха се справят с това ниво на абстракция. 1076 00:53:10,520 --> 00:53:14,850 Вие трябва да кажете ни харесва иди лопата и иди се бетона 1077 00:53:14,850 --> 00:53:17,250 и ноктите на парчета дърво заедно и всичко останало 1078 00:53:17,250 --> 00:53:18,830 участва в изграждането на една сграда. 1079 00:53:18,830 --> 00:53:21,690 И това е, защото ние не трябва все още не са програмирани да се разбере 1080 00:53:21,690 --> 00:53:23,629 какво означава да се построи сграда. 1081 00:53:23,629 --> 00:53:24,920 Ние не разполагаме че абстракция. 1082 00:53:24,920 --> 00:53:26,570 Ние не разполагаме с тази функционалност. 1083 00:53:26,570 --> 00:53:29,930 >> И така, какво ще видите в програмни езици, като цяло, 1084 00:53:29,930 --> 00:53:34,570 особено по-модерни езици, като Java, PHP, Ruby, и Python, 1085 00:53:34,570 --> 00:53:37,610 те са много по-зрял отколкото по-старите езици, 1086 00:53:37,610 --> 00:53:40,140 като C и C ++ и още други. 1087 00:53:40,140 --> 00:53:42,580 И така, те идват с по- функционалност построен инча 1088 00:53:42,580 --> 00:53:45,640 Повече код е написан от хората в миналото 1089 00:53:45,640 --> 00:53:50,520 че сега можем да се обадите или призове или да използвате, тъй като аз съм намеквайки 1090 00:53:50,520 --> 00:53:52,231 при с това подчерта линия тук. 1091 00:53:52,231 --> 00:53:55,230 И така, въпреки че ние не говорим за езици за програмиране по себе си, 1092 00:53:55,230 --> 00:54:00,230 Просто Псевдокод код, всички от идеи са все още в тази дискусия. 1093 00:54:00,230 --> 00:54:04,600 И се оказва, точност е супер важно, тъй като е абстракция. 1094 00:54:04,600 --> 00:54:06,570 И нека да се опитаме да съобщава, че, както следва. 1095 00:54:06,570 --> 00:54:11,000 >> Аз случайно можеше да развали това от мига на слайд на екрана 1096 00:54:11,000 --> 00:54:12,260 преждевременно. 1097 00:54:12,260 --> 00:54:16,550 Но нека да попитам за един смел доброволец, ако нямате нищо против да идва. 1098 00:54:16,550 --> 00:54:19,040 Вие искате да бъде в предната част на фотоапарат, ако сте ОК с това. 1099 00:54:19,040 --> 00:54:24,950 Някой иска да излезе и да даде инструкции на колегите си тук? 1100 00:54:24,950 --> 00:54:29,540 Просто трябва да дойдат тук и стоя тук и да кажа няколко думи. 1101 00:54:29,540 --> 00:54:32,890 >> Виктория се усмихва най-много и избягване на очите ми най-много. 1102 00:54:32,890 --> 00:54:34,740 Бихте ли били склонни да дойде нагоре? 1103 00:54:34,740 --> 00:54:35,240 ДОБРЕ. 1104 00:54:35,240 --> 00:54:38,480 И ако всички останали в местата си може да вземе парче от парче хартия, 1105 00:54:38,480 --> 00:54:39,750 ако обичаш. 1106 00:54:39,750 --> 00:54:40,760 Каширана хартия е добре. 1107 00:54:40,760 --> 00:54:41,990 Хайде около този начин. 1108 00:54:41,990 --> 00:54:44,580 Или някои от хартията, която ти бяха дадени вчера, 1109 00:54:44,580 --> 00:54:46,493 просто някакъв празен лист на хартия, ако можеше. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 И ако не разполагат с никакви, просто питам съседа си, ако можеше. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Така че за момента, за този пример, Виктория 1114 00:55:07,580 --> 00:55:11,520 ще играе ролята на програмист, инженер, който 1115 00:55:11,520 --> 00:55:16,130 Необходимо е да програмирате всички, като компютрите, за да се направи нещо. 1116 00:55:16,130 --> 00:55:19,570 И ще видим какво предположения решите да направите. 1117 00:55:19,570 --> 00:55:22,700 Ще видим как точна тя избира да бъде. 1118 00:55:22,700 --> 00:55:26,220 И ако тази демонстрация отива педагогически добре, много грешки 1119 00:55:26,220 --> 00:55:29,220 ще бъде направена, че след това ще използваме че като възможност за дискусия. 1120 00:55:29,220 --> 00:55:32,010 Но предизвикателството за необходимата е да се избегнат тези грешки, 1121 00:55:32,010 --> 00:55:32,896 да бъде добър програмист. 1122 00:55:32,896 --> 00:55:35,520 И така предизвикателството под ръка, ако бихте харесали да ходи тук, 1123 00:55:35,520 --> 00:55:38,799 е пред Виктория на екрана here-- и да се надяваме, никой от вас 1124 00:55:38,799 --> 00:55:40,590 запомни това, когато аз светна на екрана. 1125 00:55:40,590 --> 00:55:44,097 И не се обърнеш към всички, защото има и друг екран в тази стая 1126 00:55:44,097 --> 00:55:44,930 че мога да се изключи. 1127 00:55:44,930 --> 00:55:46,620 Така че не се обръща. 1128 00:55:46,620 --> 00:55:49,090 >> В предната част на Виктория е, че един и същ писък. 1129 00:55:49,090 --> 00:55:54,170 И работата си сега, е да ви кажа всичко на вашия лист хартия какво да се направи. 1130 00:55:54,170 --> 00:55:57,020 И ние ще видим, въз основа на вербални инструкции сам, 1131 00:55:57,020 --> 00:56:00,020 компютърен код, ако щете, как точно вашите рисунки 1132 00:56:00,020 --> 00:56:02,330 are-- си реализации са. 1133 00:56:02,330 --> 00:56:02,980 Има смисъл? 1134 00:56:02,980 --> 00:56:03,604 >> АУДИТОРИЯ: Да. 1135 00:56:03,604 --> 00:56:04,980 DAVID Малан: ОК, изпълни. 1136 00:56:04,980 --> 00:56:06,030 >> АУДИТОРИЯ: Начертайте квадрат. 1137 00:56:06,030 --> 00:56:09,050 >> [СМЯХ] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID Малан: И никой могат да се задават въпроси. 1139 00:56:12,310 --> 00:56:13,720 Може да направи само това, което е казал. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 О, и ако имате днешните пързалки отвори в раздела, не гледам на раздела. 1142 00:56:22,550 --> 00:56:23,670 ДОБРЕ? 1143 00:56:23,670 --> 00:56:26,135 >> АУДИТОРИЯ: ОК, начертайте кръг. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 А slope-- мога да кажа наклон? 1146 00:56:34,872 --> 00:56:35,830 DAVID Малан: До вас. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 АУДИТОРИЯ: A наклон. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 И един триъгълник. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID Малан: Добре. 1152 00:56:50,850 --> 00:56:52,286 И остана тук само за миг. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 И аз ще дойда наоколо в един момент. 1155 00:56:58,910 --> 00:57:02,420 И няма нужда да се сложи имената ви върху него. 1156 00:57:02,420 --> 00:57:05,030 Нека дойде около и събира вашите рисунки, 1157 00:57:05,030 --> 00:57:08,330 ако нямате нищо против да ги разкъсване. 1158 00:57:08,330 --> 00:57:12,110 >> Ето какво се върнахме. 1159 00:57:12,110 --> 00:57:14,770 Аз ще го проектира на екрана. 1160 00:57:14,770 --> 00:57:18,310 Виждам, квадрат, кръг, наклон, и триъгълник. 1161 00:57:18,310 --> 00:57:20,130 Така че това е един от отговорите там. 1162 00:57:20,130 --> 00:57:23,640 И let's-- Опа. 1163 00:57:23,640 --> 00:57:25,370 Благодаря. 1164 00:57:25,370 --> 00:57:30,710 Ето още един асортимент, и един зад него. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Така че всички те изглежда да улови духа. 1167 00:57:37,120 --> 00:57:38,600 Благодаря. 1168 00:57:38,600 --> 00:57:44,970 Има и още, и ето още един. 1169 00:57:44,970 --> 00:57:51,590 тълкуването на наклон е малко по-различна, малко по-закръглена. 1170 00:57:51,590 --> 00:57:57,140 И най-близо, или защото на чудесен специфичност, с които сте 1171 00:57:57,140 --> 00:58:03,520 описано, или може би ти вид Видях го преди, това е наистина 1172 00:58:03,520 --> 00:58:06,340 какво Victoria е всъщност описване. 1173 00:58:06,340 --> 00:58:09,190 >> Но сега, тези от вас, които не успя да го съвсем прав, 1174 00:58:09,190 --> 00:58:11,140 нека да предложи някои възражения тук. 1175 00:58:11,140 --> 00:58:13,770 Така Виктория първо каза начертаете квадрат. 1176 00:58:13,770 --> 00:58:15,830 И сега, можем да предположим, заради днес 1177 00:58:15,830 --> 00:58:17,538 че всеки знае, как да се направи квадрат. 1178 00:58:17,538 --> 00:58:20,590 Но това не е изцяло ясно, нали? 1179 00:58:20,590 --> 00:58:23,220 Как иначе може да имате съставен квадрат, или когато 1180 00:58:23,220 --> 00:58:27,114 може да бъде част от неяснотите тук за компютъра? 1181 00:58:27,114 --> 00:58:28,280 АУДИТОРИЯ: Местоположение и размер. 1182 00:58:28,280 --> 00:58:28,980 DAVID Малан: Местоположение, нали? 1183 00:58:28,980 --> 00:58:32,070 Всички сте имали хартия на някои форма, обикновено правоъгълници, но малко по- 1184 00:58:32,070 --> 00:58:32,830 различни размери. 1185 00:58:32,830 --> 00:58:36,250 Но вие със сигурност може да са изготвени, ако искаш, огромен площад, може би 1186 00:58:36,250 --> 00:58:37,220 малък квадрат. 1187 00:58:37,220 --> 00:58:38,417 Може би, това е завъртян. 1188 00:58:38,417 --> 00:58:39,500 Не мисля, че видяхме, че. 1189 00:58:39,500 --> 00:58:41,790 Но можеше да бъде и по-диамант като, но все пак, въпреки всичко, 1190 00:58:41,790 --> 00:58:42,900 математически квадрат. 1191 00:58:42,900 --> 00:58:44,850 Така че това е може би най двусмислен. 1192 00:58:44,850 --> 00:58:46,709 >> Тогава тя каза, начертайте кръг. 1193 00:58:46,709 --> 00:58:49,250 Някои от вас го направи до това, което не е неразумно, 1194 00:58:49,250 --> 00:58:52,450 защото хората са склонни да мислят или да чете дясно на ляво в повечето езици, така че не 1195 00:58:52,450 --> 00:58:53,017 грешно предположение. 1196 00:58:53,017 --> 00:58:55,100 Но този кръг може да има бил вътре в квадрата, 1197 00:58:55,100 --> 00:58:57,600 може да са били около квадрат, може да са били на друго място 1198 00:58:57,600 --> 00:58:59,480 на листа, така че може би двусмислен. 1199 00:58:59,480 --> 00:59:03,290 >> Наклон може да са били може би като най-много свободи устно 1200 00:59:03,290 --> 00:59:04,200 с какво означава това. 1201 00:59:04,200 --> 00:59:06,980 И някои от вас се тълкува то като деформирано линия 1202 00:59:06,980 --> 00:59:08,560 или по права линия или други подобни. 1203 00:59:08,560 --> 00:59:11,719 И тогава триъгълник, също биха могли да имат е разположено в редица начини. 1204 00:59:11,719 --> 00:59:14,760 Така че в кратко, дори с нещо, което ти поглед и да сте като, уау, така 1205 00:59:14,760 --> 00:59:17,020 прост, едно дете може да изготви този, добре не 1206 00:59:17,020 --> 00:59:19,640 Наистина, освен ако не сте супер, супер убедителен 1207 00:59:19,640 --> 00:59:22,045 и кажете на компютъра точно какво да правят. 1208 00:59:22,045 --> 00:59:24,420 Така че, ако бихме могли, ако имате друг лист хартия, нека 1209 00:59:24,420 --> 00:59:26,710 опитайте още веднъж. 1210 00:59:26,710 --> 00:59:29,880 И аз ще дам Victoria един друг пример на екрана тук. 1211 00:59:29,880 --> 00:59:34,060 И отново, не се обърнеш и не гледам на слайдовете. 1212 00:59:34,060 --> 00:59:37,304 И аз ще я дам малко време да мисля за това как да се опише това. 1213 00:59:37,304 --> 00:59:39,012 Не им позволявайте да видите страха в очите ти. 1214 00:59:39,012 --> 00:59:40,820 >> [СМЯХ] 1215 00:59:40,820 --> 00:59:43,710 >> И отново, този път на лоста някои от тези храна за вкъщи 1216 00:59:43,710 --> 00:59:48,130 и се опитайте да получите почти всеки поне правилния отговор. 1217 00:59:48,130 --> 00:59:52,260 >> АУДИТОРИЯ: ОК, да вземе парче хартия, изглежда 1218 00:59:52,260 --> 00:59:54,500 в средата на това парче хартия. 1219 00:59:54,500 --> 00:59:59,591 В средата на това парче на хартия, направи куб. 1220 00:59:59,591 --> 01:00:01,244 >> [СМЯХ] 1221 01:00:01,244 --> 01:00:02,660 DAVID Малан: Какво научихме? 1222 01:00:02,660 --> 01:00:03,540 Бяхме толкова близо. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 ОК, повтарям, ако може, за всеки. 1225 01:00:09,045 --> 01:00:13,210 >> АУДИТОРИЯ: В средата на парче хартия, направи един обект, 1226 01:00:13,210 --> 01:00:14,842 който прилича на куб. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID Малан: ОК, това е всичко ти се да се работи. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Позволете ми да бъде аналитично и не толкова критична, 1230 01:00:23,080 --> 01:00:25,720 но да се направи твърдението че Виктория определено 1231 01:00:25,720 --> 01:00:28,967 изглежда да се мисли в много абстракции от високо ниво, които 1232 01:00:28,967 --> 01:00:29,800 Не е неразумно. 1233 01:00:29,800 --> 01:00:32,160 Защото в противен случай, всички ние бихме бъде доста нефункционално, 1234 01:00:32,160 --> 01:00:35,740 ако ние трябваше да бъде все така прецизен с всичко, което правим в света. 1235 01:00:35,740 --> 01:00:38,890 >> Но казвайки отидете на middle-- I мислех, че сме на такава добра песен 1236 01:00:38,890 --> 01:00:42,340 там, като отидете на много средата на страницата, и след това се направи куб. 1237 01:00:42,340 --> 01:00:45,730 Така че тя си мисли в абстракции, защото тя е все още гледане 1238 01:00:45,730 --> 01:00:48,490 това, което е на екрана, както е наистина един куб. 1239 01:00:48,490 --> 01:00:51,185 Но има толкова много възможности за тълкуване там. 1240 01:00:51,185 --> 01:00:53,560 И в действителност, има толкова много други начини, по които биха могли да изразят 1241 01:00:53,560 --> 01:00:55,101 че, който ще предложи в един миг. 1242 01:00:55,101 --> 01:00:59,770 Така че тук имаме едно въплъщение на picture-- whoops-- този, 1243 01:00:59,770 --> 01:01:02,830 въплъщение на снимката, толкова по- малко три размерност към него, 1244 01:01:02,830 --> 01:01:04,160 което е хубаво. 1245 01:01:04,160 --> 01:01:08,470 >> Ето още един, където имате същото, въпреки че това е вид на отворен куб. 1246 01:01:08,470 --> 01:01:12,020 Някои хора го взеха малко по-плосък, двуизмерен. 1247 01:01:12,020 --> 01:01:13,910 И това е добре. 1248 01:01:13,910 --> 01:01:17,380 Така че, наистина в център на хартията. 1249 01:01:17,380 --> 01:01:22,720 Това мисля, че ще като, защото ако се върнем тук, 1250 01:01:22,720 --> 01:01:25,130 това е, което тя описваше. 1251 01:01:25,130 --> 01:01:29,570 Така че сега, нека да предложи как иначе ние може да се опише тази ситуация. 1252 01:01:29,570 --> 01:01:34,070 >> Обратно, в деня, един от най- по-общи начини да се научи програмиране 1253 01:01:34,070 --> 01:01:38,900 беше да се напише код, пише линии на инструкции, 1254 01:01:38,900 --> 01:01:42,640 че контролира малко костенурка на екрана. 1255 01:01:42,640 --> 01:01:45,660 Лого и други варианти на този е името на езика. 1256 01:01:45,660 --> 01:01:47,550 И костенурката е живял в един свят. 1257 01:01:47,550 --> 01:01:49,970 >> Така че предполагам, че тази правоъгълна пространство е неговият свят. 1258 01:01:49,970 --> 01:01:53,340 И вие ще започнете от assuming-- I наистина не знам как да се направи костенурка, 1259 01:01:53,340 --> 01:01:54,740 така че нека да го направя по този начин. 1260 01:01:54,740 --> 01:01:57,340 И тогава той има черупка и след това може би някои крака. 1261 01:01:57,340 --> 01:01:59,840 Така че може да се наложи тази малка характер на екрана. 1262 01:01:59,840 --> 01:02:02,270 >> И обекта на настоящото език за програмиране 1263 01:02:02,270 --> 01:02:06,070 беше да се принудят костенурката да отиде нагоре, надолу, наляво, надясно 1264 01:02:06,070 --> 01:02:08,420 и да постави писалката надолу или вземете писалка си, 1265 01:02:08,420 --> 01:02:12,720 така че той в действителност може да се направи на екрана в тази много плоска правоъгълна свят. 1266 01:02:12,720 --> 01:02:16,850 Така че, когато си мислех, че може би ще, и къде трябва да помисли за гмуркане 1267 01:02:16,850 --> 01:02:19,520 до психически, когато се описват инструкции по-общо, 1268 01:02:19,520 --> 01:02:21,720 Аз твърдя, е сложиш писалка надолу в middle-- 1269 01:02:21,720 --> 01:02:23,100 и ние ще се отървете от костенурка, защото аз наистина не може да 1270 01:02:23,100 --> 01:02:24,680 пази го рисуване много добре. 1271 01:02:24,680 --> 01:02:27,170 >> И сега, как иначе би могъл Казвам се направи куб? 1272 01:02:27,170 --> 01:02:32,830 Е, може да се каже нещо подобно равенство диагонална линия на североизток, например, 1273 01:02:32,830 --> 01:02:35,182 или под ъгъл от 45 градуса нагоре. 1274 01:02:35,182 --> 01:02:36,640 И това може да ми спечелиха тук. 1275 01:02:36,640 --> 01:02:38,380 И аз съм доста далеч от куба. 1276 01:02:38,380 --> 01:02:42,430 Но сега, мога да кажа нещо като се обърнат на 90 градуса наляво 1277 01:02:42,430 --> 01:02:47,370 и начертайте линия на еднаква дължина северозапад. 1278 01:02:47,370 --> 01:02:49,470 И мога да продължа с подобни посоки. 1279 01:02:49,470 --> 01:02:50,720 И това няма да бъде лесно. 1280 01:02:50,720 --> 01:02:53,345 И честно казано, ние вероятно ще са били тук в продължение на пет минути. 1281 01:02:53,345 --> 01:02:59,600 Но може би щяхме да сме стигнали до нещо, което в края на деня, 1282 01:02:59,600 --> 01:03:04,280 завършва като един куб, но ние хвърли вътре, че абстракция 1283 01:03:04,280 --> 01:03:06,370 да го направи при такава ниска ниво, че наистина не може да 1284 01:03:06,370 --> 01:03:09,795 виж това, което правите, докато цялото нещо е всъщност има на страницата. 1285 01:03:09,795 --> 01:03:12,670 И така, това е общ принцип, отново, на programming-- тази идея 1286 01:03:12,670 --> 01:03:13,320 на абстракция. 1287 01:03:13,320 --> 01:03:15,920 Това е толкова прекрасно мощен, защото отново, 1288 01:03:15,920 --> 01:03:19,281 Тя току-що каза, нарисувате куб, който всички ни почти ще гроквам много бързо. 1289 01:03:19,281 --> 01:03:21,030 Ние просто ще се разбере, ОК, нарисувате куб. 1290 01:03:21,030 --> 01:03:24,030 Ние може и да не знаят ориентацията, така че ние може да бъде малко по-точни, 1291 01:03:24,030 --> 01:03:26,297 но най-общо можем да си представим или какво е куб. 1292 01:03:26,297 --> 01:03:28,130 И това е полезно, защото ако всеки ти път 1293 01:03:28,130 --> 01:03:31,540 седна като програмист в клавиатурата, за да пишат код, 1294 01:03:31,540 --> 01:03:33,912 ако трябваше да мисли по такъв ниско ниво, никой от нас 1295 01:03:33,912 --> 01:03:35,120 някога ще се върши нищо. 1296 01:03:35,120 --> 01:03:38,259 И разбира се, никой от нас не би наслаждавайте на процеса на писане на код. 1297 01:03:38,259 --> 01:03:41,550 Това би било като писане в 0 и 1 е, който честно казано не беше всичко, което отдавна 1298 01:03:41,550 --> 01:03:43,680 хората пишеха код в 0 и 1 в. 1299 01:03:43,680 --> 01:03:46,960 И ние много бързо дойде с тези по-високи languages-- ниво 1300 01:03:46,960 --> 01:03:49,410 C ++ и Java и др. 1301 01:03:49,410 --> 01:03:52,500 >> Така че нека се опитаме това още веднъж, само за да флип масите, така че всички от нас 1302 01:03:52,500 --> 01:03:55,450 има шанс да се мисли в доста по същия начин. 1303 01:03:55,450 --> 01:03:59,230 Можем ли да получите още един доброволец тази време, за да излезе на дъската и да изготви, 1304 01:03:59,230 --> 01:04:01,480 Не четеш? 1305 01:04:01,480 --> 01:04:02,070 Да, ОК. 1306 01:04:02,070 --> 01:04:04,820 Бен, хайде нагоре. 1307 01:04:04,820 --> 01:04:08,510 И, Бен, в този случай, след като изправени пред дъската, не погледнете наляво, 1308 01:04:08,510 --> 01:04:09,370 не изглеждат добре. 1309 01:04:09,370 --> 01:04:12,367 Само прави това, което си колеги тук да ви кажа. 1310 01:04:12,367 --> 01:04:14,950 А за всички останали в стая, вече сте програмист. 1311 01:04:14,950 --> 01:04:16,020 Той е на компютъра. 1312 01:04:16,020 --> 01:04:21,395 И на снимката съм избрал тук предварително е този тук. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Те just-- си мислят на забавен виц е всичко. 1315 01:04:27,660 --> 01:04:31,510 >> Така ще се някой искал да доброволец първата инструкция 1316 01:04:31,510 --> 01:04:35,470 или изявление, че трябва писалка командването на Бен? 1317 01:04:35,470 --> 01:04:40,850 И ние ще направим това заедно, може би една инструкция от всеки човек. 1318 01:04:40,850 --> 01:04:41,440 Съжалявам? 1319 01:04:41,440 --> 01:04:42,440 >> АУДИТОРИЯ: Начертайте кръг. 1320 01:04:42,440 --> 01:04:45,866 DAVID Малан: Начертайте кръг е първото нещо, което чух. 1321 01:04:45,866 --> 01:04:47,100 >> АУДИТОРИЯ: До върха. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID Малан: До върха. 1323 01:04:48,140 --> 01:04:52,504 ОК, ние можем да ви позволи да изтриете, отмените. 1324 01:04:52,504 --> 01:04:53,420 И сега, някой друг. 1325 01:04:53,420 --> 01:04:55,994 Дан, ще ви бъде удобно предлага следващата инструкция? 1326 01:04:55,994 --> 01:05:02,070 >> АУДИТОРИЯ: Разбира се, привлече центъра от дъното на кръга, 1327 01:05:02,070 --> 01:05:07,121 с small-- малко малко пространство от това, 1328 01:05:07,121 --> 01:05:15,420 нарисувате права линия до три четвърти от пътя надолу борда 1329 01:05:15,420 --> 01:05:17,845 лек ъгъл на лявата си страна. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID Малан: Добро. 1332 01:05:22,620 --> 01:05:24,086 >> АУДИТОРИЯ: лек ъгъл. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID Малан: Undo, Control-Z. ДОБРЕ. 1334 01:05:32,807 --> 01:05:34,890 Андрю, който искате да предлагаме до следващата инструкция? 1335 01:05:34,890 --> 01:05:35,515 >> АУДИТОРИЯ: Разбира се. 1336 01:05:35,515 --> 01:05:43,250 От дъното на тази линия, още леко angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops-- може би около една трета от дължината [недоловим], 1338 01:05:49,024 --> 01:05:52,928 лек ъгъл надолу и като трета от дължината на [недоловим]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Така че, да, от тази точка, начертайте линия трета 1341 01:06:00,578 --> 01:06:04,150 от дължината на предходната Онлайн отдалечен вляво. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID Малан: Това ОК? 1344 01:06:10,040 --> 01:06:12,330 Права линия, това е ОК? 1345 01:06:12,330 --> 01:06:14,900 ОК, Оливие, който искате да предложи на следващата? 1346 01:06:14,900 --> 01:06:28,564 >> АУДИТОРИЯ: [недоловим] от дъното на кръга, [недоловим]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Равен на дясната ръка на [недоловим] сантиметра. 1349 01:06:45,126 --> 01:06:46,560 >> [СМЯХ] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID Малан: Мисля, че ти започваш да се Трябва да конвертирате, че е инча тук. 1351 01:06:49,872 --> 01:06:50,764 >> АУДИТОРИЯ: Спрете. 1352 01:06:50,764 --> 01:06:52,186 >> [СМЯХ] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID Малан: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?], Който искате да предложи на следващата? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> АУДИТОРИЯ: Начертайте [недоловим] горната [недоловим] същото. 1357 01:07:15,443 --> 01:07:28,829 [Недоловим] кръг, привлече към [Недоловим] и изготви [недоловим]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID Малан: ОК, не повече отмените. 1360 01:07:36,730 --> 01:07:38,390 Нека да направим един или два повече инструкции. 1361 01:07:38,390 --> 01:07:40,825 Крис, който искате да предложим един? 1362 01:07:40,825 --> 01:07:46,182 >> АУДИТОРИЯ: На дъното на кръга, [недоловим] 1363 01:07:46,182 --> 01:07:51,528 изготвяне на равна линия разплиска надолу в ляво [недоловим]. 1364 01:07:51,528 --> 01:07:59,304 1365 01:07:59,304 --> 01:08:00,590 >> DAVID Малан: OK. 1366 01:08:00,590 --> 01:08:01,170 Андрю? 1367 01:08:01,170 --> 01:08:02,472 Ние did-- Карим? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> АУДИТОРИЯ: Като се започне от дясната линия, края на лявата линия, на дъното, 1370 01:08:13,765 --> 01:08:21,012 започваш да се прави за със същата дължина като тази линия 1371 01:08:21,012 --> 01:08:27,680 сте, изготвяне на правото [недоловим]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Недоловим] градуса, така че [недоловим] градуси от дясната страна. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID Малан: Добре. 1376 01:08:43,500 --> 01:08:44,029 Нека пауза. 1377 01:08:44,029 --> 01:08:44,950 Не се обръщай все още. 1378 01:08:44,950 --> 01:08:46,783 Нека пауза, и нека си опитате един друг опит 1379 01:08:46,783 --> 01:08:48,850 преди да разкрие на Бен това, което той е бил рисуване. 1380 01:08:48,850 --> 01:08:51,189 Можете ли да разбъркате Бен да на right-- или Всъщност, 1381 01:08:51,189 --> 01:08:54,080 Не, нека просто да ви дам друга дъска, още по-добре. 1382 01:08:54,080 --> 01:08:57,640 Така че би някой сега харесва да отнеме повече от подхода 1383 01:08:57,640 --> 01:09:02,149 че Виктория се по-рано, когато ние говорим в по-високо ниво абстракция 1384 01:09:02,149 --> 01:09:05,149 и само едно изречение или две опише с Бен 1385 01:09:05,149 --> 01:09:07,229 какво да се направи, без да Първи в плевелите, 1386 01:09:07,229 --> 01:09:10,670 така да се каже, при това по-ниско ниво? 1387 01:09:10,670 --> 01:09:11,206 Виктория. 1388 01:09:11,206 --> 01:09:11,706 [СМЯХ] 1389 01:09:11,706 --> 01:09:14,249 АУДИТОРИЯ: Начертайте фигура на пешеходно човек. 1390 01:09:14,249 --> 01:09:18,866 И краката и ръцете му трябва да бъде от дясната страна. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID Малан: ОК, това е всичко, което получаваш. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 Добре. 1394 01:09:27,710 --> 01:09:31,609 Защо да не разкрие на Бен, което той направи. 1395 01:09:31,609 --> 01:09:32,890 Така аплодисменти. 1396 01:09:32,890 --> 01:09:35,700 Това беше най-трудното може би. 1397 01:09:35,700 --> 01:09:37,931 >> Така че, въпреки че ние не говорим в доста глупави термини 1398 01:09:37,931 --> 01:09:39,680 около просто рисунка снимки, се надяваме, че 1399 01:09:39,680 --> 01:09:44,226 наистина могат да оценят степента на изразителност, че може да е необходимо 1400 01:09:44,226 --> 01:09:45,850 с цел да се каже компютър какво да правя. 1401 01:09:45,850 --> 01:09:50,370 И в действителност, че Бен е в състояние да направи това толкова бързо 1402 01:09:50,370 --> 01:09:54,227 е нещо като доказателство за използване на език, може би по-високо ниво 1403 01:09:54,227 --> 01:09:57,060 версия на английски език, която го позволява да се използва само думи, или чуят думи 1404 01:09:57,060 --> 01:09:59,990 от Виктория, че го позволи тези abstractions-- просто изготвя 1405 01:09:59,990 --> 01:10:03,020 цифра, ходене до right-- че нещо има 1406 01:10:03,020 --> 01:10:07,100 някои семантична смисъл на това, че не е почти толкова очевидни, когато сте просто 1407 01:10:07,100 --> 01:10:10,310 казвайки, сложи си писалка надолу, изготвят надясно, направи се на ляво. 1408 01:10:10,310 --> 01:10:12,420 >> И така, това също е много често при програмиране. 1409 01:10:12,420 --> 01:10:15,253 Това ще се каже, че като много ниско ниво на езика, програмиране 1410 01:10:15,253 --> 01:10:16,730 в 0 и 1, ако щете. 1411 01:10:16,730 --> 01:10:19,320 И това ще бъде по-високо ниво език за програмиране в Java, 1412 01:10:19,320 --> 01:10:20,278 Или нещо такова. 1413 01:10:20,278 --> 01:10:22,050 Малко по-на опростяване, но това е 1414 01:10:22,050 --> 01:10:24,310 на нещо като емоционална чувството, че се чувствате, когато 1415 01:10:24,310 --> 01:10:26,630 с помощта на един вид на нещо, или друго. 1416 01:10:26,630 --> 01:10:32,650 Малко на безсилие тук от необходимостта за такава точност, но възможност 1417 01:10:32,650 --> 01:10:34,930 да бъде малко по-свободен с тълкуването тук. 1418 01:10:34,930 --> 01:10:38,060 Но, разбира се, буболечки може да се получи като резултат. 1419 01:10:38,060 --> 01:10:40,500 >> Ако искате най-home-- ние няма да направи това един в class-- 1420 01:10:40,500 --> 01:10:41,900 но ако искате да донесе този дом, 1421 01:10:41,900 --> 01:10:43,387 Мислех, че ще се потопите в това. 1422 01:10:43,387 --> 01:10:45,970 Така че, ако искате да играете тази игра с вашата значими други 1423 01:10:45,970 --> 01:10:49,180 или деца или други подобни, вие може да се ползва от това, както добре. 1424 01:10:49,180 --> 01:10:54,460 >> Така че нека да вървим напред и да разгледаме един последен нещо тук за изчислителна мислене. 1425 01:10:54,460 --> 01:10:57,010 И това ни води до John Oliver, не за клипа 1426 01:10:57,010 --> 01:11:00,070 може да си видял снощи, но в по-малко от последните броеве. 1427 01:11:00,070 --> 01:11:03,310 Няколко месеца по-назад, Volkswagen взе доста критики 1428 01:11:03,310 --> 01:11:05,651 поради каква причина, ако знаете? 1429 01:11:05,651 --> 01:11:07,025 Какви са попаднали в беда за? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Да, така emissions-- те се опитват да победи емисии 1432 01:11:14,030 --> 01:11:19,100 тестове по същество като им коли замърсяват околната среда по-малко 1433 01:11:19,100 --> 01:11:23,620 когато колите им са били тествани и замърсяват околната среда повече 1434 01:11:23,620 --> 01:11:25,547 когато колите не са били тествани. 1435 01:11:25,547 --> 01:11:28,630 И това, което е все по-интересно в света, тъй като може да се наложи подразбираща 1436 01:11:28,630 --> 01:11:34,072 от дискусии на like-- какво е it-- CarPlay, софтуер на Apple за автомобили 1437 01:11:34,072 --> 01:11:35,780 и факта, че много на нас все по-често 1438 01:11:35,780 --> 01:11:38,390 имат сензорни екрани в нашите автомобили, има една плашеща сума 1439 01:11:38,390 --> 01:11:41,250 на софтуер в народната коли днес, което 1440 01:11:41,250 --> 01:11:45,650 честно казано отваря цяло кутията на Пандора, когато става въпрос за сигурност и физическа опасност. 1441 01:11:45,650 --> 01:11:48,070 Но за днес, нека съсредоточи върху точно това, което е 1442 01:11:48,070 --> 01:11:52,170 участва в писането на софтуер които може да са gamed системата. 1443 01:11:52,170 --> 01:11:54,510 >> За определянето на проблем, за незапознатите, 1444 01:11:54,510 --> 01:11:55,740 Нека да разгледаме най-Джон Оливър. 1445 01:11:55,740 --> 01:11:58,115 А за тези, запознати с проблема, нека да разгледаме това 1446 01:11:58,115 --> 01:12:00,480 по един забавен обектив чрез Джон Оливър, както добре. 1447 01:12:00,480 --> 01:12:05,810 Така че нека ме удари атака по това, аз мисля, три минути въвеждане. 1448 01:12:05,810 --> 01:12:07,074 По дяволите. 1449 01:12:07,074 --> 01:12:07,740 [Възпроизвеждане на видео] 1450 01:12:07,740 --> 01:12:08,170 -Cars-- 1451 01:12:08,170 --> 01:12:09,919 DAVID Малан: Очевидно е, че на YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --Правила умните герои в Бързи и яростни филмите. 1453 01:12:12,500 --> 01:12:16,080 Тази седмица, немски автомобилен производител Volkswagen се озова 1454 01:12:16,080 --> 01:12:19,430 в центъра на скандал на потенциално наказателни пропорции. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Се подготвят за милиарди в глоби, възможни наказателни такси 1456 01:12:23,020 --> 01:12:25,530 за нейните ръководители, като компанията се извинява 1457 01:12:25,530 --> 01:12:28,790 за манипулиране на 11 милиона автомобила до помогне да го победи изпитвания за емисии. 1458 01:12:28,790 --> 01:12:32,110 >> -Certain Дизелови модели са предназначени с усъвършенстван софтуер, който 1459 01:12:32,110 --> 01:12:35,410 употребяван информация, включително позицията на волана и превозното средство 1460 01:12:35,410 --> 01:12:38,820 скорост, за да се определи колата подложени на изпитване на емисиите. 1461 01:12:38,820 --> 01:12:42,620 По силата на това обстоятелство, двигателят ще намали вредните емисии. 1462 01:12:42,620 --> 01:12:46,040 Но колата е нагласено да байпас че когато е се задвижва. 1463 01:12:46,040 --> 01:12:51,370 Емисиите увеличени 10 до 40 пъти над допустимите нива на EPA. 1464 01:12:51,370 --> 01:12:55,920 >> -Wow, От 10 до 40 пъти по-голяма от ЗООС позволява. 1465 01:12:55,920 --> 01:12:59,570 Това е най-лошото нещо, Volkswagen някога е направил, 1466 01:12:59,570 --> 01:13:04,200 е нещо, което може да се каже, ако никога не бях чувал за Втората световна война. 1467 01:13:04,200 --> 01:13:09,710 Но може би най-сигурният знак за това как много проблеми Volkswagen е в, 1468 01:13:09,710 --> 01:13:12,730 е, че хората в самото отгоре са се оттегли. 1469 01:13:12,730 --> 01:13:16,320 Главният изпълнителен директор подаде оставка в сряда, след като кодиране, за да се направи контрол щети, 1470 01:13:16,320 --> 01:13:20,380 казвайки, че е безкрайно съжалявам, които звучеше страхотно, докато се оказа, 1471 01:13:20,380 --> 01:13:22,920 той е бил само 10% съжалявам но бе нагласено устата си 1472 01:13:22,920 --> 01:13:25,600 за изкуствено повишаване на sorriness му. 1473 01:13:25,600 --> 01:13:29,700 А междувременно, САЩ на Volkswagen Главният имаше извинение на собствените си. 1474 01:13:29,700 --> 01:13:33,580 >> -Let Да сме наясно с това, Нашата компания е нечестно. 1475 01:13:33,580 --> 01:13:37,140 И в моите немски думи, ние са напълно прецаках. 1476 01:13:37,140 --> 01:13:41,360 >> -Да, Но тотално прецакани нагоре не са германски творби. 1477 01:13:41,360 --> 01:13:43,750 И на немски език има много красиви фрази 1478 01:13:43,750 --> 01:13:50,070 за да опише ситуации точно като този, като [немски], което означава приблизително, 1479 01:13:50,070 --> 01:13:52,870 тъгата, която идва от свързани с бизнеса лъжи, 1480 01:13:52,870 --> 01:13:59,060 или [НЕМСКИ], което се превежда като порицаване баща такива, включващи 1481 01:13:59,060 --> 01:14:00,352 облаци от бензин. 1482 01:14:00,352 --> 01:14:02,060 Това е един красив език. 1483 01:14:02,060 --> 01:14:04,660 Тя просто отплава от езика. 1484 01:14:04,660 --> 01:14:07,920 И между другото, докато този човек извинение може да звучи искрено, 1485 01:14:07,920 --> 01:14:12,260 това е да се отбележи, че говори в официален старт парти за 2016 г. 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, което означава, че скоро след като каза съжалявам, той каза, че това. 1487 01:14:17,310 --> 01:14:18,850 >> вие -Благодаря, че дойдохте. 1488 01:14:18,850 --> 01:14:19,630 Насладете се на вечерта. 1489 01:14:19,630 --> 01:14:21,300 До следващата е Лени Кравиц. 1490 01:14:21,300 --> 01:14:24,640 >> [МУЗИКА] 1491 01:14:24,640 --> 01:14:28,230 >> -OK, OK, която приключва на вашия извинение с до следващото 1492 01:14:28,230 --> 01:14:31,940 Лени Кравиц не прави крещя трезвен разкаяние. 1493 01:14:31,940 --> 01:14:35,830 Тя крещи, попитахме Bon Jovi, и той каза не. 1494 01:14:35,830 --> 01:14:38,600 марка на Volkswagen има бил силно повреден. 1495 01:14:38,600 --> 01:14:42,466 И честно казано, тяхната нова реклама кампания не е точно помага. 1496 01:14:42,466 --> 01:14:47,289 >> - [НЕМСКИ], ние от Volkswagen би желал да се извини за вас мами с 1497 01:14:47,289 --> 01:14:47,930 нашите превозни средства. 1498 01:14:47,930 --> 01:14:48,513 >> [END PLAYBACK] 1499 01:14:48,513 --> 01:14:54,090 DAVID Малан: Така че това е заобиколен начин of-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 това беше заобиколен начин на въвеждане на основен проблем 1501 01:14:58,730 --> 01:15:02,810 в областта на софтуера, което е, че трябва да се открие определени условия. 1502 01:15:02,810 --> 01:15:07,680 И така въпросът в ръка тук е, как една кола потенциално, 1503 01:15:07,680 --> 01:15:09,870 както са въведени в софтуера от тези програмисти, 1504 01:15:09,870 --> 01:15:11,850 открива, че всъщност това е, което се изпитва? 1505 01:15:11,850 --> 01:15:14,150 Така че, за да бъде супер ясно, това, което правеха 1506 01:15:14,150 --> 01:15:17,940 е, в среда, където програмистите измислили 1507 01:15:17,940 --> 01:15:20,460 колата беше тествани, те някак 1508 01:15:20,460 --> 01:15:24,840 колата отделят по-малко емисии, по-малко емисиите, така че по-малко токсични изпарения 1509 01:15:24,840 --> 01:15:25,470 и такива. 1510 01:15:25,470 --> 01:15:27,261 Но когато това е нормално шофиране на пътя, 1511 01:15:27,261 --> 01:15:30,350 той просто ще излъчват най-много замърсяване, както го исках. 1512 01:15:30,350 --> 01:15:33,870 >> И така, как бихме могли да напише Псевдокод за този алгоритъм? 1513 01:15:33,870 --> 01:15:37,820 Как бихме могли да напише Псевдокод за софтуер, работещ в колата? 1514 01:15:37,820 --> 01:15:43,390 Искам да кажа, по-накратко, то се свежда до нещо подобно. 1515 01:15:43,390 --> 01:15:48,000 ако се изпитва, отделят по-малко. 1516 01:15:48,000 --> 01:15:50,750 друго излъчва повече. 1517 01:15:50,750 --> 01:15:52,630 Но това е малко твърде високо ниво, нали? 1518 01:15:52,630 --> 01:15:58,580 >> Да се ​​опитаме да се потопите в това какво тази абстракция, че са тествани средства. 1519 01:15:58,580 --> 01:16:06,340 С други думи, дори и да не знаят нищо за коли, какъв вид на въпроси 1520 01:16:06,340 --> 01:16:13,440 може да ви попитам, за да се определи дали , което се изпитва, ако сте в колата? 1521 01:16:13,440 --> 01:16:19,638 Какви характеристики може да бъде Представяме ако една кола се тества? 1522 01:16:19,638 --> 01:16:21,026 >> АУДИТОРИЯ: Тестване оборудване. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID Малан: оборудване за изпитване. 1524 01:16:22,420 --> 01:16:26,060 Така че, ако тестване оборудване наблизо, след което отделят по-малко. 1525 01:16:26,060 --> 01:16:28,669 Така че бих могъл да си представя прилагане че с някакъв вид камери 1526 01:16:28,669 --> 01:16:29,960 или откриване на това, което става около вас. 1527 01:16:29,960 --> 01:16:32,870 И нека да предложи, че просто се чувства твърде сложно 1528 01:16:32,870 --> 01:16:37,914 действително да има допълнителен хардуер само за тази цел. 1529 01:16:37,914 --> 01:16:44,830 >> АУДИТОРИЯ: Ако сте в парк, ако си качулка е отворен. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID Малан: В парка или качулка отворен, така че е добре. 1531 01:16:47,320 --> 01:16:47,420 >> АУДИТОРИЯ: И колата работи. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID Малан: Така че това е по-малко повече concrete-- и колата работи. 1533 01:16:50,480 --> 01:16:55,690 Така че това ще бъде съюзът на няколко различни условия, ако щете. 1534 01:16:55,690 --> 01:16:59,227 Така че, ако колата е в парка, и дори макар че това е един много механично нещо 1535 01:16:59,227 --> 01:17:01,060 Обикновено, можех представете си за написването на софтуер, 1536 01:17:01,060 --> 01:17:03,476 особено, защото има често светло там тези дни, 1537 01:17:03,476 --> 01:17:07,400 Мога да си представя да е софтуер, който може да задава въпроси на скоростния лост 1538 01:17:07,400 --> 01:17:10,634 или не какво, вие сте в парка, са ти в кола, вие сте в обратната. 1539 01:17:10,634 --> 01:17:12,550 И мога да се върна на отговоря, че е или да 1540 01:17:12,550 --> 01:17:14,400 или не на тези видове въпроси. 1541 01:17:14,400 --> 01:17:17,630 >> И така, аз също може би отговоря въпрос като, е капака отворен. 1542 01:17:17,630 --> 01:17:21,860 Може би, има някакъв вид сензор че или ми дава обратно на 1 или 0, 1543 01:17:21,860 --> 01:17:23,720 вярно или невярно, предния капак е отворен. 1544 01:17:23,720 --> 01:17:28,180 И след това колата си, бих могъл да се открие че по някакъв начин чрез какъв механизъм? 1545 01:17:28,180 --> 01:17:30,430 Подобно, колата е в ход, I може да се открие, че това е по, 1546 01:17:30,430 --> 01:17:32,127 бих могъл да се открие по някакъв начин че колата е в движение? 1547 01:17:32,127 --> 01:17:32,881 >> Публика: RPMs. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID Малан: Да, така че има винаги, че игла, че 1549 01:17:35,190 --> 01:17:38,034 ви казва колко оборота в минутни колелата изпитват. 1550 01:17:38,034 --> 01:17:39,200 И за да мога да гледам това. 1551 01:17:39,200 --> 01:17:43,090 И ако това не е 0, че най-вероятно означава, колата е в движение. 1552 01:17:43,090 --> 01:17:45,400 Но ние трябва да бъдем по- малко внимателни там, 1553 01:17:45,400 --> 01:17:49,780 because-- нека да опрости this-- ако ние току-що каза, ако колата си, 1554 01:17:49,780 --> 01:17:53,070 ние не искаме просто да отделят по-малко, ние искаме, ако колата се движи 1555 01:17:53,070 --> 01:17:54,310 и това е, което се изпитва. 1556 01:17:54,310 --> 01:17:56,320 >> Така че има няколко други съставки, които хората 1557 01:17:56,320 --> 01:18:00,550 са хипотеза, софтуерът се прави, защото отсъства действителната изходния код, 1558 01:18:00,550 --> 01:18:05,130 можете само нещо като извод от физическите ефекти на колата за това какво 1559 01:18:05,130 --> 01:18:08,280 би могло да се случва под качулката в областта на софтуера. 1560 01:18:08,280 --> 01:18:17,090 Така че, ако колата работи и може би, да речем, задните колела не се движат, 1561 01:18:17,090 --> 01:18:19,420 може това да бъде показателно на някакъв тест? 1562 01:18:19,420 --> 01:18:22,830 Какво съм аз намеква тук? 1563 01:18:22,830 --> 01:18:24,830 Да, може би, това е на една на тези ролкови неща, 1564 01:18:24,830 --> 01:18:28,340 където като колелата се обръщат в предната или в задната част, 1565 01:18:28,340 --> 01:18:32,570 в зависимост от това дали е предно колело или задни задвижващи колела, така че половината от колелата 1566 01:18:32,570 --> 01:18:34,420 се движат, но Другите двама не са, които 1567 01:18:34,420 --> 01:18:36,320 е странно ситуация в реалния свят. 1568 01:18:36,320 --> 01:18:38,110 Ако се шофира на път, че не трябва да се случи. 1569 01:18:38,110 --> 01:18:40,568 Но ако сте в склад на някакъв вид валяк система, 1570 01:18:40,568 --> 01:18:41,630 че може наистина да се случи. 1571 01:18:41,630 --> 01:18:46,980 >> Мисля, че хората също предложените че може би, ако колата се движи и кормилната 1572 01:18:46,980 --> 01:18:51,300 Не колело се движи, че твърде може да е сигнал, 1573 01:18:51,300 --> 01:18:54,090 защото това е разумно като веднага по пътя. 1574 01:18:54,090 --> 01:18:57,960 Но дори и тогава, човекът е вероятно преместване тя малко или сигурност 1575 01:18:57,960 --> 01:18:59,100 в продължение на няколко секунди. 1576 01:18:59,100 --> 01:19:01,030 Или хода на минути, шансовете това са не 1577 01:19:01,030 --> 01:19:03,510 Ще се фиксират в точно същото положение. 1578 01:19:03,510 --> 01:19:05,440 >> С други думи, може да отнеме изваждане, 1579 01:19:05,440 --> 01:19:08,200 са ви се изпитва, и съборят тази функционалност 1580 01:19:08,200 --> 01:19:10,420 в тези съставни компоненти. 1581 01:19:10,420 --> 01:19:13,440 И това е наистина това, което на Volkswagen инженери по някакъв начин направиха. 1582 01:19:13,440 --> 01:19:17,070 Те пише софтуер съзнателно да се открие, ако колата се тества, 1583 01:19:17,070 --> 01:19:20,440 следователно отделят по-малко, в противен излъчват по обичайния начин. 1584 01:19:20,440 --> 01:19:22,690 >> И проблемът тук, твърде, е, че софтуерът не е 1585 01:19:22,690 --> 01:19:26,080 нещо, което наистина може да види, освен ако имате т.нар изходния код. 1586 01:19:26,080 --> 01:19:29,060 Така че има два различни типа code-- поне два различни вида 1587 01:19:29,060 --> 01:19:30,130 на код в света. 1588 01:19:30,130 --> 01:19:33,150 Има нещо, което се нарича източник код, който не е за разлика от това, което 1589 01:19:33,150 --> 01:19:37,240 ние сме били писане, изходния код. 1590 01:19:37,240 --> 01:19:40,099 >> Това е изходен код, написани на на език, наречен Псевдокод, 1591 01:19:40,099 --> 01:19:41,640 което е просто нещо, английски, подобни. 1592 01:19:41,640 --> 01:19:43,140 Няма никаква официална дефиниция за него. 1593 01:19:43,140 --> 01:19:46,770 Но С и Java, C ++, тези, са всички официални езици, които, 1594 01:19:46,770 --> 01:19:50,610 когато пишете в тях, това, което трябва е текстов файл, съдържащ изходния код. 1595 01:19:50,610 --> 01:19:54,850 >> Но има и нещо в свят, наречен машинен код. 1596 01:19:54,850 --> 01:20:00,579 И машинен код, за съжаление, е само 0 и 1 в. 1597 01:20:00,579 --> 01:20:02,870 Така машинен код, е това, което машини разбират, разбира се. 1598 01:20:02,870 --> 01:20:04,470 Изходния код е това, което хората разбират. 1599 01:20:04,470 --> 01:20:08,390 >> И обикновено, но не винаги има програма 1600 01:20:08,390 --> 01:20:14,090 че един програмист използва това отнема източник код и го превръща в машинен код. 1601 01:20:14,090 --> 01:20:17,400 И тази програма е обикновено се нарича компилатор. 1602 01:20:17,400 --> 01:20:19,820 Така че вашият принос е изходния код, вашата продукция е машинен код, 1603 01:20:19,820 --> 01:20:22,890 и съставител е на парче софтуер, който прави този процес. 1604 01:20:22,890 --> 01:20:26,260 Така че това всъщност карти добре да нашите входове, алгоритми, изходи. 1605 01:20:26,260 --> 01:20:30,400 >> Но това е една много специфична въплъщение на това, което е да се каже, че, 1606 01:20:30,400 --> 01:20:34,200 дори ако притежавате една от Фолксваген автомобили, които са виновни за това, 1607 01:20:34,200 --> 01:20:38,390 това не е като това може просто отворете качулка или отворите ръководството на потребителя, или да потърсите 1608 01:20:38,390 --> 01:20:42,690 в изходния код, тъй като по времето, тя достига колата си в алеята, 1609 01:20:42,690 --> 01:20:45,580 той вече е бил превръща в 0 и 1 на. 1610 01:20:45,580 --> 01:20:51,310 И това е много трудно, не е невъзможно, но много трудно да се събере много от всичко 1611 01:20:51,310 --> 01:20:53,710 от просто търси в в основата на 0 и 1 в. 1612 01:20:53,710 --> 01:20:57,150 Така че можете да го разбера, в крайна сметка, ако да разберете как една машина operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel inside-- ако разбирате на Intel архитектура, 1614 01:20:59,870 --> 01:21:01,440 но това е отнема много време. 1615 01:21:01,440 --> 01:21:05,010 И дори там, може да се не бъде в състояние да видите всичко 1616 01:21:05,010 --> 01:21:08,220 че кодът може действително да се направи. 1617 01:21:08,220 --> 01:21:12,521 >> Всякакви въпроси относно този или този вид процес като цяло? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 И действително, ние можем да връзвам тази дискусия за вчерашната дискусия на Apple. 1620 01:21:18,300 --> 01:21:22,500 Това също е защо ФБР не може просто да отидете и погледнете в телефона на заподозрения 1621 01:21:22,500 --> 01:21:26,820 и намерите реда код, за Например, че даде възможност на паролата: 1622 01:21:26,820 --> 01:21:28,940 или позволяват на това закъснение 80 милисекунди. 1623 01:21:28,940 --> 01:21:31,630 Тъй като времето е на колегите си iPhone, 1624 01:21:31,630 --> 01:21:34,975 той вече е бил превръща в 0 и 1 на. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Ами, нека да спрете тук за нашата Посетете изчислителна мислене. 1627 01:21:40,820 --> 01:21:42,320 Защо не вземе 15 минути почивка. 1628 01:21:42,320 --> 01:21:44,130 И когато се върнем, ние ще да разгледаме програмиране 1629 01:21:44,130 --> 01:21:46,550 себе си и започнете да очертае някои на тези концепции на високо ниво 1630 01:21:46,550 --> 01:21:49,780 до едно действително, ако игрив, език за програмиране. 1631 01:21:49,780 --> 01:21:51,089