1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Музыка Воспроизведение] 3 00:00:10,830 --> 00:00:12,080 [MUSIC - Россини, "Ranz DES Vaches "ОТ Вильгельм Телль] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIC - английский Beat "МАРТА О поворотными головками "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Аплодисменты и восхищаться] 8 00:02:31,510 --> 00:02:33,520 >> DAVID МАЛАН: Так что это CS50. 9 00:02:33,520 --> 00:02:34,730 Меня зовут Дэвид Малан. 10 00:02:34,730 --> 00:02:39,250 И 73% из вас не имеют опыта работы с компьютерной науки, 11 00:02:39,250 --> 00:02:41,300 Вопреки тому, что вы думаете. 12 00:02:41,300 --> 00:02:45,290 Итак, сегодня мы думали, что избавляться от в то незнание, но и 13 00:02:45,290 --> 00:02:48,970 дать вам чувство, для тех из вас с большим комфортом, какие направления 14 00:02:48,970 --> 00:02:50,550 Вы можете пойти в этом семестре. 15 00:02:50,550 --> 00:02:51,890 >> Итак, давайте начнем с этого. 16 00:02:51,890 --> 00:02:55,490 Я действительно понятия не имею, что внутри компьютер, хотя, как вы, я 17 00:02:55,490 --> 00:02:56,780 использовать его каждый день. 18 00:02:56,780 --> 00:03:00,000 Но это своего рода окно, и есть Не многие входы в него. 19 00:03:00,000 --> 00:03:01,350 Как минимум, есть, то какие? 20 00:03:01,350 --> 00:03:03,120 Вероятно, шнур питания. 21 00:03:03,120 --> 00:03:06,640 >> И в самом деле с этим ингредиентом, электричество, мы, кажется, способны 22 00:03:06,640 --> 00:03:09,490 делал довольно мало в эти дни. 23 00:03:09,490 --> 00:03:12,130 Но в конце концов, мы они должны представлять вещи 24 00:03:12,130 --> 00:03:12,860 что мы заботимся о. 25 00:03:12,860 --> 00:03:15,240 Мы должны представлять информацию В той или иной форме. 26 00:03:15,240 --> 00:03:18,365 И вы, вероятно, по крайней мере, смутно знакомы с идеей бинарным или 27 00:03:18,365 --> 00:03:21,370 бит, так или иначе, компьютеры сводится к нулей и единиц. 28 00:03:21,370 --> 00:03:26,320 Но можем ли мы принять, что и по крайней мере положить немного света на это? 29 00:03:26,320 --> 00:03:28,880 >> Поэтому у меня есть эти маленькие настольные лампы здесь. 30 00:03:28,880 --> 00:03:30,450 У меня есть электрическая розетка здесь. 31 00:03:30,450 --> 00:03:33,930 И я собираюсь предложить, чтобы внутри моего компьютера, по крайней мере один из 32 00:03:33,930 --> 00:03:37,300 этих вещей, нечто, способное быть включен или выключен. 33 00:03:37,300 --> 00:03:40,200 В этом случае это действительно настольная лампа, но на более низком уровне, это то, 34 00:03:40,200 --> 00:03:41,500 называют транзистором. 35 00:03:41,500 --> 00:03:44,730 >> Но в нашем мире, это настольная лампа, так что Я собираюсь идти вперед и подключить этот 36 00:03:44,730 --> 00:03:47,990 в мою электричества здесь. 37 00:03:47,990 --> 00:03:52,970 И я утверждаю, что с помощью этой простой, Простое устройство, это простой переключатель, я 38 00:03:52,970 --> 00:03:54,850 может представлять информацию. 39 00:03:54,850 --> 00:03:58,090 Например, прямо сейчас, я не представляющих ничего, верно? 40 00:03:58,090 --> 00:04:01,820 Я представляю, что я называю 0 или ложным, противоположное что-то 41 00:04:01,820 --> 00:04:03,130 на самом деле присутствует. 42 00:04:03,130 --> 00:04:07,050 Но если я просто включить этот переключатель, теперь я представлял собой 1. 43 00:04:07,050 --> 00:04:10,720 Таким образом, использование этой очень простой кусок памяти, если хотите, я могу представить 44 00:04:10,720 --> 00:04:11,450 информации. 45 00:04:11,450 --> 00:04:14,350 >> Сейчас, к сожалению, мой компьютер не может сделать все, что много. 46 00:04:14,350 --> 00:04:17,430 Это может представлять только два значения во всем мире - 47 00:04:17,430 --> 00:04:18,620 0 или 1. 48 00:04:18,620 --> 00:04:21,839 Но то, что очевидное решение, в настоящее время, если мы хотим расширить наш компьютера 49 00:04:21,839 --> 00:04:25,120 памяти и представляют собой более не только 0 и 1? 50 00:04:25,120 --> 00:04:27,060 >> Ну, давайте захватить еще один такой бит. 51 00:04:27,060 --> 00:04:30,260 Давайте захватить еще один переключатель, другой транзистор, однако вы хотели бы 52 00:04:30,260 --> 00:04:31,130 думать об этом. 53 00:04:31,130 --> 00:04:34,170 Позвольте мне идти вперед и подключить этот В моем компьютере, а также. 54 00:04:34,170 --> 00:04:38,270 И я собираюсь утверждать теперь, что по несколько большего использования электричества и 55 00:04:38,270 --> 00:04:42,290 обращаются все больше этих включается и выключен, я могу представить несколько таких 56 00:04:42,290 --> 00:04:43,020 информации. 57 00:04:43,020 --> 00:04:44,660 >> Так прямо сейчас, это 1. 58 00:04:44,660 --> 00:04:48,120 Если я хочу, чтобы в настоящее время представляют 2, я мог бы это сделать. 59 00:04:48,120 --> 00:04:51,510 Но, как правило, конвенции, поскольку мы будем в конечном итоге увидеть, придется мне сделать это. 60 00:04:51,510 --> 00:04:55,260 Так что это 0, это 1. 61 00:04:55,260 --> 00:04:56,720 Это было бы 2. 62 00:04:56,720 --> 00:04:59,920 И не удивительно, что это будет 3. 63 00:04:59,920 --> 00:05:02,610 >> Таким образом, в этом случае, тем не менее, может мы рассчитываем еще сильнее? 64 00:05:02,610 --> 00:05:06,500 Если я получу третий бит, третий переключатель, что наибольшее количество Теперь я могу 65 00:05:06,500 --> 00:05:09,720 считать до от 0? 66 00:05:09,720 --> 00:05:12,020 7 Так, если я, начиная с 0, не так ли? 67 00:05:12,020 --> 00:05:15,980 Потому что, если я включаю свет на это и на самом деле подключить этот третий и последний 68 00:05:15,980 --> 00:05:20,090 Свет в моей электрической розетки здесь, то у меня есть способность представлять 69 00:05:20,090 --> 00:05:24,930 любой из двух значений здесь, двумя значениями Здесь два значения здесь - 70 00:05:24,930 --> 00:05:32,610 и так я могу представить 2 раза 2 раза 2 или восьми возможных значений. 71 00:05:32,610 --> 00:05:36,340 И если я начну учета на 0, так это 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Так что это двоичный файл. 73 00:05:37,480 --> 00:05:39,420 Это действительно так просто. 74 00:05:39,420 --> 00:05:41,930 И я бы утверждать, что это на самом деле вполне знакома большинству 75 00:05:41,930 --> 00:05:43,180 все в этой комнате. 76 00:05:43,180 --> 00:05:45,710 Позвольте мне идти вперед и открыть маленький текстовый редактор здесь. 77 00:05:45,710 --> 00:05:49,040 >> И вы, возможно, помните из начальной школы что у нас были такие вещи, как сотни 78 00:05:49,040 --> 00:05:51,970 место, десятки месте, и те места. 79 00:05:51,970 --> 00:05:55,040 И напомнить, что если у вас несколько десятичных число, как что-то случайное 80 00:05:55,040 --> 00:05:59,470 как 123, вы, по существу, пишут, что в форме 81 00:05:59,470 --> 00:06:00,450 из этих трех столбцов. 82 00:06:00,450 --> 00:06:04,070 И почему это 1, 2, 3, что мы знаем, как 123? 83 00:06:04,070 --> 00:06:11,220 Ну, в крайнем левом столбце, у нас есть один плюс два 100 10s, так что это 120, 84 00:06:11,220 --> 00:06:14,250 плюс три 1S, так что это 123. 85 00:06:14,250 --> 00:06:17,990 >> Теперь этот мир, что мы просто освещенная точно так же, как 86 00:06:17,990 --> 00:06:21,150 Вы были знакомы с годами, только теперь, наши колонки 87 00:06:21,150 --> 00:06:22,060 не являются степенями 10. 88 00:06:22,060 --> 00:06:23,780 Они просто степенями 2. 89 00:06:23,780 --> 00:06:27,830 Так что хотя это те места, это будет двоек место, это 90 00:06:27,830 --> 00:06:29,540 будет четвереньках место. 91 00:06:29,540 --> 00:06:33,260 >> И потому, что я использую только простейшие механизмов изменить положение к лучшему 92 00:06:33,260 --> 00:06:37,100 и выключается - электричество течет или электричество не течет - 93 00:06:37,100 --> 00:06:40,880 Я не совсем те же выразительные диапазоне, от 0 до девяти. 94 00:06:40,880 --> 00:06:43,270 Мы собираемся держать это супер просто В этом мире компьютеров. 95 00:06:43,270 --> 00:06:45,060 У меня только 0 или 1 - 96 00:06:45,060 --> 00:06:47,890 или выключен, ложную или истинную. 97 00:06:47,890 --> 00:06:52,610 >> И то, что я представляю сейчас 1, 1, 1, потому что каждый из этих 98 00:06:52,610 --> 00:06:54,000 огнями светится. 99 00:06:54,000 --> 00:06:59,600 Ну, это дает мне один плюс один 4 2, так это 6, плюс один 1, а это 7. 100 00:06:59,600 --> 00:07:03,450 И ERGO делает это последовательность из трех биты представляют число 7. 101 00:07:03,450 --> 00:07:06,330 >> Таким образом, все это время внутренней стороне компьютер, было любое количество 102 00:07:06,330 --> 00:07:08,090 транзисторов, любое число битов. 103 00:07:08,090 --> 00:07:10,380 Но в конце концов, мы может представлять информацию 104 00:07:10,380 --> 00:07:12,560 так просто, как это. 105 00:07:12,560 --> 00:07:16,770 Сейчас, к сожалению, мы Обновляется до 7 в CS50 до сих пор, но 106 00:07:16,770 --> 00:07:18,550 надеюсь, мы можем сделать немного лучше, чем это. 107 00:07:18,550 --> 00:07:19,550 И действительно, мы можем. 108 00:07:19,550 --> 00:07:23,570 >> Предположим, что мы, как люди просто произвольно решил, что мы собираемся 109 00:07:23,570 --> 00:07:28,750 связать номера типа 1 и 2, 3, 4, 5, 6, 7, с конкретными буквами 110 00:07:28,750 --> 00:07:29,410 алфавита. 111 00:07:29,410 --> 00:07:32,350 И по историческим причинам, я собираюсь начать несколько произвольно, но я 112 00:07:32,350 --> 00:07:36,880 собираюсь сказать, люди, мы собираемся решили в качестве стандарта, в глобальном масштабе, что 113 00:07:36,880 --> 00:07:43,200 65 представляет собой число буквы А. 66 будет представлять B. точка, точка, точка. 114 00:07:43,200 --> 00:07:45,140 90 будет представлять буквы Z. 115 00:07:45,140 --> 00:07:48,000 >> И давайте предположим, если мы действительно поставить некоторые мысли в этом, мы могли бы придумать 116 00:07:48,000 --> 00:07:50,860 с номерами для восклицательных знаков и строчные буквы, и, действительно, 117 00:07:50,860 --> 00:07:52,710 другие люди сделали это для нас. 118 00:07:52,710 --> 00:07:56,410 Так что теперь у нас были биты с которой мы можем представлять числа, числа, с которыми 119 00:07:56,410 --> 00:08:00,130 можно представить буквами, а с Письма мы теперь можем начинать создание 120 00:08:00,130 --> 00:08:02,650 электронные письма и печатные знаки на экране. 121 00:08:02,650 --> 00:08:05,850 >> Итак, позвольте мне предложить, если бы мог, восемь смелые добровольцы - 122 00:08:05,850 --> 00:08:09,200 кто не против появления не только на камеру, но в Интернете - 123 00:08:09,200 --> 00:08:13,130 прийти сюда и представляют восемь таких битов, чем эти три. 124 00:08:13,130 --> 00:08:14,380 Так, как один, два? 125 00:08:14,380 --> 00:08:16,290 Как насчет трех? 126 00:08:16,290 --> 00:08:20,230 Как насчет четырех в свете синий, пять на конце? 127 00:08:20,230 --> 00:08:21,250 О ком-то здесь? 128 00:08:21,250 --> 00:08:25,320 Шесть впереди, семь впереди, и восемь впереди, а также. 129 00:08:25,320 --> 00:08:29,050 >> Так что я просто так получилось, быть готовыми с целой кучей листков бумаги. 130 00:08:29,050 --> 00:08:34,150 И на эти кусочки бумаги номера , которые представляют, какие столбцы 131 00:08:34,150 --> 00:08:35,809 вы, ребята, будете представлять. 132 00:08:35,809 --> 00:08:36,740 Таким образом, вы будет - как тебя зовут? 133 00:08:36,740 --> 00:08:37,570 >> СТУДЕНТ: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID МАЛАН: Anna Leah, вы станет 128s колонки. 135 00:08:40,370 --> 00:08:41,059 Вы? 136 00:08:41,059 --> 00:08:41,510 >> СТУДЕНТ: Крис. 137 00:08:41,510 --> 00:08:43,620 >> DAVID МАЛАН: Крис быть 64s колонки. 138 00:08:43,620 --> 00:08:44,070 Вы? 139 00:08:44,070 --> 00:08:44,540 >> СТУДЕНТ: Дан. 140 00:08:44,540 --> 00:08:46,970 >> DAVID МАЛАН: Дан будет быть 32s колонки. 141 00:08:46,970 --> 00:08:47,470 >> СТУДЕНТ: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID МАЛАН: Pramit будет быть 16S колонки. 143 00:08:49,430 --> 00:08:50,290 >> СТУДЕНТ: Лилиан. 144 00:08:50,290 --> 00:08:51,904 >> DAVID МАЛАН: Лилиан будет 8s. 145 00:08:51,904 --> 00:08:52,768 >> СТУДЕНТ: Джилл. 146 00:08:52,768 --> 00:08:55,025 >> DAVID МАЛАН: Джилл быть 4s колонки. 147 00:08:55,025 --> 00:08:55,400 >> СТУДЕНТ: Марии. 148 00:08:55,400 --> 00:08:57,000 >> DAVID МАЛАН: Мэри будет 2S, а? 149 00:08:57,000 --> 00:08:57,470 >> СТУДЕНТ: Дэвид. 150 00:08:57,470 --> 00:08:59,220 >> DAVID МАЛАН: Дэвид будет быть 1S колонки. 151 00:08:59,220 --> 00:09:02,030 Так что, если вы, ребята, могли ступить немного вперед так, что каждый может увидеть. 152 00:09:02,030 --> 00:09:05,370 Что вы, ребята, не видят в том, что на обратно из этих листках бумаги является 153 00:09:05,370 --> 00:09:09,760 маленькая шпаргалка, который вот-вот Поручить этих восьми битам значения 154 00:09:09,760 --> 00:09:12,380 поднять руку или нет поднять руку. 155 00:09:12,380 --> 00:09:14,100 Если их рука идет вверх, они представляющих 1. 156 00:09:14,100 --> 00:09:17,120 Если их руках остается на второй год, они представляющие 0. 157 00:09:17,120 --> 00:09:21,410 >> Между тем, мы должны быть аудиторию в состоянии выяснить, на основе этого 158 00:09:21,410 --> 00:09:26,490 Отображение, какие три буквы слова эти Люди собираются изложить. 159 00:09:26,490 --> 00:09:29,700 И уже буквально через минуту, вы собираетесь прочитал первую линию от спины 160 00:09:29,700 --> 00:09:32,880 шпаргалку, и вы либо собирается поднять или не поднять руку. 161 00:09:32,880 --> 00:09:35,710 Если вы 1, вы поднимаете, если ты 0, вы стоите там 162 00:09:35,710 --> 00:09:38,594 неловко, как и что. 163 00:09:38,594 --> 00:09:40,386 Go. 164 00:09:40,386 --> 00:09:43,945 Какой номер, в первую очередь, эти ребята представляют? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, правильно? 168 00:09:49,560 --> 00:09:52,400 У нас есть 1 в колонке 64s, 1 в столбце 2s. 169 00:09:52,400 --> 00:09:56,340 Это дает мне 66, так что появляется чтобы представлять B. Таким образом, 170 00:09:56,340 --> 00:09:57,075 вы, ребята, написано - 171 00:09:57,075 --> 00:09:58,300 Хорошо, этого достаточно. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> А теперь давайте перейдем к наше второе письмо. 174 00:10:01,610 --> 00:10:03,530 Go. 175 00:10:03,530 --> 00:10:06,860 Кто самый быстрый в математике здесь? 176 00:10:06,860 --> 00:10:07,750 Так 79. 177 00:10:07,750 --> 00:10:11,840 Опять же, если мы складываем все столбцы в которых есть один, в настоящее время только 178 00:10:11,840 --> 00:10:14,840 как мы делали это раньше с простейшими примеров 7, мы теперь 179 00:10:14,840 --> 00:10:16,140 получим число 79. 180 00:10:16,140 --> 00:10:19,910 Какой в ​​соответствии с нашими отображение Письмо О. Таким образом, мы уже почти на месте. 181 00:10:19,910 --> 00:10:22,590 B, О. И, наконец, пойти. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Что они представляют сейчас? 184 00:10:30,120 --> 00:10:31,370 Менее консенсуса. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Это просто абсолютная шум. 187 00:10:36,460 --> 00:10:40,090 Да, это на самом деле 87. 188 00:10:40,090 --> 00:10:40,490 Хорошо. 189 00:10:40,490 --> 00:10:44,480 >> Итак, если нам карту, что еще до - давайте начать называть нашу ASCII графике, 190 00:10:44,480 --> 00:10:46,450 Американский стандартный код для Обмена информацией. 191 00:10:46,450 --> 00:10:47,700 Это дает нам письмо - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 Не "Бо", а "лук". И это идеальный Кий для вас, ребята, чтобы взять лук 194 00:10:54,810 --> 00:10:56,100 и голову на спину. 195 00:10:56,100 --> 00:10:56,980 Большое спасибо. 196 00:10:56,980 --> 00:10:57,886 >> [Аплодисменты] 197 00:10:57,886 --> 00:10:59,136 >> DAVID МАЛАН: вы можете держать их. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Хотя на самом деле, кому-то как настольную лампу, также? 200 00:11:05,942 --> 00:11:07,300 >> [HOOT Из зала] 201 00:11:07,300 --> 00:11:08,390 >> DAVID МАЛАН: Настольная лампа? 202 00:11:08,390 --> 00:11:10,850 >> [Смеется] 203 00:11:10,850 --> 00:11:11,860 >> DAVID МАЛАН: Действительно? 204 00:11:11,860 --> 00:11:13,230 Настольные лампы для всех? 205 00:11:13,230 --> 00:11:14,310 Хорошо. 206 00:11:14,310 --> 00:11:20,990 Так, начиная с самой простой из принципы, мы теперь не Обновляется 207 00:11:20,990 --> 00:11:24,750 от 0 до всех, вплоть до 7 мы Предполагается, что просто, бросая более 208 00:11:24,750 --> 00:11:28,080 бит или несколько огней или больше транзисторов на эту проблему, мы можем 209 00:11:28,080 --> 00:11:32,680 представляют все больше и больше цифр и ERGO, все больше и больше диапазон 210 00:11:32,680 --> 00:11:33,780 алфавитов, как английский. 211 00:11:33,780 --> 00:11:37,770 И так же, давайте принимать на веру на сегодня Точно так же, что мы могли бы начать 212 00:11:37,770 --> 00:11:42,220 представляют графики и видео и любые Ряд других средствах массовой информации, с которыми мы 213 00:11:42,220 --> 00:11:43,610 знакомы сегодня. 214 00:11:43,610 --> 00:11:49,240 >> Так что это CS50, и в этом классе рядом с вами, опять же, очень много 215 00:11:49,240 --> 00:11:53,050 одноклассников, которые так же мало опыт, как вы. 216 00:11:53,050 --> 00:11:57,730 И я говорю об этом только потому, что довольно Часто, в том числе совсем недавно, в одном из 217 00:11:57,730 --> 00:12:01,860 консультирование первокурсников событий и в второкурсник прошлой весной консультирование 218 00:12:01,860 --> 00:12:06,420 события, мы часто слышим, студенты отказываются от , когда приходят к столу CS, ну, 219 00:12:06,420 --> 00:12:10,070 Я думал о принятии этого интро класс, но я не очень 220 00:12:10,070 --> 00:12:11,120 компьютерный человек. 221 00:12:11,120 --> 00:12:13,220 Или, но все, конечно, знает больше, чем я. 222 00:12:13,220 --> 00:12:17,340 И я поставил это в самой большой шрифт возможно, передать это сообщение, что 223 00:12:17,340 --> 00:12:18,730 это не на самом деле так. 224 00:12:18,730 --> 00:12:21,100 >> И если вам интересно, если Я, на самом деле, быть здесь? 225 00:12:21,100 --> 00:12:25,950 Поймите, что это не только курсы Название Введение в компьютерную 226 00:12:25,950 --> 00:12:31,740 Наука, это Введение в компьютерную Наук I. Так что действительно 227 00:12:31,740 --> 00:12:33,170 второго такого введения. 228 00:12:33,170 --> 00:12:35,390 Значит, вы не, на самом деле, не в том месте. 229 00:12:35,390 --> 00:12:39,000 И среди целей у меня есть на сегодняшний день являются чтобы успокоить любые такие проблемы, которые Вы 230 00:12:39,000 --> 00:12:42,430 могли иметь, но и раскрашивать картину того, что в магазине для 231 00:12:42,430 --> 00:12:45,720 студенты меньше и удобнее так в этом курсе. 232 00:12:45,720 --> 00:12:49,320 >> Но, во-первых, слова на одном из раздаточных материалов у вас есть сегодня, среди которых 233 00:12:49,320 --> 00:12:50,780 ряд часто задаваемых вопросов. 234 00:12:50,780 --> 00:12:54,290 Это было наше видение в течение некоторого времени Теперь ввести новый классификации 235 00:12:54,290 --> 00:12:57,010 опции в этот курс - а именно, SAT / ненасыщенного. 236 00:12:57,010 --> 00:13:01,930 Философски для меня, это очень намного, Гораздо важнее, что 237 00:13:01,930 --> 00:13:05,050 студентов в этом классе взаимодействовать с материал, быть оспорена 238 00:13:05,050 --> 00:13:09,800 материала, и беспокоиться гораздо, гораздо меньше о механики оценки фактической 239 00:13:09,800 --> 00:13:12,590 и буквенные оценки в семестре конца, но по-настоящему охватить 240 00:13:12,590 --> 00:13:13,970 курса и его материала. 241 00:13:13,970 --> 00:13:18,140 И действительно это чувствует, более общо, за то, что интересно им, 242 00:13:18,140 --> 00:13:21,390 чувствую оспорено и вознагражден, но без страха неудачи. 243 00:13:21,390 --> 00:13:25,030 >> И в самом деле, это тоже является повторяющейся Тема в этом и других вступительных 244 00:13:25,030 --> 00:13:28,680 курсы в других областях, что у вас есть этого трепета, когда дело доходит до 245 00:13:28,680 --> 00:13:31,040 положить пальцы в одну незнакомых водах. 246 00:13:31,040 --> 00:13:34,880 Я сам, еще в 1995 году, был новичком. 247 00:13:34,880 --> 00:13:37,990 Я был очень сосредоточен на том Концентратор Gov здесь. 248 00:13:37,990 --> 00:13:41,060 И все же я всегда выросло с небольшим интереса к информатике. 249 00:13:41,060 --> 00:13:42,180 Мне всегда было интересно. 250 00:13:42,180 --> 00:13:47,610 >> Но тогда, даже, у меня был этот страх даже шагая нога в CS50, так много 251 00:13:47,610 --> 00:13:49,420 так что я даже не магазин это первый год. 252 00:13:49,420 --> 00:13:53,460 И единственная причина, я поставил ногу в Дверь года студент-второкурсник, потому что я 253 00:13:53,460 --> 00:13:55,340 было разрешено взять его прошел / не прошел. 254 00:13:55,340 --> 00:13:58,920 Но даже прошел / не прошел необходимых, что я получаю до нерва, чтобы назначить встречу 255 00:13:58,920 --> 00:14:01,970 с профессором Kernehan в то время, довести это большой лист бумаги, и попросить 256 00:14:01,970 --> 00:14:04,470 его за его подписью и его разрешение, чтобы исследовать 257 00:14:04,470 --> 00:14:05,700 этих незнакомых водах. 258 00:14:05,700 --> 00:14:09,030 >> И это не помогло в последние годы , что, когда делаю это в CS50, когда мы 259 00:14:09,030 --> 00:14:12,500 Раньше прошел / не прошел, так же будет десятков или сотен ваших одноклассников 260 00:14:12,500 --> 00:14:15,970 должны придумать, не дай Бог, на Перед Сандерс с такой формой, что 261 00:14:15,970 --> 00:14:19,520 в некоторых умах представляет неспособность, Я осмелюсь сказать, для выполнения 262 00:14:19,520 --> 00:14:20,800 находятся на одном уровне ваших коллег. 263 00:14:20,800 --> 00:14:23,410 Который смешон, но я думаю, есть то, что менталитет. 264 00:14:23,410 --> 00:14:27,210 И там никогда не был в этой культуре из сб / ненасыщенного или зачет / незачет более 265 00:14:27,210 --> 00:14:30,610 Вообще, в этом, конечно, или действительно в этом университетском городке. 266 00:14:30,610 --> 00:14:32,310 >> Поэтому в этом году мы изменили это. 267 00:14:32,310 --> 00:14:35,630 Я бы в восторге половины этого класса или более закончившихся 268 00:14:35,630 --> 00:14:38,700 тем, что брал CS50 СБ / ненасыщенного. 269 00:14:38,700 --> 00:14:42,130 В течение года, это было бы замечательно Если почти все. 270 00:14:42,130 --> 00:14:44,410 После этого, возможно, мы будем работать на буквенные в Гарварде 271 00:14:44,410 --> 00:14:45,480 Колледж в целом. 272 00:14:45,480 --> 00:14:48,900 Но сейчас, мы сделаем это в пределах нашей собственной сфере, и я сердечно 273 00:14:48,900 --> 00:14:53,400 рекомендуем вам ознакомиться с тем, часто задаваемые вопросы и задавать вопросы по своему усмотрению, так что 274 00:14:53,400 --> 00:14:58,000 надеюсь, что вы, в отличие от меня, не будет достаточно иметь тот же фактор страха, когда 275 00:14:58,000 --> 00:15:01,040 исследование того, что, вероятно, незнакомое место. 276 00:15:01,040 --> 00:15:02,786 >> Так что же такое CS50? 277 00:15:02,786 --> 00:15:06,150 Это введение в интеллектуальной предприятий компьютерных 278 00:15:06,150 --> 00:15:07,700 наука и искусство программирования. 279 00:15:07,700 --> 00:15:08,770 Но что это действительно означает? 280 00:15:08,770 --> 00:15:12,510 >> Ну, до сих пор, мы говорили очень кратко о представлении информации. 281 00:15:12,510 --> 00:15:15,070 Но предположим, что мы действительно хотим что-то сделать с ним. 282 00:15:15,070 --> 00:15:17,890 Нам надо ввести понятие что мы будем называть алгоритмом. 283 00:15:17,890 --> 00:15:21,540 Алгоритм процедуры процесса набор инструкций для 284 00:15:21,540 --> 00:15:22,780 что-то делать. 285 00:15:22,780 --> 00:15:25,620 >> И алгоритм может быть что-то супер просто. 286 00:15:25,620 --> 00:15:28,660 Так, например, с которой некоторые из вас могут быть знакомы это 287 00:15:28,660 --> 00:15:29,350 вещь здесь. 288 00:15:29,350 --> 00:15:32,510 Так что эту книгу здесь, становится все более датированы, но когда-то давно, она 289 00:15:32,510 --> 00:15:34,720 содержащиеся целом много имен и номера телефонов. 290 00:15:34,720 --> 00:15:37,710 И действительно, если бы я хотел, чтобы найти кто-то в этой телефонной книге - 291 00:15:37,710 --> 00:15:39,800 говорят, кто-то по имени Майк Смит - 292 00:15:39,800 --> 00:15:43,810 Я мог бы найти Майк Смит в любом количестве довольно простых способов. 293 00:15:43,810 --> 00:15:47,700 Я мог бы начать с самого начала и перейти на страницу 1, не было. 294 00:15:47,700 --> 00:15:49,240 Страница 2, не было. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 Это алгоритм, является то, что процесс, правильно? 297 00:15:53,430 --> 00:15:54,620 >> Так правильно, не так ли? 298 00:15:54,620 --> 00:15:58,070 Я вроде идиота делать это в именно таким образом, но в конце концов я буду 299 00:15:58,070 --> 00:16:02,670 найти фамилию S, и, надеюсь, Майк находится в этой секции, и я стану 300 00:16:02,670 --> 00:16:04,100 сделал с моим алгоритмом. 301 00:16:04,100 --> 00:16:05,440 Но, конечно, это не интуитивно. 302 00:16:05,440 --> 00:16:08,020 Почти каждый здравомыслящий человек в этой номер не будет этого делать. 303 00:16:08,020 --> 00:16:10,180 Что бы вы сделали? 304 00:16:10,180 --> 00:16:11,480 >> Ты бы пошел прямо к середине, не так ли? 305 00:16:11,480 --> 00:16:12,000 Примерно к середине. 306 00:16:12,000 --> 00:16:16,310 И ты понимаешь, о, это г-жа Так Майк Смит, являющийся фамилию Смит, 307 00:16:16,310 --> 00:16:19,050 Не ясно, то в Левая половина книги. 308 00:16:19,050 --> 00:16:21,040 Он должен быть в сторону S находится в правильном. 309 00:16:21,040 --> 00:16:24,090 И в этот момент, хотя большинство из нас не делайте этого на самом деле, мы можем 310 00:16:24,090 --> 00:16:27,125 буквально разорвать эту проблему в два раза. 311 00:16:27,125 --> 00:16:27,640 >> [ПРИВЕТСТВИЕ И аплодисменты] 312 00:16:27,640 --> 00:16:28,950 >> DAVID МАЛАН: Спасибо. 313 00:16:28,950 --> 00:16:30,150 >> [ПРИВЕТСТВИЕ И аплодисменты] 314 00:16:30,150 --> 00:16:34,660 >> DAVID МАЛАН: Вы можете буквально разорвать эту Проблема в два раза, оставив меня с, 315 00:16:34,660 --> 00:16:36,120 буквально, проблема вдвое меньше. 316 00:16:36,120 --> 00:16:39,750 Так что, если это была телефонная книга - и это вероятно, было - около 1000 страниц, сейчас 317 00:16:39,750 --> 00:16:40,840 это всего лишь 500. 318 00:16:40,840 --> 00:16:44,710 Если я сделаю это снова, и я понимаю, о, Блин, я зашел слишком далеко, я в ТС 319 00:16:44,710 --> 00:16:46,480 раздел, я могу аналогично - 320 00:16:46,480 --> 00:16:48,030 образно или буквально - 321 00:16:48,030 --> 00:16:50,260 копировать телефонную книгу - это было на самом деле гораздо легче это время. 322 00:16:50,260 --> 00:16:53,610 Я могу буквально копировать телефонную книгу пополам, оставив меня теперь с 323 00:16:53,610 --> 00:16:55,186 не 1000, а не 500 - 324 00:16:55,186 --> 00:16:56,680 250 страниц. 325 00:16:56,680 --> 00:17:00,210 И я могу пойти 125, и половина из этого, и половину этого, и половину этого, 326 00:17:00,210 --> 00:17:04,760 пока, наконец, я не останетесь с только одну страницу. 327 00:17:04,760 --> 00:17:06,430 >> [Смеется] 328 00:17:06,430 --> 00:17:07,589 >> DAVID МАЛАН: Это часть я не далее. 329 00:17:07,589 --> 00:17:10,400 Одной странице, на которой Майк, мы надеемся, есть. 330 00:17:10,400 --> 00:17:14,630 Теперь эти различные алгоритмы могут быть Сортировать начисленных или оценивать в 331 00:17:14,630 --> 00:17:15,270 разному. 332 00:17:15,270 --> 00:17:17,300 Первый из них был очень линейный, не так ли? 333 00:17:17,300 --> 00:17:18,500 Поверните страницы, искать Майка. 334 00:17:18,500 --> 00:17:19,630 Поверните страницы, искать Майка. 335 00:17:19,630 --> 00:17:20,560 Это очень линейно. 336 00:17:20,560 --> 00:17:23,339 Если есть еще одна страница в телефоне Книга, вероятно, это собирается взять меня 337 00:17:23,339 --> 00:17:27,380 еще одну секунду, еще одна единица времени, Однако мы машинного времени. 338 00:17:27,380 --> 00:17:32,470 >> Так что я мог бы рисовать, как это эта линия Здесь, в которой, как размер 339 00:17:32,470 --> 00:17:34,700 Проблема возрастает слева направо - 340 00:17:34,700 --> 00:17:37,480 Телефонная книга получает меньшего к большему - 341 00:17:37,480 --> 00:17:41,080 и время намерена увеличить на вертикальной оси, тем больше 342 00:17:41,080 --> 00:17:42,030 Телефонная книга. 343 00:17:42,030 --> 00:17:46,180 Таким N всего лишь общие переменная, которая Компьютер ученые используют для представления 344 00:17:46,180 --> 00:17:48,210 некоторое значение, некоторое число. 345 00:17:48,210 --> 00:17:50,740 Таким N намерена увеличить линейно. 346 00:17:50,740 --> 00:17:53,040 Удвоение размера телефонной книги, это собирается взять меня в два раза больше 347 00:17:53,040 --> 00:17:54,780 время, скорее всего, найти Майка. 348 00:17:54,780 --> 00:17:56,390 >> Сейчас я мог бы быть умным об этом, не так ли? 349 00:17:56,390 --> 00:17:57,800 Я получаю скучно быстро. 350 00:17:57,800 --> 00:17:58,910 Могли бы сделать это по двое. 351 00:17:58,910 --> 00:18:01,870 Так две страницы, потом четыре, то шесть, то восемь. 352 00:18:01,870 --> 00:18:05,220 И я мог бы начать летать через него немного быстрее, хотя и незначительного риска 353 00:18:05,220 --> 00:18:09,210 превышение Майка, но кривая не будет все, что отличается. 354 00:18:09,210 --> 00:18:12,550 Он по-прежнему будет представлять собой прямую линии, но немного быстрее. 355 00:18:12,550 --> 00:18:13,710 >> Но что же мне делать? 356 00:18:13,710 --> 00:18:15,845 Я действительно сделал что-то принципиально лучше. 357 00:18:15,845 --> 00:18:21,990 Я достиг того, что мы назовем логарифмической время, журнал N, причем эта зеленая 358 00:18:21,990 --> 00:18:27,730 Линия имеет многое, многое, многое менее прямые края к нему. 359 00:18:27,730 --> 00:18:33,050 И, скорее, она предлагает, а он вроде как стремится к бесконечности очень постепенно, 360 00:18:33,050 --> 00:18:36,700 , что я могу на самом деле взять 1000-страницы телефонной книге, его размер удвоится 361 00:18:36,700 --> 00:18:39,610 в следующем году - потому предположим много больше людей переехать в город. 362 00:18:39,610 --> 00:18:43,250 >> Так что теперь у меня есть 2000 страниц, но как многие другие шаги в том, что умнее 363 00:18:43,250 --> 00:18:45,200 Алгоритм займет? 364 00:18:45,200 --> 00:18:46,060 Только один. 365 00:18:46,060 --> 00:18:48,060 Я имею в виду, это сильная вещь. 366 00:18:48,060 --> 00:18:51,400 Если мы пойдем в 4000 страниц в следующем году, что собирается взять меня 367 00:18:51,400 --> 00:18:53,020 только еще два шага. 368 00:18:53,020 --> 00:18:56,500 Таким образом, вы можете бросить все больше и больше проблемы у меня, а не в отличие от веб- 369 00:18:56,500 --> 00:18:59,560 бросать все большими проблемами Каждый день в Googles и Facebooks из 370 00:18:59,560 --> 00:19:01,590 мире, и это не такое большое дело. 371 00:19:01,590 --> 00:19:05,840 Потому что я положить больше мысли и заботы в мой алгоритм, с которым решить 372 00:19:05,840 --> 00:19:07,020 проблемы эффективно. 373 00:19:07,020 --> 00:19:09,260 >> И в самом деле, что будет одним из Цели этого курса. 374 00:19:09,260 --> 00:19:11,230 Вы будете, по пути, научиться программировать. 375 00:19:11,230 --> 00:19:13,360 Вы узнаете, как программировать на любое количество языков. 376 00:19:13,360 --> 00:19:16,670 Но в конце дня, курс о решении проблем и получения 377 00:19:16,670 --> 00:19:20,490 лучше на решение проблем, - и, как и в подобных случаях, решение проблем 378 00:19:20,490 --> 00:19:22,030 более эффективно. 379 00:19:22,030 --> 00:19:23,990 >> Сейчас до сих пор, мы сделали это довольно интуитивно. 380 00:19:23,990 --> 00:19:27,420 Введем что-то довольно общий псевдокоде называется. 381 00:19:27,420 --> 00:19:29,150 Так что мы в конечном итоге получить, В этом конечно, 382 00:19:29,150 --> 00:19:30,570 различных языках программирования. 383 00:19:30,570 --> 00:19:34,280 Но сегодня мы сделаем это на английском языке, как синтаксис, где вы только отчасти говорят 384 00:19:34,280 --> 00:19:37,330 то, что вы имеете в виду, но вы всегда такие кратким и не беспокоиться о 385 00:19:37,330 --> 00:19:38,960 грамматику и полных предложений. 386 00:19:38,960 --> 00:19:41,600 Вы просто выразить себя, как кратко, насколько это возможно. 387 00:19:41,600 --> 00:19:45,400 >> Так псевдокод-английски, как синтаксис, который представляет 388 00:19:45,400 --> 00:19:46,750 языка программирования. 389 00:19:46,750 --> 00:19:51,170 И в этом направлении, позвольте мне предложить, что мы теперь моделировать процесс мы просто 390 00:19:51,170 --> 00:19:54,990 описанные подсчета что-то немного иначе, на этот раз принимает 391 00:19:54,990 --> 00:19:59,040 посмотрите на эту пятиминутную видео производства наши друзья на Теда, что 392 00:19:59,040 --> 00:20:03,170 определяет, что псевдокод, определяет, какие есть алгоритмическое мышление, и даже 393 00:20:03,170 --> 00:20:07,030 при том, что например, вы сейчас увидите есть, в себя, супер просто, это 394 00:20:07,030 --> 00:20:09,820 собирается начать, чтобы дать нам психического модель, словарь, с которым 395 00:20:09,820 --> 00:20:14,588 сделать много, гораздо более сложные Алгоритмы довольно быстро. 396 00:20:14,588 --> 00:20:15,576 >> [Начальное ВИДЕОВОСПРОИЗВЕДЕНИЕ] 397 00:20:15,576 --> 00:20:29,920 >> [Музыка Воспроизведение] 398 00:20:29,920 --> 00:20:31,100 >> Рассказчик: Что такое алгоритм? 399 00:20:31,100 --> 00:20:34,730 В области компьютерных наук, алгоритм набор инструкций для решения некоторых 400 00:20:34,730 --> 00:20:36,620 проблемы шаг за шагом. 401 00:20:36,620 --> 00:20:39,650 Как правило, алгоритмы выполняются на компьютерах, но мы, люди, 402 00:20:39,650 --> 00:20:41,230 алгоритмов, а также. 403 00:20:41,230 --> 00:20:43,290 Например, как бы вы о подсчете числа 404 00:20:43,290 --> 00:20:44,750 людей в комнате? 405 00:20:44,750 --> 00:20:47,980 Ну, если вы похожи на меня, вы, вероятно, точка у каждого человека, по одному 406 00:20:47,980 --> 00:20:50,120 один раз, и подсчитайте от 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, и так далее. 408 00:20:52,970 --> 00:20:54,140 >> Ну, это алгоритм. 409 00:20:54,140 --> 00:20:57,600 В самом деле, давайте попробуем выразить это немного более формально в псевдокоде - 410 00:20:57,600 --> 00:21:00,700 Английский-подобный синтаксис, который напоминает языка программирования. 411 00:21:00,700 --> 00:21:02,580 Пусть N равны 0. 412 00:21:02,580 --> 00:21:06,970 Для каждого человека в комнате, установите N равно N плюс 1. 413 00:21:06,970 --> 00:21:08,400 >> Как интерпретировать это псевдокод? 414 00:21:08,400 --> 00:21:12,840 Ну, одну линию заявляет, так сказать, переменная с именем N и инициализирует 415 00:21:12,840 --> 00:21:14,250 его значение равным 0. 416 00:21:14,250 --> 00:21:17,550 Это просто означает, что в начале наш алгоритм, вещь, с которой 417 00:21:17,550 --> 00:21:19,650 мы рассчитываем имеет значение 0. 418 00:21:19,650 --> 00:21:22,620 Ведь раньше мы начинаем считать, Мы не посчитали еще ничего. 419 00:21:22,620 --> 00:21:25,340 Вызов этой переменной N это всего лишь условность. 420 00:21:25,340 --> 00:21:26,890 Я мог бы назвать ее чем угодно. 421 00:21:26,890 --> 00:21:30,560 >> Теперь две линии demarks начала петли, последовательность шагов, которые будут 422 00:21:30,560 --> 00:21:32,310 повторять некоторое число раз. 423 00:21:32,310 --> 00:21:35,910 Таким образом, в нашем примере, шаг мы берем рассчитывает человек в комнате. 424 00:21:35,910 --> 00:21:38,730 Под линией является линия два три, которая описывает, как именно 425 00:21:38,730 --> 00:21:40,160 мы пойдем о подсчете. 426 00:21:40,160 --> 00:21:43,440 Отступы предполагает, что это три линии, что буду повторяться. 427 00:21:43,440 --> 00:21:47,380 >> Так что псевдокод говорю, что после того, начиная с 0, для каждого 428 00:21:47,380 --> 00:21:50,690 человек в номере, мы увеличить N на 1. 429 00:21:50,690 --> 00:21:53,050 Сейчас этот алгоритм правильно? 430 00:21:53,050 --> 00:21:54,580 Ну, давайте стучать его немного. 431 00:21:54,580 --> 00:21:57,270 Это работает, если есть два человека в комнате? 432 00:21:57,270 --> 00:21:58,170 Давайте посмотрим. 433 00:21:58,170 --> 00:22:00,260 >> В соответствии одном мы инициализируем N до 0. 434 00:22:00,260 --> 00:22:03,660 Для каждого из этих двух человек мы затем увеличить N на 1. 435 00:22:03,660 --> 00:22:07,310 Так в первой поездке через петли, мы обновляем N от 0 до 1. 436 00:22:07,310 --> 00:22:11,070 Во второй поездке через эту же петли, мы обновляем N от 1 до 2. 437 00:22:11,070 --> 00:22:15,780 И вот к концу этого алгоритма, N 2, который действительно соответствует числу 438 00:22:15,780 --> 00:22:16,700 людей в комнате. 439 00:22:16,700 --> 00:22:17,760 >> Пока все идет хорошо. 440 00:22:17,760 --> 00:22:19,610 Как насчет пограничный случай, правда? 441 00:22:19,610 --> 00:22:22,590 Предположим, что есть 0 человек в комнате - кроме меня, 442 00:22:22,590 --> 00:22:24,170 кто делает подсчет. 443 00:22:24,170 --> 00:22:27,150 В соответствии одном мы инициализируем N до 0. 444 00:22:27,150 --> 00:22:30,280 На этот раз, однако, три линии не выполнить на всех, так как нет 445 00:22:30,280 --> 00:22:31,370 человек в комнате. 446 00:22:31,370 --> 00:22:35,260 И так N остается равным 0, что соответствует Количество человек в комнате. 447 00:22:35,260 --> 00:22:36,420 Довольно просто, не так ли? 448 00:22:36,420 --> 00:22:39,630 >> Но подсчет людей по одному довольно неэффективно, тоже нет? 449 00:22:39,630 --> 00:22:40,920 Конечно, мы можем сделать лучше. 450 00:22:40,920 --> 00:22:43,120 Почему бы не считать двух человек за один раз? 451 00:22:43,120 --> 00:22:49,300 Вместо подсчета 1, 2, 3, 4, 5, 6, 7, 8, и так далее, то почему бы не рассчитывать, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, и так далее? 453 00:22:51,460 --> 00:22:53,700 Это даже звучит быстрее, и она, безусловно, есть. 454 00:22:53,700 --> 00:22:56,240 >> Выразим эту оптимизацию в псевдокоде. 455 00:22:56,240 --> 00:22:57,800 Пусть N равны 0. 456 00:22:57,800 --> 00:23:02,450 Для каждой пары человек в номере, установлен равным N N плюс 2. 457 00:23:02,450 --> 00:23:04,120 Довольно простое изменение, не так ли? 458 00:23:04,120 --> 00:23:06,750 Вместо того, чтобы считать людей одного в то время, мы вместо этого рассчитывать 459 00:23:06,750 --> 00:23:08,300 их по два за раз. 460 00:23:08,300 --> 00:23:10,980 Данного алгоритма таким образом, в два раза так же быстро, как и предыдущие. 461 00:23:10,980 --> 00:23:12,180 >> Но разве это правильно? 462 00:23:12,180 --> 00:23:12,920 Давайте посмотрим. 463 00:23:12,920 --> 00:23:15,330 Это работает, если есть два человека в комнате? 464 00:23:15,330 --> 00:23:17,550 В соответствии одном мы инициализируем N до 0. 465 00:23:17,550 --> 00:23:20,920 По этой одной пары людей, мы затем увеличить N на два. 466 00:23:20,920 --> 00:23:24,860 И вот к концу этого алгоритма, N 2, который действительно соответствует числу 467 00:23:24,860 --> 00:23:25,650 людей в комнате. 468 00:23:25,650 --> 00:23:28,250 >> Предположим теперь, что существует 0 человек в комнате. 469 00:23:28,250 --> 00:23:30,840 В соответствии одном мы инициализируем N до 0. 470 00:23:30,840 --> 00:23:34,330 Как и прежде, три линии не выполняет вообще, так как нет никаких пар 471 00:23:34,330 --> 00:23:35,380 людей в комнате. 472 00:23:35,380 --> 00:23:38,350 И т. п. остается 0, что действительно совпадает с числом 473 00:23:38,350 --> 00:23:39,570 людей в комнате. 474 00:23:39,570 --> 00:23:42,280 >> Но что, если есть три людей в комнате? 475 00:23:42,280 --> 00:23:44,130 Как работает этот алгоритм тариф? 476 00:23:44,130 --> 00:23:44,990 Давайте посмотрим. 477 00:23:44,990 --> 00:23:47,460 В соответствии одном мы инициализируем N до 0. 478 00:23:47,460 --> 00:23:50,870 Для пары из тех людей, мы затем увеличить N на 2. 479 00:23:50,870 --> 00:23:51,800 Но что потом? 480 00:23:51,800 --> 00:23:54,960 Существует не другой полный пара людей в комнате, поэтому никогда не две линии 481 00:23:54,960 --> 00:23:56,180 больше не применяется. 482 00:23:56,180 --> 00:24:00,530 И вот к концу этого алгоритма, N 2 по-прежнему, что не соответствует действительности. 483 00:24:00,530 --> 00:24:03,810 >> Действительно, этот алгоритм, как говорят, ошибку, так как она имеет ошибку. 484 00:24:03,810 --> 00:24:05,820 Позволяет возмещения с некоторыми новыми псевдокод. 485 00:24:05,820 --> 00:24:09,670 Пусть п равным 0 для каждой пары человек в номере. 486 00:24:09,670 --> 00:24:12,550 Вместо N равно N плюс 2. 487 00:24:12,550 --> 00:24:17,140 Если один человек остается непарным, установлен равным N N плюс 1. 488 00:24:17,140 --> 00:24:20,140 Для решения этой конкретной проблемы, у нас введены в соответствии четыре, 489 00:24:20,140 --> 00:24:24,520 состоянии, иначе известный как филиал , что выполняется только, если есть один 490 00:24:24,520 --> 00:24:26,640 человек, что мы не могли пару с другим. 491 00:24:26,640 --> 00:24:30,440 И вот теперь, есть ли один или три или любое нечетное число людей в 492 00:24:30,440 --> 00:24:33,290 комнату, этот алгоритм Теперь сосчитать. 493 00:24:33,290 --> 00:24:34,560 >> Можем ли мы сделать еще лучше? 494 00:24:34,560 --> 00:24:38,820 Ну, мы могли рассчитывать в 3s или 4s или даже 5S и 10 с, но кроме того, это 495 00:24:38,820 --> 00:24:41,360 собирается получить немного Трудно точки. 496 00:24:41,360 --> 00:24:44,660 В конце концов, выполнены ли компьютерами или людей, 497 00:24:44,660 --> 00:24:46,750 Алгоритмы просто набор инструкций с 498 00:24:46,750 --> 00:24:48,290 который для решения проблем. 499 00:24:48,290 --> 00:24:49,792 Они были только три. 500 00:24:49,792 --> 00:24:52,404 Какую проблему вы бы решить с алгоритмом? 501 00:24:52,404 --> 00:24:52,901 >> [КОНЕЦ ВИДЕОВОСПРОИЗВЕДЕНИЕ] 502 00:24:52,901 --> 00:24:55,883 >> DAVID МАЛАН: Это единственный раз, Я буду являться в форме мультфильма. 503 00:24:55,883 --> 00:25:01,050 Но там, где эта история кончается, Теперь, как мы можем сделать лучше? 504 00:25:01,050 --> 00:25:04,680 Тройки и четверки, мы утверждаем, что мы можем рассчитывать люди намного быстрее, но мы можем 505 00:25:04,680 --> 00:25:06,290 сделать принципиально лучше, чем это? 506 00:25:06,290 --> 00:25:07,540 И держу пари, мы можем. 507 00:25:07,540 --> 00:25:11,980 >> Если ввести немного нашего собственного псевдокод здесь, я собираюсь предложить 508 00:25:11,980 --> 00:25:14,550 что мы можем достичь такую ​​строку. 509 00:25:14,550 --> 00:25:17,280 Мы не собираемся считать людей один, два, три, четыре. 510 00:25:17,280 --> 00:25:19,470 Мы не собираемся идти два, четыре, шесть, восемь. 511 00:25:19,470 --> 00:25:23,390 Мы собираемся сделать принципиально лучше путем переосмысления проблемы, и в этом 512 00:25:23,390 --> 00:25:27,080 случае, используя в противном случае недостаточной мере используются. 513 00:25:27,080 --> 00:25:31,460 >> Через минуту, я надеюсь, вы простите и юмора нам, стоя в 514 00:25:31,460 --> 00:25:34,470 месте, и в этот момент мы собираемся прошу каждого из вас взять на себя в вашем 515 00:25:34,470 --> 00:25:36,400 умы номер 1. 516 00:25:36,400 --> 00:25:39,560 Ты то при переходе на более неловко, как время проходит, найти 517 00:25:39,560 --> 00:25:42,740 кто-то еще, кто стоит, объедините ваши номера вместе 518 00:25:42,740 --> 00:25:43,720 путем добавления их. 519 00:25:43,720 --> 00:25:47,490 Один из вас затем собирается участвовать в гонке, чтобы сидеть вниз первой, и другой человек 520 00:25:47,490 --> 00:25:48,880 собирается повторить. 521 00:25:48,880 --> 00:25:53,090 >> Итак, другими словами, путем посева все Вы с номером 1, а затем 522 00:25:53,090 --> 00:25:57,800 комбинировании 1S в 2s и 2s тех, в 4s, со всеми все более 523 00:25:57,800 --> 00:26:02,740 садясь, мы должны, в конце этот алгоритм, есть только один кредит 524 00:26:02,740 --> 00:26:07,570 душа, которая не садился, но достаточно быстро , который имеет всего количества аудиторий 525 00:26:07,570 --> 00:26:09,180 в своем уме. 526 00:26:09,180 --> 00:26:13,730 >> Так что если вы, давайте идти вперед и - Шаг первый - встать на место. 527 00:26:13,730 --> 00:26:15,600 И выполнить. 528 00:26:15,600 --> 00:26:36,580 >> [Толпа ропота] 529 00:26:36,580 --> 00:26:38,820 >> DAVID МАЛАН: Вы знаете, где Лорен? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Толпа ропота] 532 00:27:23,350 --> 00:27:24,340 >> DAVID МАЛАН: Все в порядке? 533 00:27:24,340 --> 00:27:39,110 >> [Толпа ропота] 534 00:27:39,110 --> 00:27:41,365 >> DAVID МАЛАН: Хорошо, мы должны быть подходит к концу. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Мы видим, один парень стоял здесь до сих пор. 537 00:27:47,670 --> 00:27:48,770 Кто еще должно быть в паре? 538 00:27:48,770 --> 00:27:50,020 Если вы, ребята, хотите на пары. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Кто-то наверху. 541 00:27:56,520 --> 00:27:58,150 Почему бы мне не протянуть руку здесь. 542 00:27:58,150 --> 00:28:01,370 Для очень немногих людей, которые до сих пор стоя, какие цифры вы 543 00:28:01,370 --> 00:28:02,790 в своем уме? 544 00:28:02,790 --> 00:28:04,020 >> СТУДЕНТ: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID МАЛАН: 78 плюс - 546 00:28:06,010 --> 00:28:07,840 кто стоит здесь? 547 00:28:07,840 --> 00:28:08,370 >> СТУДЕНТ: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID МАЛАН: Плюс 39. 549 00:28:09,590 --> 00:28:12,310 Плюс, кто еще до сих пор стоит? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 Хорошо, кто же еще? 552 00:28:15,960 --> 00:28:17,200 Другой 81? 553 00:28:17,200 --> 00:28:17,860 Ничего себе. 554 00:28:17,860 --> 00:28:19,210 И тогда то, что в спину? 555 00:28:19,210 --> 00:28:20,360 >> СТУДЕНТ: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID МАЛАН: 49, плюс? 557 00:28:21,812 --> 00:28:22,950 >> СТУДЕНТ: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID МАЛАН: плюс 98? 559 00:28:24,980 --> 00:28:28,190 То, что кто-то еще? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Хорошая работа. 562 00:28:30,460 --> 00:28:33,610 >> [Смеется] 563 00:28:33,610 --> 00:28:34,690 >> DAVID МАЛАН: О, 112 - 564 00:28:34,690 --> 00:28:35,410 ой. 565 00:28:35,410 --> 00:28:36,220 Хорошая работа! 566 00:28:36,220 --> 00:28:38,660 >> [Смеется] 567 00:28:38,660 --> 00:28:42,570 >> [Аплодисменты] 568 00:28:42,570 --> 00:28:43,820 >> DAVID МАЛАН: Любой другой еще стоит? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Простите? 571 00:28:47,260 --> 00:28:48,110 >> СТУДЕНТ: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID МАЛАН: 99. 573 00:28:49,810 --> 00:28:52,620 Любой другой еще стоит? 574 00:28:52,620 --> 00:28:57,290 И общее число студентов здесь на самом деле, в соответствии с - 575 00:28:57,290 --> 00:28:59,400 есть ли у вас номер? 576 00:28:59,400 --> 00:29:03,170 О, фактическое число людей в комнату, в соответствии с учетной записи, которая 577 00:29:03,170 --> 00:29:07,660 учение товарищи делали на пути каждого в, было 729. 578 00:29:07,660 --> 00:29:11,070 Так из комнату, полную студентов Гарварда которые считали себя, 579 00:29:11,070 --> 00:29:14,126 ответ 637. 580 00:29:14,126 --> 00:29:15,480 >> [Смеется] 581 00:29:15,480 --> 00:29:16,350 >> DAVID МАЛАН: так близко. 582 00:29:16,350 --> 00:29:17,360 Но все же. 583 00:29:17,360 --> 00:29:22,110 ОК, так что это обучение момент, не так ли? 584 00:29:22,110 --> 00:29:24,120 Это сейчас то, что мы описываем как ошибку. 585 00:29:24,120 --> 00:29:28,120 Где-то по пути, мы сделали некоторые арифметические неправильно, или кто-то сел, 586 00:29:28,120 --> 00:29:29,930 или влево, или что-то пошло не так. 587 00:29:29,930 --> 00:29:30,930 Но это нормально. 588 00:29:30,930 --> 00:29:33,390 Потому что даже до сих пор, мы получил довольно близко. 589 00:29:33,390 --> 00:29:37,480 И я бы утверждать, что мы добрались до неправильного ответить намного быстрее, чем я должен был бы 590 00:29:37,480 --> 00:29:39,770 с помощью моего более линейный подход. 591 00:29:39,770 --> 00:29:42,630 >> Итак, давайте предположим, что мы и в самом деле получить, что правильно, но думаю, что сейчас о том, что 592 00:29:42,630 --> 00:29:46,870 происходит каждый раз, по сравнению с моим собственные наивные указывая алгоритма. 593 00:29:46,870 --> 00:29:48,420 Один, два, три. 594 00:29:48,420 --> 00:29:53,010 Если на самом деле есть 729 или 637 человек вот, что взял бы меня 595 00:29:53,010 --> 00:29:57,720 буквально 637 или 729 цифровые значения шкалы из пальца и 596 00:29:57,720 --> 00:29:59,490 приращением моего общего количества. 597 00:29:59,490 --> 00:30:01,910 И я мог бы сделать немного лучше собирается два, четыре, шесть, восемь, а 598 00:30:01,910 --> 00:30:05,660 вдвое больше, чем скорость, может быть, даже трех-или Четырехместный, в зависимости, как хорошо я могу 599 00:30:05,660 --> 00:30:07,110 делать, что подсчет в моей голове. 600 00:30:07,110 --> 00:30:10,720 >> Но такой подход, что вы, ребята, взяли была принципиально иная. 601 00:30:10,720 --> 00:30:12,770 Так как в начале, все вы встали. 602 00:30:12,770 --> 00:30:14,620 Таким образом, все 729. 603 00:30:14,620 --> 00:30:17,370 А потом буквально половину из вас сел. 604 00:30:17,370 --> 00:30:19,720 А после того, другой половина из вас сел. 605 00:30:19,720 --> 00:30:22,650 А после того, другой половина из вас сел. 606 00:30:22,650 --> 00:30:27,470 >> А общее количество раз, которое вы ребята, могли бы сели примерно 607 00:30:27,470 --> 00:30:31,740 восемь или девять или десять раз общая, в зависимости от того, что наш общий счетчик. 608 00:30:31,740 --> 00:30:33,300 И мы можем сортировать, делать это в другую сторону. 609 00:30:33,300 --> 00:30:37,740 Если бы мы имели 1024 человек в комнате, общее количество раз, вы могли бы 610 00:30:37,740 --> 00:30:41,870 вдвое сократить 1024 человек 10. 611 00:30:41,870 --> 00:30:43,370 >> Теперь подумайте об этом в другом направлении. 612 00:30:43,370 --> 00:30:49,170 Предположим, смешно, что у нас было, скажем, четыре миллиарда людей в этой комнате, 613 00:30:49,170 --> 00:30:50,860 или номер немного большего размера. 614 00:30:50,860 --> 00:30:54,550 Сколько раз мы пошли через этот алгоритм такой, что половина 615 00:30:54,550 --> 00:30:58,110 этого класса садится? 616 00:30:58,110 --> 00:31:03,050 Это только собирается взять 32 таких операции, даже в классе размер 617 00:31:03,050 --> 00:31:03,770 четыре миллиарда. 618 00:31:03,770 --> 00:31:04,055 Почему? 619 00:31:04,055 --> 00:31:06,980 Потому что четыре миллиарда идет на два млрд, идет до одного миллиона, идет на 620 00:31:06,980 --> 00:31:09,925 500000000, идет до 250 млн., точка, точка, точка. 621 00:31:09,925 --> 00:31:14,940 Я могу только сделать это разделение примерно 32 раз, и в этот момент все, кроме 622 00:31:14,940 --> 00:31:17,820 один человек останется стоять. 623 00:31:17,820 --> 00:31:21,590 >> И это тоже является своего рода мощный Идея, что все чаще мы постараемся 624 00:31:21,590 --> 00:31:24,690 рычагов в этом, конечно, и в программированию и информатике больше 625 00:31:24,690 --> 00:31:29,400 Как правило, эти ростки идею с которые мы можем решать проблемы много, 626 00:31:29,400 --> 00:31:31,130 гораздо более мощно. 627 00:31:31,130 --> 00:31:34,610 Итак, мы начали достаточно прост, что с псевдокод и парень в комнате, но 628 00:31:34,610 --> 00:31:38,205 Теперь с целой комнате, полной людей мы сделали принципиально лучше. 629 00:31:38,205 --> 00:31:41,460 >> Ну, давайте теперь переход от псевдокод некоторым фактическим кодом. 630 00:31:41,460 --> 00:31:44,200 Это язык, который вы собираетесь, чтобы произошло называться JavaScript и 631 00:31:44,200 --> 00:31:46,190 Мы вернемся к этому направлению конце семестра. 632 00:31:46,190 --> 00:31:49,960 Это язык программирования, который использовать, чтобы сделать веб-сайты и другие подобные 633 00:31:49,960 --> 00:31:51,360 программного обеспечения в эти дни. 634 00:31:51,360 --> 00:31:54,890 И мы использовали его, благодаря другу наша в Стэнфордском университете, для кодирования 635 00:31:54,890 --> 00:31:56,630 некоторые скрытые информацию здесь. 636 00:31:56,630 --> 00:31:59,500 Это искусство стеганографии, так сказать, где можно спрятаться 637 00:31:59,500 --> 00:32:03,990 информации в том, что в противном случае представляется быть шум или совершенно другой 638 00:32:03,990 --> 00:32:05,220 изображение в целом. 639 00:32:05,220 --> 00:32:10,120 Но, встроенного в данное конкретное изображение действительно тайное послание сортов. 640 00:32:10,120 --> 00:32:12,950 >> Итак, позвольте мне идти вперед и подтянуть и то же изображение здесь, это 641 00:32:12,950 --> 00:32:14,270 время в веб-браузере. 642 00:32:14,270 --> 00:32:17,710 И я собираюсь махнуть рукой на некоторые из подробно на сегодняшний день, в частности 643 00:32:17,710 --> 00:32:21,780 Для тех из вас, кто это выглядит как не только JavaScript, но греческие, а 644 00:32:21,780 --> 00:32:23,930 совершенно незнакомого языка. 645 00:32:23,930 --> 00:32:26,190 Но этот пример языка программирования. 646 00:32:26,190 --> 00:32:30,660 >> И на данный момент, принять на веру, что это первая строка кода - 647 00:32:30,660 --> 00:32:32,470 и код, я просто означает текста. 648 00:32:32,470 --> 00:32:35,660 Текст, который я мог бы буквально набраны в формате Microsoft Word, если у меня было 649 00:32:35,660 --> 00:32:37,630 Право программное обеспечение, чтобы затем что-то с ним сделать. 650 00:32:37,630 --> 00:32:42,120 Исходников программ, программированию кода, на самом деле просто текст, и это 651 00:32:42,120 --> 00:32:45,420 выглядит иначе основаны на каком языке Вы используете, не в отличие от английского и 652 00:32:45,420 --> 00:32:49,200 Испанский и русский все выглядят по-разному по мере их набора на клавиатуре. 653 00:32:49,200 --> 00:32:53,520 >> Таким образом, это первая строка, на данный момент взять на себя веры, просто открывает графики из 654 00:32:53,520 --> 00:32:56,160 Интернет, что шумные графические мы только что видели. 655 00:32:56,160 --> 00:32:59,900 В следующей строке здесь приведен пример петлю, и мы фактически увидели, что же 656 00:32:59,900 --> 00:33:01,130 жаргон в видео TED. 657 00:33:01,130 --> 00:33:03,750 Петля является то, что случится еще раз и снова, и даже если это 658 00:33:03,750 --> 00:33:08,440 Абсолютно выглядит загадочным, с ключевое слово, а некоторые скобки и 659 00:33:08,440 --> 00:33:09,510 некоторые запятой. 660 00:33:09,510 --> 00:33:13,070 Мы вернемся к этому в скором времени, но это петля там по сути является 661 00:33:13,070 --> 00:33:17,310 сообщая программе, перебора всех из тех шумных точек, слева 662 00:33:17,310 --> 00:33:18,980 направо, сверху вниз. 663 00:33:18,980 --> 00:33:21,260 >> Потому что в конце дня, изображение нравится это - и вы можете фактически 664 00:33:21,260 --> 00:33:22,860 отчасти видеть его на этом проекторе - 665 00:33:22,860 --> 00:33:25,280 на самом деле просто сетку из точек. 666 00:33:25,280 --> 00:33:29,730 Так мы можем определить каждую из этих точек по координате х, у, и с этой 667 00:33:29,730 --> 00:33:33,890 программы, в настоящее время мы можем начать что-то сделать, чтобы эти точки. 668 00:33:33,890 --> 00:33:37,540 >> Так что я собираюсь идти вперед здесь и делаю, я собираюсь внести некоторые изменения. 669 00:33:37,540 --> 00:33:41,000 Сначала я собираюсь идти вперед и избавиться всего этого зеленовато и голубовато 670 00:33:41,000 --> 00:33:43,520 шум, и я собираюсь идти вперед и введите следующие 671 00:33:43,520 --> 00:33:45,710 Правда загадочным синтаксисом. 672 00:33:45,710 --> 00:33:48,020 им для изображения. 673 00:33:48,020 --> 00:33:53,380 набор синий по месту нахождения х, запятая, расположение у, равным 0. 674 00:33:53,380 --> 00:33:55,610 Другими словами, я хочу просто выключить все синим 675 00:33:55,610 --> 00:33:56,920 точки в этой картине. 676 00:33:56,920 --> 00:33:59,800 >> Я собираюсь идти вперед сейчас и перейдите Выполнить эту кнопку Сохранить /, и Вы будете 677 00:33:59,800 --> 00:34:02,850 заметили на правой стороне, полученное изображение. 678 00:34:02,850 --> 00:34:06,120 Теперь его супер зеленый, но это не удивительно, потому что я буквально оказался 679 00:34:06,120 --> 00:34:11,070 выключен, сделав 1 0 все синий в этой картине. 680 00:34:11,070 --> 00:34:12,540 >> Ну, а теперь давайте сделаем это немного больше. 681 00:34:12,540 --> 00:34:16,989 им для изображения, точка setGreen, х, у. 682 00:34:16,989 --> 00:34:20,659 И это просто означает итерацию слева направо и сверху вниз. 683 00:34:20,659 --> 00:34:23,520 Выключи со значением 0, а также. 684 00:34:23,520 --> 00:34:24,750 Сохранить. 685 00:34:24,750 --> 00:34:28,100 И на проекторе, вы не можете на самом деле действительно ничего видно не было. 686 00:34:28,100 --> 00:34:31,380 >> На экране моего ноутбука, если я заглядываю всего правильный путь, я вижу немного 687 00:34:31,380 --> 00:34:33,300 изображения, потому что они по-прежнему некоторые красные там. 688 00:34:33,300 --> 00:34:35,540 Если вы когда-либо слышали акроним RGB - 689 00:34:35,540 --> 00:34:36,830 красный, зеленый, синий - 690 00:34:36,830 --> 00:34:39,110 он имеет в виду эта композиция из изображения с помощью 691 00:34:39,110 --> 00:34:40,230 только тех трех цветов. 692 00:34:40,230 --> 00:34:43,159 И прямо сейчас, мы выбросили все зеленое, все синее, но 693 00:34:43,159 --> 00:34:44,500 существует не так много красного цвета. 694 00:34:44,500 --> 00:34:45,920 >> Итак, позвольте мне выжать максимум красным. 695 00:34:45,920 --> 00:34:47,070 Как я могу это сделать? 696 00:34:47,070 --> 00:34:49,300 Ну, во-первых, я хочу попросить эта программа вопрос. 697 00:34:49,300 --> 00:34:52,030 Я собираюсь идти вперед и назовем его переменной, как в алгебре. 698 00:34:52,030 --> 00:34:54,060 У вас может быть Х или Y или Z. 699 00:34:54,060 --> 00:34:57,230 Я собираюсь объявить переменную и сказать, положить в эту переменную, 700 00:34:57,230 --> 00:35:02,790 временно, значение изображения getRed значение при х, у. 701 00:35:02,790 --> 00:35:05,870 >> И снова, мы вернемся к все этой детали в будущем. 702 00:35:05,870 --> 00:35:10,630 Но на сегодняшний день, просто взять на веру, что эта линия просят программы, что 703 00:35:10,630 --> 00:35:12,740 это значение красного на х, у? 704 00:35:12,740 --> 00:35:14,450 Именно в это точка? 705 00:35:14,450 --> 00:35:15,710 >> Тогда я собираюсь сделать что-то к нему. 706 00:35:15,710 --> 00:35:21,100 Тогда я собираюсь сделать точечное изображение набор красный на х, у, у, но на этот раз я собираюсь 707 00:35:21,100 --> 00:35:24,760 повысить его, делая красным раза, скажем, 10. 708 00:35:24,760 --> 00:35:26,870 Так что увеличить его в 10 раз. 709 00:35:26,870 --> 00:35:29,880 Позвольте мне теперь уменьшить масштаб и нажмите могли Выполнить / Сохранить. 710 00:35:29,880 --> 00:35:36,430 И вуаля, которая была там всего время, даже если наши человеческие глаза 711 00:35:36,430 --> 00:35:37,900 не мог увидеть его. 712 00:35:37,900 --> 00:35:41,470 >> Итак, еще раз, это сейчас является реальным кодом, пример языка, что мы приедем 713 00:35:41,470 --> 00:35:42,770 Вернуться к скором времени. 714 00:35:42,770 --> 00:35:46,670 Но поймите, в частности тех из вас, с такого опыта нет, это довольно 715 00:35:46,670 --> 00:35:50,280 скоро, что мы сами будет написание кода нравится, что есть. 716 00:35:50,280 --> 00:35:54,520 В самом деле, инструмент, с которым вы все немного знакомы, пожалуй, CS50 автора 717 00:35:54,520 --> 00:35:57,330 собственный курс-торговый инструмент, который был на самом деле перезагрузки этим летом некоторые 718 00:35:57,330 --> 00:36:01,070 CS50 из собственных бывших студентов, теперь TFS. 719 00:36:01,070 --> 00:36:04,740 >> Так что это, оказывается, сайт построен на языке, называемом PHP. 720 00:36:04,740 --> 00:36:08,510 Он использует базу данных с именем MySQL, вещи , с которым мы получим в свои руки 721 00:36:08,510 --> 00:36:10,190 грязные позже в семестр. 722 00:36:10,190 --> 00:36:14,140 Но верить этому или нет, даже что-то как это в конечном итоге сводится к 723 00:36:14,140 --> 00:36:19,480 простейших петель и условия и филиалы, как и те, которые мы видели только 724 00:36:19,480 --> 00:36:21,530 Минуту назад в видео TED. 725 00:36:21,530 --> 00:36:25,180 >> То, что я думал, что я сейчас сделать, это доля не просто то, что мы сделали персонала 726 00:36:25,180 --> 00:36:28,010 для кампуса, а нечто бывший студент - три 727 00:36:28,010 --> 00:36:29,080 студентов, на самом деле - 728 00:36:29,080 --> 00:36:33,950 сделали это в прошлом году, Сьерра, Даниил и Сэм, последний из которых ранее не имели 729 00:36:33,950 --> 00:36:36,370 Опыт программирования когда он взял CS50. 730 00:36:36,370 --> 00:36:39,950 И для их окончательного проекта, они выставлены на ярмарке CS50, 731 00:36:39,950 --> 00:36:43,720 приложение под названием wrdly, которая является веб-программы, для которой они сделаны 732 00:36:43,720 --> 00:36:47,670 это видео, что я думал, что я разделю на дать вам чувство только то, что 733 00:36:47,670 --> 00:36:49,280 возможно к концу термина. 734 00:36:49,280 --> 00:37:57,170 >> [Музыка Воспроизведение] 735 00:37:57,170 --> 00:38:00,570 >> DAVID МАЛАН: Это от нулевой неделе Неделя до 12 в прошлом году. 736 00:38:00,570 --> 00:38:05,470 >> [Аплодисменты] 737 00:38:05,470 --> 00:38:09,520 >> DAVID МАЛАН: как тизер, также, действительно чтобы подогреть аппетит к тому, что 738 00:38:09,520 --> 00:38:14,580 возможно, вы, возможно, видели уже, или может вскоре увидим, market.cs50.net, 739 00:38:14,580 --> 00:38:17,710 новый инструмент, который команда курса имеет работаете, на этот раз в 740 00:38:17,710 --> 00:38:21,530 Студент сотрудничестве с Гарвардской Учреждения, такие, что начиная с этого года 741 00:38:21,530 --> 00:38:24,980 и продолжение, надеюсь в этот ближайшим летом вы будете иметь стандартную 742 00:38:24,980 --> 00:38:27,890 возможность на территории кампуса, чтобы купить и продать вещи, представляющие интерес для вас. 743 00:38:27,890 --> 00:38:32,220 И с HSA партнерства путем, вы Также сможете отказаться пунктов от 744 00:38:32,220 --> 00:38:35,950 в одном из физических магазинах HSA в некоторый момент в будущем, с тем чтобы 745 00:38:35,950 --> 00:38:39,150 прокси вещей, в частности, как вы выпускник и не обязательно хотят 746 00:38:39,150 --> 00:38:44,110 отказаться от вещей, но на самом деле платить направить людей, которые могут следовать за вами 747 00:38:44,110 --> 00:38:45,270 Здесь на территории кампуса. 748 00:38:45,270 --> 00:38:46,740 Так об этом в будущем. 749 00:38:46,740 --> 00:38:49,830 >> Но немного более конкретно, инструмент который выходит из CS50 в последние 750 00:38:49,830 --> 00:38:52,760 лет, с которым некоторые из вас могли бы быть знакомые и другие вы можете быть 751 00:38:52,760 --> 00:38:57,940 прибегая к помощи сейчас, в CS50.net/2x, вы будете найти ссылку на расширение Chrome 752 00:38:57,940 --> 00:39:01,250 которые демонстративно, как вы можете использовать JavaScript, тот же самый язык, который мы 753 00:39:01,250 --> 00:39:06,660 использованы с Эйфелевой башней минуту назад, для реализации 2x скорости воспроизведения 754 00:39:06,660 --> 00:39:09,000 для всех Гарвардский iSites видео. 755 00:39:09,000 --> 00:39:11,880 Это то, что построен в собственный видеоплеер CS50 автора. 756 00:39:11,880 --> 00:39:14,870 Но и это тоже, если вы начинаете копаться в исходный код, который мы 757 00:39:14,870 --> 00:39:18,840 счастливо сделать доступным, вы увидите, как Вы можете даже решить такие проблемы, как, что, 758 00:39:18,840 --> 00:39:23,180 ускорение виджетов в веб-сайты с которые вы уже хорошо знакомы. 759 00:39:23,180 --> 00:39:26,630 >> Так что теперь слово на ход и ожидания и что ждет впереди. 760 00:39:26,630 --> 00:39:29,445 В общем, мы действительно собираемся здесь по понедельникам и средам - ​​хотя 761 00:39:29,445 --> 00:39:31,490 в эту пятницу, мы собрались потому, хождения по магазинам неделя - 762 00:39:31,490 --> 00:39:34,640 1:00 до 2:00 вечера, хотя Не иногда до 2:30. 763 00:39:34,640 --> 00:39:38,700 Учитывая, что Следовательно, вы, или придется принять некоторые класс в 2:00 вечера 764 00:39:38,700 --> 00:39:42,480 вперед, или даже раньше, понимаешь, Курс поддерживает то, что называется 765 00:39:42,480 --> 00:39:45,900 одновременная регистрация, которой мы будем поддерживают петицию и Доска объявлений 766 00:39:45,900 --> 00:39:49,400 ваши резиденты деканов от вашего имени, если у вас конфликт где-то в этом 767 00:39:49,400 --> 00:39:50,790 1:00 до 2:30 диапазоне. 768 00:39:50,790 --> 00:39:54,110 Голова к URL, что онлайн дополнительной информации. 769 00:39:54,110 --> 00:39:57,750 >> Но с точки зрения опорной конструкции , что характеризует CS50, для студентов 770 00:39:57,750 --> 00:40:01,750 более и менее удобны, так, мы предлагают различные треки разделах. 771 00:40:01,750 --> 00:40:04,730 И это пару недель отпуска, но В ближайшее время, вам будет предложено, чтобы 772 00:40:04,730 --> 00:40:05,770 ваш уровень комфорта. 773 00:40:05,770 --> 00:40:08,590 Вы среди тех, меньше знакомы, более комфортной, или 774 00:40:08,590 --> 00:40:10,520 где-то посередине? 775 00:40:10,520 --> 00:40:13,150 >> И мы будем иметь три различных треков, которые обслуживают 776 00:40:13,150 --> 00:40:14,470 именно те аудитории. 777 00:40:14,470 --> 00:40:17,900 Так что ни в какой момент этот термин приобрел вы даже чувствуете, как вы собираетесь победить 778 00:40:17,900 --> 00:40:21,390 против любой студент с более или менее фоне, чем вы. 779 00:40:21,390 --> 00:40:24,160 Действительно, курс предназначен для гораздо больше совместных и многое 780 00:40:24,160 --> 00:40:25,650 более открытой, чем это. 781 00:40:25,650 --> 00:40:29,030 >> С точки зрения проблемы наборы, вы найти также, что в дополнение к 782 00:40:29,030 --> 00:40:32,130 стандартная редакция проблемы каждую неделю установлен, там часто "хакер 783 00:40:32,130 --> 00:40:37,010 Издание ", что означало быть направлены на 5% до 10% или около того 784 00:40:37,010 --> 00:40:40,270 демографические, кто действительно среди тех, более удобной и хотел бы больше 785 00:40:40,270 --> 00:40:43,960 сложной задачей, чем стандартный изданию, что ожидает PSET. 786 00:40:43,960 --> 00:40:46,390 Более подробная информация о тех, которые будут найти в программе. 787 00:40:46,390 --> 00:40:49,430 >> Но и там можно найти подробности на курсах конца дней. 788 00:40:49,430 --> 00:40:51,570 Обычно проблема устанавливает обусловлены по четвергам. 789 00:40:51,570 --> 00:40:55,550 Тем не менее, вы можете расширить многие из ваших сроки этой осенью от четвергам 790 00:40:55,550 --> 00:41:00,010 Пятницам просто встречая нас на полпути, так сказать, ответив на несколько разминки 791 00:41:00,010 --> 00:41:03,370 вопросов в некоторых проблема неделе наборы, который будет автоматически 792 00:41:03,370 --> 00:41:05,710 Затем дать вам дополнительные 24 часов. 793 00:41:05,710 --> 00:41:09,120 Мы также упадет ваша низкая Оценка, в соответствии с учебной программе. 794 00:41:09,120 --> 00:41:12,170 >> Чтобы дать вам ощущение того, что проблема Наборы - потому что это действительно 795 00:41:12,170 --> 00:41:15,120 Проблема конечно, устанавливает, что в конечном счете, определяют почти каждый 796 00:41:15,120 --> 00:41:18,760 студенческий опыт, больше, чем лекции, больше, чем разделов, более 797 00:41:18,760 --> 00:41:21,230 , чем большинство других аспект курса. 798 00:41:21,230 --> 00:41:25,140 В прошлом году, например, мы начали, как мы начнем в этом году, с нуля. 799 00:41:25,140 --> 00:41:29,150 Особенно в эту пятницу, мы будем использовать, для всего за один день время, графическая 800 00:41:29,150 --> 00:41:32,260 язык программирования, с которым мы будем Начало программирования путем перетаскивания 801 00:41:32,260 --> 00:41:37,580 падение частей головоломки, что только собрать физически если это имеет смысл 802 00:41:37,580 --> 00:41:38,990 чтобы сделать это, логически. 803 00:41:38,990 --> 00:41:43,460 >> На следующей неделе, мы быстро переход к C, довольно старый, но очень маленький и 804 00:41:43,460 --> 00:41:48,510 простой язык, который позволит нам действительно идут от 0 до 60 в течение 805 00:41:48,510 --> 00:41:52,290 всего за несколько недель, а затем экспрессы те же навыки и знания 806 00:41:52,290 --> 00:41:56,160 основные программные конструкции в языков высокого уровня, как PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, а третьи еще. 808 00:41:58,240 --> 00:42:02,560 >> В прошлом году в третьем PSET в ходе было то, что криптография 809 00:42:02,560 --> 00:42:06,380 предметно-ориентированные приложения, посредством которого мы вызов студентам реализовать любой 810 00:42:06,380 --> 00:42:11,140 количество шифров, программах, с которыми карабкаться или расшифровывать информацию, 811 00:42:11,140 --> 00:42:11,880 зашифровать его. 812 00:42:11,880 --> 00:42:16,300 Для хакер издание, напротив, мы дали хакер студентов файла 813 00:42:16,300 --> 00:42:19,900 от стандартного компьютера Unix содержащие имена пользователей и пароли, 814 00:42:19,900 --> 00:42:22,740 последний из которых были зашифрованы, и мы бросали вызов хакера 815 00:42:22,740 --> 00:42:26,850 студентов для расшифровки, как могли, эти пароли, все еще на что 816 00:42:26,850 --> 00:42:27,770 одном домене. 817 00:42:27,770 --> 00:42:30,580 >> Схватка, игра с которой некоторые из вас, возможно, знакомы. 818 00:42:30,580 --> 00:42:34,410 Криминалистике часть, где мы просим студентов восстановить данные, которые были 819 00:42:34,410 --> 00:42:38,530 в противном случае удалить из моих собственных цифровых Compact Flash камеры карте, по 820 00:42:38,530 --> 00:42:42,740 на самом деле написание программного обеспечения, чтобы выяснить, где были нули и единицы в 821 00:42:42,740 --> 00:42:46,850 что цифровая камера, которая ранее состоит JPEG графические? 822 00:42:46,850 --> 00:42:49,710 >> Задача родов в прошлом году подразумевающие запись самый быстрый 823 00:42:49,710 --> 00:42:53,160 Орфографический возможно, конкурирующих с друзьями и одноклассниками, если 824 00:42:53,160 --> 00:42:53,860 они хотели бы. 825 00:42:53,860 --> 00:42:56,330 Реализация N Puff Хафф, программа для сжатия. 826 00:42:56,330 --> 00:43:01,930 А потом окончание семестра с CS50 Финансов, веб-приложение с 827 00:43:01,930 --> 00:43:06,570 которое вы создаете ETRADE-как веб-сайт покупать и продавать акции, так 828 00:43:06,570 --> 00:43:09,860 сказать, в самом деле тянет почти котировки в реальном времени Yahoo! 829 00:43:09,860 --> 00:43:10,450 Финансов. 830 00:43:10,450 --> 00:43:13,590 >> То, что мы не сделали в прошлом году был одна проблема, которая остается набор 831 00:43:13,590 --> 00:43:14,810 Тем не менее любимым. 832 00:43:14,810 --> 00:43:18,400 Если вы никогда не ходили в shuttle.cs50.net, вы увидите пользователей 833 00:43:18,400 --> 00:43:19,670 Интерфейс немного как это. 834 00:43:19,670 --> 00:43:23,530 Но два года назад, класс применяться, с помощью Google Maps и 835 00:43:23,530 --> 00:43:28,570 Google Планета Земля плагин и немного подкованных с вождением по всему университетскому городку, 836 00:43:28,570 --> 00:43:33,290 так что цель этой игры был, как вы можете увидеть некоторые из лиц, 837 00:43:33,290 --> 00:43:37,530 , чтобы двигаться по всему университетскому городку ищете персонала, обучение стажеров и центров сертификации, и 838 00:43:37,530 --> 00:43:40,080 Когда вы делаете, положив их на вашем автобусе. 839 00:43:40,080 --> 00:43:44,035 Ни один из них на самом деле, кажется, здесь, так что мы собираемся ввести чит-код. 840 00:43:44,035 --> 00:43:47,150 >> [Смеется] 841 00:43:47,150 --> 00:43:48,430 >> DAVID МАЛАН: Там мы идем. 842 00:43:48,430 --> 00:43:49,240 Хорошо. 843 00:43:49,240 --> 00:43:51,750 И вот теперь, является персонал пронизан всему университетскому городку. 844 00:43:51,750 --> 00:43:54,530 И, как вы можете видеть, на правой руке стороне экрана, трансферный автобус 845 00:43:54,530 --> 00:43:55,510 есть свободные места. 846 00:43:55,510 --> 00:43:59,000 И целью было написать код, с которой для имитации этого 847 00:43:59,000 --> 00:44:01,790 вождение и подбирая и высаживая от пассажиров. 848 00:44:01,790 --> 00:44:04,960 Тот тоже с использованием языка называется JavaScript. 849 00:44:04,960 --> 00:44:10,030 Так понимаю, что подобные программы будут быть на нашей же траектории этого 850 00:44:10,030 --> 00:44:10,910 года, а также. 851 00:44:10,910 --> 00:44:13,640 >> С точки зрения, в настоящее время, в дополнительной поддержке, У нас есть офис часов. 852 00:44:13,640 --> 00:44:16,520 Как вы, возможно, видели в собственном доме обеденном зале или во Анненберга, 853 00:44:16,520 --> 00:44:19,280 мы будем в доме столовой залов четыре ночи в неделю - 854 00:44:19,280 --> 00:44:24,450 Левереттом, Pfoho, Элиот и Анненберга этого года, 8:00 вечера до 11:00 вечера. 855 00:44:24,450 --> 00:44:26,830 И то, что мы думали, что мы делаем в этом году что-то немного другое. 856 00:44:26,830 --> 00:44:29,650 >> Если вы слышали раскаты прошлом году, что это было немного слишком напряженный, это 857 00:44:29,650 --> 00:44:32,800 офис году часа, как мы опишем на следующей неделе, будет более органичным, 858 00:44:32,800 --> 00:44:36,900 которой по прибытию, вы будете отправлены в одной конкретной таблице 859 00:44:36,900 --> 00:44:39,860 , когда несколько сотрудников ждут, и мы будем делать то, гораздо более 860 00:44:39,860 --> 00:44:40,440 органически. 861 00:44:40,440 --> 00:44:43,740 Нет больше очередей, не более Ipad, но а есть более интимные 862 00:44:43,740 --> 00:44:47,300 разговоры вокруг стола всего восемь или около студентов, так что мы 863 00:44:47,300 --> 00:44:50,880 приблизительный почувствовать, что в противном случае было бы гораздо меньшего класса. 864 00:44:50,880 --> 00:44:54,120 >> Мы предлагаем, а также, эти вещи, которые мы называется прохождение, видео снято в 865 00:44:54,120 --> 00:44:57,330 заранее по одному из преподавания курса молодцы, Zamyla, в котором она 866 00:44:57,330 --> 00:45:00,690 проведет вас через проблемы неделе наборы, предлагая советы и рекомендации для 867 00:45:00,690 --> 00:45:02,640 проблемы, которые предстоит решить. 868 00:45:02,640 --> 00:45:06,230 И наоборот, после того, как проблема наборы благодаря, в этом году мы также выпустить 869 00:45:06,230 --> 00:45:09,100 маленькие клипы называют пост-трупов, что на самом деле вы пройдете через 870 00:45:09,100 --> 00:45:13,630 Представитель решений, и хорошие и плохо, с помощью которого вы можете заключить, насколько 871 00:45:13,630 --> 00:45:17,550 вы могли бы или должны быть реализовано собственное решение. 872 00:45:17,550 --> 00:45:20,500 >> И то, что мы предлагаем в первый раз и в этом году, в частности, 873 00:45:20,500 --> 00:45:23,420 для тех студентов, которые пользуются курсы в других 874 00:45:23,420 --> 00:45:28,580 ресурсов но тем не менее изо всех сил все слишком много, конечно 875 00:45:28,580 --> 00:45:33,030 сама пару тех студентов, а позволяют средства, с репетиторами, так что 876 00:45:33,030 --> 00:45:35,840 у вас есть гораздо более интимное возможности, чем залы Ресторан 877 00:45:35,840 --> 00:45:38,700 предусмотреть один-на-один помощи. 878 00:45:38,700 --> 00:45:42,780 >> Теперь окончательное взглянуть на некоторые На конец игры в поле зрения. 879 00:45:42,780 --> 00:45:44,580 Вы можете быть знакомы с CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Ну, приходя в декабре этого года, с 8:00 Вечера до 7:00 утра, в начале 881 00:45:48,120 --> 00:45:51,410 Чтение период, будет возможность собраться с одноклассниками - 882 00:45:51,410 --> 00:45:53,130 это будет около 9:00 вечера - 883 00:45:53,130 --> 00:45:56,550 в течение которого вы погрузитесь в ваше окончательное реализации проекта наряду с 884 00:45:56,550 --> 00:45:59,910 одноклассников, друзей, и продукты питания. 885 00:45:59,910 --> 00:46:03,680 Это будет около 1:00 утра, когда Первая партия прибыла еда. 886 00:46:03,680 --> 00:46:08,470 А это примерно 4:00 утра, что конкретный год на CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Но истинная кульминация курса предназначены для ярмарки CS50, на всей территории комплекса 888 00:46:12,000 --> 00:46:15,790 Выставка вашего собственного конечного проектов, к которому семья и друзья все 889 00:46:15,790 --> 00:46:18,730 пригласили, так как наши рекрутеров и наши друзья из промышленности. 890 00:46:18,730 --> 00:46:22,170 Это, например, является представление о 2000 с лишним человек, которые приняли участие 891 00:46:22,170 --> 00:46:23,160 прошлых лет. 892 00:46:23,160 --> 00:46:27,180 Выражения, подобные этому, не редкость, а так же сделать вашу 893 00:46:27,180 --> 00:46:29,660 одноклассники наслаждаться вещами Вы достигли. 894 00:46:29,660 --> 00:46:33,170 >> А на самом деле, в этом направлении, у нас есть START-OF перспективу мероприятие, а также. 895 00:46:33,170 --> 00:46:37,400 Если такие вещи, как это обращение к вам, или вы по крайней мере любопытно, что 896 00:46:37,400 --> 00:46:41,590 это, знаете, что новая традиция Конечно называется CS50 Головоломка День. 897 00:46:41,590 --> 00:46:45,710 И это был учрежден пару лет назад, чтобы действительно сигнализировать кампусе 898 00:46:45,710 --> 00:46:48,930 , что информатика не о программирования, и это, конечно, не 899 00:46:48,930 --> 00:46:51,960 об охвате только тех студентов, , которые имеют предварительный опыт. 900 00:46:51,960 --> 00:46:54,200 Это действительно о решении проблем в целом. 901 00:46:54,200 --> 00:46:57,360 >> И так Puzzle день, в течение последних нескольких лет, превратилась в хороший 902 00:46:57,360 --> 00:47:00,500 партнерство с нашими друзьями в Facebook, в результате чего будет сказочной 903 00:47:00,500 --> 00:47:04,830 призы и пиццы через реку I-лаборатории в эту субботу. 904 00:47:04,830 --> 00:47:09,180 Голова к URL, что с двумя или тремя друзья, если вы хотите принять участие 905 00:47:09,180 --> 00:47:10,830 в этой новой традиции. 906 00:47:10,830 --> 00:47:14,180 >> Поэтому я хотел бы спросить, что вы держите одну вещь в виду, и мы получили просто 907 00:47:14,180 --> 00:47:17,070 двухминутного ролика, , чтобы закрыть сегодня. 908 00:47:17,070 --> 00:47:19,640 73%-число запомнить. 909 00:47:19,640 --> 00:47:23,900 Торт тоже будет ждать вас вне этой трансепт как мы отложить всего за 910 00:47:23,900 --> 00:47:26,710 пару моментов, которые традиция курса, а также. 911 00:47:26,710 --> 00:47:29,860 Но это цитата из ключевых программу курса, чтобы держать в уме. 912 00:47:29,860 --> 00:47:32,820 Что в конечном счете имеет в этом курсе Не так много, где вы заканчиваете 913 00:47:32,820 --> 00:47:36,580 по отношению к своим одноклассникам, но где Вы, в 12-й неделе в конечном итоге по отношению к 914 00:47:36,580 --> 00:47:37,960 Неделя себя в 0. 915 00:47:37,960 --> 00:47:43,670 >> Но представление, что мы выйдем вам с сегодня это последняя здесь 916 00:47:43,670 --> 00:47:47,580 нашим же Даниил, который сделал wrdly видео всего минуту назад. 917 00:47:47,580 --> 00:47:50,000 Я оставляю вас с этим представление , что ждет впереди. 918 00:47:50,000 --> 00:47:53,360 И, как мы это сделаем, если мы могли бы CS50 Персонал от передней части комнаты 919 00:47:53,360 --> 00:47:57,280 прийти на до стадии расписывать все более визуального изображения в качестве до 920 00:47:57,280 --> 00:47:59,100 что ждет вас в этом году - 921 00:47:59,100 --> 00:48:00,350 получение неловко. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Мы закончим с этим Здесь на экране. 924 00:48:05,188 --> 00:48:18,634 >> [Музыка Воспроизведение] 925 00:48:18,634 --> 00:48:21,124 >> DAVID МАЛАН: Это CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIC - матовое и Ким, "Все в порядке"] 927 00:50:00,226 --> 00:50:03,245 >> Выступающий 1: Я люблю CS50 более кошек. 928 00:50:03,245 --> 00:50:06,030 >> Докладчик 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Смеется] 930 00:50:06,990 --> 00:50:08,140 >> DAVID МАЛАН: Это, тогда, является CS50. 931 00:50:08,140 --> 00:50:10,050 Мы будем видеть вас в пятницу. 932 00:50:10,050 --> 00:50:13,370 >> [Аплодисменты и восхищаться] 933 00:50:13,370 --> 00:50:17,540 >> Рассказчик: На следующей CS50, на сцене Демо не так, как планировалось. 934 00:50:17,540 --> 00:50:19,080 >> DAVID МАЛАН: Мы хотим найти Майка Смит в этой телефонной книге. 935 00:50:19,080 --> 00:50:20,380 Ну, что ваши инстинкты? 936 00:50:20,380 --> 00:50:23,750 Я мог бы прыгать примерно до середины телефонной книге, взгляд вниз, видим, что 937 00:50:23,750 --> 00:50:26,830 Я на М, и теперь я знаю, что Майк Смит не влево. 938 00:50:26,830 --> 00:50:27,840 Он должен быть с правой стороны. 939 00:50:27,840 --> 00:50:30,515 И поэтому на данном этапе, мы может буквально разорвать - 940 00:50:30,515 --> 00:50:33,300 На данный момент, мы можем буквально рвать - 941 00:50:33,300 --> 00:50:36,490 На данный момент, мы можем образно рвать телефонную книгу на две части. 942 00:50:36,490 --> 00:50:38,954 >> [Ukelele бренчал]