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 чтобы посмотреть немного Джона Оливер прошлой ночью? 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-- в риск упрощаю, мышления 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 И мы будем говорить об алфавите суп из языков, которые существуют раз сегодня 42 00:01:46,670 --> 00:01:50,930 Java и Python и C ++ и PHP и Рубин и всякие другие вещи. 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 Вы делаете это для прошивкой? 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 Другими словами, все Мир решения проблем я требую 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 найти Mike Smith и что-то вроде того, 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 У меня есть электроны течет, электричество течет, или я делаю не-- так далее, оф. 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 но еще в мой день, я вид узнал об этом 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-х, 10 000-х, 100 000, в 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, 2 раза 0, 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 1000. 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 Отлично. 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 который является самым большим число, которое вы есть, вы не совсем добраться до 1000 человек. 279 00:13:18,730 --> 00:13:26,920 Так что если у вас 1000, вам просто нужно другое положение, так что вы можете сделать 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 эрго номер 1000. 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 >> Таким образом, используя это физическое устройство, я теперь может представлять двоичную систему. 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 Черный телефон или-- хорошо, если 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 >> И в самом деле, если вы думаете о это, исторически, компьютеры 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, и B будет представлен в виде 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, американский стандарт 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 Азиатских языков и других символик что нужно больше выразительности, чем вы 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 Но на самом деле нет, если я иду, целью которых есть куча ресурсов 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 Вилли. 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 >> -The Жесткий диск, где ваш компьютер хранит большую часть своих постоянных данных. 541 00:27:24,190 --> 00:27:27,170 Чтобы сделать это, данные путешествует из ОЗУ по 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 [КОНЕЦ ВОСП] 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 >> Взгляд -Давайте на то, что мы только что видел в замедленном движении. 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 Шаблон серии этих крошечных кайфом области на диске 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 >> [КОНЕЦ ВОСП] 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-- Нортон Утилиты и Yesteryear 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 Оказывается, что большинство файлов formats-- Текстовые документы, файлы 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 или просто, может быть, делает все Them 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 А теперь, я нахожусь в разделе B. 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 Нет, я слышу некоторые NOS. 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 Мол, мы будем здесь весь день, если я продолжайте искать Майка на этой скорости. 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 Я даже не нужно тратить Время идти к Заболоцкого. 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 Это А, намного сложнее делать, но в теории, это 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, вместо С-М для Смита, 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 Так что немного ближе, но я знаю--, что правда о телефонной книге? 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 страница оказывается максимально может я требует, чтобы найти Майка Смита? 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 Но я могу сбрить несколько по просто остановка на участке Т. 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 так 2000 страниц вместо 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-- би означает два, мы держать что-то разделив на 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 Двоичный поиск не то, что фантазии, но она собирается взять меня, как 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 И это не имеет значения что-- на самом деле, нет, не время. 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 п представляет собой число, п число, и это количество любых входов у вас есть. 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 это как 2000 секунд или поворотов страницы или любой другой. 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 Это может быть отношение N / 2. 918 00:44:53,320 --> 00:44:56,710 У вас есть п страниц, он принимает Вы п / 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 не может держать перевернуть страницу объявление тошноты, потому что в конце концов, я буду 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 Если я из страниц, я должны действительно просто остановить. 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 Маланом: OK, бросить прочь левая половина, а Lakisa 1000 00:49:14,430 --> 00:49:19,700 сказал ранее, левый половина, то я как бы 1001 00:49:19,700 --> 00:49:23,940 хочу просто идти я иду, целью которых вправо. 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, иначе, если страница приходит после того, как Смит, разорвать пополам, выбросить правую половину, 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 как С и С ++, и все же другие. 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 Маланом: OK, выполнить. 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 ЗРИТЕЛИ: Склон. 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 что Виктория была на самом деле с описанием. 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 И я собираюсь дать Виктории один Другой пример на экране здесь. 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 Они просто-- они думают смешные шутки все. 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 [? Ара,?] Вы хотите предложить на следующий? 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-- Karim? 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 И это подводит нас к Джону Оливер, а не для клипа 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 участие в написании программного обеспечения что могло бы манипуляциям систему. 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 -Легковые автомобили-- 1451 01:12:08,170 --> 01:12:09,919 DAVID Маланом: Очевидно, на YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --the умные персонажи Форсаж фильмы. 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 раз больше, чем EPA позволяет. 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 >> -Давайте Быть ясно говорит об этом, наша компания была нечестным. 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, окончание вашего Извинение с до следующего 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 >> [КОНЕЦ ВОСП] 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 Мол, автомобиль работает, я может обнаружить, что он включен, 1546 01:17:30,430 --> 01:17:32,127 я мог обнаружить каким-то образом что автомобиль движется? 1547 01:17:32,127 --> 01:17:32,881 >> АУДИТОРИЯ: РПМ. 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 И это действительно то, что Фольксваген инженеры как-то сделал. 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