>> [МУЗИКА ГРАЄ]
>> -Добре!
>> -Це CS50.
[MUSIC - IGGY AZALEA, "FANCY"]
>> -моя Улюблена спогад з CS50 було, коли я пішов в Puzzle День.
>> -Напевно Тільки час йде на домашні завдання
з моїми друзями і людьми, які пустище в кінцевому підсумку стати мої blockmates.
>> -Мій Краща пам'ять від CS50 є Хакатон.
Досліджено CS50 Хакатон.
>> -Hackathon.
-Hackathon.
Досліджено Хакатон
Роб Боуден.
Просто все про нього.
>> [MUSIC - IGGY AZALEA, "FANCY"]
>> -моя Улюблена спогад, коли я був на етап, і я грав престижну роль
з вузла [? в Linked?] [? Список. ?]
>> -Коли Всі ми отримали вільний простір Dropbox і Давид був як, дивіться під свої місця.
І це було, місця для всіх!
>> [MUSIC - IGGY AZALEA, "FANCY"]
>> -Мій Порада для будь-якого вхідний студент буде
в тому, щоб дійсно працювати на P-комплекти з друзями.
>> -офісні Часів дуже багато ваш друг.
>> -Зробити Більшу частину вашого досвіду і зустріти стільки людей, скільки ви можете.
>> -Не Бійтеся попросити про допомогу.
-Start Р-набори на початку тижня.
Я думаю, найважливіше полягає в скористатися всіма ресурсами
що CS50 має.
>> -Go В робочий час на початку тижня.
>> -Визначення Дивитися шорти.
>> -Не Відкладати на ваших Р-множин.
-Переконайтеся Ви знайдете чудову групу людей для роботи на Р-множин с.
Ви можете мати багато веселощів і отримати роботу разом.
>> -Не Боятися змушувати себе.
Перейти на хакерській видання іноді.
>> -Write Речі на папері до Ви ніколи не торкнутися вашого комп'ютера.
>> -CS50 Дійсно здорово на надання способів отримати допомогу.
>> -Мій Один рада є сон.
Хто-небудь сказав, що?
Сон, напевно.
Це легко не робити, але Ви повинні зробити це, я думаю.
>> Я б сказати дійсно бути морально готові тому що ви будете любити його.
[MUSIC - IGGY AZALEA, "FANCY"]
>> -Це CS50.
[MUSIC - IGGY AZALEA, "FANCY"]
>> -Це CS50.
>> [Оплески]
>> David J. Малан: Так що це CS50 і це кінець тижня 0.
І це було лише деякі персоналу CS50 в які
Вас чекають не тільки в розділах і офісних годин, але,
Також, в ці вихідні на CS50 Puzzle День.
Що, знову ж, не все про програмування.
Дійсно, очікується, що вас не доведеться програмувати нічого,
а вирішувати проблеми, використовуючи дотепність і друзі поруч з Вами.
>> Ми приєднаються деякі з наших друзів в Facebook--
якщо ви зареєструйтесь здесь-- які протягом останніх кількох років,
є насправді писав ці проблеми з нами.
І так, вони будуть тими, в кінцевому рахунку, працює Puzzle День.
І так, ви будете бути оскаржені саме з тих речей,
і проблеми, які люди в Facebook подобається думати про.
Так що завтра.
Зареєструватися на cs50.harvard.edu/register.
>> Тепер слово на пару персоналу зокрема.
Це ось Ансель Дафф, хто насправді один
із співавторів цих бінарних лампочки, які ми бачили в середу,
на додаток до CS50 власного Ден Бредлі.
Ансель Дафф був також колишній першокурсник advisee мій 3 роки тому
і він насправді навіть побудував цей аналой.
Він пішов на робити інженерні науки та багато іншого.
Тепер його фото тут насправді Ансель 3 роки тому на CS50 Hackathon
коли він запозичив один з наших повітряні кулі, сунув її в своєму ноутбуці,
і, протягом наступних 12 деякі дивним годин, зосереджені на своєму останньому проекті,
Перерви тільки відкрити сумки з цукерок на Hackathon.
>> Але він пішов на останнє в провести цього літа з нами,
з CS50 для своїх співробітників, і Тепер студенти в цьому семестрі,
має свій власний 3D-принтер.
І в двох словах 3D-принтери є пристрій, який виглядає цілком як це.
Ви заповнюєте його з пластикової котушці який переплавку пристроєм
і ви будуєте речі буквально з нічого.
Багато чого, як струменевий принтер, ви починаєте випльовуючи маленькі точки пластика
що утворюють разом з утворюють цілі об'єкти.
І так Ansel наприклад, раніше цього літа, має iPhone 5
і вирішив, що він дійсно хотів щоб підтримати його на своєму столі.
Але він не хотів, щоб піти і купити те
з магазину Apple, і т.п., так що він сів і почав малювати те.
Він зробив кілька вимірів про те, як товстий
і наскільки широкий його iPhone був, він намалював цю картинку тут,
він вирішив, що хоче щоб мати нахил 75 градусів
як це було, дивлячись на йому на його столі там.
Потім він повернувся це, використовуючи Програмне забезпечення, в моделі 3D CAD
що виглядав трохи як то так.
А потім він продовжив, в кінцевому рахунку, насправді його створення.
Так адже, якщо хтось з вас тут, може бути, поспіль, що я можу кинути в, є
an-- там у нас є люди з мобільний 5, і тут у нас є ще два.
>> Тепер, щоб не відстати, CS50 власного Cheng Gong також викладено цього літа
побудувати досить багато речей і, насправді, з причин, які до цих пір
неясно, був повільно друк армію слонів
з артикуляцією зброї і стовбурів.
Пару, яка насправді тут, якщо хто б зараз like-- слона.
Гаразд ,. але те, що Чен також зробив для нас він дуже люб'язно налаштувати камеру
тому той слон, вірите чи ні,
займає близько двох з півтори години, щоб роздрукувати.
Навіть стенд iPhone взяв годину-півтори, щоб роздрукувати.
І те, що Чен пішов вперед і зробив був створений хороший фотоапарат перед
цій 3D-принтер, знятий протягом години півтора як дизайн Ансель надруковано.
Ми обклав деякі сексуальні музика до нього для того,
щоб дати вам це дивитися на те, як працює 3D друк.
І хоча це насправді в пластик,
розуміти, що якщо це область інтерес до вас у навчанні,
Є люди, серед їм Дженніфер Льюїс тут
в Школі Інженерна, хто насправді
працює над 3D-друку з пластику об'єкти.
Але навіть, більш, біологічні матеріали для вирішення
фізіологічні проблеми для людини.
Але тут трохи то від CS50.
>> [ГУЧНО механічних шумів]
David J. Малан: Це не звучить Нічого подібного насправді,
але це набагато краще, щоб подивитися його на цій швидкості, і цей звук.
>> Тепер, в середу, як ж ми спочатку отримати тут?
Ми почали говорити про комп'ютер наука і ми запитали, що це було.
І це про ряд речей, і є дуже багато різних напрямків
в якому ви можете очолити після курсу як CS50.
Справді, якщо ви підібрали один з тих неофіційних гідів
в CS зовні, буклет, що ми ввели, чи є Ви
думаю взяти тільки CS50, або, може бути, робить вторинний,
або, може бути, навіть концентруючись в CS, чи не перегортати, що.
І ви побачите діаграму до кінця, що
показує вам багато різних напрямків в CS, що ви можете піти в.
>> Але на сьогоднішній день, ми зосередимося, знову ж таки, на дійсно одним з основних видом,
можливо, де у вас є Входи в проблемах,
у вас є виходи з проблеми, і у вас є
алгоритми за допомогою яких можна створити ці виходи з цих входів.
І одним з таких прикладів, була Звичайно, це телефонний довідник тут.
І ми використовували як приклад для переходу через алгоритм, який був правильним.
А потім ще один був правильно, але трохи швидше.
А потім ще один, який був трохи більш драматичним, але принципово
швидше.
>> Право, це телефонна книга, ми стверджував, було близько 1000 сторінок.
А скільки разів у мене не було рвати телефонну книгу в половині
знайти людину, як Майк Сміт, максимально, в 1000 сторінок книги?
Так, 10 плюс-мінус.
І тому, як тільки я розірвав цю річ в половина, або просто, більш зріло,
ділиться навпіл, це тільки 10 сторінок з 1000.
І якщо екстраполювати, трохи нереально для телефонної книги,
але якщо це телефонна книга була деяка 4 млрд сторінок в ньому, так повністю
громіздким фізично, скільки раз ви розділити 4000000000
сторінка телефонної книги в половині?
Так що це насправді 32, плюс-мінус.
І так 32 разів тільки, з з 4 млрд сторінок, можна
ви знайдете людину, як Майк Сміт.
І це ефективність.
Це хороший алгоритм, насмілюся сказати.
>> Але потім ми переїхали від спробувати формалізувати його.
І я запропонував цей псевдокод код.
Псевдокод код немає нічого формального.
Це не те, що ви запам'ятаєте.
Це просто те, що ви висловити досить інтуїтивно використанні англійської мови,
або будь-яку мову дійсно, що передає свої ідеї лаконічно.
Але те, що ключ про псевдокод код є те, що вам
спробувати передбачити всі можливі випадки, які можуть статися.
І справді, в цьому псевдокоде Код, там були дійсно три випадки
кожен раз, коли я розділив телефонну книгу.
Mike може бути зліва.
Майк може бути справа.
Або він може бути прямо на сторінці я на.
Або четвертий кут випадок, так би мовити.
Поганий сценарій може бути один which-- що відбувається?
Майк просто не в телефонна книга на всіх.
>> І коли програми crash-- коли Mac і програмне забезпечення ПК, що ви, хлопці, бігти
на комп'ютерах іноді зависає або несподівано завершує роботу,
, Що в основному означає, що деякі програміст, деякі людські, як ви найближчим часом,
просто облажався і помилилися.
Може бути, не припускали, що, можливо, є немає Майк Сміт в телефонній книзі.
І якщо ви насправді не написати Код для обробки таких ситуацій,
як правило, непередбачувані речі можуть трапитися.
Ваша машина може замерзнути.
Він може перезавантажитися.
Програма може кинути.
І так все це дурості, що ви можете
зіткнулися в ваш фактичний життя тільки за допомогою комп'ютерів,
більше буде просто пояснений цієї інтуїції
і це розуміння того, що насправді відбувається під капотом.
>> Тепер давайте спробуємо поглянути в більш загальної задачі.
Замість того, щоб відвідуваність в такому місці, як
це, що було б досить повільно зробити один, два, три, чотири.
Або, може бути два, чотири, шість, вісім.
Давайте зосередимося, замість цього, на як ми могли б формалізувати
Алгоритм процесу по які ми могли б взяти участь.
І на цьому шляху, давайте почнемо застосовувати деякі специфікації
що ми використовуємо сьогодні, коли ми насправді почати писати мовою.
Тому я даю вам зараз, чотири хвилини відео що ми ставимо разом з нашими друзями
від TED, організації.
Причому ми поставили сценарій і вони принесли свої аніматори нести,
і фактично створив 2D анімація про те, що алгоритм.
Якби ми могли приглушити світло.
>> [МУЗИКА ГРАЄ]
Оповідач: Що алгоритм?
В інформатиці, Алгоритм являє собою набір
інструкцій рішення деякі проблеми крок за кроком.
Як правило, алгоритми виконувані комп'ютерами,
але ми, люди, повинні алгоритмів, а також.
Наприклад, як буде Ви йдете про підрахунок
кількість людей в кімнаті?
Ну, якщо ви схожі на мене, ви, ймовірно, вказати на кожну людину по одному
і підраховувати від нуля.
Один, два, три, чотири, і так далі.
Ну, це алгоритм.
Насправді, давайте спробуємо висловити це в Трохи більш формально в псевдокода коду.
Англійська-подібний синтаксис, що нагадує мову програмування.
>> Нехай п дорівнює 0.
Для кожної людини в кімнаті, покласти п дорівнює н плюс 1.
Як інтерпретувати псевдокод?
Ну одна лінія заявляє, так сказати, змінну
називається п і инициализирует його значення в 0 цього просто
означає, що в починаючи нашого алгоритму,
річ, з якою ми Підрахунок має значення 0.
Адже раніше ми починаємо вважати ми нічого не враховуються ще.
Виклик цієї змінної н лише угода.
Я міг би назвати його чим завгодно.
Тепер вибудовуються дві demarks початок циклу,
послідовність кроків, які будуть повторити деяку кількість разів.
Таким чином, у нашому прикладі, крок ми взяття розраховує людей в кімнаті.
Під лінії два є лінія три яка описувала
як саме ми підемо про підрахунок.
Поглиблення випливає, що це лінія три, що буде повторювати.
Отже з код псевдокод приказка, що після запуску на 0
для кожної людини в Номер, який ми будемо збільшувати п на 1
Тепер цей алгоритм правильно?
Ну давайте стукати по ньому небагато.
>> Чи означає це працювати, якщо є дві людини в кімнаті?
Давайте подивимося.
Відповідно одному ми инициализируем н 0.
Для кожного з цих двох людей, ми потім збільшити п на 1.
Таким чином, у першій поїздці через цикл, ми оновлюємо п від 0 до 1.
У другій поїздці через які же цикл, ми оновлюємо п від 1 до 2.
І так, по цій алгоритму кінця, N 2, які
Справді відповідає номеру людей в кімнаті.
Поки все йде добре.
>> Як щодо кутового випадку, хоча?
Припустимо, що є 0 людей в room-- крім мене, хто
робити розмітку.
Відповідно одному, ми знову инициализировать п до 0.
На цей раз, хоча, лінія три не виконує взагалі
так як це не людина в кімнаті.
І так н залишається 0, яка дійсно відповідає кількість людей в кімнаті.
Досить просто, чи не так?
Але й вважати людей, по одному за раз досить неефективно, теж немає?
Звичайно, ми можемо зробити краще.
Чому б не розраховувати двох чоловік за один раз, замість того щоб вважати один, два, три,
чотири, п'ять, шість, сім, вісім, і так далі.
Чому б не розраховувати два, чотири, шість, вісім, і так далі?
Це навіть звучить швидше.
І це, безумовно, є.
>> Давайте виразити цю оптимізацію в псевдокода коду.
Нехай п дорівнює 0.
Для кожної пари людей в кімната, комплект н дорівнює п плюс 2.
Досить проста зміна, чи не так?
Замість того, щоб розраховувати людям по одному, ми замість розраховувати їм два за один раз.
Цей алгоритм, таким чином, вдвічі швидше, ніж у минулому.
Але це правильно?
Давайте подивимося.
Чи означає це працювати, якщо є дві людини в кімнаті?
Відповідно одному, ми инициализируем н 0.
З цієї однієї пари людей, ми потім збільшити п на 2.
І так цим алгоритму Кінець н 2, які
Справді відповідає номеру людей в кімнаті.
>> Припустимо тепер, що є нуль чоловік у кімнаті.
Відповідно одному ми инициализируем н 0.
Як і колись, лінія три не виконує все
так як немає ніяких пар людей в кімнаті, і так н залишається 0.
Які насправді відповідає кількість людей в кімнаті.
Але що, якщо є три людини в кімнаті?
Як це алгоритм проїзд?
Давайте подивимося, відповідно одному, ми инициализируем н 0.
Для пари тих людей, ми потім збільшити п на 2.
Але що потім?
Існує не ще один повний пара людей у ​​кімнаті,
не так лінія два більше не застосовується.
І так до кінця цього алгоритму, н раніше 2, який не є правильним.
Дійсно цей алгоритм, як кажуть бути помилка, оскільки вона має помилку.
>> Давайте відшкодування з деякими Новий код псевдокод.
Нехай п дорівнює 0.
Для кожної пари людей в кімната, комплект N дорівнює п плюс 2.
Якщо одна людина залишається непарний, встановити N дорівнює н плюс 1.
Для вирішення цієї конкретної проблеми, ми введені в четвертому рядку стану,
інакше відомий як гілка, що виконується тільки
якщо є одна людина, яку ми не міг з'єднати з іншим.
І ось тепер, будь є одна або три,
або будь-яке непарне число людей в кімнаті, Тепер цей алгоритм буде вважати їх.
Чи можемо ми зробити ще краще?
Ну, ми могли розраховувати в трійках, або четвірок, або навіть п'ятірки і десятки,
але крім того, вона збирається отримати трохи важко вказати.
>> Наприкінці дня, будь то виконувані комп'ютерами або людини,
алгоритми просто набір інструкцій
з якою для вирішення проблем.
Вони були тільки три.
Які проблеми ви б вирішити за допомогою алгоритму?
>> David J. Малан: Так свідомо, дуже проста програма,
дуже простий алгоритм, для досягнення чогось
дуже просто, вважаючи кількість людей в кімнаті.
>> Але давайте дражнити один від одного деякі з представника
має тут, що насправді буде корисно навіть тоді, коли
реалізувавши більшість комплекс програмного забезпечення.
Так, наприклад, у цій першій лінії, у нас є, що ми називаємо змінну,
і від алгебри, ви як правило, знайомі з використанням х і у
і г іноді, і так далі.
Але в програмуванні, змінні як і раніше, в кінці кінців,
дуже схожий на.
Але це, можливо, простіше думати змінної як тільки контейнер.
І, справді, це деяке число бітів реалізовані кілька на жорсткому диску
або в пам'яті комп'ютера, але про це в майбутньому.
Це просто контейнер.
І якщо ви говорите, то як хай п дорівнює 0,
ну от як назвати цей келих Чаша тут п, просто довільне ім'я,
і не покласти нічого в ньому спочатку.
Так вартості цього Чаша зараз дорівнює нулю.
І, звичайно, якщо ви сприймаєте в подальшому лінії,
насправді збільшити деякі лінію Код, як і в цій третій лінії тут,
на 1, це, як кажуть, що це поточне значення п, це 0, плюс 1,
покласти щось подібне пінг-понг м'яч в тут.
Тепер значення цього Мінлива досить просто 1.
А ви могли б дуже швидко екстраполювати, але тепер це 2, тепер це 3, і так далі.
Так от всі змінна.
Це частина зберігання, щоб насправді зберігати свої дані.
Зараз це для пінг-понгу.
Там це число.
Але це може бути слова в словник, як перевірка орфографії
Я посилався на середу для один з минулорічних проблемних наборів.
>> Тепер ще один ключовий ідеєю, що ж є досить інтуїтивно я б претендувати,
є те, що петлі.
І цикл в процесі лічильної всіх
це, звичайно, робить те ж саме річ знову і again-- або один
в той час, або два за один раз.
І ви можете висловити це англійською мовою, або псевдокод код, в будь-якій кількості способами,
але за допомогою цього прийменник "для" є дуже поширеним способом досягнення цієї мети.
Для кожної людини в номері, зробити це.
Знову і знову.
А те, що це відступом, лінія три,
просто означає, що те, що ви повинні робити
це речі, який з відступом рисою дві сама по собі.
Просто людина конвенції, але поширений
як ми побачимо в реальній вищого мови програмування рівня.
>> Тепер трохи більш цікавим є коли ви отримуєте в кутовому випадку.
Наприклад, кут Справа була, коли
було три людини, або п'ять, або сім, або будь-яке непарне число людей в кімнаті,
бо робити, що по двоє гальм в кінці кінців, бо ваш рух
сумувати за людиною, або в Самий початок або самий кінець
в залежності від того, як ви це робите.
І так, тепер у мене є ця філія, або стан, якщо одна людина залишається,
потім піти далі і впоратися з цим один Самотня людина, який не отримав
в парі з кимось ще.
Так от те, що ми назвали б стан, або філія.
>> Тепер псевдокод код в більш загальному може бути
написано, щоб вирішити будь-яку ряд проблем.
І те, що я думав, що ми зробити тут скористатися моментом
запросити скажімо CS50 сайт власником Роб Боуден на сцені
до них приєднається двох добровольців, які поняття не мають, що чекає.
Рука пішла вниз, як тільки я сказав, що.
Як про вас закінчується, давай до.
А як щодо від далі далеко, як про шляхи в спину.
Задній ряд, давай з піднятими руками.
Добре, і як тебе звуть?
>> АНІТА: Аніта.
>> David J. Малан: Аніта.
Добре, приємно познайомитися.
Дозвольте мені познайомити вас з Робом Боуден.
Це Аніта.
І як тебе звуть?
>> Кірстен: Kiersten
>> David J. Малан: Кірстен.
Кірстен, давай і зустріти Роба Боуден і Аніта.
Приємно познайомитися.
Кірстен: Приємно познайомитися.
David J. Малан: Добре, Роб.
ROB BOWDEN: Приємно познайомитися.
David J. Малан: Аніта.
Кірстен: Привіт Аніта.
David J. Малан: І ваш кількасот однокласники.
Отже, тепер дозвольте мені йти вперед і тягнути до всього лише простим програми тут
на Mac OS, що мені дозволиш фактично коротко деякі замітки вниз.
І якщо ви, хлопці, хочете, щоб кожен бере Положення на одному з цих шкіл там,
дозвольте мені йти вперед і починає список з псевдокода коду, якщо ви будете.
І те, що я хочу зробити тут, в кінцевому рахунку, є тип для вас
деякі інструкції, що наші глядачі насправді
збирається читати для нас.
Дозвольте мені йти вперед і тільки змінити це нумерованого списку
відповідає тому, що ми робили там.
І те, що я збираюся зробити з Ваша допомога, це написати програму
в псевдокоде, з якою ці хлопці збираються
реалізувати арахіс масло і сендвіч желе.
Так що це, можливо, до речі, щоб показати то деякі з вас
можливо, бачили в Інтернеті протягом тільки короткого дратує момент.
>> [МУЗИКА BUCKEWHEAT BOYS, "арахісовим маслом ЖЕЛЕ ЧАС "]
David J. Малан: ОК.
Це достатньо.
Так ось в той час, у мене є Пара Google Glasses, які
ми помістимо на CS50 власної Роб Боуден щоб побачити світ його очима.
І ми зробимо все можливе, на посаді Виробництво насправді плести
кадри з якої Роба бачить Тепер, в цій реальної лекції
відео з нашими двома волонтери поруч з ним.
Так що я збираюся робити є, я буду друкарка.
Ми маємо мета тут насправді написання програми
, З якої, щоб зробити, в кінцевому рахунку, арахісове масло і бутерброд желе,
але ці три будуть себе вести як ніби вони є комп'ютери.
І комп'ютери, в кінці дня, насправді досить німі пристрою.
Вони супер швидко, але вони можуть тільки зробити, буквально, що їм говорять.
Ви не можете просто сказати зробити арахіс масло і сендвіч желе.
Ви повинні запрограмувати їх робити це.
Ви повинні сказати їм, з точністю, що робити,
менш справи йдуть жахливо і, сподіваюся, забавно наперекосяк.
>> Так що з урахуванням сказаного, ми повинні один виклик від'їзду з залу
за що слід активізувати один бути, якщо мета тут
є зробити арахіс масло і сендвіч желе.
Да?
>> АУДИТОРІЯ: [нерозбірливо] мішок хліба.
David J. Малан: Відкрийте сумку хліба.
Так, якщо три конкурсантів буде хочете продовжити робити це буквально.
Відкрийте сумку хліба.
>> [Аудиторія сміється]
David J. Малан: Так що давайте працювати над цим.
Добре.
Так крок два, how-- давайте це питання.
Так, в передній частині.
>> АУДИТОРІЯ: [нерозбірливо] хліб.
>> David J. Малан: Що це?
>> АУДИТОРІЯ: Зніміть хліб.
David J. Малан: Зніміть хліб.
Аналогічно лаконічним.
Спасибо.
>> [Оплески]
David J. Малан: Ось це?
Отже, крок два збирається бути видалити хліб.
Добре, хто хоче написати нам більш тривалий термін?
Хто ще?
Ще трохи [нерозбірливо].
Ні, нічого зараз.
Да?
>> АУДИТОРІЯ: Місце два скибочки поруч один з одним.
>> David J. Малан: Місце два скибочки поруч один з одним.
>> [Аудиторія сміється]
>> David J. Малан: Місце два скибочки поруч один з одним.
Крок четвертий.
Да?
>> АУДИТОРІЯ: Візьміть ваш рука і встановити його злегка
на верхній частині кришки арахісового масла.
>> [Аудиторія сміється]
АУДИТОРІЯ: [нерозбірливо] поруч з арахісовим маслом.
David J. Малан: Що?
Сказати, що знову.
>> АУДИТОРІЯ: Отвинтите кришку і поставити це м'яко поруч з арахісовим маслом.
>> David J. Малан: Покладіть його акуратно поруч з арахісовим маслом.
ОК, прогрес.
Крок п'ятий.
Відмінно.
Да?
>> Візьміть ніж.
David J. Малан: Візьміть ніж.
ОК, крок шість.
Да?
>> АУДИТОРІЯ: Тримайте ніж за рукоятку.
David J. Малан: Тримайте нож за ручку.
Тримайте ніж за рукоятку.
Крок сьомий.
Да?
>> АУДИТОРІЯ: [нерозбірливо] нож в арахісу масло і як мало з [нерозбірливо].
>> David J. Малан: Покладіть нож В- I чув "поклав ніж у масло арахісу
і зайняти всього, як можна ".
До речі, необхідно спочатку видалити папір.
Гаразд, крок дев'ять.
Крок дев'ятий.
Ми насправді не зробив бутерброд ще.
Да?
АУДИТОРІЯ: Використання ніж у масло арахісу, застосувати арахісове масло на вказаний хліб.
>> David J. Малан: Використання нож в арахісове масло, нанесіть масло арахісу на
сказав хліб.
>> [Аудиторія сміється]
David J. Малан: Добре крок 10.
Крок 10.
Да?
>> АУДИТОРІЯ: Смак арахісове масло для забезпечення якості.
>> [Аудиторія сміється]
David J. Малан: Крок 11.
Крок 11.
Давай.
Да?
Прямо там.
>> АУДИТОРІЯ: Ретельно підібрати желе.
>> David J. Малан: Ретельно підібрати желе.
ОК, а потім ще рука була до.
Відразу за вас.
Так, в синій.
>> АУДИТОРІЯ: Гаразд, видалити Кришка з [нерозбірливо], да,
видалити кришку з желе.
>> [Аудиторія сміється]
>> David J. Малан: Від желе.
Ха-ха.
>> [Аудиторія сміється]
David J. Малан: І?
АУДИТОРІЯ: І ледь підмітати будь [нерозбірливо].
[Аудиторія сміється]
АУДИТОРІЯ: Звичайно, перш ніж [нерозбірливо], видаліть папір із желе.
David J. Малан: Видаліть папір із желе.
Крок 14.
Ми майже на місці.
Да?
>> АУДИТОРІЯ: Звернути желе пляшка перш ніж всі вивалюється.
>> David J. Малан: Звернути желе Пляшка до желе випадає.
Крок 15.
>> АУДИТОРІЯ: Замініть кришку.
>> David J. Малан: Замініть кришку.
Крок 16.
Да?
>> АУДИТОРІЯ: [нерозбірливо]
David J. Малан: Сказати, що знову.
АУДИТОРІЯ: Візьміть кришку від вашого желе.
David J. Малан: Off вашої желе.
Так really-- жаль.
Давай.
Замініть кришку.
Покладіть cap-- Ви сказали, Зняти кришку з желе.
Відчуйте, як ми знаходимося в трохи петлі.
Крок 17.
Да?
>> АУДИТОРІЯ: [нерозбірливо]
David J. Малан: Сказати, що знову.
АУДИТОРІЯ: [нерозбірливо]
David J. Малан: Поверніться до step--
АУДИТОРІЯ: [нерозбірливо]
David J. Малан: Видалити ковпачок з арахісовим маслом.
Да?
>> АУДИТОРІЯ: Залиште всі желе на хліб.
>> David J. Малан: Залиште всі желе на хліб.
David J. Малан: Ми майже на місці.
Крок 19.
>> АУДИТОРІЯ: Видаліть надлишки желе.
>> David J. Малан: Ха-ха, желе.
>> [Оплески]
David J. Малан: Чому не ми-- ще один крок, щоб взяти цей будинок.
Ще один крок, а потім ми подають бутерброди.
Да?
>> АУДИТОРІЯ: [нерозбірливо]
>> David J. Малан: В той час як будь бутерброд remains-- давай відступ ето-- з'їсти.
>> [Сміх]
>> David J. Малан: Добре, спасибі Вам наших волонтерів тут.
>> [Оплески}
>> David J. Малан: У нас є деякі цікаві прощання подарунки для кожного з вас.
Ваш власний арахісове масло, желе, і хліб, щоб принести додому.
Спасибо.
>> Кірстен: Спасибо.
David J. Малан: [нерозбірливо] вітаю.
[Оплески]
David J. Малан: Так, це, Звичайно, смішно приклад.
Вірно?
Але це свого роду виявити, як ми люди просто взяти ясність як належне.
І той факт, що я був розмовляє з іншою людиною,
він або вона просто знає, що ви маєте на увазі.
>> Комп'ютери не збираємося знати, що ви маєте на увазі,
навіть при використанні як ми збираємося зробити сьогодні,
програмування то в порожньому, перетягнути і падіння, мова паззл стиль.
Навіть призначений для молодих діти, у вас є
бути настільки явним і так буквально з що ви хочете, щоб ваша програма зробити.
Тепер, в кінцевому рахунку, ми буде програмуванню
не в псевдокода коду, Англійська як синтаксис,
але код або, більш правильно, вихідний код.
Вихідний код просто химерний спосіб для опису коду ви насправді
написати з клавіатурою, це не англійською мовою як такою.
Це в C або Java або C ++ або щось так, як ми скоро побачимо.
>> І справді, просто щоб налякати Деякі з вас, на перший погляд,
це програма, написана мовою називається C. Але в не-налякати деяких з вас,
Ви будете повністю зрозуміти, що відбувається
давай наступного понеділка, коли його приходить щось на зразок цього.
Чесно кажучи, це старий мову.
Це досить таємницею, але це представник
з великої кількості мов в ці дні, що є багато дужок і кучерявих
підтяжки і лапки і крапки з комою.
І багато чого з цього синтаксичний матеріал, який не
взагалі інтелектуально цікавим.
Справді, це повне відволікання від дуже простих ідей
що дивляться нам в очі.
Ця програма, як ви могли тільки здогадуватися, друкує на екран комп'ютера його-
слова "Привіт кома світ."
От і все.
Отже, ясно, що є багато матеріалу, що це
отримувати в дорозі деякі очевидність є,
але це буде дуже швидко прослизнути далеко і бути повністю інтуїтивним.
>> Справді, те, що ми збираємося зробити сьогодні переганяти це досить складний
шукаю програму, яка знову прийдеш швидко зрозуміти, але в той
набагато простіше.
Давайте просто скажемо, що ми маємо на увазі.
Давайте намалюємо картину того, що ми маємо на увазі, шляхом цих головоломки тут.
>> Так що це програмування мова відома як нуля.
Вона була розроблена Массачусетського технологічного інституту Media Lab.
І те, що ви побачите в проблемі встановити нулю, який буде випущений пізніше сьогодні ввечері,
ми будемо мати ви йдете в цей Посилання тут scratch.mit.edu.
І у них є веб Інтерфейс на основі, через який
ви будете писати першу програму.
Або тих з вас, з до досвід, ваш другої програми,
але в середовищі, це ймовірно, трохи знайомі, і що
штовхатиме вас, щоб створити щось за допомогою цього дуже візуальну середу.
>> Тепер, те, що я збираюся зробити тут це відкрити саму програму.
Вона існує не тільки в якості веб-браузера, але і в вигляді завантаження програми
так що ви можете використовувати його якщо у вас немає доступу до Інтернету.
І я збираюся зробити це тут, в Сандерс, просто
в разі Wi-Fi не робить співробітничати супер добре.
І те, що я збираюся зробити, це точка з декількох особливостей цієї програми.
Так, щоб було ясно, у мене є тільки двічі клацнути значок на робочому столі,
або, що еквівалентно пішов scratch.mit.edu, і це під'їхав це вікно.
Це середу програмування.
Це частина програмного забезпечення, деякі з наших друзів в Массачусетському технологічному інституті
писав, що давай до нас і ви написати програми мовою називається нуля.
>> Тепер це трапляється, кішка, яка також називається подряпин
і це його світ, в якому він живе.
Це етап, так сказати, що прямокутник у верхньому лівому кутку.
І він не повинен виглядати, як кішка.
Ви можете змусити його виглядати начебто нічого й вас
може мати багато таких спрайтів, або символів, в програмі.
Між тим, тут на крайньому Право, це великий чистий аркуш.
І ось тут, в момент, ми збираємося для початку програмування
за допомогою перетягування Ці графічні головоломки
штук, які є правильними тут в середині.
І є набагато більше з них, ніж ми витратимо час на тут в класі
тому що ви знайдете, що вони все досить інтуїтивно.
Знову ж таки, це розроблено, для дітей, але ми
використовувати його, щоб дражнити один від одного деякі з тих, Основні ідеї змінних, цикли,
умови, і, найближчим часом, речі як функцій і подій
і нитки та інші модні речі, які ми дістатися до незабаром насправді створити
то з нуля.
Каламбур.
>> Тепер, що я збираюся зробити тут натисніть на не рух, але контроль.
І це всього лише категоризація здесь--
і я бачу інше Колір набір блоків.
Але зверніть увагу, кілька знайомих слів.
"Якщо" і "ще, якщо" і "повтор".
І ви можете здогадатися ось нагадує філії,
або умови ми бачили, і навіть різновидів циклів.
Тому у нас є подібні блоки тут.
Але найцікавіше один цей тут.
При цьому зелений прапор клацанні це, для тих, з попереднього програмування
досвід, еквівалентно до основної функції.
Але для тих, хто незнайомий, це паззл
що буде удар почати всю нашу програму.
Це буквально означає, коли я йду в цей Програма, та натисніть зелену flag--
які ви можете побачити тут, в верхньому лівому куті користувальницького інтерфейсу,
так побачити зелений прапор поруч з червоним знаком стопа?
Коли я натискаю, що, мій Програма працюватиме.
Тепер, я збираюся зробити те супер просто з нуля.
Я збираюся йти вперед і перейти на панель виглядає
тут, де у мене є купа фіолетові головоломки,
і я збираюся йти вперед і робити то супер просто, як, скажімо.
І then-- сповіщення це Текст в білому полі
є editable-- я збираюся сказати, "Привіт, світ", як ми
зробив в цій текстовій версія мить тому.
І тепер, якщо я піду і натисніть цю кнопку зелений прапор, я тепер запрограмовані.
Це не особливо цікава програма,
але я зробив комп'ютер щось робити.
Я почав програму, і вона зробив те, що я сказав це зробити.
Тепер, я можу продовжувати перетягнути все більше і більше з цих частин головоломки
і вони збираються блокуватися, але давайте ляпас деяку термінологію тут
що ми побачимо повторюваних протягом всього курсу,
і дійсно протягом інформатиці і програмування в цілому.
>> Це "сказати" блок, у фіолетовий, давайте просто почати називати заяву.
Це як констатація факту.
Зробіть це.
Таким чином, це категорія інструкції, які вам
може годувати комп'ютер як частина програми або алгоритму.
І щоб було ясно, ви, ймовірно, само собою зрозумілим
що у вас є програми на комп'ютері.
І вони начебто алгоритмів, але Програма дійсно купа алгоритмів
що деякі люди писали.
Вони упаковані його і вони продали його, щоб ви,
або вони розміщені на веб-сайті для завантаження.
Так, програма просто ціла купа нулів та одиниць
що, так чи інакше, люди створили.
І ці моделі нулів і ті представляють речі, в підсумку,
як "сказати привіт світ" або "ігри ця музика "або" це відео "
або "відправити лист."
Але ми ще повернемося в спосіб більш докладно, що
Програма, коли ви, самі, записати їх.
>> Ось ще один statement-- "Почекайте одну секунду."
Я не використовував цього, але якщо я хочу моя програма, щоб призупинити на мить
щось робити, я можу сказати його, зробити це.
Зачекайте одну секунду.
Тепер ще один може бути "відтворення звуку."
Таким чином, це є унікальним для нуля, має можливість відтворення звуків.
Так, заяву я міг би використання, тут, "грати звук."
Між тим, логічне вираз, так що це любитель слово
імені всього хлопцем на ім'я пан Bool, і це все про питанні.
Правда чи false-- є миші вниз?
Логічний вираз просто деякий вираз англійською мовою
що є істинним або хибним.
Включений або виключений.
Або один або нуль.
Ви можете думати про це У будь-якому числі шляхів,
але це або істинно, або це помилкове, в кінцевому рахунку ,.
Так "миші вниз знак питання," що б це логічне вираз.
І ви можете думати про інших, можливо.
Наприклад, "є вліво число менше правого числа? "
Це теж буде логічний вираз.
"Менш" це логічне вираз.
>> Це один, теж "зворушливо покажчик миші."
Я не впевнений, чому вони назвав його покажчик миші.
Це просто означає ,, є курсор, є стрілка на екрані, торкаючись кішку,
наприклад.
Або деякі інші аспекти екрані.
І це питання, знову ж таки, і що позначає логічний вираз.
Те, що ви, можливо, хочете використовувати в змозі.
Так ми прийдемо до того, що через хвилину.
Ви можете "і" речі разом.
Отже, якщо ви хочете перевірити, якщо це в разі І це так,
Ви можете використовувати "і" блок, як це.
І ось, що стан.
Зверніть увагу на форму маленького відкриття у верхній частині цієї жовтої паззл,
це нагадує форму що ми тільки що бачили кілька хвилин тому.
Кожен з цих логічних виразів Тобто ці загостреними краями
зліва і справа.
І це тому, що MIT люди вирішили що візуально транспортування форм,
Ви можете почасти допомогти людям, студенти, так і дітей,
щоб частково заповнити прогалини в буквальному сенсі.
>> Тепер, коли puzzle-- що Відкриття дуже маленький,
і, як ми побачимо в програмі, в порожньому, він буде рости, щоб відповідати.
Він підтримуватиме свою форму, в кінцевому рахунку ,.
Так стан давайте ви вирішите "Я повинен робити те чи ні?"
Логічний вираз є фактичним питання
ви використовуєте, щоб вирішити, я йду, щоб вліво або мені піти направо
коли я стикаюся з цим так звана розвилка?
Ви можете мати дві гілки.
Якщо щось вірно, зробити це, ще йти цим шляхом,
або ви не можете просто зробити нічого все, як цей блок маються на увазі.
Аналогічно, ми можемо гніздо ці речі.
Так що якщо ви хочете, щоб потроїти вилку в дорога, або зробити це або те або інше,
ви можете просто гніздо ці речі разом.
І він починає отримувати трохи некрасиво, зрештою, напевно,
але логіка все та ж.
Ви можете буквально читати це зверху вниз
і це говорить, що це означає: якщо це Правда, зробити це, інакше, якщо в іншому місці.
>> Цикл не одержати простіше нуля.
Назавжди зробити наступне.
Тепер ви можете не думаю, що ви можуть багато зробити, бо немає
багато місця між верхньою і Дно цієї відкриття шматок головоломки.
Але ви побачите подряпин збирається рости, щоб відповідати як багато частин головоломки
як ви хочете, щоб втиснути туди.
Інший цикл може бути виражені з повторами.
Якщо ви заздалегідь знаєте, "я хочу робити те, в 10 разів, "
ви можете просто сказати подряпин зробити щось у 10 разів.
І, між тим, ми можемо мати змінні.
Так ось довільним, це оранжевий в цьому випадку,
і це ураганний тур.
Знову ж таки, ви знайдете це дуже доступний Як тільки ви починаєте вказуючи і натиснувши кнопку.
Я назвав свій змінну п, але я могли б назвав його, що я хочу,
і я встановлюю його тут, в Цей приклад довільно, до нуля.
>> Тепер бачачи таку програму, як привіт Світ не все, що переконливим,
так що давайте насправді відкрити щось що колишній студент зробив.
Дозвольте мені йти вперед і відкрити, наприклад, цей тут,
за що я хотів би мати добровольця.
Гаразд, як about-- підемо далі.
Так, давай до.
Як тебе звуть?
>> Еббі: Еббі.
David J. Малан: Еббі, давай до.
Так ви ніколи не грали ця гра раніше?
Еббі: Ні
David J. Малан: Добре.
Девід, приємно познайомитися.
Приходьте на більш.
І яка ваша програмування фону, якщо такі є.
>> Еббі: Я дізнався деякі C ++.
David J. Малан: Ви дізналися деякі C ++.
І те, що ваша гра грати фон?
>> Еббі: Чи не багато.
David J. Малан: ОК, так що ми будемо вважати, що.
Так ось, як гра буде працювати.
Я збираюся йти вперед і натисніть зелений прапор, який
є тут у правому верхньому куті.
Тепер ваш попередник в класі дав вам деякі інструкції тут.
І через хвилину, його говорить "простір, щоб почати."
Так що вперед і вдарив пробіл.
>> Комп'ютерна гра: Пікачу.
David J. Малан: І мета полягає в зловити їжу, як показано там
на лівій стороні.
І [нерозбірливо]
>> [ГРА музика, яка грає]
>> David J. Малан: Ой, ну, спасибі за гру.
Ми маємо тут трохи прощання подарунок для вас.
У нас є CS50 м'ячик, якщо ви хочете вибрати.
Гаразд, добре, щоб зустрітися з вами.
Спасибі, що прийшли і виклик.
Так у нас більше стресу кулі, так давайте зробимо ще один приклад, щоб мотивувати.
Доброволець?
Гаразд, а як щодо прямо тут, перед.
Як тебе звуть?
>> ФІЛІП: Філіп.
>> David J. Малан: Філіп.
Піднімайтеся, Філліп.
Так, Філіп буде виклик з іншого грі
що один з ваших попередників писав частина проблеми встановіть нулю,
називається важка гра Айві.
І ми побачимо в просто момент те, що мається на увазі під цим.
Філіп, приємно познайомитися.
Яке ваше минуле?
ФІЛІП: утрату багато кодування.
Утрату небагато ігор, теж.
>> David J. Малан: ОК.
Отримав багато ігор, занадто.
А ви грали в цю гру раніше?
>> ФІЛІП: Ні
David J. Малан: Все Добре, так от ми йдемо.
Я збираюся йти вперед і натисніть зелений прапор.
>> [ГРА МУЗИКА]
>> [МУЗИКА MC HAMMER, "U CAN Не торкайтеся до цього"]
>> ФІЛІП: [нерозбірливо]
David J. Малан: [нерозбірливо]
ФІЛІП: [нерозбірливо]
[Сміється]
[МУЗИКА MC HAMMER, "U CAN Не торкайтеся до цього"]
David J. Малан: [нерозбірливо] Плуг через нього.
ФІЛІП: [нерозбірливо]
David J. Малан: Йдемо далі.
[МУЗИКА MC HAMMER, "U CAN Не торкайтеся до цього"]
David J. Малан: Добре.
Поздравляю.
>> [Оплески]
>> David J. Малан: Ми будемо повідомлення, що на сайті пізніше, таким чином
що ви можете відкладати з ним також.
Princeton приходить наступний, після цього.
>> А тепер давайте насправді приступити починати з нуля,
так сказати, і насправді не побудувати, поки ми можемо дражнити один від одного деякі з цих ідей
і отримати до чого навіть складнішим до кінця.
Я збираюся піти сюди, і я збираюся йти вперед і створити новий файл.
Отже, ще раз, безліч проблем ходитиме Ви через деякі з цих кроків.
Але, все, що я робив, було йти в меню Файл і I
сказав "новий", так як Microsoft Слово, або будь-яка програма, як, що.
>> І давайте йти вперед now-- і ми реалізовані "Привіт, світ" хвилину тому,
але давайте спробуємо трохи симпатичніше.
Я піду до подій.
І я збираюся зробити ", коли зелений прапор натиснув ".
А потім я збираюся використовувати, скажемо так, філія.
Так що я збираюся використовувати "якщо" стан.
І зверніть увагу, як, як тільки я отримую близько до нього, він хоче, щоб притягуватися один до одного.
Так я відпустив і вона не встане разом.
І тепер я можу робити щось цікаве.
Якщо я прокрутки тут, я збираюся щоб побачити цілу купу блоків.
Якщо я йду в "дані" - дозвольте мені масштабу В- є щось змінних.
Якщо я йду в "русі", ви можете мабуть, повернути справу.
Якщо я йду в "операторів" - о, це цікаво,
Я можу вибрати випадкове число.
Отже, дозвольте мені зробити щось з тільки деяка ймовірність, тільки тому, що.
Я збираюся йти вперед і перетягнути цей паззл,
в тому, що менше, ніж блок, так що це просто
"Це число менше, ніж цей?"
Але я не хочу жорсткого код ряд бо досить безглуздо.
Так що я збираюся тягнути цей шматок тут, і зверніть увагу, як вона не встане в,
і тепер дозвольте мені йти вперед і сказати, "якщо число, який обраний випадково
менше шести, виконайте наступні дії ".
Тепер, чому менше шести?
Яка ймовірність того, це ефективно збираюся дати мені, тільки інтуїтивно?
Близько 50%, чи не так?
Якщо число, це думаю випадково між 1 і 10 менше шести,
ясно, що це один, два, три, чотири, п'ять або.
І так, що збирається дати мені 50% вірогідність того, що відбувається?
>> Ну давайте зробимо щось подібне це, "грати звуку мяу".
І зверніть увагу, знову ж таки, паззл зростає
щоб відповідати, за умови, що відповідає форми.
Ось що важливо.
Дозвольте мені перейти до подряпин тут і натисніть "гру".
Нічого не відбувається.
Це помилка?
Ні, не потрібно.
Це може бути просто, що більше число було вибрано.
Так давайте зробимо це знову.
Нічого.
>> [MEOW]
David J. Малан: Там це.
[MEOW]
David J. Малан: Опять.
Кількість
>> [Мяуканье]
David J. Малан: Так що якщо ви небудь грав у гру, звичайно,
де речі, що відбувається випадково, як поганих хлопців йдуть чи ні
надходження на екрані, або речі падають або не падають,
це тільки тому, щось супер просто, як це відбувається.
Виберіть випадкове число, і якщо це менше, ніж деяке значення,
може бути, зробити це чи, може бути, зробити це.
Ми можемо включити , Що в змозі.
Давайте робити щось інше.
>> Дозвольте мені кинути, що далеко.
Ви можете позбутися від речі по просто перетягнувши його вліво
і відпустити.
Дозвольте мені йти вперед і зробити назавжди блок і дуже швидко зробити щось дратує.
Дозвольте мені йти вперед і кажуть "грати звуку мяу".
Але я не хочу, щоб це занадто дратує, так що дозвольте мені захопити цей блок,
"Почекайте одну секунду", і повідомлення немає більше місця для нього.
Але якщо ви йдете досить близько, він хоче піти туди.
Так що я відпустила, і він буде рости, щоб заповнити блок.
Так що тепер, це петля.
[Мяуканье]
David J. Малан: Я буквально робити це вічно.
Знову і знову.
Тобто просто не природне звучання.
Дозвольте мені йти вперед і змінити це щоб не однієї секунди, щоб дві секунди
та натисніть Enter.
І, що приємно про Подряпини що можна запрограмувати в інтерактивному режимі.
Внести зміни, може бути, натисніть Введення Грати знову, і це буде просто продовжувати йти.
Ну, тепер, чому б нам не зробити то трохи симпатичніше?
Замість того, щоб зробити все з нуля, дозвольте мені йти вперед і відкрити аванс
зробив один, що я заздалегідь запечені, називається "Pet Cat."
І ми розмістимо всі ці файли онлайн,
і проблема встановити нульовий скаже вам як отримати доступ до їх і відкрити їх.
І зауважте, це досить просто.
Але заздалегідь, я, здається, схопив "Назавжди" блок, так що я повинен петлю.
А потім у мене є "якщо" стан.
У мене є логічне вираження.
>> Таким чином, в англійській мові, просто глянувши на це, особливо якщо ви ніколи не
запрограмований раніше, просто інтуїтивно, що це збирається робити, цю програму?
>> [АУДИТОРІЯ БАЗІКАННЯ]
>> David J. Малан: Якщо ви гладите кішку, кіт збирається мяу, чи не так?
Тому що "назавжди знявши" буде покажчик миші торкаючись кішку.
Таким чином, щоб було ясно, і я не говорив, це раніше, всі ці головоломки
штук і сценарій, що ми об'єднали їх в,
так сказати, сценарій є синонімом Програма, дійсно, належить до цієї кішки.
І причина is-- тому сповіщення як це ж кіт тут виділений,
тут ви можете створити Другий кішка або собака або дійсно
все, що ви хочете в графічному вигляді.
Ви можете імпортувати то від Photoshop, або тому подібне,
і інтегрувати то, якщо ви хочу зробити його в одному проекті.
І те, що ви знайдете, в кінцевому рахунку, це ти
можна додати скрипти, додати головоломки штук, в окремих символів.
Таким чином, ці всі належать до це зокрема кішка.
Так що тепер, якщо я йти вперед і грати ця програма, нічого не відбувається.
Але він працює.
Програма в цьому назавжди петлі, вид чекають, що станеться?
>> [АУДИТОРІЯ БАЗІКАННЯ]
>> David J. Малан: Щоб погладити кішку.
Так що, якщо я рухаю мишу до him--
>> [Мяуканье]
>> David J. Малан: Так що тепер Я ласки кішку.
Між тим, ми можемо мати подвійну філію.
Дозвольте мені йти вперед і відкрити ДН не погладити кішку.
Ми опублікуємо це онлайн, а також.
Це трохи більше Комплекс, але не кажучи
ви можете здогадатися, можливо, що станеться.
>> [Мяуканье]
>> David J. Малан: Кішка нявкання, великий старий час.
Але ця програма, звичайно, називається "Не Домашня тварина Cat,"
так ясно, я хочу, щоб погладити кішку.
>> [ROARING]
>> David J. Малан: Чи не погладити кішку.
Тепер давайте поглянемо інший приклад тут.
Цей називатиметься "Привіт, Привіт, Привіт," з причин,
що буде ясно, тому що як тільки я запускаю цей thing--
>> [SEAL гавкіт]
David J. Малан: Дуже легко написати дратівливих програм нуля.
[SEAL гавкіт]
David J. Малан: Тепер ми не будемо в подробиці з усіма з них,
але зверніть увагу, є пару нових функцій тут.
Там у змінній, називається "приглушується" а там купа умов.
І зараз, дозвольте мені просто дражнити вас, сказавши,
що якщо цей хлопець стає занадто дратує, Я можу вдарити пробіл і він зупиняється.
Тому що роль, яку відіграє Ці два сценарії полягає в наступному.
Один з них робить гавкіт кожні кілька секунд.
Інший просто чекає для мене вдарити пробіл.
А якщо я вдарив пробіл, він збирається змінити
стан цієї змінної, значення цієї змінної, це, мабуть
називається "приглушується", я не дзвонив це те нудно як п,
Я назвав це англійське слово, "відключений".
Від 1 до 0 або від 0 до 1.
Від щирого на помилкове або помилкового на істинне.
І таким чином, ви можете насправді бачимо зараз, що вам
може мати два сценарії, два програми, що працюють одночасно,
і обидва з них може сидіти в циклі робити щось.
Чекаю людина робити щось на зразок удару пробіл.
[SEAL гавкіт]
David J. Малан: А тепер він на своєму шляху знову.
[SEAL гавкіт]
David J. Малан: Так що ще може нам робити з цими прикладами?
Ну, давайте йти вперед і робити Приклад з підрахунок овець.
Ми будемо продовжувати це уздовж ліній тут of-- давайте відкриємо приклад овець.
І зверніть увагу, як і колись, на цей раз, на щастя, небагато менш дратівливим.
Після того, як я вдарив грати здесь-- О ні, це дратує.
Він збирається бе з деякою вірогідністю.
Давайте грати це знову.
>> [SHEEP BLEETING]
David J. Малан: Різниця лише в тому ми змінили костюм, так сказати,
і ми вдвічі і сказати що це реальна кількість.
Ну давайте йти вперед і зробити ще один крок вперед.
І дозвольте мені дражнити вас з одна особливість тут.
Давайте підемо далі і відкрити програма під назвою теми.
Так багато, як ви можете мати один спрайт, маючи кілька сценаріїв,
Ви можете мати два спрайта, птиця в кішка, кожен з яких має свій власний сценарій.
І кожен з них може працювати одночасно.
Якщо ви ніколи не чули Слово "многопоточность"
комп'ютер "багатопотокові" кошти він може зробити кілька речей відразу,
і, дійсно, так може подряпин.
>> А тепер зверніть увагу птах роду німий.
Це просто робить речі випадково, відбиваючись від екрану.
Очевидно, що кіт був запрограмований щоб почасти є шукають можливості
в будинку в на птицю, тому що він завжди вказує на нього.
Поки, нарешті, він ловить фактичне птицю.
Тому я не буду зупинятися на деталях тут, але ви можете роду
розгледіти ті ж форми, деякі "Якщо" умовах, деякі змінні,
можливо, деякі петлі, є в кінцевому рахунку, робить те ж саме.
>> Тепер дозвольте мені йти вперед і відкрити до зовсім інше,
дражнити деякі з вас, особливо тих, зручніше,
що ви можете насправді робити з цим.
Я збираюся йти вперед і відкрити кнопку тут.
І це супер простій на вигляд програми,
але дивитися, що відбувається коли я-- Дивіться, що
відбувається, коли я відкриваю цю версію нього, тут в браузері, scratch.mit.edu.
І коли я натискаю цю велику червону Кнопка, помітити, що відбувається.
Так що тут відбувається?
Там насправді набагато більше складність відбувається під капотом,
хоча я реалізував це, або відверто, Ден Бредлі
реалізував це так просто.
Він призначений персоналізовану робочу головоломки шматок, відомий як розширення до подряпин,
він назвав його Переключити.
>> А що Переключити робить він посилає повідомлення по Інтернету.
І саме це повідомлення виглядає трохи загадково.
Але це теж, ви будете зрозуміти до кінця терміна.
Повідомлення він насправді відправки виглядає трохи щось на зразок цього.
Це просто текст.
Cryptic.
Ви зрозумієте це до того часу, ми отримуємо проблема встановити сім.
Це просто відправивши текстове повідомлення через Інтернет до сервера.
І, що сервер в кінцевому підсумку говорити на цю лампочку, яка
є один з тих химерних лампочок в ньому, що, само по собі, говорить
до Wi-Fi в мережі тут, де локальний пристрій вниз здесь--
і, нарешті, це насправді повертаючи, що світло і вимикається.
Але ми можемо зробити більше цікаві речі ще.
Зверніть увагу, що Дан зробив для нас.
Він зробив кілька спрайтів, кожен з який має скрипт чекає за клік.
І якщо я натискаю червоний, він йде червоний.
Якщо я отримую синій, він йде блакитно.
Зелений, жовтий, оранжевий.
І все це відбувається на збирається вихід на Інтернет,
відступати тут, щоб лампочки, і вимикається.
>> І якщо ви можете вірити it-- і це мабуть, один з найскладніших нуля
проекти хто має implemented-- він зробив це, справедливості заради, в день.
І це було проблемою ми кинули вниз Дену, коли ми побачили у довічних цибулини,
у нас є подряпина, як ми можемо об'єднати їх?
І, дійсно, це абсолютно то хто в цій кімнаті
міг зробити по end-- семестру чи він Повторно реалізовано двійкові цибулини за допомогою
той же інтерфейс, що було на нашому Ipad в середу.
Так що тепер, якщо я насправді клацніть знак тут,
у нас є один, два, три.
Я можу вдарити 16 і повернути, що вийшло на.
128, і так далі.
>> Тепер, якщо що один має і підірваний свій розум,
ви могли б зробити речі набагато більш доступними, не стосується будь-якого обладнання, звичайно.
Всього речі на самому екрані.
І, дійсно, те, що більшість студентів в кінцевому підсумку робить це свого роду гра,
деякі частина художньої творчості, або свого роду інтерактивної анімації.
І я скажу, один з наших обрані був цей.
І я подумав, що якщо ми може тьмяне світло,
ми прийматимемо поглянути на цей фінал Подряпини проект на закінчення.
Але що ви будете повинні мати на увазі, як Я можу дражнити тебе з одного останньої деталі,
секціонування почнуться на наступному тижні.
Години роботи розпочнуться на наступному тижні.
Задача встановити нульовий будуть розміщені CS50.harvard.edu пізніше сьогодні.
І вам буде зустрінуте в проблемній встановити нуля
щоб CS50 власної Zamyla Чан, який направляє більшу частину нашого покрокові.
Це вбудовані відео в проблемних наборів
що буде тримати тебе за руку через багато з початкової настройки і через багато
з можливих проектних рішень.
Так що, якщо ви коли-небудь, що емоції коли піднімаєте домашнє завдання
і цікаво, де я починаю?
Вона матиме, що відповідь для вас.
А тепер, остаточна програма від одного з ваших попередників
у відповідь на питання "Що лисиця сказати?"
[МУЗИКА YLVIS, "ЩО FOX СКАЗАТИ?]
>> YLVIS (співає): Собака йде Гав.
Кішка йде мяу.
Птах йде твіт і миша йде писк.
Корова йде мукання.
Жаба йде каркання.
І слон йде гудок.
Качки сказати шарлатан і риба йти ревіти.
І печатка йде ой-ой, але є один звук, що ніхто не знає,
Що ж лисиця сказати?
І
>> David J. Малан: Ось саме для CS50.
Ми будемо бачити Вас в Логічні день і в понеділок.
>> [Оплески]
>> [МУЗИКА YLVIS, "ЩО лисиця сказати?"]
>> Оповідач: І тепер глибоко думки, по Daven Фарнем.
Сьогодні я отримав удар в віч з телефонною книгою.
Змішання, як я в вдома дивитися онлайн.