[МУЗЫКА ИГРАЕТ] [Аплодисменты] David J. МАЛАН: Это CS50, Введение Гарвардского университета к интеллектуальной предприятия информатике и искусство программирования. Теперь, если вы принадлежите к числу тех, которые каждый год сидят здесь с немного нервов в вашем уме, например что вы не думаете, вы принадлежите здесь, Вы думаете, что большинство кто сидит вокруг вас знает гораздо больше, чем вы, в самом деле более комфортно, чем вам на компьютер наука или компьютеры в более общем, понимают, что 78% студентов, которые в настоящее время принять CS50 не имеют никакого опыта. В самом деле, есть 100 точек есть на дисплее, 78 из которых твердые зеленый, что означает вас, если вы среди этой аудитории, находятся в очень хорошей компании здесь на. И если вы вместо среди 22% от CS50 студентов, которые действительно иметь опыт работы, будь то в средней школы или некоторые другие программы, понимаю, что вам тоже будет быть оспорены в ходе. Мало того, что у нас разные треки для студентов менее удобным и более комфортно, так в разделах, мы Также есть так называемые хакерские издания из самых проблема устанавливает, что будет оспаривать те студенты с этой дополнительной опыта изучить подобный материал но от более сложные перспективы. Но что такое информатика? Ну, в конце концов, то, что происходит в Дело, как вы изучите это поле не так много, где вы в конечном итоге по сравнению с одноклассниками, но где вы сами попадают в 12-я неделя против где вы начинаете здесь к нулевой неделе. Теперь компьютер science-- хорошо, давайте называют это наука о computation-- где вычисление на самом деле просто причудливый способ сказать, принимая некоторые материалы, производить некоторый вывод и делает это, запустив алгоритмов, наборы инструкций для решения некоторые проблемы на этих входов для того, чтобы создавать некий выход или раствор, в котором вы заинтересованы. Таким образом, мы недавно были повод путешествовать из в Калифорнию, чтобы встретиться с выпускница. Ее зовут Сьюзен Воджиски. И она бы хотела поговорить чтобы вы здесь на видео свидетельствовать о том, насколько это применимо даже только вкус компьютере наука в Вводный уровень может быть. Даже если вы не идете на преследовать информатика как поле, или даже инженерная, или стволовых более общем смысле, Вы увидите, на самом деле, как некий Конечно так повлияло на ее жизнь. И она только что взял его, когда она был старшим здесь в Гарвардском колледже. Если бы мы могли приглушить свет для Сьюзен. Сьюзен Воджиски: Привет, мир. Я Сьюзен Воджиски. Я генеральный директор YouTube. И я взял CS50, когда я был старший в Гарварде в 1990 году. Я был на самом деле история и литература основным. И мой младший летом, Я понял, что, возможно, я хотел узнать что-то о компьютерах. И так, я вернулся. Я взял CS50. Было трудно, но это было Самое удивительное класс я взял. Это изменилось, как я думаю, обо всем. И когда я закончил Гарвард в 1990 году, я пошел в Силиконовой долине. И я получил работу. И я работаю в теч с тех пор. David J. МАЛАН: Теперь то, что Сьюзен не говоря уже в этом видео, что это было на самом деле в ней гараж, который сам Google был основана Ларри и Сергей. Теперь мы также обратились к нашим друзьям в code.org, организации, которая за прошедший год было заставить людей особенно взволнован информатике и программирование, в частности. Но стоит заметить, что программирование не информатика по себе. Информатика не программирования. Скорее программирование это просто tool--, с которой вы все будет слишком хорошо знакомы с end-- семестра таким образом, что вы можете применить не только к будущим курсов в CS но какими бы то ни полей, откуда Вы приезжаете, в гуманитарных, общественные науки, естественные наука, или тому подобное. Действительно, позволяют несколько других Выпускники и их коллеги говорить о применимости поля, которое ждет. Билл Гейтс: мне было 13 лет, когда я впервые получил доступ к компьютеру. Джек Дорси: Мои родители купил мне Macintosh в 1984 году когда мне было восемь-летний. Марк Цукерберг: Я был в шестом классе. СПИКЕР 1: Я научился кодировать в колледже. Ручьи Sanghvi: Первокурсник год, первая семестр, Введение в области компьютерных наук. Билл Гейтс: Я написал программу что играли в крестики-нолики. ДРЮ Хьюстон: Я думаю, что это было довольно скромное начало. Я думаю первую программу Я написал спросил вещи, как, Какой ваш любимый цвет? Или сколько вам лет? ЕЛЕНА силенок: я впервые узнал как сделать зеленый круг и красный квадрат на экране появляются. Гейб Ньюэлл: Первый раз, когда я на самом деле было то подойти и сказать, привет, мир. И я сделал это компьютер сделать. Это было просто удивительно. Марк Цукерберг: Научиться в программе не начинались как хотели бы узнать все информатике или пытаются освоить этот дисциплина, ничего такого. Это только начал, потому что я хотел сделать эту одну простую вещь. Я хотел сделать то, что было интересно для меня и моих сестер. И я написал эту небольшую программу. И тогда в основном только добавили немного к нему. А потом, когда я нуждался узнать нечто новое, Я посмотрел его, либо в книга или в Интернете, а затем добавил немного к нему. Дрю Хьюстон: Это действительно не в отличие от игра на музыкальном инструменте или что-то или занятия спортом. David J. МАЛАН: Хорошо. Так давайте теперь фактически нырять в чуть глубже. Каковы эти входы и выходы что мы говорим здесь? Так как о чем-то простой? Вы, наверное, знаете, даже если у вас есть нет знакомство с компьютерной науки бы то ни было, что компьютеры так или иначе использовать и понимает только нули и единицы. Но как это возможно, дать как Многое сегодняшние настольные компьютеры и ноутбуки, так можно сделать? ДНК день, единственным алфавит, что они понимают, является нулем или единицей. Ну, рассмотреть этот вопрос. Мы, люди, как правило, используют десятичную систему. "Декабрь", что означает 10. И вот 10 потому что у нас 10 цифр, от 0 до девяти. Теперь компьютеры, напротив, как правило, используют двоичную. "Би", что означает два. Таким образом, они, как правило, только ноль и единица в использовании. Но, оказывается, что даже только с нулей и единиц, что достаточно большое алфавита с которой для представления наиболее любые данные вы хотите, это ли число, является ли это письмо, будь то графический или видео на экране. Рассмотрим, например, как мы людей обычно интерпретируют здесь этот номер. Это только три цифры, один, два, три. Но мы знаем, это число врожденно сейчас как 123. Но почему? Ну, если вы думаете назад чтобы, возможно, начальной школе, вы, наверное, учили думать о эти цифры как в столбцах, где один в сотни место, два находится в месте десятки, и три находится в месте, из них. Почему это на самом деле полезно? Ну, думаю, о супер простая арифметика что мы все были делать на протяжении нескольких лет. Эффективно, если у вас есть один в сотни месте, вы делаете быстрый математику 100 раз 1 плюс 10 раз 2-- потому что два в десятки place-- плюс 1 раз 3-- потому что три находится в для единиц. Так, если, конечно, мы на самом деле умножить на это, то, что мы действительно представляющих с этой pattern-- одного два three-- 100 плюс 20 плюс 3, которые, конечно, 123. Теперь двоичный, и компьютеры действительно, принципиально говорят на одном языке что мы делаем. Они просто имеют меньший алфавит. Так компьютеры имеют только нули и те, в их распоряжении. Так в то время как мы, люди, по сути Полномочия 10 в каждой из этих places-- 10 к нулю, 10 к одному, десять в два, давая вам 110 и 100 соответственно. Поскольку компьютеры есть только два значения они могут понять, ноль и единица, они должны использовать различные значения в этих колонках, один, два, четыре. И если мы продолжали, восемь, 16, 32, 64, и так далее. Но картина и менталитет точно так же. Так по этой логике, кем, как бы Я могу идти о представляющее число один в двоичном? Если вы никогда даже не думал о это раньше, как тебя кишка сказать? АУДИТОРИЯ: Один. David J. МАЛАН: Один. Точно. Нам просто нужно один в поразрядное место, потому что нулей достаточно, чтобы дать нам ни четыре, ни два. Так один раз один равняется один. Теперь все становится немного интересно. Если я хочу, чтобы представлять в двоичную количество two-- но, не раз, даже если вы никогда не говорят на этом языке, прежде чем, как мы представляем в двоичный Значение, которое мы люди знают, как два? Ноль один ноль. Просто поместите один в колонка, что вы хотите его. Теперь это становится довольно просто наверное сейчас. Так что, если я хочу, чтобы представлять three-- есть колонка, никакие три автора. Так, опять же, я теперь могу добавить эти значения вместе, поставив один здесь. Так 2 раза 1 плюс 1 1 раз, конечно, 3. Теперь все становится немного развлечься в что те теперь стали нули. И представлять четыре, я получаю это. И если мы увеличиваем медленно здесь-- что будет пять. Это было бы шесть. Это было бы семь. Но теперь я, кажется, столкнулись с проблемой. Как я мог бы идти о представляющих eight-- будет следующее значение. Да, так что нам нужно новые биты. И, действительно, если у Вас есть слышали эту фразу, прежде чем, бит, это просто сокращение от двоичный разряд, ноль или один. И поэтому я, случается, что составляет только три такие биты здесь. Но если бы я имел способ хранения не три различных бит, но четыре, безусловно, могла бы достойно представлять восемь, девять, а затем, а затем 10, и даже выше и выше. Но что затем вызывает под вопрос, как мы можем идти о представляющих их вещи в первую очередь. Это одна вещь, чтобы привлечь их здесь на слайде, но как вы представляете их если вы механическое устройство? Что такое компьютер делает, чтобы представляют входы и выходы, что принципиально определить вычисление в конце дня? Ну, то, что о чем супер просто, как это? Это просто лампочка. И я могу вызвать этот лампочка пойти на повернув немного электроэнергии на и позволяет электроны течь через, которая изменяет его Государство или его значение, так сказать. Например, это настольная лампа старая школа здесь с одним из таких лампочки внутри него. И сейчас это не действительно делают ничего полезного. Но как только я подключить его в электрическую розетку а затем использовать эту switch-- или мы можем даже назвать это транзистор или думать о нем как such-- Теперь я могу представлять либо это значение, где лампочка сайт очевидно, выключен или это значение. Это значение или это значение. Это значение и так далее. Таким образом, внутри компьютера, по-видимому, гораздо меньшие части оборудования, но, что в конце дня просто использовать electricity-- возможно, захватить it-- а затем либо оставить то, или держать-то прочь. Конечно, это не Особенно интересно делать с помощью всего одного лампочку. На самом деле, как высоко я могу рассчитывать в двоичный с этой настольной лампы здесь? АУДИТОРИЯ: Один. David J. МАЛАН: Один, правда? Мне нужно больше Настольные лампы, если я на самом деле хочу, чтобы подсчитать выше. Но мы можем сделать лучше, чем это. Потому что лампочки, что мы ввели в этих вещах на самом деле необычные лампочки чем прошлый год позволит. И они на самом деле сетевые лампочки. И гроздья компаний сделать эти вещи в эти дни. Но оказывается, что этот в особенности поставляется с особенность: при Вы можете изменить его цвета. Так, например, если вы украшали свой комнаты в общежитии с несколькими из этих легких луковицы, в зависимости от вашего настроения, в зависимости от того, кто приходит, в зависимости от погоды, в зависимости от времени дня, вы можете на самом деле изменить цвета луковицы в вашей комнате. И это потому, что эти света лампочки и другие подобные ему есть что называется API, приложение интерфейс программирования, который это тема, с которой вам будет хорошо знакомы с к концу семестра. И это всего лишь фантазии, загадочный способ сказать, Вы можете запрограммировать эти свет лампочки, чтобы сделать вашу волю. Вы можете отправить им сообщения как и вы, человек, можете отправить сообщение на веб-сервер говоря, дать мне сегодняшние новости или дайте мне мою электронную почту. Вы можете отправить более тайной сообщения на этих лампочек сказать, включить и выключить. Но это еще не все, что интересно. Вы можете сказать: включить красный, включить зеленый, включите синий, все с той же лампочки. И можно даже, с немного более подкованных, говорят, превратить себя в синий когда это хмурый день пределами, например. Это действительно может исправить в погода API и выяснить, какая погода или время дня, или других подобных триггеров. Таким образом, на самом деле, два из Собственные сотрудники CS50 в, Дэн Брэдли и Ансель Дафф здесь, любезно закуплены нам целая куча этих лампочек. И они построили CS50-х первая либо двоичные луковицы, где мы представлены здесь-- с этими шутливого magnets-- различные заполнители мы ссылался на только немного назад. Так путь сюда является поразрядное место, два, четыре. И мы не видели больше, чем. Но, конечно, они увеличение в два. Восемь, 16, 32, 64 и 128. Так что, если я сейчас хочу быть немного необычным чем при использовании этого старого выключателя школы, У меня здесь, на этой Ipad супер простой интерфейс что Дэн Брэдли, бывший студент, а теперь преподает человек, запрограммирован с помощью некоторых HTML и JavaScript, которые являются разметки и программирования языки соответственно. И вы, вероятно, see-- даже в back-- есть большой плюс и большой минус, плюс одна кнопка для каждого из этих луковиц. И то, что это происходит, чтобы позволить мне сделать, это, например, щелкните знак и в настоящее время представляют, из Конечно, то, что число? Один. И я могу ударить его снова. Два. Три. Четыре. Пять. Шесть. Семь. И вот теперь мы получаем, что опрокидывание, но у нас есть четвертый бит на этот раз, так что теперь у нас есть восемь. Таким образом, мы могли бы сделать это в течение некоторого времени. На самом деле, как в сторону, как высоко мы можем рассчитывать? Любой? АУДИТОРИЯ: 255. David J. МАЛАН: 255, не так ли? Не беспокойтесь слишком много о математике для сейчас, но это довольно приличный номер. Но это на самом деле связан только как многие фрагменты информации, как письмо, или графика что мы могли бы представлять. Но независимо от того, на данный момент. Я собираюсь идти вперед и выключайте питание всех устройств. И если бы я мог, я бы хотел попросить волонтер, наш первый volunteer-- ой, hello-- на сцене. Загвоздка в том, что вы должны быть комфортно появляться, как вы четко находятся в передней части всех своих одноклассников, а также в Интернете. И позвольте мне выглядеть немного за the-- как насчет вот в белой рубашке? И руки вверх. Поднимайтесь. Как тебя зовут? АУДИТОРИЯ: Джеки. David J. МАЛАН: Джеки. Джеки, давай до. Так что есть и на этом Ipad кнопка называется режим игры. И это Игровой режим собирается позволить мне вход заранее частности десятичной число, число, мы, люди, знакомы. И тогда вы будете быть оспорены здесь, чтобы использовать кнопки на top-- один для каждый из этих bulbs-- на самом деле выяснить картина лампочек , что представляет собой число в вопросе. И мне жаль, что снова тебя зовут? АУДИТОРИЯ: Джеки. David J. МАЛАН: Джеки. Хорошо. Приятно познакомиться. Итак, позвольте мне идти вперед и программа в для всего мира, чтобы увидеть номер 15. Мы будем держать его маленький сначала здесь. И я собираюсь идти в игровом режиме. И я собираюсь указать, дать нам номер 15. ОК. И теперь с каждым watching-- если Вы хотите, может быть, стоять таким образом, потому что это будет выстраиваться up-- идти вперед и переключать восемь кнопок вдоль верхней превратить луковицы на или выключить, как вы считаете нужным. АУДИТОРИЯ: ОК. David J. МАЛАН: И нет обмана нажав плюс 15 раз. О, мы собираемся сделать это. АУДИТОРИЯ: Ой, подождите. Мне очень жаль. David J. МАЛАН: Вы можете также включить лампочки на индивидуально с каждой из этих кнопок на верхней. АУДИТОРИЯ: О, хорошо. Поэтому было бы like-- David J. МАЛАН: ОК. Так что теперь у нас есть восемь. Так что давайте остановимся на аудитория заниматься здесь. Какой это номер Джеки В настоящее время представляющий? 11. Таким образом, мы уже почти там. И отлично. Так у нас есть первый победитель. Поздравляю. И мы думали, что у нас некоторые сказочные призы. Если вы хотели бы быть одним из таких комната в общежитии здесь на территории кампуса, Вы можете сами имеют окончательный проект используя теперь этот API, благодаря Джеки. Так now-- [Аплодисменты] --если мы могли, еще один таких вокруг этого. О, теперь все хотят некоторые лампочки. Для так называемой хакера издание, мы собираемся нарастить его до a-- о, да, уклончиво. Я думаю, что вы пришли сейчас если ваша рука идет вниз. Как тебя зовут? АУДИТОРИЯ: Алекс. David J. МАЛАН: Алекс, иди сюда. Так для Алекса, мы собираемся Программа в несколько большем количестве. Может быть в порядке. 50 число. АУДИТОРИЯ: ОК. David J. МАЛАН: Но, как Я said-- и вы, возможно, хочу стоять здесь так что кнопки выстраиваются как вы бы expect-- но я сделал называют это хакер издание. Так что-- удачи! [Смех] Вы сможете превратить их, если ты-- ОК. Отлично. Замечательно. Поздравляю. [Аплодисменты] Я полагаю, я должен заплатить. Поздравляем Алекса, а также. ОК. Так конечной вынос здесь мы надеемся, откровенно говоря, simplicity-- простота, с которой Вы можете получить некоторые интересные свет луковицы, по-видимому, в [неразборчиво]. Но они представляют, в конечном счете, те же идеи , с которой мы, люди, уже слишком хорошо знакомы. Так что могли бы на следующий шаг быть в прогрессии в попытке сделать что-то Интересно с данными и являются составляющими, которые не только цифры, но, может быть, буквы или более? Ну, получается, что компьютерный мир, на протяжении многих лет, просто принял произвольное, но согласованного стандарта, который отображает номера к буквам алфавита. Например, вот отрывок из этой отображения. Она называется ASCII. -S-C-I-I. И это просто таблица, которая отображает в верхнем регистре letters-- в этом case-- в десятичные цифры. Но то, что подразумевается? Ну, если вы на самом деле хотите, чтобы представлять нечто вроде электронной почте или текст на веб-странице, вы очевидно, хотят, чтобы показать человеческие буквы алфавит, не цифры. Поэтому в зависимости от контекст программы , что пользователь использует, если это веб-браузер или почтовый клиент, Номера, конечно, может быть интерпретируется как письма. То есть, последовательности битов может легко можно интерпретировать как букв. И так, что мы можем иметь это буква существо представлен в виде 65, B будучи представлен в виде 66. Так что, если у нас есть супер короткое слово, как привет, что компьютер будет в конечном счете, магазин в десятичной но на самом деле в двоичной, используя некоторую последовательность битов, используя немного электроэнергии в некотором роде, бы эти два числа 72 и 73. Но образец битов, которые представляет эти ценности. Таким образом, эти же тогда, как мы можем представляют наши входы и выходы. И достаточно сказать, мы можем сделать более сложные представления в конечном счете, с вещами, как графика, видео, музыку и многое другое как мы увидим позже этот термин. Так что просто оставляет то алгоритмы, эти наборы инструкций, с которыми мы решения актуальных проблем. Мы передавая входов алгоритмам. И эти алгоритмы производстве выходы, надеюсь правильные выходы и, надеюсь, тоже, эффективно собрались выходы. Другими словами, это одна вещь, правильно реализовать нечто. Это еще одна вещь, чтобы реализовать то хорошо или эффективно. Например, один демонстрация что мы любили в ходе это один. Но эти вещи становятся все труднее найти. Но это действительно старая школа телефонной книги, внутри которого 1.000 плюс страницы имен и телефонных номеров. И если бы я хотел посмотреть кто в этом телефонной книге, Я мог просто сделать очень наивно алгоритм. Я мог открыть до первой страницы, и Я мог бы начать искать, скажем, кого по имени Майк Смит. И если он не на первый страница, я прогрессировать до второй, , а затем в третий, а затем на четвертый, и так далее, пока я наконец не найти Майк Смит. Теперь то, что алгоритм правильно? АУДИТОРИЯ: Да. David J. МАЛАН: Да. Если он там, я буду в конечном итоге найти его. Но это возможно не очень эффективным, конечно, не быстро, потому, мой бог, почему я тратить свое время переворот через все эти страницы, когда я мог конечно, сделать это физически быстрее? Ну, небольшая оптимизация, так говорят, может быть не одна страница, в то время, а два, четыре, шесть, восемь, 10. Тем не менее правильно? АУДИТОРИЯ: Нет David J. МАЛАН: Так нет, если I для Экземпляр пропустить Майк Смит. Но до тех пор, как я обратно педаль одна страница, если я промахнуться его, может быть, мы могли бы исправить то, что в противном случае могут быть Гоча. Но это лучше? Скорость? Я имею в виду, да. Это буквально в два раза быстрее если я делаю две страницы одновременно. Так что, если я изначально имел 1000 страниц, теперь у меня есть только переворачивать 500 раз, не в полной мере 1000 страниц, чтобы получить потенциально в худшем случае в конце телефона Книга, где кто как Майк Смит или кого-то с позже имя может быть на самом деле. Но, конечно, мы люди, конечно, не собираетесь делать, что, безусловно, не в этот момент в нашей жизни. Что такое разумный человек скорее всего будем делать? АУДИТОРИЯ: Идите прямо к The9 S-ых. David J. МАЛАН: Идите прямо к S-ых? Как я могу идти прямо к S-ых? АУДИТОРИЯ: Рип его пополам. David J. МАЛАН: Ну, нет маркировки. Так что, да, если бы были действительно Метка или закладка липким для S, мы должны перейти прямо там. Но это довольно безобидно. Так что я могу сделать это примерно в разделе S или, может быть примерно в середине. Но ключ вынос now-- и интуиция что вы сделали для предоставляется в течение многих лет probably-- является то, что то, что делают вам сейчас знаю об этой проблеме? АУДИТОРИЯ: [неразборчиво] David J. МАЛАН: Майк Смит, безусловно, Не в этой половине проблемы потому Смит приходит после середины что примерно в разделе M, это, кажется,. Итак, как вы, возможно, видели в Visitas, мы можем теперь буквально разорвать эту проблему в два раза. АУДИТОРИЯ: Ву! David J. МАЛАН: Это становится все легче и легче. [Аплодисменты] Там вы идете. [Смех] И теперь я в корне имеют те же проблемы, но это буквально в два раза большая. Я все еще ищу Майк Смит. И я полагаю, я могу еще искать его таким же образом, разделив задачу на половине снова, разрывая проблему снова в половине, которая в настоящее время оставляет меня с проблема четверть от размера, резко бросить, что половина прочь, и повторить этот процесс снова и снова и снова, глядя вниз в каждой точке, чтобы увидеть если Майк Смит находится на нужная страница. Теперь, если я сделаю это право, в конечном счете, я найду себя с помощью всего одной страницы, на которой Майк Смит является ли он действительно в телефонной книге. Конечно, я мог никогда не звоните Майк снова. Но дело в том, что если мы начали с 1000 страниц, мой первый алгоритм, перевернуть страницу, может быть, 1000 times-- безусловно, меньше, потому что это Имя S, а не Z название, но, как сколько 1000 страниц потенциально. Второй алгоритм, лучше. 500 страниц. Третий алгоритм, тем не менее, сколько шагов будет его принять разделить страницу 1000 Телефонная книга в половине, как это? 10, плюс-минус. Так только, пролистывая, что Телефонная книга, дайвинг и завоевания, так сказать, в 10 раз, то я сделаю мой путь вниз к одной единственной странице. И таким образом мы можем захватить эту интуицию Теперь немного графически если вы просто рассмотреть это супер простой график. Мы на оси х, или горизонтальная ось, это размер моей проблемы, Количество страниц в телефонной книге. И ученые-компьютерщики как правило, любят называть размер проблемной п, где п лишь некоторые переменная, represents-- в этом case-- количество страниц. На вертикальной или Y-оси, здесь будет время, чтобы решить, может быть, количество страниц поворотов, может быть, количество секунд или минут, что Ваш единица измерения. И таким образом, это красная линия представляет собой первый алгоритм, потому что есть 12:59 Отношения между числом страниц и количество времени, которое требуется. Если Verizon удваивает количество страниц в телефонной книге в следующем году, мой бег time-- требуется время, чтобы выполнить что первый algorithm-- удваивается в худшем случае. Но второй алгоритм, где я листать на два, требует меньше времени для Данная величина проблема. Так что, если у меня есть это многие страничек здесь-- уведомление что желтой линии предполагает меньше времени для решения. И в самом деле, она представляет, мы будем говорить, н более двух. Но то, что форма третий и окончательное кривая будет выглядеть? Да, это действительно собирается look-- I не знаю, что вы собираетесь сказать. Но давайте посмотрим, что Вы собираетесь сказать. АУДИТОРИЯ: Вот так. David J. МАЛАН: Это будет выглядеть это, логарифмическая slope-- exactly-- в результате чего у вас есть этот любопытный склону. Это уже не прямая линия. И то, что убедительных о том, что в том, что даже при том, что график в настоящее время отрезаны, Вы можете экстраполировать в вашем неважно, что, что зеленая линия не собирается увеличить в высота все, что многое как вы двигаться дальше до этого горизонтальной оси. Действительно, Verizon, для экземпляр, может удвоиться количество страниц в телефоне Книга между этим годом и в следующем году от 1000 до 2000 страниц, но нет ничего особенного. При этом третий и последний, есть интуитивное алгоритм деления и завоевание. Это собирается взять меня, сколько еще шаги в следующем году, чтобы найти человека, нравится Майк Смит? АУДИТОРИЯ: Один. David J. МАЛАН: Там только одна. И они могут в четыре раза его, это собирается взять меня всего еще два шага и так далее. И таким образом, это является свидетельством того, просто, как некоторые осторожны дизайн и некоторые признательность за то, что Ваши входы можно сделать еще лучше. Теперь мы обман Немного в том смысле, что мы используя предположение. Что такое мое предположение о нашем телефонном справочнике что позволило мне разделяй и властвуй в этой интуитивной и еще правильно? АУДИТОРИЯ: [неразборчиво] David J. МАЛАН: Да. Так было приказано. Было алфавитном порядке по Телефонная книга компании. Если бы это было в случайном порядке, что будет адская телефонной книге, но это, конечно, не будет поддается алгоритма Я использовал, потому что вы никогда не будет просто так через Майк Смит если вы держали деления в половина таким образом случайно. Итак, давайте формализовать что явно интуитивно. Так то, что называется псевдокод, где мы будем начать некоторые из наших первоначальных проблем. И это общий способ описания Алгоритм или компьютерная программа, не используя C или C ++, или Java, или любой специфический язык, но только с помощью английского языка, с которой любой человек мог быть знаком. И мы могли бы написать псевдокод для этой проблемы в следующем. Шаг первый, поднять телефонную книгу. Шаг второй, открытый для середины телефонной книге. Шаг третий, посмотрите на имена. Шаг четвертый, если Смит является одним names-- И теперь это Интересно конструкция. Это точка принятия решения. Это развилка, если вам будет, филиал, так сказать. Так что я собираюсь сделать отступ только по соглашению step-- не five-- которого является скажем, я позвоню Майку. Так что это углубление, полностью произвольное человеческое соглашение, но это просто хотел передать семантически что если Смит является одним имен, Затем я должен позвонить Майку. Между тем на этапе шесть, уведомления что углубление ушел. Так остальное другой вилкой в дорога, с другой дорога я мог бы путешествовать. Так еще, если Смит ранее в книге, что мой следующий шаг, вероятно, будет здесь? АУДИТОРИЯ: Вы идете в левую сторону. David J. МАЛАН: Да, для этого заходим в левая половина телефонной книге. Выбросьте правую половину, если Смит ранее в книге. Таким образом, открыта в середине левая половина книги. И затем шаг восемь, перейдите к строке три. И это любопытно цикл я индукции, рекурсия так сказать. Но об этом в будущем. Я использую мою же алгоритм, моя же псевдокод, чтобы снова решить ту же самую проблему потому что единственное, что изменилось это размер проблемы, а не моя цель, а не человек Я ищу. Так что я могу использовать алгоритм что я уже определены. Иначе, если Смит позже в book-- Вы могли бы угадаю открыт в середине правая половина книги. И снова, перейдите к строке три. Else-- что последняя строка в этой программе будет? Если он не входит в число Имена на странице я нахожусь на, если он не в начале книга, и он не позднее, в книге, что я знаю, Правда о Майк Смит сейчас? АУДИТОРИЯ: Он не в книге. David J. МАЛАН: Он не в книге. Так лучше, я могу сделать, это просто отказаться и остановить эту программу. Хорошо. Поэтому на данном этапе, давайте быстрый тур часть того, что ждет. И в самом деле, я присоединился здесь рядом сотрудников CS50. Если эти люди могли все присоединиться ко мне здесь, на сцене. [Аплодисменты] Имейте в виду, это только подмножество персонала CS50, с каждым годом у нас есть около 100 сотрудников Участники в роли курса помощников, учить парней, и многое другое. Поднимайтесь. Таким образом, они присоединятся к нам здесь неловко на мгновение как мы даем беглый тур, что вы должны ожидать здесь в ходе. Так, прежде всего, мы должны СБ / UNS как вариант классификации в ходе. Это означало, намеренно чтобы быть одним из вариантов которой если вы немного неловко на быть в курсе, и вы боятся failure-- даже если откровенно неудача означает вредит вашей ГПД, получение B, а не A-- который именно то, что, конечно, для шлюза Конечно, как и CS50 и другие вводные курсы, эта опция сортировки предполагает возможность. Я искренне поощрять students-- особенно если на fence-- начать Конечно СБ / UNS, даже остаются СБ / UNS. Но можно, конечно, перейти на письме класс на пятом понедельник в перспективе. Честно говоря, еще когда я был новичком в 1995 году, Я сам даже не принять CS50 потому что я не встаю нерв на самом деле шаг ногой в классе. Казалось домен слишком незнакомый мне и действительно только для тех моих друзей, честно говоря, который был программирования так как они были шести или, может быть, 10-летний. И это было только потому, что я был состоянии взять CS50 в мой день в эквивалентной версии СБ / UNS-- прошел / не прошел обратно в day-- что даже я взял 50. И так или иначе, я здесь снова с вами сегодня. Теперь между тем, что еще вы Следует иметь в виду, о 50 является одновременное зачисление. Вопреки слухам, что Вы, наверное, слышали, можно, в самом деле, одновременно записаться на CS50 и другого класса, что отвечает в том же или некоторое дублирование Время как лекций CS50 прямо здесь. Смотрите учебный план для частностях реализации их. Лекции, тем временем, вопреки что официально в каталоге, будет вообще только удовлетворения всего за час. Иногда мы можем работать немного долго. Но имейте в виду, что Цель лекции CS50 в заключается в предоставлении Вам с обзор концепций, Надеюсь, некоторые демонстрации, может быть, даже некоторые призы, о том, что ждет за неделе, что следует. И так на лекциях, мы исследуем эти темы и примеры вместе, предоставление учащимся на сцену, и персонала на сцену так часто, как мы можем, всего за пару часов каждую неделю. Разделы, тем временем, будет предлагаемые этими людьми здесь-- многих из них преподавание товарищей, некоторые из них, конечно assistants-- воли происходить еженедельно. И то, что ключ к держать в виду, что мы у have-- не в отличие Первая Ночи, музыка class-- различных треков из секций для студенты менее удобные, более удобно, и нечто среднее. И, честно говоря, вы знаете, если Вы, менее комфортно. И вы, наверное, знаете, если вы более комфортно. И если вы не совсем уверены, вы по определению нечто среднее. Поэтому, когда приходит время, чтобы разделе в неделю или около того, в учебный план, мы зададим вам этот вопрос. И вы можете самостоятельно выбрать Based на свой страх и уровня комфорта и быть с students-- быть с зеленым dots-- похожи в уровне комфорта для Вас. Между тем, у нас есть проблемы устанавливает, что в конечном итоге определить ваш опыт в этом курсе. Они предложили, как правило, в нескольких изданиях. Стандартная версия, что мы ожидаем, что большинство каждый студент в ходе решать но и так называемый хакером издание что не дает форму дополнительный кредит напрямую, но на самом деле права хвастовства сказать, что вы пытались и решать хакерские издания ходе, что подойти к подобного материала но с более сложной углом. Что мы предлагаем для Стандартная версия, для, снова, супер большинство студентов, не являются только сквозные, которые видео во главе с персоналом Курса что действительно вас через проблемы конечно и можно дизайн реализации. И мы также, после Дело в том, предлагаем postmortems, согласно которому, если вам интересно, как вы могли бы или должен был решить некоторые Проблема, преподавательский состав , вы пройдете через тех, на видео, а также. Между тем, что ждет тоже пять поздние дни и тот факт, что мы будем Бросайте низкая проблема установить балл. Мы, конечно, понимаем, что в обмен для рабочей нагрузки, что 50 ожидает из вас, жизнь становится на пути иногда, если не в пять раз. И таким образом, это будет предлагать Вы немного гибкости, продлив срок от, скажем, В четверг в полдень в пятницу в полдень. Смотрите учебный план для Детали реализации их. Теперь то, что теперь ждет? И это только происходит мне теперь, как долго У меня вы, ребята, стоять здесь на сцене. [Смех] David J. МАЛАН: Но мы вернемся к климатические отделка в ближайшее время. Так что ждет в плане проблемных наборов? Ну, может быть, тизер, что мы все в прошлом году со своими предшественниками. В первом наборе проблемы в прошлом году мы ввели Царапины, графическое язык программирования, который позволяет программировать буквально перетаскивания кусочки головоломки, как они, которые являются напоминает конструкций увидите только одну неделю следовательно, при переходе к более традиционным язык, известный как С В прошлом году мы продолжили к этой проблеме набора, привлекая для криптографии, карабкаться информации чтобы сохранить его от правительственных или друзья ' глаза, что вы не хотите, чтобы увидеть его. Encoded здесь является сообщение, что в ближайшее время вы смогут расшифровать или де-схватка. Breakout была проблема установить в прошлом году, в котором Вы используете эти новое найденное программирование навыки, чтобы на самом деле реализовать Игра wherein-- как вам можете вспомнить из childhood-- Цель была, чтобы колотить кирпичи, которые на вершине экрана здесь, накапливая забить на этом пути, и реализовать собственные алгоритмы с которыми в конечном счете, это решение позволяет играть в игру. Между тем, позднее в семестр, мы дадим вам словарь 143 091 английских слов. И вам будет оспорено чтобы написать программу, которая заклинание проверяет, документы, по загрузке, что много слов в память как можно более эффективно. Вообще точечной вас против своих одноклассников если вы выберете в немного Задача в лидеров чтобы увидеть, кто может использовать наименьшее секунд эфирного времени, и наименьшее число мегабайт памяти, а на самом деле тонкой настройки ваших программ чтобы быть невероятно ресурсоэффективному не только время. В прошлом году мы тоже посмотрел в конце семестра на веб-программирования. И в самом деле, мы сделаем это снова в этом год с несколькими наборами проблемных, познакомим вас с методами и мышления, с которым вы можете обратиться эти навыки программирования в веб-сайты, динамические веб-сайты, сайты, которые на самом деле решить проблемы и ведут себя по-разному и не просто статическое сайты с статической информации. Окончательный проект в конечном счете, определит, хотя, Кульминацией курса для студентов, в котором Вы наткнетесь реализовать Наиболее ничего интерес Вам, при условии, что это как-то опирается на уроках Курса. И как вы видели в видео в начале, мы заключим семестр с CS50 Хакатон, которые, если, не знаком, начнется в 7:00 вечера одну ночь и заканчивается в 7:00 утра на следующее утро. Вокруг 9:00 вечера, мы будем Порядок, в первый ужин. Около 1:00, мы будем Порядок, в второй ужин. И если вы все еще стоя в 5:00 утра, мы будет курсировать автобус вам в IHOP на завтрак. CS50 ярмарка, тем временем, является событием к которому 2000 плюс факультета, студенты, и сотрудники по кампусу будет приходят, чтобы увидеть ваши достижения в ходе и в финал проекты и творения что вы создаете на ноутбуках, настольные или, возможно, даже лампочки. Между тем, в рабочее время и опорная конструкция. И теперь это было бы лучшего времени, чтобы довести вас всех. Часы работы пройдет четыре ночи в неделю в течение нескольких часов каждую ночь как правило, с 20 по 30 из Сотрудники курсы для начинающих дежурный сразу чтобы предоставить вам интимные один-на-один возможностей для поддержки с проблемными задает курс в. Репетиторы тоже будет доступны, особенно для студентов менее comfortable-- или осмелюсь сказать мере comfortable-- для которых Рабочий день не наиболее питательной средой и, конечно, не наиболее свободной от стрессов. Особенно, когда сроки настаивают, мы будем активно сопряжение вам себя с членом персонала для работы с на некоторых регулярной основе как ваших потребностей и их график позволяет. И персонал. Позвольте мне представить Davon, Боб, и Габриэль, руководители в этом году. Если вы каждый хотел say-- [Аплодисменты] --a слово. [Аплодисменты] Davon здесь является Менеджер курсы для начинающих, которые означает в его дневной роли он помогает с выполнением и логистика CS50. Davon: Да, привет, ребята. Вы увидите много для меня в рабочее время. Я буду преподавать разделы. И если вы снимаете письма вперед, Я, вероятно, отвечает. Так что я буду видеть много вас все семестр. И добро пожаловать в CS50. David J. МАЛАН: А теперь Гавриил, сам был просто новичком в прошлом году, но за последние пару лет имеет работает свой вариант CS50 в Бразилии, в результате чего он скачиваемых все content-- Курса что явно будучи снят и помещен online-- чтобы он мог перевести его на Португальский а затем научить более 100 из его одноклассников более Курс пару лет, преподавание на родном языке Учебная программа курса в. GABRIEL: Здравствуйте. [Аплодисменты] GABRIEL: Привет, я Гавриил. Я глава TF курса. И я надеюсь, что вы будете любить CS50. Это CS50. David J. МАЛАН: Теперь для Роба. Ах, вы хотите введение? ROB: Нет, я не знаю. [Смех] David J. МАЛАН: А Роб Боден. [Смех] ROB: Привет, я Роба. Это мой пятый год связан с курса. Каждый год, это просто лучше и лучше класс, так вы, ребята, явно будет удивительным. Я надеюсь, что вы все весело с ним. Я собираюсь весело с ним. Так увидимся. David J. МАЛАН: А Время не позволит нами-- [Аплодисменты] Время не позволяет нам ввести всех на сцене и все их коллеги которые ходят по магазинам классы сегодня. Но позвольте мне представить Белинда и CS50 головоломки День, который ждет этого В ближайшую субботу, которая является первым из масштабные мероприятия Конечно автора. Этот в частности означало забивать домой точка что информатика в конечном счете не о программировании, а о решении проблем в целом. И Puzzle День, как вы будете см, принесет вам и ваши одноклассники together-- мы надеемся, в эту субботу. BELINDA: ОК. Привет, ребята. Так что спасибо. Так как наш прославленный капитан сказал, Белинда меня зовут. Я на втором курсе в Куинси Дом. Я, как и вы, ребята, приняли CS50 в прошлом году, действительно очень понравились его. У меня есть слабость к вы, ребята, в третьем ряду. И я с гордостью могу сказать, что я сейчас в постоянных отношениях с CS50 [неразборчиво]. ОК. Это была моя кривая версия шутку. Во всяком случае, так двигаться дальше, просто хотел пригласить вы, ребята, все в я-лаборатории, или HBS ульи. Мы собираемся быть с Логические день с 12:00 до 3:00. И это отличная возможность для вас ребята, чтобы удовлетворить ваши товарищи CS друзей, решить некоторые не-CS головоломки, как капитан упоминалось, а также съесть немного бесплатной еды, заработать некоторые удивительные призы, как подарочные карты, $ 75 с человека, и also-- что это было? Wii U, что ли? Wii U? Да. Для нашей лотерее. Потрясающе. Так что я буду придерживаться вокруг после занятий. И если вы, ребята, есть какие-либо вопросы, дайте мне знать. David J. МАЛАН: И вы увидите, за это ничего не делать сегодня. Первая проблема установить погаснет пятницу. Но, чтобы привести нас домой сегодня, я хотел бы познакомить вас с специально еще один член персонала, Колтон Огден здесь, чьи руки теперь защищен над вами с это MIDI контроллер забивать дом точка дальше что информатика, тоже, имеет применимость далеко за инженерии и STEM и информатика сам, затрагивающих даже таких областях, как музыка. Колтон любезно offered-- я думал один из них собирался зафиксировать фокус. Андрей, если бы мы могли вызвать внимание здесь на мгновение. Что Колтон сделал заранее программы Это устройство, этот коврик кнопок что вы видите на фото здесь, как MIDI контроллер, причем каждый из этих кнопок подключен к определенной музыкальной ноты или звук, в более общем записи, таким образом, что, играя закономерности этих Кнопки, как и последовательности битов, может представлять другой более высокие понятия уровня. Сможет ли он в конечном счете чтобы отвести нас домой сегодня здесь? Без дальнейших церемоний, если мы могли приглушить свет, и включить экран позади Колтон. АУДИТОРИЯ: Ву! David J. МАЛАН: Это CS50. [МУЗЫКА ИГРАЕТ] [Аплодисменты] Вот именно для CS50. Мы будем видеть Вас в пятницу. Некоторые торт ждет вас в Трансепта. [МУЗЫКА ИГРАЕТ]