[ФОНОВЫЙ ШУМ] Это работает? PATRICK REBESCHINI: Мы можем приступить к работе. ОК. Отлично. Давайте начнем. Так что это мое самое большое удовольствие приветствовать всех вас здесь сегодня для первой лекции , ну, Введение для вычислительной техники и программирования. Также известный как CS50 или колодезной, CPSC 100, официально здесь в Йельском университете. Таким образом, мы не могли быть более взволнованы приветствовать всех вас здесь. Меня зовут Патрик Rebeschini. Я руководитель инструктор класса. Я здесь, представляющий группу около 60 сотрудников который будет работать с вами в течение семестра. Это число почти 60 из нас. Тем не менее, по необыкновенной уровень обязательств что мы вкладываем в это класс, делает CS50 классовой в Йельском университете, который предлагает самый большой уровень поддержки всем вам. И мы не могли быть более гордиться предлагая этот класс здесь еще раз. На самом деле, как вы скоро испытать, CS50 гораздо больше, чем класс. Это сообщество. И вы будете частью в ближайшее время этого сообщества. Это второй год, Yale предлагает этот класс. Мы строим на крайности успех в прошлом году, где в первый раз, здесь в этом университете, магистрант ассистент обучения были приняты в классах. Все началось с этот класс в прошлом году. Так что, как вы знаете, класс учат совместно с Гарвардским университетом. Для того, чтобы этот курс мы relying-- мы можем рассчитывать на большой опыт Дэвид Малан и команда Гарварда. Так что Дэвид преподает CS50 для хорошо, 10 лет. И каждый год он был раздвигает границы и улучшая опыт в классе. Опять же, мы не могли быть более счастливы продолжить это сотрудничество с ними. На самом деле, один из самых интересных частей, Я буду говорить о выполнении этого класса в настоящее время, как в Гарварде, и здесь в Йельском университете, это действительно невероятно взаимное развитие идей, направленных на улучшение опыт обучения для всех вас. Таким образом, в результате этой обширной сотрудничество между двумя университет, CS50 с гордостью объявить о выпуске новой версии в этом году с заметными изменениями. Дэвид все скажут нам о них сейчас. Так please-- это существо сказал, пожалуйста, присоединяйтесь ко мне и добро пожаловать, чтобы дать большой круглый аплодисменты приветствовать Давида и Гарвардская команда здесь в Йельском университете. [АПЛОДИСМЕНТЫ] DAVID Маланом: Спасибо. Благодарю. Это CS50, Гарвардского университета и внедрение Йельского университета к интеллектуальной предприятий информатики и искусство программирования. А что это означает, что этот курс в конечном счете, о решении проблем. Действительно, многие из вас, возможно, вышли из средней школы или провели последние пару лет интересно, что некоторые из ваших друзей в прошлом году или в других классах. И тем не менее, реальность нет, независимо от того, что мы делать в конце дня в этом классе, это будет о решении проблем. И как таковой, возможно, принять некоторые уверенность в том, что 73% студентов, что принять этот класс, как здесь в Йельском университете, а также в Гарварде, никогда не брал класс CS раньше. Так что если вы сидите здесь в зрители сегодня интересно почему вы сидите здесь в аудитории сегодня, или, может быть, вы просто следовали наряду с некоторыми друзьями, или, возможно, вы были немного любопытно, что информатика и программирование, понимают, что большинство ваших одноклассников слева и справа от вас очень много в той же демографической. И в самом деле, если мы посмотрим наконец статистики год в рамках студенческого органа CS50, как здесь и в Гарварде, 58% студентов описывают себя как менее комфортно. 9% более удобным. А потом 33% где-то посередине. И нет никакого формального определения что означает, что эти ведра. Вы вроде знаете, что вы менее комфортно, если вы. Вы чувствуете себя немного неловко с, возможно, находясь в классе. Вы не совсем уверены, если компьютер наука класс в конечном счете, для вас, и понять, что вы в очень хорошей компании. И действительно, градация, и оценка, а обратная связь, и все, что Структура поддержки в классе в конечном счете, очень индивидуализированы. Больше, чем большинство любой Другой класс по дизайну. И в самом деле, что в конечном итоге вопросы в этом классе не так много, где вы в конечном до относительно других, но где вы, в неделю 11 или в прошлом, и по отношению к себе в неделю 0 здесь наш первый. Так что это значит? Ну, это означает, что из этих 73% Студенты в прошлом году, что никогда не принимал класс CS перед тем, на начало семестра они были вмешиваются в языке называется Царапины, которые мы сами будет видеть здесь сегодня. И к концу семестр, если бы они пошли через весь этот перечень проблем. Начиная с языка называется C. Реализация, что на первый взгляд, происходит чтобы быть немного сложной задачей для некоторые, но довольно приятно, как только вы получить Супер Марио подпрыгивая вверх и вниз пирамиды реализованы, хотя, только с то, что называется ASCII-арт. Реализация последнего год--, что студенты в прошлом году, то сделал после этого было реализовать их собственный шифр Цезаря и шифр виженера. Так что алгоритмы шифрования с которыми вы могли бы скремблирования информацию, а затем расшифровывать информация для передачи секретных сообщений. Игра 15. Если вы помните детства или какой-либо благосклонности партии, эта маленькая пластиковая игра, где вы двигаться число вверх, вниз, влево и вправо чтобы попытаться получить их в порядке, на самом деле осуществления этой игры и решая логику, необходимую там. А потом мы баловались судебно-медицинской экспертизы в прошлом году. Таким образом, к середине семестра, студенты, которые никогда не использовали свои клавиатуры Для этой цели прежде, были написания программного обеспечения восстановить, так сказать, JPEGs или фотографии что мы должны были случайно удален из цифровой карта памяти из камеры. Восстановление секретных сообщений изнутри растрового изображения, и другие подобные типы графики, а также. Затем мы перешли к предоставлению весь класс словарь. Просто действительно большой текстовый файл с 150000 английских слов. И каждый был брошен вызов чтобы как-то читать, если можно так выразиться, эти слова в память. В памяти компьютера. А потом отвечать на вопросы формы, является ли это слово? Является ли это слово? Является ли это слово? На самом деле просто реализации проверка орфографии. И тогда каждый вызов другой с большой board-- лидер доски, чтобы увидеть, кто мог использовать наименьшее количество памяти, в наименьшее количество времени на на самом деле проверка орфографии больших документов. Мы перешли от затем реализации одни собственный веб-сервер. Так что не делает веб-страницы на языках как HTML и CSS, если вы знакомы. Но на самом деле реализации сервер, слушает в Интернете запросов от браузеров а затем в ответ на эти просьбы. Тогда реализации наших собственных электронной торговли, как веб-сайт, где студенты могли покупать и продавать акции. Рисунок в почти реальном времени биржевые котировки от Yahoo Finance. И позволяет студентам видеть как их портфель развивается. А потом, наконец, месиво вверх из Google News и Google Карты, согласно которому студенты на срок по срокам окончания имел возможность нажимать, и круглые, и поиск на карте Google. А потом увидеть все новостные статьи, проксимальны к этим конкретным областям. Так что действительно происходит от нуля до 60 лет. И по пути иметь то, что мы имели В прошлом году под названием, хакер дополнения. Это поднимает планку далее для тех из вас, который мог бы очень хорошо иметь хороший количество опыта, находясь в этом 9% более удобным. Так понимаю, что есть очень высокие потолки даже в тех, вызовы для студентов исходя из другой фон. Потому что в конце на следующий день, мы в конечном счете, сосредоточены довольно просто на этом. Но что делает это значит, решение проблемы? Итак, давайте предположить, что мы перегонять это так. Таким образом, решение проблем на самом деле только этот вид изображения. Так что у вас есть входы в какой-то проблемы, то, что вы на самом деле хотите, чтобы решить. Цель состоит в том, чтобы получить выходы, решение этой проблемы. А потом в середина что мы будем называть черный ящик. Вам не обязательно знать или даже все равно, что находится внутри этого черного ящика. Все вы знаете, что, когда Вы кормите вход в него, вы надеемся получить выход или раствор из него. И хотя сегодня мы будем смотреть как на входах и выходах, мы будем долгосрочной перспективе, и над Курс всего семестра, сосредоточить внимание на то, что внутри этой коробки. И в этом будет лежать что-то называемые алгоритмы. Шаг за шагом инструкции для на самом деле решения некоторых задач. Но то, что пример некоторых входов? Так что, может быть, простая вещь на начало каждого учебного года, кто-то может потребоваться принять участие. Таким образом, мы могли бы сделать один, два, три, четыре, пять, шесть, и как бы я продолжаю след этой информации. Я мог бы просто пойти на один, два, три, четыре, пять, шесть. И просто использовать вид однозначных цифр. Или я мог записать это немного более длительный срок. И как я представляю все люди в этой комнате? Ну, я мог бы сделать что-то вроде, хорошо. Я вижу один человек. Отлично. Я вижу другого человека, A третье лицо, и так далее. Но никто не считает таких людей, как это. Так что в буквальном смысле, большинство из нас, если мы даже собирается сделать что-нибудь вообще, , вероятно, будет идти один два три четыре, возможно получить немного фантазии, пять, шесть, семь, восемь, девять, десять и так далее. И это на самом деле Система называется унарный. Uno, как UNO подразумевая одно, где вы только одна буква алфавита. Вы только что получили этот хэш-знак. И я, для повышения эффективности, просто обратил эти хэш-знаки, в конечном счете, , как прямые. Но я мог бы втянув их а маленькие палки цифры. Где представлять один человек, один вход, Я просто нарисовать палку фигура или хэш-метка. Но это не все, что выразительно. Если все у меня есть эти хэш знаки, не говоря уже придерживаться цифры, как я мог бы представить что-то вроде числа 15? Или 15 человек в комнате? Я мог бы сделать что-то вроде 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Это просто не очень хорошо масштабируется. По мере того как входы становятся большими, мы нужна лучшая система, чем это. И получается, что система, которые используют компьютеры не все, что разные от того, что вы и я знаю. На самом деле, большинство людей в этой комнате, даже если вы среди тех, менее удобно, не обязательно знать как ваш Mac или PC действительно работает, вы, вероятно, по крайней мере, слышали, что под капотом 0 и 1-х. Так называемая бинарная система. Так на самом деле, компьютеры имеют более только хеш-знаки в их словарный запас, но не так много из словарный запас, как мы, люди. В самом деле, мы, люди не используют двоичную. Bi означает 2, 0 и 1. Но десятичной, Дека что означает 10, от 0 до 9. Таким образом, у нас есть намного более выразительным возможности в нашем обычном человеческом мире. Но я бы утверждать, что эти системы, бинарный и десятичный, и все между ними и за ее пределами, являются на самом деле все хорошо знакомы. Например, рассмотрим этот пример здесь, 123. Так что это на самом деле, конечно же, номер мы знаем, как 123. Но все, что я просто рисовал просто это рисунок символов, глифы, так сказать. Сортировка фигур на доске мелом. Но почему мы сразу и интуитивно понять это как 123? Ну, если вы были похожи меня в начальной школе, вы, наверное, поняли, что это 1s столбец, это столбец 10s, Это столбец 100S. И почему это полезно? Ну, это простая арифметика вы сейчас сделать, чтобы получить из шаблона символов к ряду мы понимаем интуитивно. То, что в 100 раз больше 1, а затем 10 раз 2 и 1 раз 3, который, конечно, только 100, и это 20, и это три. И поэтому, если мы добавим эти together-- ах. Так что в этом заключается рода рассуждения за почему этот набор символов означает, что что-то реальное и числовой. Что ж, компьютеры делают ту же самую вещь, но они только могут рассчитывать как высоко как единое целое. В то время как я был в состоянии рассчитывать как высоко как три. И в самом деле, если бы я продолжал идти я мог доходить до девяти в этой системе. Компьютеры имеют только нули и те, в их алфавите. Так что это значит? Ну, это просто означает, что если компьютер хочет представлять, скажем, число 0, возможно с использованием трех characters-- трех буквы алфавита, так сказать, это как компьютер представляет собой 0. Так что не все так страшно до сих пор. Это именно то, что мы, люди будут делать. И в самом деле, большинство из нас просто игнорировать ведущие нули в любом случае. Компьютер, если он хочет чтобы сохранить номер 1, Оказывается, собирается сделать это. И компьютер для хранения число 2 не собирается сделать унарную систему, которые я упоминал ранее. Это на самом деле собирается это сделать. И это, вероятно, где шаблон начинается чтобы стать менее очевидным для большинства людей. Это 2 это 3. Любопытно, что это теперь 4. И теперь это действительно как представляется, пожалуй, загадочным, но это не так, если мы считаем, то, что на самом деле означает двоичный. Это означает, что у вас есть два буквы вашего алфавита. Так что два возможных символов для каждого заполнителя. Так что на самом деле означает, что мы собираемся нуждаться в 1s место или 2s место, 4с место, а затем 8 и 16, 32 и 64. И какая разница есть? Как это 1, 2, 4, 8, 16, 32, 64. И прежде, чем у нас было 110, 100000, 10000. Что такое сходство есть? А что картина? Да. Слушатель: Полномочия 2 вместо полномочий 10. DAVID Маланом: Да. Полномочия 2 вместо полномочий 10. И поэтому, если я хотел сохранить идти, 8, 16s и т.д. forth-- но теперь, если у вас есть такого рода подсказку, теперь двоичная система на самом деле довольно проста. Почему эта модель 0 ' в мире компьютеров 0? Ну, потому что это в 4 раза больше 0, 2 раз 0, 1 раз 0 и вы получите 0. Почему это номер 1? Те же рассуждения, но теперь мы есть 1 в 1 колонке. Почему это 2? У нас есть 1 в столбце 2s. А как же тогда делать я представляю говорят, в двоичной системе число 7? Скажи громче. СТУДЕНТ: Три 1s. DAVID Маланом: Три 1s. Таким образом, 1, 1, 1, потому что нам просто нужно 4 плюс 2 плюс 1 дает мне 7. Отлично. Так оттуда как же мы представляют 8 с 3-мя заполнителей? Да. СТУДЕНТ: 1, 0, 0, 0. DAVID Маланом: Да 1, 0, 0, 0. И тем не менее, может быть, я как бы технически нужно добавить еще один заполнитель к доске. Если я хочу, чтобы соответствовать, что я на самом деле нужно сделать что-то вроде этого. Так что я на самом деле нужно использовать прямо сейчас 8s колонна, и это нормально. Но любопытно, что в вычислении что это будет стоить нам что-нибудь. Вам нужно больше оперативной памяти в вашем компьютере прямо сейчас. Вам нужно больше памяти потому что вам нужно что-то физический для хранения, что дополнительный бит, так сказать. Бинарные цифры. И в самом деле все, что случилось здесь, как и в десятичной системе счисления, если мы будем продолжать добавлять номера вверх и вверх и выше, мы идем от 5 до 6 до 7 до 8 это как несущий 1, в буквальном смысле. А потом все остальное восходит к нулю. Но как же мы на самом деле представляют собой эти вещи физически в компьютере? Ну, в конце концов, единственный физический вход происходит в мой компьютер здесь это кабель питания, так электричество или электроны от стены. И так как я получаю от чего-то физическая, как, что на самом деле представляя идею, как это вместо этого. Ну, что мы могли сделать? Мы могли бы считать, что, все в порядке, может быть, если электричество течет Я мог бы сохранить его и удержать ее. И если я держу на в какой-то электричество, что только собирается произвольно представлять собой 1. И если я махнуть и там ничего нет, Вы знаете, что это просто будет произвольно представлять собой 0. Так что, если что-то есть, 1. Если ничего не там, 0. Или вы можете сделать это немного больше визуально. Вот 0. Там ничего интересного текущей по поводу задней части моего телефона. Но если я позволю немного немного электроэнергии течь, несмотря на то, что это немного яркий здесь, мой фонарик продолжал. Поэтому я хранить заряд и Ergo, этот телефон в настоящее время представляет собой 1. Так что 0: 1. Так что с 1 iPhone, как высоко я могу рассчитывать, используя такой подход? Я имею в виду 1. Это не все, что убедительными. Так что еще мы могли сделать? Ну давайте посмотрим, есть кто-нибудь на их телефон прямо сейчас, что я мог заимствовать? Любой, кто имеет телефон с фонариком встроенный? Могу я одолжить? Мне не нужно это разблокирована. Отлично. Спасибо. Позвольте мне взять это. Отлично. Так что, если я теперь прокручивать вверх и здесь, Что я теперь представляя? Да. Таким образом, это три, потому что это в 1s колонка, это находится в 2з колонке. Таким образом, 1 плюс 2 равно 3. И потом, если мы пытаемся получить действительно creative-- ой, спасибо. Очень упреждающий. Отлично. Теперь у меня есть три iPhone'ов. Отлично. А теперь this-- я не буду делать дальше, чем это. Что я теперь представляющий? Просто семерок. Но мне нужно было физически больше памяти в этом случае. Но это все, что есть. Вы можете думать, что происходит on-- спасибо you-- внутри вашего телефона а просто быть переключатель, это будучи включен и выключен. И если вы когда-нибудь слышали слово транзистор. Или, если вы когда-либо слышал, маркетинг говорить Intel внутри, который говорит с типом оборудования что внутри вашего компьютера. Intel делает процессоры, центральные блоки обработки, которые, как мозг внутри вашего компьютера. И эти процессоры и вещи, они связаны чтобы иметь много и много крошечных переключателей. Миллионы, миллиарды коммутаторов который может либо быть включена или выключена. Так компьютеры, к счастью, как наши Маков и ПК, может рассчитывать на порядок выше, чем 7 или 8 потому что они имеют намного больше, чем три или четыре бита. Путь больше, чем эквивалент три фонариков, что мы просто не было. Но теперь это начинает доставать довольно быстро неинтересны. Если теперь я хочу, чтобы на самом деле быть в состоянии чтобы сделать что-то более интересное, Я хочу, чтобы иметь возможность прыгать к чему-то вроде этого. Так ASCII, это не очень полезно акроним, но американский стандартный код для обмена информацией. Это просто означает, несколько лет назад мы, люди решили, Вы знаете, что мы хотим, чтобы быть в состоянии сделать больше с компьютерами, чем просто цифры. Мы не хотим, чтобы они просто быть дорогими калькуляторов, мы хотели бы иметь возможность делать такие вещи, как обработка текстов, хотя и очень просто. Позже мы имели электронную почту и другие подобные средства массовой информации. И поэтому мир решил несколько лет назад в соответствии с этой системой ASCII, знаешь что? В некоторых типах программы в любое время вы см эквивалент числа 65, как набор битов. И мы могли бы сделать математика здесь на доске. Структура битов, которые составляют 65. Не думайте о нем, как 65 в десятичной системе. Думайте об этом как угодно, но на глобальном уровне, последовательно, как капитал А. И тогда мир решили, вы знаете, что? Давайте возьмем другой набор битов. И если мы когда-нибудь увидеть номер 66, давайте просто Предположим, что это является капитал B. Перенесемся в H и я, если вы видите, 72 или 73, что должны быть Н и I, соответственно. И так до тех пор пока весь мир соглашается на это. Так что, когда вы получите по электронной почте, или вы получите файл на флешку, или что-то вроде that-- когда это Вы видите, что набор битов, Вы знаете, что это должно быть это письмо или какой-либо другой буквой. Но это зависит от конкретных условий, прав. Программа электронной почты может интерпретировать эти вещи, как персонажей, но графический калькулятор или Калькулятор может представлять или интерпретировать эти вещи, конечно же, как буквы. Так что с этим сказал, быстрый небольшой обзор. Это может быть, три символа адрес электронной почты, который был послан мне. Под капотом все это в 0s и 1s, но мы не волнует. Мы собираемся начать абстрактные выше 0 и 1 на письма. И если я вижу образец 0 и 1, что на самом деле представляют собой 72, намек, намек, 73, а потом 33, что сообщение? СТУДЕНТ: [неразборчиво] DAVID Маланом: Так что если вы думаете назад только минуту назад, HI было послание, которое я пытался общаться, потому что здесь Н 72, Я 73, и теперь 33-- вы не захотели обязательно знать об этом заранее, но получается, если вы на самом деле увидеть больше диаграммы и системы что человечество, согласованных лет назад, это просто восклицательный знак. И в самом деле, есть образец символы и цифры для каждого символа что вы могли бы иметь на вашей клавиатуре. Отлично. Давайте абстрактные дальше. Если мы не хотим, чтобы просто такие вещи, как цифры и буквы, мы на самом деле хотим реализовать графику. Ну, если вы когда-либо услышал аббревиатуру RGB. Это своего рода датированы теперь, но это все еще своего рода там. RGB красный, зеленый, синий. И это просто система сказать, вы знаете, что, давайте использовать три набора битов. Набор из 8 битов, другой набор из 8 бит, и другой набор из 8 битов. И давайте использовать эти биты хранить, как много красного мы хотите на нашем экране, то сколько зеленый мы хотим, чтобы на нашем экране, и сколько синего мы хотим, чтобы на нашем экране. И это просто означает, что если вы имеют lot-- большое количество красного, это означает, что дают мне много красного. Если у вас есть большое количество для зеленый, дайте мне много зеленого цвета. И если у вас есть только немного синего или небольшого числа, как 33, дайте мне немного синего цвета. И если вам случится, чтобы объединить тех, три величины, так сказать, Вы получаете this-- вы едва можете увидеть на проектор здесь, но это мутное оттенок желтого или коричневого цвета. Но это сказать, что с помощью рисунок 8 плюс 8 плюс плюс 8-- что образец из 24 битов как компьютер будет сохранить этот оттенок желтого в одном Маленькая точка пиксель на экране. Таким образом, мы перешли от 0 и 1 в десятичной системе цифры на буквы алфавита. Или более интересным, цветные точки. Ну, что, конечно, потом идет дальше? Ну, что такое изображение, которое вы увидеть на Facebook или получить по электронной почте? Или т.п? Что такое определение технически образа? Да. Что такое изображение состоит из если вы смотреть действительно близко на экране? Да. Это просто целая куча пикселей. На самом деле, если вы берете ноутбук может быть, позже, и выглядят очень тесно в зависимости it-- о том, как дорого ноутбук и как высокое качество экран, Вы могли бы очень хорошо видеть все маленькие точки на экране. И эти точки или пиксели, а это значит, что есть 24 бита, представляющие каждый пиксель в том, что фотографии, которые вы видите на Facebook, или что вы просто взяли на вашем iPhone в последнее время. И вот как мы получаем к вещам, как графики. Ну, что такое видео? Видео представляет собой набор графических облета экране снова и снова и снова. А так видео на самом деле, просто шаблоны битов, представляющих сетки, строки и столбцы точек, облета изображения на экране, после того, как изображения, после изображения, а.к.а. Видеосъемке. Так вот именно для входов и выходов. Все, что мы имеем сейчас это Предположение, что вы знать, что, если мы хотим, чтобы компьютер представлять информацию, мы имеем систему это делать. Мы можем сделать это с 0s и 1s в конце дня. Но мы можем абстрактно, так что говорить, на вершине, что с тем, чтобы представлять более интересные вещи. И здесь на в CS50, так и в компьютерные науки в более общем плане, мы теперь стоим на плечах всех тех, кто был до нас, кто понял, что из. А теперь просто предположим, что компьютеры могут представлять собой входы и выходы. Но теперь давайте на самом деле сделать что-то с ними. Так что алгоритм просто набор инструкций, шаг за шагом, для решения какой-то проблемы. И что, возможно, одна из таких проблем будет. Так что это старая школа технологии, телефонная книга. И внутри телефонной книги является целая куча имен и номеров. И эти имена, как правило, сортируются в алфавитном порядке. Так что, если я хотел найти кого-то в это телефонная книга, как Майк Смит, что типичный человек собирается делать? Ну, вы могли бы просто открыть это, смотрите на первой странице. Я не вижу Майка Смита. Поверните на вторую страницу, Я не вижу Майка Смита. И просто продолжать идти и идти. Является ли это шаг за шагом подход правильным? Да. Это своего рода глупо, верно. Это неэффективно, верно. Потому что это будет длиться вечно чтобы добраться до Майка, но это правильно. Потому что, если Майк здесь Я действительно его найдет. Так что это немного больше разумный человек собирается делать? Они могли бы еще открыть на фронт, и, возможно, летать через телефонную книгу две страницы одновременно. Два, четыре, шесть, восемь. Я не могу на самом деле физически сделать это очень хорошо. Но в теории, это должно быть в два раза быстрее, две страницы одновременно. Является ли этот алгоритм правильно? СТУДЕНТ: [неразборчиво] DAVID Маланом: Не обязательно. Хорошо. Почему это предостережение? СТУДЕНТ: Потому что он может быть на одном страниц, которые вы пропуске. DAVID Маланом: Да. Так что даже если я все ближе и ближе. Что делать, если он просто случайно, из-за плохой удачи, зажатой между двумя страницами что я лечу над? Так что нам нужно исправить для этого. Мы на самом деле нужно то говорят, подождите минуту, может быть, если мы слишком далеко, может быть, если мы попали в раздел T, для T приходит после того, как Смит, то мы должны по крайней мере, вдвое назад по крайней мере, одну страницу. Так поправимо, но есть условный вопрос там. Так что это в два раза быстрее, но вы можете должны загнуть только немного. Но никто в его комнате, даже если вы на самом деле не использовать телефонные книги больше, собирается начать с самого начала. Чем ты планируешь заняться ищет Майка Смита? Вы собираетесь идти примерно в S-х годов. Или, если вы на самом деле не имеют шпаргалку на бумаге, вы собираетесь идти по крайней мере, примерно до середины. И, конечно же, не передняя часть книги. Вы собираетесь смотреть вниз. И математически вы, вероятно, собирается увидеть раздел M, который находится примерно в середине. И тогда вы собираетесь понимают, что это правда? Где Майк? СТУДЕНТ: [неразборчиво] DAVID Маланом: Да. Так что он с этой стороны. Так что вы можете сделать? Ну, прямом и переносном смысле Вы можете разорвать эту проблему в два раза один раз? И тогда знайте, что вы можете бросить это половина от решения проблемы. А теперь мы остались с принципиально та же проблема, но это вдвое меньше. И вот теперь, что это набор инструкций? Какой алгоритм для нахождения Майка Смита? Это точно то же самое. Теперь это случается М раздел и это раздел Z, но фундаментальная формула остается такой же. Перейти примерно к середине, смотреть вниз, о, штопать его. Сейчас я нахожусь в разделе T, Я зашел слишком далеко. Но здесь тоже может вам применить эту же логику. Вбрасывание половина проблемы прочь и теперь мы ушел с проблемой, что это четверть размера. И мы можем повторить, и мы можем повторить, и мы не можем повторить, пока теоретически есть только одна страница слева на который Майк либо есть, либо нет. Так что же такого мощного об этой идее? Я имею в виду в конце концов, это довольно интуитивно. Никто не собирается начать на начало телефонной книги и флип 1000 страниц, чтобы найти Майка Смита. Почти все в этой комнате собирается сделать примерно такой алгоритм сохранить для разрывания. И вот почему мы делаем это? Что ж, рассмотрим эффективность. Рассмотрим, насколько лучше это Алгоритм был разбивая его вниз на составные части. Итак, что же я в первый раз делать? Я взял телефонную книгу. И ученый, и программист, в более общем плане, оказывается, собирается чтобы начать отсчет все в 0. Зачем? Ну, это немного странно что мы, люди, рассчитывать, как правило, начиная с первого. Потому что наименьшее число мы можем ясно представить на основе даже на нашей старой начальной школы по математике? Ну, это было 0, то ли это в десятичной или двоичной форме. И так вы будете видеть в мире вычислительной техники и программирования, В частности, мы начинаем считая все от 0. Так что я взял книгу шаг телефона 0. Я собираюсь открыть к Середина телефонной книги. И это действительно выражение того, что я сделал. А потом второй шаг был посмотреть на имена. Шаг третий немного отличается концептуально. Я задавал себе вопрос. Если Смит среди имен, Я собираюсь принять решение. Если он среди имен, то я буду называть Майк. И я собираюсь принять решение основанный на том, что часть информации. Тем не менее, если нет, если Смит ранее в этой книге слева, Я собираюсь открыть к середине левой половине книги. А потом вот сообразительности, Я собираюсь вернуться к шагу два. Я собираюсь рода стоять на собственных плечах и просто повторить прошлую работу я сделал. Но работа у меня осталось это меньше, и меньше, и меньше. Но она по-прежнему будет работать. Но если Майк, вместо того, позже в книге справа, Я собираюсь открыть к середине правой части книги, затем вернитесь к шагу два. Но есть на самом деле четвертый сценарий. Майк ни здесь, или здесь, или здесь, или-- СТУДЕНТ: Не существует. DAVID Маланом: Не существует. И в самом деле, если мы не ожидаем это четвертый и последний сценарий наша программа может быть глючит или недостатки в некотором роде. В противном случае, бросить в том случае, мы не нашли Майка вообще. И в самом деле, если вы когда-нибудь заметил, ваш компьютер висит, или все Внезапно слова или какой-то другой программа просто неожиданно завершает работу, а иногда ты ошибка сообщение буквально что. Эта программа неожиданно завершает работу. Это может быть по ряду причин. Но иногда это что-то так просто, как это. Человек программист который писал, что программное обеспечение не понимал, что, ах, есть вперед, что может произойти на самом деле. И если вы не пишете код захватить этот четвертый сценарий, это действительно неожиданное иногда что компьютер может реально сделать. Теперь давайте взывать Некоторые из этих вещей. Так желтым цветом здесь, я выдвинули на первый план термины что отныне мы просто будет вызывать функции. Функции в мире программирование точно так же как действия, заявления действий. Так что забрать, открыт для, посмотрите на, звоните, открыто, открыто, бросить курить. Это функции, процедуре, действие, любое количество синонимов будет работать, как хорошо. Теперь то, что эти вещи сейчас в желтый цвет? Если иначе, если иначе, если иначе, это то, что мы будем называть условия в программировании, или отрасли, решение указывает, если вы будете. Но как вы знаете, какая вилка в дороге, чтобы принять, так сказать? Нам нужно выделить условия вправо там, которые они Да, без вопросов. Эти истинные ложные вопросы. Смит среди имен? Смит ранее в книге? Смит позже в книге? Это вопросы к который есть да, или нет, или что то же самое верно, или ложь, или что то же самое, один или ноль ответ. А между тем есть только один последний кусок. Это здесь есть какой эффект? Будь или не программировать перед тем, как бы вы описать то, что шаг семь и 10 делают? Что ты сказал? СТУДЕНТ: Рекурсивный шаг. DAVID Маланом: Рекурсивный шаг. Да, по сути. Это технически итеративный здесь, если вы знакомы. Но мы вернемся к этому. Но он делает что-то ясно. Опять же, это индуцируя цикл, цикл, правильно. Вы в буквальном смысле идти вернуться к какой-то более ранней стадии. И так на самом деле, это будет реализовать какой-то цикл. Но вы не собираетесь, чтобы получить застрял в этом бесконечно, не так. Потому что, если вы постоянно проверять это Майк здесь, или влево, или нет, в конце концов, он не собирается быть там. И вы можете просто бросить курить вообще согласно этой последней строке. Так вот именно для словаря. И это было то, что мы бы как правило, вызывать код псевдокода. Это не является фактическим языком. Это просто очень лаконичный английский, но он общается точку. Там нет официальной структуры здесь. Вы просто использовать его несколько слова, но, как ясные слова как вы можете сообщить вашу идею. Теперь, как хорошо, что алгоритм и насколько лучше это? Ну, мы не должны попасть в Специфика чисел или что-нибудь как это. Но мы можем посмотреть на Форма этого раствора. Так что, если мы просто сделать некоторые ху сюжет здесь, на горизонтальной оси здесь. Давайте просто называть размер проблемы. И ученый будет как правило, используют в качестве п переменной. Таким образом, п страниц, или русские люди в комнате, или все, что вы пытаетесь подсчитать. А затем по вертикальной оси на влево, что было бы время, чтобы решить. Так сколько секунд делает это возьмите меня, чтобы найти Майка Смита? Или сколько шагов это займет? Сколько поворотов страницы это займет? Так вот, сколько это стоит меня вовремя, чтобы решить проблему. И мы могли бы сделать первый Алгоритмы наклона, если вы будете, как только этой прямой в красном. И я буду называть его п. Почему п? Почему именно этот один одному из отношений? Ну, если Verizon или независимо от телефонной компании добавляет еще одну страницу в телефонная книга в следующем году, что может подтолкнуть Майк один более шаг ближе к концу, в зависимости от того, где эта страница. И поэтому эффект может просто будет добавить еще одну секунду. Или еще одна страница поворота. Один к одному отношение. В противоположность этому, второй алгоритм. Насколько быстрее было то, что интуитивно? Где я пошел две страницы за один раз? Да. СТУДЕНТ: [неразборчиво] DAVID Маланом: Да. Так что это будет в два раза быстрее. И мы бы нарисовать, что здесь в зависимости от масштаба. Он по-прежнему представляет собой прямую линию, но ниже, чем красная линия. Потому что для некоторого числа страниц, если требуется вы это много шагов с Первый алгоритм, он собирается принять вас половину как много шагов со второй. И поэтому желтая линия описывая второй алгоритм только собирается быть ниже него. Но что на самом деле является мощным думать о третьем, окончательном, и удивительно наиболее интуитивный Алгоритм, который имеет такую ​​форму. Технически мы называем это логарифмическая кривая. Вход по основанию 2 п в этом случае. Но это не имеет никакого значения. Что важно на самом деле принципиально различная форма, что она имеет. И вы можете рассмотреть вопрос, насколько намного короче, эта линия на самом деле в долгосрочной перспективе. Он постоянно растет. Он не сглаживаются отлично. Но она становится все так гораздо медленнее поскольку проблема становится все больше и больше. И вы можете думать об этом way-- если Verizon не просто добавить одну страницу в следующем году, но двойники количество страниц в телефонной книге, первый алгоритм может принять в два раза больше шагов. Если это 1000 страниц это год, 2000 страниц в следующем году, Майк может быть, что гораздо дальше. Так что 1000 дополнительных шагов, чтобы найти его. Второй алгоритм может быть только 500 больше Шаги, чтобы найти его, потому что опять же, Я лечу через него два одновременно. Но как насчет третьего алгоритма? Если Verizon удваивает Размер телефонной книги в следующем году от 1000 до 2000 страниц, сколько еще шагов мой третий алгоритм собирается взять? Да, это всего лишь один. И это мощная идея. Вы можете взять 1000 страниц укус из этой проблемы сразу. А теперь, если вы считаете, глупый сценарий, но это отчасти говорит о Мощность такого рода intuition-- если телефонная книга была, как, четыре миллиарда страницы, чувствует себя, как на самом деле большая проблема. И в самом деле, это может возьмите меня четыре миллиарда страницы Оказывается, чтобы найти Майка Смита в том, что в случае с первым алгоритмом. Но сколько бы это шаги принять в третьем алгоритме чтобы найти Майка среди четырех миллиард кусочков бумаги? Таким образом, четыре миллиарда вы разорвали пополам. Вы получаете два миллиарда. Тогда один миллиард, то 500 миллионов, 250 миллионов, 125 million-- но чувствует, как это собирается занять некоторое время. Я, возможно, потребуется 32 пальцев подсчитать, что высокие. Но это действительно так всего лишь 32 страниц слез. Вы можете перейти от четырех млрд на одну страницу разделяющей исходное число страниц в половине 32 раза пока не останется только что одна страница. Теперь, конечно, я обманываю здесь. Это не значит, что мы просто быть своего рода глупо полностью с первыми двумя алгоритмы. Я обманывал в каком-то смысле, или на самом деле я используя предположение. Что было правдой о телефонной книге в своем первоначальном виде, что позволило мне даже использовать этот третий алгоритм? Да? АУДИТОРИЯ: Это был алфавитный. DAVID Маланом: Это был алфавитный, верно? Если бы это было только в случайном порядок, это пустая трата времени, весь этот разговор. Я должен смотреть на каждый страница, если это в случайном порядке чтобы найти Майка Смита, прежде чем я можно сделать вывод, что он там или нет. И поэтому угол мы резали то, что у меня есть Предполагается, что кто-то еще этот случай сделал работу для меня. И так, что в конечном счете приглашает вопрос, ну, подождите минуту. Как сортировать 1000 страницы имен и номеров? Это на самом деле другое Проблема, что-то мы вернемся в будущем. Но когда вы думаете о веб-сайтах как Facebook и Google для Gmail и такие вещи, как Google, собственные поисковые индексы, когда у вас есть миллионы или миллиарды фрагменты данных, которые хранятся в эти дни, searching-- и не говоря уже о сортировка этих problems-- в конечном счете, задача сама по себе. И в самом деле, это, то есть просто одна из тех проблем, что мы будем смотреть. Итак, теперь давайте момент и посмотрите на CS50 сама по себе и дать вам чувство что в магазине в этом семестре. В самом деле, если вы еще не сделали этого, действительно, посмотрите на этот URL. И, как Патрик намекал чтобы, в этом году мы что делает значительные инвестиции все чем больше в поддержку Курса структура с точки зрения ТСП и центры сертификации, рабочие часы, Разделы доступности и цифровые материалы в Интернете, а также. Действительно, с точки зрения Курса лекции, мы здесь сегодня. И ожидания этого год официально курса будут присутствовать на сегодня, курс-х последняя лекция, и курс примерно в середине семестра с каждой лекции между ними доступны в целом во второй половине дня в пятницу онлайн, как для студентов Йельского университета и студентов Гарварда в этом году. Действительно, один из фундаментальные изменения в что мы в принятии Гарвардская парадигма очень как мы делали здесь в последний раз год и в настоящее время в этом году, так что подобным образом, мы по-прежнему снимать большинство лекций Курс в Кембридже но сделать их доступными ранее чем у нас в прошлом так что те из вас, если you-- хотел бы, например, получить фору по материалам на первый уик-энд, а чем второй уик-энд, вы будете иметь Доступ к этим видам материалов, поиск, встраиваемый, hyperlinkable на соответствующие ресурсы все ранее. С точки зрения тем, чтобы дать вам чувство trajectory-- Курса и некоторые из этого может быть жаргоне сейчас, но не надолго, будьте уверены. Мы начнем сегодня, в конечном счете, с глядя на одном программирования язык называется на пустом месте. Мы будем в дальнейшем переход на следующей неделе что-то называется C а затем, глядя на другое здание блоки для решения проблем, вещи, называемые массивы и алгоритмы, как мы используем память в нашу пользу и недостаток, и такие вещи, как структуры данных, а затем по направлению к хвостовой части класс, глядя на машинного обучения и, глядя на другой язык называется Python, как веб работает, как Интернет более как правило, работает, протоколы, как HTTP, Языки для баз данных, таких как SQL, JavaScript для Интернета, и в конечном счете, связывая все те вместе. И так на самом деле, на Конец дня, вам не будет учиться в этом классе нуля или C или Python или SQL или JavaScript. Вы вместо того, чтобы в более общем узнать информатика и основы их, и вы будете научиться программировать в любом количестве эти языки по пути. Так что на самом деле, одна из целей курса в конце чтобы снять все Курса учебные диски по этим последние недели так что после этого, вы можете вернуться к вашему собственному fields-- будь то или не компьютерные науки или машиностроение, в естественном науки, искусство, гуманитарные науки, или beyond-- и привести некоторые из этого Идея конечно в и в этом поле идеи и практические навыки в свой собственный домен для того, чтобы решить проблемы в нем. Что мы будем делать здесь, в то время в большинстве четвергам после сегодняшнего дня это с руководителями ходе ведущих что мы будем называть прохождений проблемных наборов Курса. Так что каждую неделю, когда мы поставили проблему, мы будем ходить через в месте как это вызовы Курса, предлагая вам несколько советов и приемы и методы проектирования. Но если вы не в состоянии чтобы те лично, понимают те же ресурсы будут встроены одним из Курса ассистенты в задаче самих множеств, а также. Проблема устанавливает в этом году, в отличие от в прошлом году, на основе обратной связи, по-прежнему будет выпущен по пятницам. Но вместо того, чтобы из-за последующую пятницу, тем самым давая вам всего семь дней, будет эффективно из-за 10 дней спустя. И в самом деле, это будет означать, что они будут перекрываться на выходные. Но мы надеемся, что в этом году особенно это будет позволяют студентам лучше приспособить Приливы и отливы в их расписании, будь то ученые или extracurriculars или легкой атлетике или среднесрочный сезон. Вы можете либо с передней загрузкой или задней загрузкой ваша неделя упором на CS50 на основе фактической нагрузки, конечно, вашей собственной неделе. Проблема сами наборы будет охватывать целый ряд языков, хотя мы сфокусируемся преимущественно на ранних стадиях на C прежде чем сосредоточиться в дальнейшем на более уровень, больше веб-ориентированных языков. А потом пару часто задаваемые вопросы here-- вы должны взять класс как CS50 в качестве первого года? Так что абсолютно. И в самом деле, это не так обязательно что-то вы должны отложить до тех пор, пока вы вырезать Ваши зубы на других типах классов. Но, скорее, рассмотреть что для многих студентов, включая меня обратно в тот же день, это очень незнакомое поле, особенно если вы никогда не принимать CSA AP или что-то подобное, что в средней школе. Но понимаю, что на ранней стадии, будь то этот курс или какой-то другой вводный курс, Теперь это действительно самое лучшее время, Я думаю, чтобы найти какой-то новый путь или какой-то новый академический интерес, а также. А потом брать с другими courses-- поэтому одним из ключевых отличий здесь по сравнению с Гарварда, что только мы принимать четыре курса в семестр в Гарварде по какой-то причине. И вы, ребята, на самом деле тянуть от около 36 курсов в общей сложности в течение ваших четырех лет, что означает, как правило, четыре или пять классы. И я думаю, что это вполне справедливо сказать, и отказываемся CS50, в соответствии с проектом, является вероятно, не тип класса что вы должны, как правило, взять с собой четыре других курсы в общей сложности пять потому что psets являются дизайн довольно интенсивно. На самом деле, я тоже узнал это еще в день. Я бы не стал описывать CS50 и информатика, программирование а так же трудно, как это это как раз отнимает много времени. Это не та вещь, где после обеда, вы может вернуться к общежитию зал, сесть и начать сосредоточив внимание на PSET мышления, все в порядке, Я собираюсь взрыва на это сегодня вечером, а затем двигаться к моему следующему вопросу на следующий день. Иногда вы просто врезался в стену. У вас есть ошибки в коде. Вам не обязательно знать как решить ту или иную проблему. И одна из ключевых особенностей программирование для себя и по сей день это вы только отчасти должны принять шаг назад иногда, спать на нем или думать о нем в течение от бега трусцой или какой-либо другой деятельности, а затем вернуться к нему свежим. И вам просто нужно эти окна времени. И в самом деле, вот почему мы удлинили количество времени доступны для проблемных наборов в этом году, а также, согласно этому URL Я терплю раньше, чтобы Что нового в этом семестре, обрезается проблема устанавливает таким образом, чтобы не они принципиально не менее строгий, а не вынос не меньше, но есть намного меньше, вводная, намного меньше беготней, что вам нужно делать в передней части каждого множества проблем, как вы увидите, прежде чем вы можете на самом деле погружаться в мясо его. Так понимаю, что те и другие изменения на горизонте чтобы лучше приспособить студентов, но в конечном счете, чтобы убедиться, что являются вынос на самом деле как можно выше. Таким образом, в то время как больше работы, чем это может быть в типичном классе, мы надеемся, что отдача для вы и для вас еды на дом а также навыки и идеи с помощью которого вы выходите тем более убедительным в результате. И, чтобы вы и это there-- является одним из ключевых вынос, как упомянуто Патрик earlier-- является Структура поддержка курса. Так что не только CS50 есть один из крупнейшие штабы курса в университетском городке. Она также имеет один из Наиболее магистрант. Действительно, в прошлом году CS50 был первым классом иметь высшее преподавательский состав. И свидетельством этого успеха теперь делать многие другие курсы в рамках Йельского CS есть, что, как хорошо. А для студентов, в частности, будут эти ТКС и курса помощники будет поддерживать в целом сеть вспомогательных ресурсов, среди них разделов или декламации, еженедельные возможности иметь более интимные обсуждения и обзоры материалов целевых для различных треков, для студентов менее комфортно, более комфортно, или где-то посередине. Они будут следовать за наличия лекции по несколько дней каждую неделю по понедельникам и вторникам. А потом офис hours-- один на один возможности за помощью курса КАН и ТП будет по средам и четвергам и воскресеньям в нескольких раз, все из которых будут размещены на веб-сайте Курса, даже больше, чем в прошлом году, а также. Но то, что ключ к CS50, если не по общему признанию, немного необычно, это культура конечно, что мы пытались культивировать, как в Кембридже в течение многих лет а теперь совсем недавно в Нью-Хейвене. И в самом деле, придумывая этот Суббота, если вы еще не слышали, это CS50 головоломка День, который имеет ничего не делать с компьютерной науки но полностью предназначена для отправки сообщение, что компьютерная наука о решении проблем. И в самом деле, если вы хотите, чтобы партнер с одним или двумя или тремя друзьями и сформировать команду для CS50 Головоломка день, посмотрите на рекламу, которые находятся на выходе. А еще через три часа пиццы и головоломки и призы ждут. И действительно, для первый раз в этом году, она не будет проводиться совместно с Гарвард. Он будет здесь независимо друг от друга в Йельском университете. Так что следите за те, если у вас нет. Большинство каждую пятницу в семестр мы стараемся сделать большой класс чувствовать себя маленьким и принести около 50 студентов на обед с сотрудниками Курса, с выпускниками, друзьями от промышленности говорить о том, что жизнь, как после того, как класс как CS50 и в течение лета и после окончания школы. Так что следите за Приглашения к этому. В первый раз когда-либо в этом году мы провести первый в истории CS50 кодирование Конкурс, дополнительный выбор в возможности в середине семестра, после того, как все мы имели примерно через шесть или семь недель программирования в C под их поясами, чтобы конкурировать, если бы вы так выберите-- снова на teams-- пытается решить столько проблем как вы можете в программировании с ваши друзья против других. И к хвосту семестра будут чартеры некоторые автобусы, на самом деле потратить некоторое время в Кембридже, если вы хотите хотели бы присоединиться к нам, для так называемые CS50 Hackathon. В 7 часов вечера мы начнем. Около 9 часов вечера, мы будем иметь пиццу. Около 1:00 утра, мы будем иметь буррито. И кто-то еще не спит на езды на автобусе домой около 5:00 утра, мы заезжать для блинов на IHOP на пути home-- 12-часовой возможность погрузить себя с одноклассниками и сотрудниками в окончательном проекте Курса, которая является возможность выходят далеко за рамки Конечно множества проблем в и разработка и осуществление наиболее ничего для вас интерес, что в конечном итоге будет признакам здесь в Общин. Первый в истории CS50 ярмарка была последний год, выставка с истекшим семестра или праздник, что каждый в классе было достигнуто, особенно те, опять-таки, кто пошел из ни к чему, от нуля до 60, не имеющие никакого предшествующего фона и экспонирование, в конечном счете, то для всей университетского городка и, если в Интернете, чтобы мир увидел, как хорошо. Теперь, эти вот лишь немногие из TAs и центры сертификации, что делает возможным CS50. Позвольте мне пригласить любого из этих сотрудников кто здесь, чтобы выйти на сцену, а также руководители Курса, чтобы предложить некоторые слова вдохновение, а также. ANDI: Привет, ребята. Можете ли вы, ребята, слышите меня? Спасибо, что присоединились к нам по этому вопросу симпатичный, дождливый четверг во второй половине дня. Меня зовут Анди. Я младший в Беркли. А вместе с Стелиос и летом, мы будем ваше учение три головы помощники для этого предстоящего года. Так что, я думаю, шоу hands-- сколько из вас не имеют ни малейшего намерения быть CS майор, ни на самом деле глубоко дайвинг в информатике как одной из основных здесь? Потрясающие. Это блестяще. Так что я на самом деле глобальные дела и когнитивная наука мажор. Я буквально пришел Yale с намерением что никогда не имея смотреть на число когда-либо снова в моей жизни. Когда я приехал в Йельском университете, это было то, что никогда не был на моем радаре. Я хотел бы узнать о поэзии. Я хотел бы узнать о международные дела. Я хотел бы узнать о акварельные рисунки. Да, мы предлагаем класс на акварельные рисунки. Но я никогда не был заинтересован в чем-нибудь STEM связаны между собой. Но тогда я старше получил, тем больше я понял, что каждое поле действительно в некоторых смысл использует компьютерные науки, или если не компьютерные науки, вычисления. На самом деле, для моей глобальной Дела дипломный проект, мы используем аналитику данных анализировать теракты для Боко Харам в Нигерии. И так как вы можете видеть, независимо что главная вы в конечном итоге преследуют или то, что ваши интересы здесь в Йельском университете являются, программирование и основы из любой навыки супер полезно. И CS50 действительно хорошо оборудован для вид кредитовать много своих ресурсов Вам, независимо от того, насколько комфортно вы или как вы заинтересованы в реализации класса. Лето собирается немного поговорить немного о том, что вы, ребята, собирается узнать об этом году. ЛЕТО: Привет всем. Я Лето Ву. Я младший в Морзе. И я на самом деле начал как CS50 студент сам. Так что три года назад, я был на год разрыв. Я никогда не брал CS класс в средней школе, но я думал, что в свое свободное время, было бы здорово, чтобы узнать, как код. Так что я сделал быстрый поиск Google, искал то, что было доступно в Интернете, и увидел это видео с куклами и ди-джеи и прохладный веб-сайтов. Я был, как я хочу узнать, как сделать это. Так что я взял курс, и я просто влюбилась в него. Но я помню, так что ревновать дети, которые могли бы присутствовать на Hackathon, присутствовать головоломка день, посещать офис часов, получить помощь от ТП лично. И поэтому я никогда не думал, что я хотел бы получить шанс чтобы быть здесь вовлечены в курс, который впервые получил меня интересует в компьютере наука и является причиной того, почему Я компьютерные науки главным сегодня. Поэтому я предупреждаю вас, этот класс собирается растянуть вас. Это будет вам вызов. Но это также будет научить вас, как делать вещи что вы никогда не представляли вы могли бы. Стелиос: Привет всем. Меня зовут Стелиос. Я младший в Branford Колледж и главный CS. Я тоже из Афин, Греция. Я жду-не дождусь для удовлетворения всех вас, чате с вами в разделе, в офис часов, в пятницу обеды. Я очень рад, потому что мы вложили столько усилий в создание уникальной поддержки структура для всех вас чтобы сделать ваш опыт работы с курс наилучшего. И я надеюсь, что хотя большинство Вы, вероятно, не принято CS Конечно, прежде чем, я надеюсь, что это CS50 для вас это то, что вызывает интерес далее проводить компьютер наука в будущем, как это было сделано с таким многие люди в прошлом. Так что спасибо вам за то, здесь, рад видеть вас. Джейсон Хиршхорн. ЯСОН Hirschhorn: Привет всем. Меня зовут Джейсон Хиршхорн. Я живу в Силлиману. И я пошел в Гарвард как старшекурсник и специализировался в области социальных исследований и minored в информатике. И одна из моих главных ролей здесь чтобы поддержать этот замечательный персонал так как они поддерживают вас всех. На самом деле, это далеко не все из них. Есть 55 магистрантов и выпускников здесь, чтобы поддержать вас всех. И я полагаю, один из лучших части курса для вас все становится работать с они, знакомясь с ними, получать, чтобы увидеть их, как в CS50 и за ее пределами CS50 в этом семестре и для многих семестров, чтобы прибыть. Так что, надеюсь, вы будете брать Конечно же, потому что мы надеемся, вы получить, чтобы взаимодействовать с замечательный персонал у нас на сцене. СПИКЕР: Ну, позвольте мне закончить говоря это будет весело. DAVID Маланом: Ну, благодаря всей нашей команды. Позвольте мне тусклый свет и позволяют еще некоторые из нашей команды, как из Кембриджа и Нью-Хейвене, чтобы сказать привет, как эти парни спиливать. И после этого мы будем переходить к первый из наших обязательств по программированию с этим языком называется Скретч. Так что спасибо команде. Давайте тусклый свет и услышать от некоторых других. [АПЛОДИСМЕНТЫ] [ПРОИГРЫВАНИЕ ВИДЕО] -The Миссия CS50, чтобы вы более комфортно с совершенно новым способом мышления, этого вычислительного мышления. -Он Сделал компьютерные науки Интересно, что что-то я не очень понимаю, было возможно, пока я не взял класс. -Я Был похож, стой. Я действительно переводя свои мысли в компьютер прямо сейчас. -Даже Если у вас нет никакого фона в области информатики или любой опыт, это на самом деле класс для вас. -Так Я определенно хочу мои студенты просто увлечься информатики. Не только программирование, но думать, как компьютерный ученый на самом деле, что я хочу попытаться научить моего новичка. -CS50 Трудно и награждение. -Опыт. -Extravaganza. -Он Привезет нас к следующему уровню. [МУЗЫКА] -The ТФ являются, как мне кажется, Lifeblood курса. -Я Рад иметь мои студенты Я помогаю есть что аха момент, чтобы понять, что они на самом деле пытаются сделать, чтобы выяснить, как сделать PSET. -CS50 Определенно жесткий курс. Но в отличие от любого другого Конечно, на самом деле в Йельском университете, он имеет такой большой, поддержку сообщества. -Ты Совсем не нужно знать что-нибудь о кодировании, чтобы быть в состоянии взять курс. -Это Удивительно наблюдать, как далеко люди приходят в один семестр. -Ты Не одна сидит в ваша комната научиться кода, но это было больше, чем просто класс. Это был опыт. -Лучший Способ узнать концепции и обрабатывать их является учить других. -Какая Телефон раскол? [МУЗЫКА] -А Это CS50. [МУЗЫКА] -Это CS50. -Есть проблема? Tear его пополам. [МУЗЫКА] Выброси это. DAVID Маланом: Хорошо. Так что давайте tackle-- в немного немного, между прочим, это была эта традиция какой-то причине в течение 10 лет чтобы служить торт на начала и конца CS50. Так что ждет вас в конце Сегодня, в дополнение к учебным планам, будет некоторый пирог, а также, и персонал конечно, чтобы сказать привет. Переход Но теперь, давайте к первый из наших языков, где мы потратим на самом деле только неделю и один проблема установить на этом домене, к царапинам. И вы найдете, если вы имеете запрограммирован ранее, многие из идей и возможности вам знакомы. Но вы обнаружите, что это весело по пути чтобы точно выяснить, как перевести некоторые из идей, которые вы уже знаете в этой конкретной среде чтобы действительно произвести впечатление на семью и друзья с вашей работой, которая может выходить в интернет, если вы этого хотите, после этого. И если у вас есть нет предыдущий опыт и среди большинства студенты менее удобные, понимают, что многие из идей, которые мы просто исследовали с reality-- вещей как телефонные книги и посещаемости и так forth-- перевод довольно красиво к компьютеру, но если вы не используете, Первоначально, язык, как это. Так что это программа, написанная на языке, называемом С. И мы потратим совсем немного времени в C, в конечном счете. Но шансы, это будет выглядеть немного загадочным вам на первый взгляд. На самом деле, есть много странно синтаксис, круглые скобки, угловые скобки, фигурные скобки, кавычки и точкой с запятой. И в самом деле, если вы погрузитесь в Программирование в первый раз глядя и пытаются создать материал как это, если честно, ты так погряз так часто в просто глупо мелочах, что не имеет ничего интеллектуально интересно об этом. Но представьте себе, если вы могли бы создать это же program--, который, как можно было бы предположить, своего рода, вероятно, печатает "Привет, мир", так или иначе. Мы можем перегонять ту же самую идею в только две части головоломки, если вы будете. Действительно, Царапина интересно потому что это это графический язык. Вы можете перетащить эти кусочки головоломки, которые только интерлок если он имеет логический смысл сделать это. И поэтому в пустом месте, мы скоро увидим, это как вы бы реализовать тот же Программа, с помощью всего двух частей головоломки что в значительной степени делать то, что они говорят. Но мы увидим в мгновение, что некоторые строительных блоков, которые мы которых шла речь ранее и несколько более все, что в конечном счете, собираются составлять некоторые из наших ранних программ. Мы будем иметь вещи как functions-- просто действия, которые делают что-то, как сказать привет, мир. Мы будем иметь петли, вещи, которые вызывают циклы снова и снова, так же, как мы сделал минуту назад с поиском Майк Смит. Переменные, как в алгебре, если вы есть х или у, которые могут сохранить номер. Ну, в программе, вы можете на самом деле хранить больше, чем просто цифры. Вы можете хранить слова и предложения и графики и другие вещи до сих пор. Логические выражения, просто questions-- да или нет, истинным или ложным. Условия, при принятии решения на основе этих да / нет ответов. А потом более причудливые вещи, как массив и темы и события и любое количество других особенности, но все из которых карта очень красиво очень дружественные блоки, как это. Это будет функцией, фиолетовый кусок головоломки, которые как раз говорит то, что его имя is-- в данном случае, скажем. А потом часто, есть белый ящик, который вам можно ввести в систему или перетащить какую-то ценность в. И вот что в целом называется аргументом или параметр. Это способ изменения ее Поведение по умолчанию головоломки часть или функцию так, чтобы она что-то на заказ для вас, как говорят, привет, мир или привет, Энди или привет, Джейсон или какой-то другой предложение вместо этого. Если вы хотите сказать, что lot-- буквально forever-- вы можете взять другой паззл называется навсегда и просто зажат два вместе, как это. И это цикл, как картина предполагает, значит просто сказать привет, мир навсегда, Снова и снова и снова. Или, если вы только хотите сделать это конечное число раз, как и в 50 раз, там будет еще одна головоломка часть для that-- повторить 50 раз. В то же время, если вы хотите чтобы иметь переменную на этом языке мы собирается играть, Вы можете использовать оранжевый блок, как это. И эта переменная я произвольно называется I для целого числа. И я просто установить его равным 0. И поэтому, возможно, я, в этом case-- это переменная-- представляет чью-то счет в игре. Вы начинаете с нуля, и каждый раз, когда вы сделать цель или что-то подобное, Вы получаете один дополнительный пункт. Вы можете задать вопросы в пустом месте. Если мы перетащить головоломки штук в минуту, как это, Вы можете задавать вопросы, как, хорошо, я меньше, чем 50? Может быть, вам нужно 50 очков, чтобы выиграть. И таким образом это было бы вопрос, который вы хотите спросить. Или, в более общем плане, вы Можно сказать, это х меньше у, где есть две переменные вовлечены? Теперь это одно много больше, на первый взгляд, но на самом деле не все, что сложнее. Это просто сочетание условий и переменных и логических выражений, чтобы спросить три questions-- составляет х меньше у? Если это так, скажем так. Скажем, х меньше у. В противном случае, если х больше Y, иначе х должна быть равна у. И в то время как с Майк Смит, там были четыре сценария, здесь в мире чисел, х является либо меньше, больше или равно. Все у нас есть три развилки. А тут еще искуснее кусочки головоломки, как это для таких вещей, как массивы, где мы находимся будет иметь возможность хранить информацию. Мы собираемся, чтобы увидеть блоки, которые позволяют нам реализовать несколько потоков, другая особенность, которую мы будем использовать, и то и что-то называют событиями. Но прежде чем мы перейдем к тому, что пункт и создать даже, в конечном счете, наш собственный пользовательский кусочки головоломки, давайте на самом деле открыть саму программу. Так что это на пустом месте. Она доступна на scratch.mit.edu. И вы всегда можете играть сейчас или позже, а также. Это происходит с автономной версией. Для людей, которые не делают обязательно имеют большой Интернет, Вы можете скачать то же программное обеспечение, а также. И там действительно только три компоненты этого программного обеспечения. В верхнем левом углу экран является своего рода этап что Царапина, который по умолчанию выглядит как кот, живет внутри. Он может двигаться вверх, вниз, влево и вправо и делать любое количество других вещей, и может выглядеть любое количество способов на основе на костюмы, которые вы назначаете ему. Но это то, что мы называем спрайт, своего рода символ. И вы можете иметь несколько персонажи, как мы скоро увидим. В середине теперь все эти головоломки штук и эти категории или поддоны его. Так прямо сейчас, я нажал на Motion. И вот я вижу, все из движения, связанные с головоломки или блоки, поэтому функции, которые имеют делать с выходом вверх, вниз, влево или вправо или некоторые другие операции. Но если я нажал на Looks, вы мог видеть вещи, как блок скажем что мы видели только минуту назад. И если я нажимаю на контроле, вы увидите такие вещи, как повторение и навсегда и если блок, мы видели минуту назад. И так вы найдете что мы просто поцарапать поверхность некоторых из кусочки головоломки вместе, но это все довольно интуитивно и точка и нажмите. В самом деле, Царапина была разработана для младших школьников чтобы помочь дать им выход для творческого мышления. И все же удивительно, это замечательный ступенькой точно с идеями, которые мы собираемся изучить в C и Python и JavaScript, также. С правой стороны, в конце концов, здесь это, так называемый область сценариев. И это только с чистого листа которую вы начнете писать программу. И я буду именно это. Теперь, я знаю, где вещи потому что я сделал это несколько раз. Но я знаю, что под категория События, есть этот блок here-- когда зеленый флаг щелкнул. И обратите внимание, если я уменьшения и назад в здесь на сцене, Скретч живет в пределах этого маленький прямоугольный мир, на вершине которой является зеленый флаг и красный знак остановки. Так что иди и остановить, соответственно. И вот, что я хочу сделать когда этот зеленый флаг нажата? Что ж, позвольте мне перейти к тому, что кажется категорию. И позвольте мне идти вперед и перетащить это. И заметьте, как только он получает близко, они своего рода магнитными свойствами. Так что, если я теперь отпустить, она зафиксировалась вместе красиво и чисто. И я собираюсь идти вперед и что-то вроде Привет, мир в течение двух секунд. Позвольте мне уменьшить масштаб и нажмите сейчас зеленый флаг, и сказать, привет, мир. Отлично. Так что это все прекрасно и хорошо. Не все, что интересно. Давайте сделаем это немного симпатичнее. И я знаю, что в Продвижение, Царапина происходит прийти с некоторыми милые вещи, как это. Так играть звук мяу пока не сделано. Так давайте сделаем это. [МЯУ] Оу, это восхитительно. И если я нажму его again-- [МЯУ] И опять. [МЯУ] Но я продолжаю необходимости реанимировать нуля. Но я могу сделать лучше, чем это. Почему я не могу просто перетащить три из них. И теперь это в три раза очаровательны. [Мяуканье] Хорошо, на самом деле, это немного жутким. Так что нам нужно что-то между ними есть. Если я иду к контролю, это выглядит есть на самом деле ждать блок. И поэтому обратите внимание, если я наведите курсор мыши на there-- и позвольте мне сделать это немного больше. Если я парить, это будет чтобы зафиксироваться. Так что ждите одну секунду, подождите одну секунду. Давайте снова ударил зеленый флаг. [Мяуканье] Хорошо, немного более естественным, но не очень эффективно. Так что это правильно, если моя програмы Цель была мяу три раза. Но это не очень хорошо разработан. Я как бы сократить некоторые углы. Я немного ленив. Что чувствует like-- что мне кажется, чтобы было сделано плохо, вы бы сказать? Да? Да, в середине. АУДИТОРИЯ: Используется более памяти, чем вам нужно потому что вы используете так много разных линии. DAVID Маланом: Да, так что больше линий. И это не обязательно будет память, хотя это можно было бы рассматривать как таким образом. Но это definitely-- есть избыточность. И я в буквальном смысле вид потащил и сбросили одни и те же вещи. И если вы вроде extrapolate-- если это не очевидно here-- хорошо, как бы Я мяукать 30 раз? Я хотел бы перетащить, как, более 30 пар головоломки. И, конечно же, есть лучший способ. И мы уже видели лучший путь. Что бы интуитивно быть лучше? Да, просто использовать цикл. Нет копирования и вставки. И действительно, в любое время это семестр, если вы начинаете найти себя перетаскиванием, или действительно функции копирования и вставки, опасная привычка, потому что это просто не очень ремонтопригодны. Например, если я хочу изменить звук к чему-то еще, Я должен изменить это сейчас в трех места вместо одного. Потому что на самом деле, если я разорвать этот away-- я просто хочу, чтобы расцепить это так. Позвольте мне захватить повторный блок, и затем нажмите три, три типа, бросить некоторые из них прочь просто отпустить. А потом заметили не выглядит, как он подходит, но магнитным способом, это происходит не только оснастки на месте но расти, чтобы соответствовать форме. Так что это хорошо. А теперь, если я нажимаю играть. [Мяуканье] Очень хорошо. Отлично. А теперь это очень легко изменить, тоже, потому что я могу просто изменить один номер в одном месте. Но это тоже не все, что интересно. Давайте на самом деле есть Царапины не мяукают, но двигаться. Позвольте мне перейти к Motion и двигаться 10 шагов внутри of-- возгласами, позвольте мне это исправить. Дайте мне его двигаться 10 steps-- на самом деле, давайте не будем делать повторять. Позвольте мне захватить блок управления, и выполните следующие действия навсегда. Навсегда, двигаться 10 шагов. И нажмите кнопку Play. ОК. Так что, к счастью, он останавливается. В противном случае, дети получили бы очень расстроен когда они вроде теряют свою кошку. Но, по крайней мере, я могу перетащить его обратно в экран. Но это не все, что большой из игры или анимации. Было бы неплохо, если возможно он отскочил от края. Так что же нам делать? Какая конструкция мы должны иметь Царапина решите отказов, как вы думаете, даже если вы никогда не видел Царапину раньше? Да, в спине. ЗРИТЕЛИ: Вам нужен если блок или если-то. DAVID Маланом: Да, так что некоторые вид, если блок или если-то. Так что на самом деле, у нас есть один из них здесь. Так if-- так что позвольте мне получить избавиться от движения. Позвольте мне увеличить, так это больше. Так как об этом. Навсегда, если Sensing-- мы не видели это раньше. Мне нужно логическое выражение. И получается, если вы прикасаетесь что? Если прикосновение к краю, Что я хочу сделать? Ну, если я вернусь к движению, Оказывается, о, я могу развернуться. Позвольте мне перетащить это здесь. Почему бы мне не идти вперед и развернуться на 180 градусов? А теперь, позвольте мне просто двигаться в конце. Я мог бы поставить на движение начало или конец. Но по логике вещей, каждый раз, когда я двигаюсь, я хочу проверить, я прикоснувшись к краю? Могу ли я прикоснувшись к краю? Могу ли я прикоснувшись к краю? Так что логически я оборачиваюсь если это так. Так что давайте ударил игру. ОК. Так что это немного глючит, так сказать. И это ошибка просто ошибка в компьютерной программе. Но по крайней мере он работает. И в самом деле, я могу пойти сюда. И позвольте мне сделать это не 10 шагов за время, но все это анимация. Это все мультфильм или даже фильм. Позвольте мне двигаться 20 шагов за один раз. Так что в 20 раз, как много вещей, которые происходят один раз, или в два раза больше, и в этом случае. И он движется быстрее. Позвольте мне изменить 30. 100. 1000. И это происходит очень быстро. И это is-- да, хорошо. Так что теперь мы просто баловаться с ней. Хорошо, таким образом глючит. Но мы можем вытащить его из пути сюда. Но мы можем сделать больше удовольствия с этим тоже. Как насчет this-- он с ног на голову. Но оказывается Scratch-- и есть на самом деле, У меня не отказываемся, не академическая значение, что я собираюсь делать. Но если я открываю микрофон, давайте остановить его и сделать что-то вроде этого. Ой! [СМЕХ] Это было восхитительно. Спасибо. Теперь, это то, что мой голос выглядит, когда я кричу Уч. Я не думаю, что мы поймали ваш смех. Ничего страшного. Позвольте мне сохранить это как "Ой". Давайте сохраним это как "Уч". А теперь мы вернемся к Scripts. А теперь я need-- давайте посмотрим, звук. О, играть звук Ouch. Так что, если я прикоснувшись к краю, дайте мне Первая пьеса Уч, а затем развернуться. А теперь давайте поставим его в середине. [СКАЗАТЬ "АЙ"] В два раза быстрее. ОК. Но это в буквальном смысле делать то, что я говорю. Так что это на самом деле правильно, это просто немного раздражает быстро. Поэтому давайте добавим что-то более интересно это. Позвольте мне на самом деле открыть тот, который я сделал заранее, метко назвал любимца Кот, который делает это. Вот сценарий здесь. Что это собирается делать в английских терминов? Что это разработано, чтобы сделать? Да, пойдем some-- так? ЗРИТЕЛИ: Когда вы погладить кошку, она мяукает. DAVID Маланом: Да, так что, когда вы погладить кошку, это будет мяукать. Итак, другими словами, есть теперь навсегда цикл до сих пор, в сочетании с условием, комбинированный с логическим выражением, в сочетании с парой функций, эффект из которых после того, как я играю эта программа, нет ничего происходит, пока я не подведите курсор все ближе и ближе и ближе и-- [МЯУ] Тогда как гладить кошку. [МЯУ] Только как только вы на самом деле переместить курсор над ним. Теперь, я также подстегнул не погладить кот, который делает это вместо этого. [Мяуканье] Таким образом, он просто постоянно мяукает. [Мяуканье] Но если я получаю слишком close-- [Мяуканье] [РЕВ] Так, как это работает? Теперь я просто есть двусторонний развилка. Если прикасаясь указатель мыши, затем воспроизводить звук лев. Иначе просто играть звук мяу, а затем ждать три секунды, так что это отчасти делает он очень безмятежно. Отлично. Так что это объединение еще несколько идей, до сих пор. Давайте посмотрим на этот пример Я взбитыми под названием темы. А это в корне отличается тем, что она использует характерной чертой многих язык программирования под названием нити, способность программы в буквальном смысле сделать две вещи одновременно. В самом деле, в эти дни, если вы используете Google Docs или Microsoft Word, и вашего документа постоянно быть проверки правописания даже, как вы type-- или вы Нажмите Ctrl-P или Control-P и печатать что-то, это печать в то время как вы продолжаете печатать. Программы сегодня действительно может сделать несколько вещи сразу, так же, как в пустом месте Вот. Так вот, у меня есть два спрайта Теперь, птица и кошка. И если я нажимаю на каждом из те символы по одному за раз, Я вижу прямо сейчас птичий скрипты в правом верхнем углу. Теперь я вижу кошки. Птичье, кошки. Таким образом, каждый из них имеет свой собственный сценарий. Но обратите внимание, какой кусок головоломки они оба начинаются с? Когда зеленый флаг щелкнул. И птица, когда зеленый флаг щелкнул. Так что, когда я нажимаю зеленый флаг, оба этих сценариев или программ собираются работать параллельно. И вы заметите, что птица просто бездумно отражаясь от края. Кошка явно была запрограммирована стратегическое преимущество. А также-- [РЕВ] Отлично. Так кот поймал птицу в этом случае. Почему это? Ну, заметьте сначала мы просто птица просто бездумно идти в этом исходное местоположение, а потом навсегда, если не касаясь кота, просто двигаться. И если вы на краю, подпрыгивать. И просто двигаться. И если вы на краю, подпрыгивать. Но кошка, тем временем, имеет некоторую дополнительную логику что говорит this-- во-первых, просто так что это не полностью предвзятым против птицы, обратите внимание, что я использовали зеленый кусок головоломки есть что на самом деле выбирает случайное число. Особенностью многих языков, чтобы дать Вы случайных или псевдослучайных чисел. Так что в данном случае кот изначально выбирает случайное число между, например, 90 градусов и 180 градусов, по существу, так что есть немного расходятся. А потом навсегда, если вы прикасаетесь птица, воспроизводить звук лев. В противном случае, просто указывают на птицу. Направьте к птице. Точка к птице, которая является паззл к себе в этом случае. Ну, мы можем сделать еще одну вещь здесь. Позвольте мне открыть программу мероприятий здесь. И здесь мы снова имеем два спрайта, которые выглядят как эти два куклами здесь. И что интересно здесь это. Оранжевый парень имеет это набор головоломки здесь. Навсегда сделать following-- если пробел нажата, затем сказать, Марко, и затем транслировать событие. А между тем, синий парень здесь имеет this-- когда вы получаете событие, говорят Polo. Так что получается в пустом месте и на других языках, Есть способы для двух программ или два сценария, в данном случае, чтобы сообщаться с тем, что, когда я нажмите пробел, он говорит Марко. А другой слышит, что, таким образом, чтобы говорят, и говорит Polo в ответ. Так что вы можете писать программы, которые на самом деле взаимодействуют таким образом. И если я делаю это один вместо того, чтобы, Я даже могу добавить переменные, используя только один спрайт в этом случае. Это один особенно раздражает. [SEAL лай] Теперь обратите внимание на право у нас есть некоторая дополнительная логика здесь. Как остановить эту печать лаять? [SEAL лай] Похоже, что на правой руке сторона это то, что играет звук. Но это только играя звук, если то, что это правда? Если в переменная-- оранжевый block-- приглушен равен нулю. Как изменить приглушен быть 1, это означает, правда, сделать это приглушенные? По-видимому, другой сценарий, я могу нажмите пробел, и теперь он останавливается. Таким образом, мы можем иметь эту взаимосвязь через скрипты, а также, , просто разделяя переменную через два, как это. Теперь, это не все, что интересно. Давайте идти вперед и делать это и объединить многие из этих идей с помощью этой программы Вот. Перед тем, как сделать это, хотя, как насчет одного добровольца? Позвольте мне снять напряжение меня, потому что я на самом деле не играть в эту игру. Давайте иметь кого-то мы не видели раньше. Вы должны быть удобными приходить на сцену здесь, на камеру. ОК, давай вверх. Очень смелый. Как вас зовут? ИДРИС: Идрис. DAVID Маланом: К сожалению? ИДРИС: Идрис. DAVID Маланом: Идрис, приятно встретиться с вами. Поднимайтесь. А теперь, на свой мобильный телефон, вы играете Покемон GO? ИДРИС: Нет. DAVID Маланом: В самом деле? ИДРИС: Да. DAVID Маланом: OK. Отлично. Что ж, приятно встретиться с вами. Пойдемте. Я тоже не понимаю. Таким образом, мы подумаем вместе, как играть в эту, что кто-то на самом деле пошел и реализован в пустом месте путем изменения кошку по существу разные персонажи все вместе. И если я весь экран это здесь, мы будем чтобы увидеть следующую игру вместе. Загрузка, по-прежнему загружается. Давай. Позвольте мне сделать это. Давай. Эта игра настолько велика, что он разбился. Ожидание. Попробуйте еще раз. Давай. Отлично. Там мы идем. ОК. Зеленый флаг. Так что здесь мы идем. [МУЗЫКА] Выберите средний уровень здесь. Нажмите на синий парень там. Отлично. И вы можете использовать стрелку keys-- вверх, вниз, влево, вправо. Теперь давайте рассмотрим, как мы делаем this-- а затем пойти после того, как персонажа там. Ага. А теперь нажмите его с помощью мыши. О, да. Переехать. Где стрелка? Ну вот. Так нажмите здесь. Да. Отлично. Так что теперь, как мне сказали у вас есть Poke мяч, что если нажать ее, он будет делать это. Отлично. В практике на сегодняшний день, я нашел эту версию игры на самом деле не очень сложно. Так что если вы хотите идти снова здесь, спуститься к этому Poke мяч. А затем сверните направо. Попробуйте нажать на него. О, на самом деле, это магазин, по-видимому. ОК так близко, что. Никогда не делал этого раньше. Может подойти к этой вещи здесь. О, там вы идете. Подождите, есть один там. О, есть еще один. ОК. Вниз. Да, нажмите кнопку. Хорошо, это очень мило. Хорошо, очень хорошо сделано. Эта игра не очень трудно. ОК. Поздравления. Здесь мы имеем CS50 стресс мяч для вас. Но подумайте на мгновение, что некоторые из еды на дом есть. Легче, чем реальной игре, по-видимому. Но все, что мы собираемся здесь есть характер что, вероятно, имеет какой-то петли, связанные с ним. Это не кошка. Это вместо того, чтобы этот персонаж. И что петля просто постоянно говоря, если стрелка вверх нажата, если стрелка вниз нажата, если стрелка влево или вправо нажатой стрелка нажата, двигаться вверх или вниз или влево или вправо. Или если есть другой кусок головоломки есть что говорит, когда прикасаетесь другой спрайт, при касании одного из персонажей к шару Poke, если касание, затем сделать это. Так что все идеи, мы использовали до сих пор на самом деле могут просто быть применены в данном конкретном контекст, чтобы играть в эту игру, а также. Позвольте мне идти вперед и тянуть до одной другой здесь, на самом деле. Позвольте мне идти вперед и тянуть до, скажем, это. Это то, что мы ремиксы. Сделано одним из наших студенты в Кембридже, а потом я прошел и изменил в значительной степени каждый экземпляр Гарварда Йель на этот раз. кто хотел бы конкурировать с Ivies здесь в другом накоплении всех этих идей? Слезай, да. Как вас зовут? ДИНА: Dina. DAVID Маланом: Адина? ДИНА: Dina. DAVID Маланом: Dina, давай вниз. Хорошо, Дина. Так что эта игра становится все труднее и труднее, потому что в этой игре, есть переменные используются, а также которые постоянно отслеживают на каком уровне вы находитесь в игре. Так приятно встретиться с вами. Придёт сюда. И поэтому цель здесь состоит в сортировке из сделать свой путь через лабиринт что этот студент реализован. И как раз, чтобы установить сцену, каждый из этих картинок на экране является его собственным спрайт, его собственный характер. Так что это были по умолчанию кошки, но студент изменил их на различные логотипы Ivies здесь. И тогда вы увидите, что только с помощью условий и петли и функции и многое другое, вы получите это. [МУЗЫКА] [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Да, ок. Да, продолжайте идти. Первый уровень очень легко. Вы просто должны пойти туда. Но опять же, считают, что это просто петля для прослушивания стрелки keys-- вверх вниз влево вправо. А теперь чувствительный блок. Очень хорошо. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Очень хорошо. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Очень хорошо. Довольно просто, малиновый. Отлично. Levels-- эм-ой. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] И опять же, в них три из Гарварда гребни, вы просто логику говоря, если на краю, сильный удар. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Хорошо, что вы делаете, более интересным, чем почему. Очень хорошо. Очень хорошо. Ой-ой. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Я думаю, вы должны пожертвовать собой. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Быстро! [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Ницца. Ничего страшного. Вы получите его. Да, да! Очень хорошо. [Ликующей] [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Ницца! [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Понял. Давай! Во-вторых, чтобы последний уровень. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Отлично. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Да. Правильное использование переменных здесь. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Да. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Ницца. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Все нормально. Мы добрались, чтобы добраться до конца. Там. Ой! [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Может работать сегодня поздно, но это будет стоит. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Ты можешь это сделать! Да! [Ликующей] [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Это один из очень трудно. [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Мы дадим вам еще две жизни. Ты можешь сделать это? [МУЗЫКА - MC HAMMER, "U CAN NOT ПРИКАСАТЬСЯ  ЭТО"] Отлично. Как о большом круге аплодисментов, тем не менее. Вы добрались до второй до последнего уровня. Спасибо. [АПЛОДИСМЕНТЫ] Так что это только сказать, сколько вы может делать с этими видами вещей. И понимают также, что, когда кусочки головоломки не exist-- и в самом деле, это будет один полномочий с первой проблемой Наборы и beyond-- является на самом деле создать свой собственный. И это всего лишь фрагмент кода одного из примеров вы будете иметь возможность играть с онлайн, где если вы не встроили в пустом месте что-то вроде кашля кусок головоломки, вы можете сделать это самостоятельно. А так все это и многое другое ждет. И как раз, чтобы нарисовать окончательный картина на самом деле то, что вперед в магазине для класса для вас, основанный на некоторых из фотографий одноклассников прошлое, позвольте мне тусклый свет в последний раз и показать вам CS50. [МУЗЫКА] Отлично. Вот это для CS50. Торт теперь служил. [МУЗЫКА]