[ВІДТВОРЕННЯ ВІДЕО] [АВТО захлопування дверей] [Двигун автомобіля ЗАПУСК] [Грає музика] -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. -Hurry! Іди, іди, йди, йди. Ви повинні [нерозбірливо] Харкнесс вежа. -А Ми побачили, що пару разів. [Оплески] -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, Дуг, Девід, все. -Так Це ні про що, і все в ньому? Чи не -Абсолютно нічого. -Це смішно.