[ПРОИГРЫВАНИЕ ВИДЕО] [АВТО захлопывания дверей] [Двигатель автомобиля ЗАПУСК] [Играет музыка] -Moving Прямо вдоль в поисках хорошие времена и хорошие новости. С хорошими друзьями, вы не можете потерять. -Это Может стать привычкой. -возможность Стучит Давайте просто протянуть руку и схватить его. -Да! -Together Мы наб его. -МЫ Устройство поход, автобус, или желтый кабина он. -Dammit. -Мы Движется прямо вперед. -Footloose И фантазии бесплатно. -Получение Есть половина удовольствия. Приходите поделиться со мной. -Мы Движется прямо вперед. -Мы Собираемся, чтобы распределить нагрузку. -Мы Не нужна карта для это шоу на дороге. Эй Fozzy, я хочу, чтобы вы поворачиваете налево если вы придете к развилке на дороге. -Да сэр. Поверните налево на развилке. Поверните налево. -Я Не верю в это. -Cruising Право наряду мы нашли огни на шоссе. -А Ваш путь или дорогу. -Так Доверяю навигации. -Movie Звезды с показной автомобилей и жизнь с сверху вниз. -Мы Штурм большие холмы. -Да, Гроза прав. Должен ли он быть снег? -Нет, Я так не думаю. -Moving Прямо вперед. -Footloose И фантазии бесплатно. -Ты Готов к большим временем. -Это Готов для меня? -Moving Прямо вперед. Движемся дальше. Движемся дальше. Движемся дальше. -Я Думаю, вам лучше остановиться. -Да сэр. [КОНЕЦ ПРОСМОТРА] [Аплодисменты] Дэвид Дж Малан: Это CS50. И это конец недели 0, но начало прекрасной дружбы. Мы так рады, что здесь в Йельском университете в первый раз с нашим друг Scaz, и Джейсон, и Энди. Все 40 CS50 в TF-х и СА здесь в Йельском университете. И все из вас. И в самом деле, это, вероятно, время, целью которых [Аплодисменты] Так что, хотя большинство лекций действительно будет в Кембридже в этом году, реальность такова, что в соответствии с проектом, и очень сознательно в CS50, Я думаю, мы приближаемся к точке технологически и педагогически, где он может быть выше образовательный Опыт заниматься с некоторыми материальной онлайн-курса. Действительно, reality-- и если я считаю, это philosophically-- является то, что лекции не особенно эффективным средством для доставки довольно сложный информация. Конечно над час плюс длинные пролеты времени. И в самом деле каждые несколько minutes-- Я помню себя в college-- зайдёте на мгновение, вы пропустите некоторые сложные темы, и ты ушел довольно много в течение следующих 45 минут. А реальность такова, что ли Вы здесь, в Нью-Хейвене или Кембридже или за его пределами, простота, имеющих способность сделать паузу и перемотку вперед, назад, гиперссылка на связанной ресурсы, поиск текста стенограммы полный и т.п. возможность, что Я осмелюсь сказать, для наших студентов онлайн а за Нью-Хейвене, предлагает им возможность действительно объять Концептуальная материал, мы ввести в лекциях тем лучше. Но в конечном итоге в CS50, является Испытайте студентов характеризуется так, гораздо больше, по проблемным задает курс, в или еженедельные проекты программирование, Разделы конечно во главе с учением молодцы, ночные часы работы во главе с Курс помощники и обучение молодцы, и действительно такие события, как CS50 Puzzle День, Хак-а-марафон CS50, тем CS50 Ярмарка, еженедельные обеды, и многое другое. И так ли вы здесь, в Нью Хейвен, или тюнинг издалека, Сегодня в Кембридже, и мы будем видеть Вас снова в ближайшее время, реальность такова, что это один и тот же класс. И мы так рады здесь все вместе сегодня. И поэтому в конце семестра, здесь или издалека, хорошо надеюсь, вы носите с гордостью, радостью, и, возможно, с небольшим облегчением, рубашка, что свидетельствует Вам взяв CS50. Так где же мы остановились в среду? Мы взяли взгляд на вычислительная мышление. И это к тому, что мы перегоняли компьютерные науки к, по крайней мере, на данный момент. Но мы перегоняли его немного дальше в по крайней мере, три элемента. компоненты Входы, так это то, что проблема, которую мы пытаемся решить? Выходы, что является ответить мы надеемся получить? И представление есть из. И мы не будем здесь останавливаться на после двоичной, или даже ASCII, и т.п. так много, но а само собой разумеющимся что мы можем представить эту информацию, потому что гораздо более интересных частей из этих проблем не только Входы и выходы, но алгоритмы которые идут в решении этих проблем. И вы, возможно, помните из другой день, что мы взял довольно традиционный Концепция глядя на кого-то в довольно большой телефонной книге, или в более общем цифровом эти дни, просто очень большой набор данных. Действительно большой список контактов, с много имен в алфавитном порядке. И мы поняли, что в то время как I может подойти к этой проблеме просто при использовании линейного approach-- страница за страницей, или даже два на уровне А time-- мы поняли, что более интуитивным algorithm-- только вид деления и завоевание Проблема снова, и снова, и again-- вдвое его друг Время, дал нам этот зеленый результат. И это гораздо более плоский поскольку она предполагает что даже в этой проблеме становится все больше и больше, как в случае в эти дни с данными наборы и reality-- Facebook и Google результаты поиска и like-- делает наш алгоритм так же, как эффективно выполнять с тех больших укусов как это было даже с меньшими укусов. Теперь напрашивается вопрос, что мы можем на самом деле решить подобным с такой интуиции? Такое разделение и завоевание? Ну, мы могли бы сделать что-то как это сегодня здесь. Мы могли бы принять участие. Так, может быть, например, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- не будет все, что эффективным. Так что ждите, начальную школу. 2, 4, 6, 8, 10, 12, 14, 16, 18 и так далее. Но мы могли бы сделать немного лучше? Я уверен, что я не могу сделать это сам. Так что, если вы будете юмор нами для всего момент, мы принесли с нами алгоритм, что это только что получил три шага, но это если вы require-- не mind-- всех нас встать, если бы вы. Так, со всеми нами теперь стоит, шаг один из этого алгоритма заключается в следующем. Встаньте и назначить самостоятельно номер 1. Таким образом, на данный момент, буквально все в этой комнате надеюсь, думает себе, Однако неловко, номер 1. Теперь шаг два алгоритма является будет включать следующее. Шаг два, на пары с кем-то, стоя, добавить ваши номера вместе, и принять сумму в качестве вашего нового номера. Быстрая проверка здравомыслие. Какое число каждый думает сейчас? Так 2, кроме, возможно, одного, неловко, одиноко человек. Если у нас есть нечетное число людей в комнате. Так один человек может все еще быть номер 1, это нормально. Но третьему шагу здесь, один из вас должен сесть. Другой должен вернуться к шагу два, и, повторяю, если вы бы. Так что, если все еще стоял, вы должны быть среди тех, возвращаясь к шагу два. Продолжать. Несколько человек все еще стоял. Так что, если все еще стоял, пару с кем-то. Ладно, сокращается вниз. Несколько человек все еще стоял. Я помогу, если это будет необходимо. Помните ключевую еду на дом здесь, как гораздо быстрее, чем это мне считать. Итак, давайте посмотрим. Я могу помочь. Так что число являются Вы все еще думаете? АУДИТОРИЯ: Я на 44. Дэвид Дж Малан: 44, так Вы будете идти вперед и сесть. Какой номер вы думаете? АУДИТОРИЯ: 74. Дэвид Дж Малан: 74. Ладно, идти вперед и сесть. Кто еще по-прежнему стоит? 86. И кто-то еще до сих пор стоит? Какой номер? Я слышал, 67. И тогда в верхней? 32. Кто-нибудь еще все еще стоял и думать о ряде? О привет. Извините. Возвращайся сразу же. 42. Кто-нибудь еще? АУДИТОРИЯ: 47. Дэвид Дж Малан: 47. Разве кто-то все еще стоял кто не рассчитывали? Таким образом, окончательный количества людей в помещении который имеет 497 мест is-- все из которых являются filled-- 390. Так что это здорово. Мы скоро обсудим понятие за ошибки в компьютерной программе. Но мы вернемся к тому, что в скором времени. Но в теории, что бы то ни произошло только сейчас? Так что, хотя было три большие шаги в этом алгоритме, каждый из тех, была просто какая одной большой работы. И было это цикличность к нему в том, что, если вы все еще стояли, Вы держали переходе от третьего шага на два, шаг трех до двух, шаг трех до двух. Но то, что происходит хранится на каждой итерации? Каждый цикл этого цикла? Что происходило в другом месте в комнате? Не только то же самое, но то, что что происходит с вами половине? Сидя. И вот в это понимание лжи, так же, как, например телефонной книги, в том, что если половина из вас садясь каждый раз, Проблема начинает с, может быть, 400 человек, затем до 200 человек, чем 100 человек, 50 человек, и так далее. И поэтому мы сводить в теория только одного человека, думая о совокупной стоимости всех. Теперь реальность, некоторые социальная динамика, и некоторые арифметические ошибки может внести свой вклад в этой конечной ошибка. Но в теории, в то время как I еще считая от отеля, принимая несколько десятков шаги, и сотни шагов рассчитывать себя, рассчитывать комнату, полную 500 или около того человек должен был гораздо меньше шагов, потому что вы можете только разделить 500 и 1/2 так много раз. И так же, как с телефоном бронирование пример другой день, мы имели что-то логарифмическая, так сказать, согласно которому, если мы все были работает в унисон, и не обращая внимания на дополнение ошибки, мы бы добились именно что вид работы время? Теперь, чтобы быть справедливым, вид обманули, в Я использовала, что другой ресурс. В то время как это всего лишь один из меня, Я использовала сотни вами. Но что можно сказать, чтобы быть Пример параллельной обработки, или состояние искусства очень в моде где компьютеры в эти дни несколько процессоров, или более технически более нескольких ядер, и действительно может сделать несколько вещи сразу, так же, как вам все, что мы делаем здесь, в параллель. Но напомним, что то, что мы также сделал в среду был попытаться захватить этот интуицию и оформить его в код. Что-то вроде псевдо-кода. И в самом деле, и я надеюсь, что вы будете простите, это как 80 градусов в здесь. Так что я собираюсь принять это отправился в только немного. То, что я думал, что мы делаем, является переход теперь к в результате чего приложения мы вновь привлечь аудиторию, но написать программу на английском языке как синтаксис, с которой к решить эту проблему здесь. [ПРОИГРЫВАНИЕ ВИДЕО] Арахисовое масло желе время -Это. Время для желе с арахисовым маслом. Время для желе с арахисовым маслом. Путь я! Путь я! Путь я! Путь я! Теперь вы идете! Там вы идете! Там вы идете! Там вы идете! Арахисовое масло желе! Арахисовое масло желе! Арахисовое масло желе! Арахисовое масло желе! Арахис, арахисовое масло желе! Арахисовое масло желе! Арахисовое масло желе с бейсбольной битой. [КОНЕЦ ПРОСМОТРА] Дэвид Дж Малан: --that видео, но это немного привыкание, если не немного раздражает. Но для этого, я думал, что мы будем сделать, это попытаться написать программу вместе, для которых нам нужны три добровольцев. Должны быть удобными на камеру и Интернета. Сэм, давай до. Фиолетовая рубашка, прямо здесь, пришли на до. И от сюда, позвольте мне пойти немного дальше назад. Малиновый и синие рубашки, давай до. Идеальный. Давай же. Давай до, давай до. Как тебя зовут? Эрика. Дэвид, приятно встретиться с вами. Если вы хотели бы взять это место здесь. Это Сэм. Как тебя зовут? Антонио. Антонио, приятно встретиться с вами. Эрика и Сэма, если бы вы хотели бы иметь место здесь. То, что мы готовы прийти с, а эти ребята обнаруживают, это ингредиенты, с которыми, чтобы сделать арахисового масла и желе бутерброд. Теперь это может быть что-то, что вы берете очень разумеющимся. Но мы дали друг из трех наших добровольцев here-- двое добровольцев и Сэм Здесь, хлеб каждый, тарелка, нож, баночка желе или джема, и банку арахисового масла. И цель рукой сейчас будет для них три сделать арахисовое масло и желе бутерброд. Но то, что мы собираемся сделать, это ожидать audience-- так как все из вас наверняка знаете, как сделать это так хорошо в reality-- собираются предоставить нам шаг за шагом инструкции. Псевдо-код, если вы будете. Так что я буду здесь играть роль писца. И я получил немного список дел, и таким образом, каждый из вас, по одному, кричит потенциал учебные, я буду запишите его, повторять его по мере необходимости. И тогда вы, ребята, собираетесь сделать арахисового масла и желе бутерброд только делать то, что вы сказали. Так что думайте о себе, как компьютеры. Вы можете только то, что вы сказали. Нет, не допущения вопросы. Вам просто нужно, чтобы сделать это. Так, кто хотел бы в первую очередь ОПАСНОСТЬ Инструкция для принятия бутерброд PBJ? На балконе там. АУДИТОРИЯ: Откройте сумку хлеба. Дэвид Дж Малан: Откройте мешок хлеба, если вы будете. Итак, давайте посмотрим. Давайте итерации, и получить немного точнее. Хороший способ начать, хотя. Шаг два, кто-то еще. Теперь никто не хочет добровольно. Шаг два, перед. АУДИТОРИЯ: Откройте внутренний мешок хлеба, а также. Дэвид Дж Малан: Откройте Внутренний мешок хлеба, а также. Отлично, мы учимся. Чуть более точным. Давайте эту работу. Да, в зеленой рубашке. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Ломтики хлеба. Аккуратно снимите два ломтика хлеба. Это хорошо. Шаг четыре, кто-то еще? Здесь, да? АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Место хлеб на тарелке. Шаг пять? Шаг пять, да? АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: На ​​верхней of-- О, стороны. Поместите руку поверх арахисового масла. Это то, что я возглавляю? АУДИТОРИЯ: Да, и открутить. Дэвид Дж Малан: и-- сказать это снова. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: И поставить Крышка рядом с арахисовым маслом. Слегка разместить руку на топ арахисового масла, и открутить, и положил крышку рядом с арахисовым маслом. ОК, шаг шесть. Шаг шесть, кто-то еще. Да? АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Скажи это еще раз. АУДИТОРИЯ: Повторите шаг пять раз. Дэвид Дж Малан: И повторите шаг пять раз, который собирается создать немного проблемы Теперь, если мы делаем этот шаг за шагом. Так что теперь мы вернемся к шагу пять. Слегка разместить руку на верху арахисового масла и отвинтить и положил крышку рядом с арахисовым маслом. Затем возьмитесь арахисовое масло и повторите шаг пять раз. Таким образом, мы переопределить бесконечный цикл, если вы будете. Шаг семь, кто-то еще. Да, в спину. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: --on поверх других. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: На С другой стороны, с другой вершине. Вы хотите, чтобы просто прийти здесь? Как закончить обучение? Что остальные инструкции? АУДИТОРИЯ: Игнорирование этой части. Дэвид Дж Малан: Игнорирование этой части. Давай начнем сначала. Шаг семь. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Захватите против hand-- это хорошо. Это на самом деле хорошо. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: И пластик jar-- АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: И twist-- АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: в течение двух секунд. Просто откройте арахисовое масло банку. Я надеюсь, что вы простите. Итак, давайте предположим, что мы получили там. Откройте банку арахисового масла. [Аплодисменты] Дэвид Дж Малан: Шаг восемь, давай. Шаг восемь, да, в спину. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Хорошо. Шаг девять, да? АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: --out из арахисовое масло банку. И-- и что? АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: и положить нож назад в арахисовое масло. Шаг десять. Шаг десять. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Положи нож , а потом снять пломбу. Хороший. Выкл арахисовое масло. Ладно, шаг 11. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: ОК, серый компьютер следовать синий или красный компьютер. Хорошо. [Аплодисменты] Дэвид Дж Малан: Принесите нам домой. Еще пара шагов. Что дальше? Шаги 12. Шаг 12. Да? АУДИТОРИЯ: Положите одну из ломтиков хлеб аккуратно на одном из ваших рук. Дэвид Дж Малан: Один из ваших рук. А потом, шаг 13. Да? АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: --on ломтик хлеба. Хорошо. Довольно хорошо. Шаг 14, да. АУДИТОРИЯ: Отменить шаг 13. Дэвид Дж Малан: Отменить шаг 13. Давайте перейдем к желе. Это 100- шаг программы, но мы были в шаге 15. Да. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: с 7 по 13, используя желе, потому что те, пошел так хорошо. Повторите шаги с 7 по 13, с использованием желе. Так понять нижняя половина желе банку с одной стороны, на вершине. С другой стороны из другие высокопоставленные, не обращая внимания, что часть, захватите с противоположных руках, крышка и пластмассовую банку в нижней части, и крутить в течение двух секунд. Затем откройте желе банку. И, наконец, давайте попробуем дать нам что-нибудь съедобное. Шаг 16. Так почему бы нам не оставить его там. Благодарю вас так много, чтобы наши три добровольца. [Аплодисменты] У нас есть немного CS50 стресс мяч для вас. Это собирается быть сэндвич но-- так что был пункт, имеющий за немного удовольствия с алгоритмом? Но реальность такова, что даже тогда, когда вы программируете компьютер, Вы должны быть супер точным. Как комплекс или запугать как ваш собственный компьютер вполне может быть для вас, в крайней мере, когда что-то идет не так, реальность это довольно тупой устройство, которое было изобретено нас, людей, и может сделать только часть того, что мы do-- иногда, конечно, faster-- но не знает, как делать предположения. Он не знает, как быть на ту же длину волны, как вы. Он будет делать только точно что вы говорите это. И вы будете поражены, может быть, как мы начнем писать реальный код с Первая проблема устанавливает и за ее пределами, как просто это сделать предположение, как человек, и не ожидаем Мне нужно обрабатывать В этом случае, или угол так, так сказать, которые могли бы очень хорошо возникают, если, например Сэм только Сжимаема банку желе, в то время как все остальное было несколько стеклянных банок, как хорошо. Поэтому, прежде чем мы обратимся наш внимание на некоторые фактического кода, позволяют мне представить руководители Конечно здесь в Йельском университете. Наши друзья Scaz, Энди, и Джейсон подойти и поздороваться. [Аплодисменты] SCAZ: Мы временно потеряли Джейсона. Привет еще раз, все. Меня зовут Scaz. Я преподаю в Йельском университете с 2001 года. И когда я не учу, Мои исследования в области робототехники и искусственный интеллект. И заявление, что я сегодня является то, что, начиная с пару недель, мы собираемся быть чего некоторые Дополнительный материал для CS50 говорить о разведывательной программного обеспечения. Мы будем говорить о том, как такие места, как Netflix и Hulu можно рекомендовать фильмы, которые Вы можете смотреть. Где мы поговорим о том, как водитель-менее автомобили на самом деле работает. И мы будем в состоянии обосновать эти вещи в концепции что вы изучаете в этом классе на сегодняшний день. Потому что все эти вещи построена на том же фундаменте. И это то, что это серия исследовать. Так что я действительно с нетерпением ждем от вас большего все, и вы собираетесь, чтобы добраться до видеть больше от нас всех очень скоро. Позвольте мне представить то Джейсона. Джейсон: Привет всем. Меня зовут Джейсон. Я, к сожалению, пошел Гарвардский как старшекурсник. Это происходит, чтобы сократить из фактического потока. И теперь я здесь в качестве лектора в информатика отдел. И я помогаю запустить курс с Scaz, Давида и Энди. Энди: Эй, ребята. Энди Меня зовут. Я на самом деле только Йельский студент на стадии прямо сейчас. [Аплодисменты] Я нахожусь в Беркли колледж, родом из Солон, шт. И я был одним из тех детей, где, когда я пришел в Йельский университет, Я действительно думал, что я бы никогда должны смотреть на ряде когда-либо снова. И тогда я понял, что вам нужно и наука, и QR-кредиты, чтобы закончить. И так мой первый весна, я взял класс, КО, КС интро класс здесь в Йельском университете. Я был, как, это как на самом деле довольно прохладно. И в то время я на самом деле в конечном итоге заявив как по глобальным вопросам, главным навыки Я узнал в CS и программирования так применимо к любому поле Вы хотите делать. И персонал здесь в Йельском университете, мы были так тяжело на работе подготовить для вас, ребята. И мы с нетерпением ждем Все в разделе и офисных часов. Так что да. [Аплодисменты] Дэвид Дж Малан: Спасибо. Так что до начала класса, мы имели возможность ходить вокруг университетского городка с мобильного телефона и принимать некоторые selfies в форме видео реально мой первый тур кампуса Йельского здесь. И так, мы думали, поделиться грубая срез именно это, как и Энди Scaz и Джейсон взял меня вокруг кампуса. [ПРОИГРЫВАНИЕ ВИДЕО] [Сирены] Дэвид. Приветственный в Йельском университете. -Рад тебя видеть. -Рад вас видеть. -Может Мы идем на экскурсию? -Давайте Вернемся на экскурсию. В дорожно- тур. -Это Знак был там на некоторое время. -Whah, CS50. -Торопиться! Иди, иди, иди, иди. Вы должны [неразборчиво] Харкнесс башня. -А Мы увидели, что пару раз. [Аплодисменты] -Look За велосипедом! Ах! Привет Фрэнк. -Как дела, парни? -Как дела? -Рад тебя видеть. Приветственный на видео. Не действовать слишком взволнован. Я люблю Silliman. Ах! -Это Было около трех часов, так как Джейсон был мороженое и Nutella. Таким образом, мы должны остановить назад на Силлиман для немного. -Это Даже не [неразборчиво] Тем не менее, сам факт что они имеют его здесь так удивительно. Чувак, есть Nutella при каждом приеме пищи. -Есть В прошлом году тоже. -Да. Расскажи много о Йельском университете до сих пор. Но я сейчас вот TD там. И это считается за пределами кампуса. -Вот Мы имеем готической архитектуры. Всемирно известный. У нас есть более готической архитектуры. И строительство, более готической архитектуры. Привет. Это где мы с офисными часов Вторникам четвергам через в Хогвартсе, а [неразборчиво]. -Все в порядке. Вот это для тура. Мы находимся в Йельском университете Юридическая школа, где сегодня лекция о пройдет. Давайте голову в. [КОНЕЦ ПРОСМОТРА] Дэвид Дж Малан: И что приносит нам здесь и сейчас. Так до сих пор, мы были упором на псевдокоде, что в английском, как синтаксис. Он не имеет заданное спецификации. Это просто вы используете некоторые интуитивно понятный язык, если вас хочу объяснить, что вы хотите сделать. Но давайте начнем прямо сейчас с переходом коду, так как большинство людей скажет. Но более точно, то Известно, в виде исходного кода. Это язык, который человеки пишут, что компьютеры ultimately-- возможно, после некоторого числа steps-- в конечном счете понимает, таким образом, чтобы знать, как сделать что-то. Что вы увидели проблеск это, возможно, в среду. Это пример того, что невероятно, восторг при запуске просто говорит "привет мир". И это написано на языке, называемом С, что синтаксически очень похож для многих других языков что вы можете не знать, но, возможно, слышали о, как Java, и C ++, Python, и, и Руби, и т.п., и, действительно, мы будем проводят большую часть семестра с помощью C, а затем к концу семестр, опираясь на него, и внедрения любой ряд других языков. Среди них PHP, JavaScript, и, язык базы данных SQL называется. Но с C, что мы будем иметь это снизу вверх понимание точно, как компьютеры работы, что вы можете делать с ними, и как вы можете решить проблемы тем более эффективно это слоев, что мы обсуждали в среду, и стоя на плечи других. Но об этом в будущем. Сегодня мы рассмотрим более простой среды, но принципиально идентичны среда, как известно, царапины наши друзья в MIT Media Lab. Это графическое Язык программирования, царапинам, в котором вы можете перетащить и падение вещи, которые выглядеть головоломки, что только блокировки, если он делает логическим или программный смысл делать так. Но это собирается позволить нам есть разговор о все из того же программирования Основы, что некоторые из вас может уже знаем, что многие из вас не может знаете что-нибудь о без увязнуть, честно говоря, в интеллектуально неинтересно синтаксис запятой, и скобки, и цитирует, и тому подобное. Все это, в начале далее, отвлечение на то, что интересны и действительно полезные идеи. Итак, давайте быстро взгляд на окружающую среду здесь, так что вы знаете, что ждет. И в самом деле, в том числе игр, мы может играть несколько программ написано собственными бывших студентов CS50 в. Один из них, я, я буду этот написано в аспирантуре для меня. Если бы я мог взять один доброволец кто готов играть игра в первый раз. Конечно. Давай до. Как тебя зовут? АУДИТОРИЯ: Анжела. Дэвид Дж Малан: Анжела, давай до. Так царапинам была в течение нескольких лет. И когда я был в аспирантуре, Я был крест зарегистрированные в Массачусетском технологическом институте, принимая профессор Митчел Резник-х Конечно на образовательных технологий. И мы были одними из первых Студенты в мире на самом деле бета Тест царапинам. И мой проект было то, что Ангела Теперь любезно вызвался чтобы играть называется Oscartime. Так что я собираюсь идти вперед и дважды щелкните значок здесь. Это собирается открыть программирование среда, что мы скоро погрузиться в. Я собираюсь весь экран это для Angela, здесь. Я собираюсь ударить зеленый флаг в минуту. А потом целый много мусора будет падать с неба. И вы собираетесь использовать мышь здесь на самом деле перетащить мусор в мусорные баки Оскара. Так что, если вы хотите, чтобы идти вперед и нажмите зеленый флаг, игра начнется. [Играет музыка] О, я люблю мусор. Все грязные или грязно или пыльно. Все оборванные или гнилые или ржавые. Да, я люблю мусор. Если вы действительно хотите, чтобы увидеть то дрянной, посмотрите на это. У меня здесь есть кроссовки это оборванный и изношенные. Это все дырявые держит и шнурки рвутся. Дар от моей матери день, когда я родился. Я люблю его, потому что it's-- Дэвид Дж Малан: --green эти дни просто бросать все в мусорное ведро. И так, что один из Собственный did-- персонал CS50 в Джордан, вы могли бы встретиться раз сегодня имеет на самом деле обновляются это для сегодняшних времен. И поэтому позвольте мне открыть ремикс, а для Angela. И мы будем играть это вместо для несколько моментов, где теперь вы придется выбирать между ли бросить что-то в мусорное ведро, или утилизировать его или компост его. Таким образом, есть немного давление на вас, чтобы получить это прямо перед вашей 392 до 497 одноклассники здесь, в зале, если бы вы. [ПРОИГРЫВАНИЕ ВИДЕО] [Играет музыка] Ох я люблю мусор. Все грязные или грязно или пыльно. Все оборванные или гнилые или ржавые. Да, я люблю мусор. Если вы действительно хотите, чтобы увидеть то дрянной, посмотрите на это. У меня здесь есть кроссовки это оборванный и изношенные. Это все дырявые и шнурки рвутся. Дар от моей матери день, когда я родился. Я люблю его, потому что это мусор. О, я люблю мусор. Все грязные, или грязно, пыльно или. Все оборванные или гнилые или ржавые. Да, я люблю мусор. Вот еще гниль. У меня здесь некоторые newspaper-- [КОНЕЦ ПРОСМОТРА] Дэвид Дж Малан: --are на самом деле компостирования. Но спасибо нашей добровольцем, Angela. У нас есть стресс мяч для вас здесь. Так что спасибо вам. Так что это один был написан мной. Но в настоящее время одним фактическим бывшего студента которые реализованы в этом, который является игра. Все на этом языке называется Царапины, что мы скоро отогните слоев. Но если бы мы, как like-- еще около волонтером? Правильно. Давай до. Как тебя зовут? Взгляд? Лэнс. Лэнс, давай до. Приятно познакомиться. Приходите на этом пути. Таким образом, это можно было бы иметь Тема знакомы с некоторыми из вас. Но вы увидите, что слишком может быть интерактивность, в котором вы действительно может быть Роль характера движущегося вокруг. Приятно познакомиться. Дэвид. Я даю вам, Пикачу. Инструкция будет о прийти на экране. Но в общем, вы собираетесь хотите, чтобы поймать вкусную вещи, и избежать бомб и другие вещи. С курсоров полностью. Так нажать пробел. -Pikachu. Дэвид Дж Малан: Catch материал слева, не поймать вещи справа. [Играет музыка] Таким образом, одна последняя здесь. Если бы мы могли иметь один более началах здесь. Мы думали, что мы что-то воссоздать из-- в желтом shirt-- со среды. Как вас зовут? Мария, давай до Марии. И вспоминаю в среду мы ввели понятие двоичной, и бинарные луковицы. Это на самом деле теперь Реализация этой же интерфейс что у нас на Ipad со светом луковицы, но здесь цифровой оказанные. И вместо того, сделать стресс ball-- приятно встретиться с вами, Дэвид. Мы принесли несколько свет Луковицы из Кембриджа. Если вы можете, нажав на тех, лампочки, чтобы превратить их включения и выключения, придумать двоичной представление, скажем, 256. И вы увидите, в средний, текущий подсчет. Так что один идет. Таким образом, крайний левый бит на. МЭРИ: Да, [неразборчиво] Дэвид Дж Малан: Ну, так что мы должны просто-- о. Так что это колонна 128. Так что мы до 128. Мы должны добраться до 256. И вы можете возиться на и выключается, нет ничего особенного. Или вы можете нажать эту 128 несколько раз, если вы хотите. Ладно, хорошо. 24. Да, все ближе. Ближе! О, в чем проблема то? Так в чем же проблема? Так что нам нужно решить эту проблему? Таким образом, мы должны еще немного. И это совершенно разумно в действительности, не так ли? Если вы хотите, чтобы считать от числа 1 2 3 4 5, 6, 7, 8, 9 на самом деле пролонгировать 10, вы понадобится дополнительный бит. Так давайте на самом деле назад здесь, и придумать with--, что, очевидно, значит быть создана. Вы не можете сделать 256 только с лампочкой. Так как о просто числа 50? Номер 50. Отлично. Большой аплодисменты Мэри и ее также. Спасибо. Так что это, как умышленное topic-- что будет на самом деле was-- повториться. Наибольшее значение, что вы можете представляют с восемью битами, или одним байтом, действительно 256. Но если вы не начать считая от 0, как мы кажется, продолжать делать, имея все эти биты выходных. Но теперь давайте погрузимся в основной Реализация этой среде, и дразнить друг от друга некоторые из этих идей. Таким образом, в настоящее время мы собираемся, чтобы увидеть несколько различных основ программирования. Первый из которых мы будем называть о. Сортировать глаголов, если вы будете. Действия. То, что должно быть сделано. И в момент, когда вы увидите блоки, которые выглядят, как это. Скажите "привет мир", например. Или ждать одну секунду. Или играть звуковой мяу. И действительно, в среду которые мы собираемся делать это называется царапина. И если я подтянуть нуля, без Предварительная загрузка любой фактический код, давайте взглянем на это пользовательский интерфейс, так сказать. Управление с которой мы взаимодействуем. В левом верхнем углу здесь из экраном, под меню, у нас есть этап, так сказать. Так царапинам, что мы будем называть Sprite. Это символ. Он может управляться написание программ против него. И он будет в состоянии двигаться вверх и вниз, и левый и правый в этой среде, не только перемещение мыши, но программно. Я могу сказать ему идти прямо, ходить влево, вверх, вниз или тому подобное. И я могу представить другие спрайты или символы, а также. Действительно, на дне которой здесь Вы увидите список спрайтов. На данный момент, я просто Один из них, но я могу создать более, и они появляются точно там. Так что, если вы назад на мгновение, как Oscartime-- например, Оскар, слева, мусор может, был спрайт. И дело в середине, мусорную корзину, был еще один спрайт. И мусорное ведро компоста был другой спрайт. И каждый кусок мусора или вторсырья что падал с неба Также спрайтов, каждый из которых был запрограммирован индивидуально. Как вы программируете? Ну, здесь на правой сторона является площадь скрипты. И это, где мы можем перетащить кусочки головоломки. Через неделю, он будет где мы что то же самое написать код с большим количеством клавиатуры, но для сегодня он будет перетащив головоломки, то палитры, для которых все это может можно найти здесь прямо в середине. Действительно, в середине здесь целая куча категорий головоломки штук или блоки. Один это связано с движением, посмотрите, звук, ручка вверх и вниз, Данные события управления. Не совсем уверен, но то, что все эти имею в виду, но вы увидите, что они имеют было красиво категории. И писать программу в Царапины, давайте делать именно это. Я собираюсь начать под События и перетащите этот здесь. Когда зеленый флаг кнопки. Теперь, почему, что один? Ну помните, что наши добровольцы подошел, первое, что я или они были нажмите что зеленый флаг в правом верхнем углу. И это просто означает, запустите программу. Поэтому, когда происходит это событие, Что я хочу сделать? Я собираюсь пойти под Выглядит, и я собираюсь сделать "привет". И я собираюсь изменить это и что-то вроде "привет Йельском университете." А теперь я иду, чтобы увеличить из, нажмите зеленый флаг, и вуаля, я написал программу. Это не все, что захватывающий Пока еще нет, но это именно там, где каждый из тех, автор начал, как с Пикачу, а бинарные луковицы, и Oscartime, и так много больше примеров. Вы начинаете супер просто, и Затем вы начинаете слой, и добавить в особенности и функциональность. Так что эти слои будет состоять из? Ну, дальше заявлений, мы также есть вещи, которые немного больше причудливо называются Булевскими после некоего Bool. И это логическое выражение является просто Выражение это либо истинным, либо ложным, да или нет, 1 или 0. Любые полярные противоположности, как, что. Это либо истинным, либо нет. Но мы также увидим те, которые могли бы выглядеть следующим образом. Так, например, это мышь вниз? Они вроде вопросов, если вы будете. Мышь либо вниз, правда или нет, ложь. 1 или 0, если хотите, как правило, отображение. Правда 1, ложь это 0. Ну что же меньше, чем это? Или так, это меньше, чем это? Это вопрос сортов. А если поставить два номера в там, либо х будет меньше, чем у или равен Y, или больше, чем у, но этот блок мы увидим, это просто собирается ответить на вопрос, это меньше, чем? Мы также могли бы увидеть что-то вроде этого. Прикосновение указатели мыши. Таким образом, в пустом, вы можете попросить вопрос, является Sprite касаясь указатель мыши? Другими словами, это курсор, парящей на колпачок или эквивалент? Мы увидим, Anding вещи вместе. Вы можете задать два вопроса, и убедитесь, что оба дать вам да или истинные ответы до принятия решения, чтобы сделать что-то. Но тогда, как вы принимать решения? Ну, у нас есть эти условия. И мы видели это в наших Пример телефонной книге. Цель влево или право на Майка Смита. И в состоянии, то сделать что-то потенциально, если это логическое выражение истинно. И в самом деле, обратите внимание на формы с предприятием. Там же этот заполнитель сейчас на накладных, где мы можем fit-- если я назад один slide-- этой формы. Это не совсем то же самое размер. И в самом деле, вы увидите, что Царапины изменяет вещи динамически чтобы соответствовать кусочки головоломки, но Форма это то, что важно. Эта вещь выглядит что, и действительно это примерно такой же формы которые должны соответствовать там. И если мы хотим что-то сделать этот путь или путь, если иначе, у нас есть эта загадка часть в пустом, как хорошо. Теперь предположим, что вы хотели делать, если, иначе, если, или другое. Другими словами, трехходовой развилка. Ну что вы можете сделать, просто взглянув на это? Я могу взять этот паззл, и это не вписывается, но опять же, идет к царапинам чтобы изменить размер хорошо для нас. Я мог бы начать слой эти вещи вместе. Так что теперь у меня есть три пути вилка, если это правда, сделать это. Иначе, если это другое дело, правда, идти по этому пути, иначе перейти этот другой путь. И в Маппет фильм, то развилка, так сказать, между Йельского университета и Стэнфорде, был точно, что, всего два условия. Либо идти по этому пути, иначе идти по этому пути. Ну, петли также существуют в программировании. И мы использовали эти уже в класс и в псевдокода кода, и, конечно, в тех, Скретч-программы навсегда. Царапины есть этот паззл, что просто позволить вам сделать что-то навсегда. А иногда хочется сделать что-то навсегда. Это не обязательно ошибка, это потому что вы хотите часы, чтобы продолжать идти, или игра, чтобы играть. Или вы можете указать конечное число шаги, как и в этом блоке повторного здесь, который будет повторить то 10 раз. Мы можем установить переменные, мы скоро увидим. И с переменными, подобные по духу алгебре, как х, у, или г или. Это что-то символическое, которое может хранить некоторое значение, некоторые кусок информации, что вы, возможно, захотите запомнить на будущее. Лучший пример этого может быть игра, где у вас есть счет, как в Пикачу. Сколько штук торт и еще много чего вы поймать? Ну, это может быть переменная называется счет, который начинается с 0. И тогда мы каждый раз поймали кусок пирога или конфеты, или т.п., он получает приращение. Это будет добавлен к одному за один раз. И так переменная хранит кусок информации, как, что. Тогда есть массивы, и мы приедем назад к ним в течение недели или двух раз, но массив вроде как инвентаризации или ранец, внутри из которых вы можете поставить виртуальные вещи. Это позволяет хранить больше чем одной части информации. И может быть полезным если в игре, вы вроде ходить выбирая вещи. И, может быть, вы хотите, чтобы все эти куски пирога вокруг, а не только поесть их один за другим. И тогда есть любитель конструкция мы будем прийти к вызываемых функций и процедур. И хотя мы собираемся здесь быстрее, мы будем видеть, что эти очень естественное решение проблем что мы собираемся столкнуться. Как начать наши программы становится все больше мы будем начать замечать закономерности в код, который мы пишем, кусочки головоломки Мы перетаскивания. И как только вы заметили, что делаете то снова и снова, или что еще хуже Копирование и вставка программирования код, который вы написали, это, вероятно, возможность вынести все, что вы держите копирование и вставки, и положить его в то, что называется «функция». Но больше на тех, кто в большей более подробно в ближайшее время. А потом даже причудливые черты. Для тех из вас, более комфортно, или принимая АСУ ТП или эквивалент, Царапины на самом деле поддерживает вещи как нити и событий и многое другое. Так понимаю, что он имеет довольно высокие потолки, хотя это тоже очень широко доступным для людей которые никогда не программировали. Так на самом деле, давайте взглянем на простой программы или два. Мы уже смотрели, как мы Можно сказать, привет с нуля. Позвольте мне идти вперед и открыть немного больше интересная программа что я написал заранее. И этот называется домашним животным Кот. Все эти программы будут доступны на веб-сайте CS50 в. В самом деле, уже есть. Таким образом, вы можете скачать им, и играть с ними, и с задачей Набор 0, Также на сайте Курса, вы рекомендуется ходить через них. И более того, у нас есть Количество проходных видео онлайн, в котором я и Команда CS50 это действительно ходить через каждый из этих примеров в гораздо медленный темп, очень быстро FORWARDABLE, или перемотки темп, так что вы можете ходить через них на досуге, а также. Так вот к царапинам слева. Вот программа, справа что я уже предварительно сделаны. Итак, позвольте мне увеличить на это. И может кто-то на английском языке, зная, то, что вы знаете, просто теперь, как Скретч, как работает, вроде, скажем, в английском фразу или предложение, что эта программа, по-видимому сделать? Да, в оранжевой рубашке. АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Да, если ваш курсор находится на пустом месте кошка, играть мяуканье звук. Но обратите внимание, как мы выражаем, что. Там по-видимому, это цикл есть, навсегда. И тогда есть состоянии, если выражение. И вместе, что имею в виду тех, кто? Это означает, эту программу просто всегда работает, и это просто всегда ждут и смотреть и слушать для меня пошевелить курсор на кошку. Потому что каждый раз, когда я делаю, что, как Вы предлагаете, это будет сделать это. Позвольте мне начать программу. Ничто, кажется, не происходит, но обратите внимание, как это выделенный в настоящее время в желтой линии. Это просто означает, что это работает. И потому, что это навсегда цикл, он все еще работает. Итак, позвольте мне пошевелить курсор нуля. [Мяу] [Мяу] И если я перееду его, [Мяу] теперь останавливается, но программа-х по-прежнему работает. [Мяу] И так, очаровательны. [Мяу] Так давайте откроем чуть более расширенный Пример называется Не питомца Cat. А теперь давайте посмотрим, что здесь происходит. [Мяу] мяуканье. Так что это немного на автопилот, если вы будете. --pet кошку. Интересно, почему. [Рев] [Мяу] Так как же это работает? Ну, вы можете по любой причине через него интуитивно, возможно. Но давайте посмотрим на реальный код. Итак, еще раз, когда зеленый флаг нажата, сделать это навсегда. Что вы хотите сделать веки? Ну, если трогательно мыши указатель, то играть звук, который по-видимому, называется Лев 5, что находится внутри этого проекта, иначе играть звуковой мяу, и затем подождите две секунды, так что что это не мяукать постоянно. На самом деле, вы можете очень быстро начать раздражать себя и своих соседей. Давайте снимем этот блок. И обратите внимание, что приятно об нуля. Вещи просто вид сопротивления и падение и блокировки. Итак, еще раз, она вырастает до заполнить то, что вы хотите. Но если я удалю это, а затем хит игра, [КОМПЬЮТЕР BLIP ЗВУК] --Оно это своего рода спотыкаясь Сам, потому что это в буквальном смысле делать то, что я говорю. Это говорит навсегда играть этот звук, но Я не даю ему шанс, чтобы закончить. И так, что бы ошибка. И вот почему мы должны были эта вещь в здесь и сейчас. Итак, давайте на самом деле начать с scratch-- рода каламбур немного intended-- в котором мы сейчас есть кошка ход. Так что я собираюсь сделать это на лету. Я собираюсь увеличить здесь, просто чтобы меня начали на события. И зеленый флаг кнопки. И есть другие способы чтобы начать скриптов. Мы собираемся, чтобы держать его просто. А теперь я собираюсь пойти вперед и идти под контроля. И опять же, если вы забыли, где вещи, просто нажмите вокруг, и в конечном итоге вы найдете их снова. Поэтому я хочу, чтобы делать то, что навсегда? Я хочу использовать блок движения Я знаю, что существует, двигаться 10 шагов. Итак, давайте посмотрим, что происходит, здесь, если я играю в эту игру. К счастью это не слишком далеко. Я до сих пор вроде схватить его за хвост и вытащить его обратно. Но программа все еще работает, так он вроде борьбе с меня. Но это было бы своего рода хорошо, если я условно исправить это в коде. Потому что это не-- на самом деле это действительно не забавная игра для тех, кто в любом возрасте. Так давайте попробуем исправить это имея какой-то условиях. Так что я собираюсь пойти под Управления, а затем, если. Мне нравится эта идея. Таким образом, после перемещения 10 шагов, if-- позвольте мне чувствовать, где я нахожусь. Я собираюсь пойти под зондирования, а затем он выглядит, я могу пойти здесь. грести к форме матчей. Размер не делает, но это будет расти, чтобы заполнить. А теперь это немного меню. А теперь мышь pointer-- я не хочу мышь, я хочу края. Так царапинам достаточно умен, чтобы знать когда спрайт касаясь края. Что я хочу, чтобы он на самом деле? Позвольте мне идти вперед и изменить движение. Знаешь что? Я собираюсь иметь его обернуться. Таким образом, на 15 градусов не на самом деле происходит, чтобы помочь мне. Я хочу, чтобы он обернулся и идти в другую сторону. Итак, давайте посмотрим, что происходит, здесь, если я ударил Играть сейчас. ОК, вроде глупо выглядит, но он делает именно то, что я сказал. И он вращается весь спрайт. Теперь оказывается, что я могу это исправить. И я не знаю, как чтобы исправить это в первую очередь. Я вроде был futz вокруг и см, что лучший способ сделать это. Но если я иду, целью которых давайте посмотрим, движение. О, я нашел это. На самом деле, указан вращения стиль. Слева, справа или не поворота или все вокруг. И получается, что то, что я хочу. И я собираюсь поставить это не мое цикл, потому что мне не нужно, чтобы установить вращение стиль несколько раз. Я собираюсь поставить его на самый верх эта программа, так что его установки один раз, а затем вспоминает. А теперь я собираюсь попробовать это снова. Позвольте мне остановить программу. И теперь, зафиксировано, что ошибка. Так что я многократно улучшения на этом. Программа получаю немного сложнее и больше, но я везу ребенка шаги, так сказать, и маленькие кусочки из проблемы чтобы получить его лучше и лучше. Но это тоже своего рода хромой. Знаешь что? Хотел бы спросить кого-то с действительно хорошим, Страшно голос нравится придумать? Кто-то с голосом. Э-э, да. Давай до. В зеленой рубашке. Вот и получается, что есть некоторые другие забавы вещи, эстетика и звучит одинаково. Вот мяу. Я нажимаю на вкладке Звуки. [Мяу] Там же мяу. [МЯУ МЯУ] [Мяу] --actually запись что-то наше собственное здесь. Так что давайте делать именно это. Вместо того чтобы использовать этот кот звук, давайте идти вперед здесь, и то, что ваше имя? Ник, приятно встретиться с вами. Это Дэвид. Таким образом, в момент, я иду нажать кнопку Record. И если вы можете просто кричать в ноутбук, "Ой", как будто вас просто шел в стену, что будет высоко ценится. 1, 2. НИК: Ой! Дэвид Дж Малан: Высокий. И теперь это можно сделать немного редактирования здесь. Идя, чтобы избавиться от тихих частей. И я думаю, что это хорошо. Большое спасибо. НИК: Удовольствие. Дэвид Дж Малан: Я просто переименовал его "ай", но теперь я собираюсь вернуться к моим скриптов. И заметьте там действительно звук здесь. И я собираюсь идти вперед и играть звуковой Ouch, и я собираюсь сделать это, если это трогательно только края. А потом я собираюсь есть это развернуться. Итак, давайте посмотрим, что происходит здесь. Давайте полный экран. [ПРОИГРЫВАНИЕ ВИДЕО] -Ouch! Ой! Ой! Ой! Ой! Ой! Ой! Ой! [КОНЕЦ ПРОСМОТРА] Дэвид Дж Малан: Так вы поймете, что мы уже немного повезло. Я собираюсь иметь его шаг как 100 шагов в то время. Эффект, который в настоящее время идет чтобы be-- [сбой компьютера ЗВУК] Так в пределах разумного. Так что возможность уточнить, что в далее, если мы действительно хотим, чтобы. Так что теперь давайте познакомимся еще одно понятие. Для того, чтобы мне идти в одну под названием Подсчет овец и использовать что-то называется переменной. Это очаровательны мало овец, и Я изменил свой костюм, так сказать. Так что, хотя по умолчанию является кошка, вы можете загружать, вы можете рисовать, Вы можете сделать любое количество персонажи на вашем спрайта. Вот программа, которая это собирается делать то, что в английском языке? Снова, основываясь лишь на то, что теперь вы знаете,. Что это программа? Да, это будет рассчитывать. Один номер на время. У нас есть, по-видимому есть этот комплект счетчика. Я не знаю, что это такое, но, возможно, это переменная. Это просто контейнер, х или у. Но слово счетчик более описательный, чем х или у математика. Таким образом, мы можем использовать английские слова для вещей. Навсегда, просто означает, что продолжать делать это. Скажите счетчика. А где же это взялось? Ну, получается, что счетчик переменная. Так что это просто одна загадка кусок я создал заранее. И хотя это происходит не быть такой же формы здесь, как правило, вы бы сказать, что-то вроде привет здесь. Вы также можете перетащить переменную так что это то, что получить сказал. Тогда я жду секунду, я изменить счетчик на единицу, увеличивая его, добавив один. Так что чистый эффект Этот восхитительный подсчет овец. Хотя он сам считает. Теперь это очень быстро собирается скучно потому что он собирается сделать это действительно навсегда, но это именно то, что Дизайн программы предписывает. Давайте теперь попробуем другой пример который использует переменную. Это одна называется Привет Привет Привет, что вовсе раздражать быстро. Теперь у этого есть два сценария. И так снова, мы берем ребенка шаги. Мы начали с чего-то супер Небольшой, добавили к нему, добавили к нему. Теперь я хочу сделать что-то еще более динамичным, поэтому я хочу, чтобы слушать на две разные вещи одновременно. Так слева, когда зеленый флаг щелчке Я установить переменную, что я написал заранее называется Приглушенный. И я произвольно установить его в 0. Так царапинам не верно и ложь, но у него есть 0 и 1. Так что я могу приблизить эту же идею. А потом навсегда, если пространство-бар нажата, а затем установить переменную к 0. Или извините. При нажатии пространство, и Если отключен, переменная, 0, затем установите приглушен до 1, еще установить приглушен до 0. Это, кажется, вроде как мы просто делать и отмены работы. Но то, что эффект? Каждый раз, когда я ударил пробел, что происходит с моей переменной называется отключен, логически? Сортировать получает переворачивается. Это изменяется от 0 до 1 или от 1 до 0. Так он взял несколько блоков чтобы выразить, что, но все Я делаю переключения состояния Эта переменная 0 или 1, или 0 или 1 каждый раз я ударил пробел. Теперь здесь, что это это делают? Навсегда, если отключен 0, так что если отключен ложна. Так что, если это не отключен, является семантика там, играть звуковой морской лев, и думаю, Привет Привет Привет для двоих секунд, подождите две секунды. Так вот эти заметить скрипты эффективно собирается запустить параллельно, так что можно слушать в течение одного действия, с другой принять решение на основе этого действия. И это может сделать это навсегда. [Морской лев лай] [Морской лев лай] Это собирается сделать это навсегда, и [Морской лев лай] как я только что сделал. А теперь он все еще работает но у меня "отключен" игры. [Морской лев лай] И это все это делает сейчас парень тоже. Давайте откроем еще один пример здесь. Позвольте мне перейти в События, и теперь это очаровательны тоже. Но обратите внимание, что есть два спрайта. Так что не только два сценария с одним спрайт, но два спрайты. И если я нажимаю на синий парень, как я уже есть, я вижу, он, как одной программе здесь, что буквально только что говорит это, когда я получаю событие, сказать "Поло" в течение двух секунд. Так что если вы когда-либо играли в бассейн, игра Марко Поло, если скрипт оранжевый парень любое указание, по-видимому, каждый раз, когда я ударил пробел, что оранжевый парень собирается делать? Он собирается сказать "Марко". И тогда это новый блок. Мы не видели это раньше, но транслировать мероприятие. И я мог бы назвать его ничего событие мы хотим. Мы вернемся к этому возможно, в скором времени. Но вещание событие является способом для одного спрайта разговаривать с другим по по существу, передавая ей сообщение. Это не сообщение, которое вы видите. Это не то, что визуально. Это своего рода компьютерной сообщения что другой парень слушает для. Потому что действительно, синий парень, напомним не иметь, когда зеленый флаг кнопки. Вместо этого он имеет, когда я получаю событие. Когда он получает передал эту записку в классе, так сказать, он должен сказать "Поло". И поэтому чистый эффект, что, когда я ударил зеленый флаг, ничего не происходит. Но когда я попал пробел, он говорит "Марко", он отвечает "Поло". Но только спрайт Я взаимодействуя с является оранжевый. Так что это способ рода передачи сообщений между спрайтов и с ними общаться друг с другом. Теперь давайте посмотрим на один последний один здесь называются потоками. И заметьте, это, играть. Таким образом, эти два спрайты. Птица вид летают. Он подпрыгивая. Там нет "ай", но та же идея. Но кошка, кажется, очень умный. Что кот, видимо, делать? И ждать. Что кот, видимо, делать? Это не просто подпрыгивая. Он после птицу. И так, по-видимому, есть способ с комбинацией блоков here-- и давайте посмотрим на кошку очень быстро. Навсегда, если вы прикасаетесь птицу, то играть звук Лев 4, все, что есть. Мы слышали его однажды. В противном случае, указывают на птица, и один шаг. Теперь то, что это один шаг то, что дает птицу немного преимущество первоначально, но если мы вместо сделать это 10, например, так, что каждый итерации петли он перемещение 10 шагов времени. Так больше пространства. Давайте посмотрим, что произойдет тогда. [ЛЕВ ЕДОР] Не все, что намного лучше. Так что теперь давайте попробуем улучшить на них немного многократно, и вернуться к тому, что Понятие функции. И действительно один из основополагающих вынос по дизайну класса. Не просто писать программы, которые работают и что верны, но хорошо предназначен. И дизайн является гораздо более субъективно, и вы будете лучше на него в течение долгого времени. Но давайте несколько шагов в сторону ребенка начиная с программы, которая работает, абсолютно, но это не очень хорошо. Это не очень хорошо написано. Так вот программа, которая это делает. Кашель, кашель, кашель. Что программа выглядит? Выглядит правильно для меня. Это говорит диван для во-вторых, то ждет. Тогда он говорит это снова, то это ждет. Тогда он говорит это снова, то это ждет. И тогда программа неявно заканчивается, потому что нет никакой цикл. Но почему это плохо написанная программа? Даже если вы никогда не программировали раньше? Мол, то, что трется неправильно, возможно, здесь? Да? АУДИТОРИЯ: [неразборчиво] Дэвид Дж Малан: Точно. Вы повторяя сами снова и снова. И буквально, я скопировал и вставил два из этих блоков снова и снова. И это именно тот здравомыслия убедитесь, что вы должны делать. Подожди минуту. Должен ли я на самом деле делать это? Так что это то, что это Очевидное решение возможно? Есть некий цикл. И я не совсем отзыв что кусок головоломки в том, но если я смотрю на Следующая итерация здесь, действительно, не просто навсегда петля, есть повторить некоторое количество раз. И так я указал три. А теперь обратите внимание, как много крепче, как гораздо более лаконичным эта программа. И в некотором смысле, как гораздо более сопровождении. Если я хочу, чтобы изменить слово от кашля, чтобы что-то еще, как Achoo, как он чихает. Тогда я могу изменить его в одном Место, а не три. Таким образом, это уже чувствует, как немного лучше дизайн. Позвольте мне вместо открытой кашель 2, наш третий пример. Обратите внимание, как компьютерная ученого, Я начинаю отсчет с 0, как правило,. Теперь это выглядит немного страшным в сначала, но эффект тот же. Кашель, кашель, кашель. Но то, что, кажется, в корне Новое в верхней части программы? Я убрал слово. Я снял ждать. И то, что я подключен вместо этого? Функция. Блок кашель. Я имею в виду, честно говоря, я, кажется, своего рода идиот если я не просто начать с блоком который, по-видимому называется "кашель", если это все, что я хочу ему сделать. Но не существует в пустом. Скорее я пошел к одному в Палитра называется ещё блоков здесь, и я тащить этот большой фиолетовый вещь вот что позволяет мне определить функцию. Это существенно позволяет мне создать свой собственный головоломки кусок, который можно назвать все, что я Хотите, чтобы сделать что-нибудь может я хочу, но это дает ему имя. Это дает мне новый, фиолетовый кусок головоломки что сейчас делает все, что я говорю это сделать. Таким образом, это фиолетовый кусок здесь соответствует этот здесь. И что же делать? Это говорит кашель для во-вторых, и то ждет. А теперь я вроде создано мое кусок обычай головоломка, так, что он ведет себя точно, что таким же образом. Так что я могу продолжать делать это. И действительно, там будет все больше и больше возможностей для модульности, и слоев, сложность на верхней части друг друга. Но это основная идея, Действительно в задаче сказал 0. Что вы собираетесь быть оспорены, чтобы сделать это скачать царапина, или просто использовать его в Интернете, и просто весело с ним. Мы дадим вам набор Требования, имеющий звук, и некоторое количество головоломки. Но вы будете делать именно это. И вы поймете, что вы собираетесь хотите принять некоторые шаги ребенка изначально, до ваша программа не получает более и более сложными. Но, учитывая, является ли это Лучший способ я мог это сделать? Могу ли я избежать этой инстинкт возможно, чтобы скопировать и вставить? Но прежде, чем проблематика 0, и, прежде чем мы отложить, думал, что мы принять одну более началах, если бы мы могли, для окончательного программы это, пожалуй, самый Место вообще, учитывая сегодняшнюю место. Идем вниз. Да. Да. Как тебя зовут? Ой-ой. Ничего страшного. И сошел. И я будем иметь дело с это как-то в ближайшие десять что секунд. Так давай вниз. Идем вниз. Позвольте мне на здесь. Давай. Все в порядке. Давайте посмотрим здесь. Так заметить очень быстро здесь, если вы хотите прийти на до. Мы сделаем два раунда этого. Как тебя зовут? САБРИНА: Сабрина. Дэвид Дж Малан: Сабрина и? Инь ГЭЭ: Ин Джи. Дэвид Дж Малан: Ин Джи. Приятно познакомиться, и другое. Дэвид. Таким образом, наш последний пример здесь называется трудная игра Айви. И почему бы нам не сделать вы Уровень 1, и вы Level 2. И мы увидим, как далеко за что мы на самом деле идти. Автор студента в прошлом году, ремикс меня так что это будет идти более хорошо в Нью-Хейвене. И я даю вам игру, которая собирается привлекать перемещения стрелки вверх и вниз, и получать Йель до финиша. Вот так. [ПРОИГРЫВАНИЕ ВИДЕО] [МУЗЫКА - НФЛ на Лисе Theme Song] [МУЗЫКА - MC Hammer, "U НЕ МОЖЕТ ПРИКАСАТЬСЯ  ЭТО"] -U Не может коснуться этого. У не может коснуться этого. Не может коснуться этого. Моя, моя, моя, моя музыка поражает меня так трудно, заставляет меня сказать, ах, господин мой. Спасибо за благословение мне с против рифмы и две ноги ажиотаж. Это хорошо, когда вы знаете, что вниз. Супер допинг Homeboy от Oaktown. И я, как известно, такие и это бить э-э, вы не можете коснуться. Я сказал вам HomeBoy U не может коснуться этого. Да, это, как мы живем и вы знаете, U не может коснуться этого. Посмотри мне в глаза, человек. У не может коснуться этого. Эй, дайте мне бюст фанки тексты. У не может коснуться этого. Свежие новые удары и брюки. Вы получили это так, и Вы знаете, хочешь танцевать. Так выйти из своего места и получить муха девушка и поймать этот ритм. В то время как катится провести на насос немного немного, и пусть они знают, что происходит. Как это. Как это. Холодный на миссии, чтобы тянуть на спине. Пусть они знают, что вы слишком много и это шаг э вы не можете коснуться. Эй, я сказал вам, и не может коснуться этого. Почему ты стоишь человек? У не может коснуться этого. Эй, звук в колокол школы, сосунок. У не может коснуться этого. Дайте мне песню, ритм делает их потом, что то, что я даю им сейчас. Они знают, когда вы говорите о Молота Вы говорите о шоу, что это раздутый. И плотно певцы потливость так пройти им микрофон. Или лента чтобы узнать, что это займет, и теперь он собирается сжечь диаграммы. Законный либо упорно трудиться или Вы могли бы также бросить курить. Потому что вы знаете U не может коснуться этого. У не может коснуться этого. Сломай. Стоп. Время остановиться. Перейти с потоком в спину если вы не можете перейти на этот то вы, вероятно мертвы. Так размахивать руками в воздух [неразборчиво] Это его победителем танца на это, и вы собираетесь получить тоньше. Перемещение скользить задом только для минуту давайте все делать удар. Да. У не может коснуться этого. У не может коснуться этого. Вы лучше раздутыми Мальчик U не может коснуться этого. Ring Back колокола школы в. Сломай. Стоп. Время остановиться Дэвид Дж Малан: Вот это для CS50! Большое спасибо за присоединение к нам! Увидимся снаружи. [КОНЕЦ ПРОСМОТРА] [ПРОИГРЫВАНИЕ ВИДЕО] [МУЗЫКА - "Seinfeld" песня] Эй Дэвид. Эй, Дэвид. Как дела? -Хорошо Работа, сегодня. -Так Вы думали о том, что Вы собираетесь сделать для шуток вне? -Нет, Я не получил ничего. -Что If-- что, если это из шутка? -Как, Распаковка телеги? -Ага. Вы знаете, это ни о чем. -Так Не нравится, не историю, нет Конфликт, нет разрешения. Не понимаю. Что это о то? -Ничего. -Так У нас есть из шутка о ничего, и у нас нет актеров. Кто будет в этом? -Нет нет нет. Я имею в виду, я буду в нем. -You'll Быть в нем? -Да! Люди всегда говорят мне я персонаж. -Ну, Я имею в виду, что это правда. Но кто-то будет в этом? Она не может быть просто вас. -Вы Будете в нем, Гэвин, Дэн, Дэн Колтон, Z'Myla, Alysse, Дуг, Дэвид, все. -Так Это ни о чем, и все в нем? -Абсолютно ничего. -Это нелепо.