1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK MUSIC] 2 00:00:32,435 --> 00:00:35,429 [MUSIC - "Щасливі разом" Черепахи] 3 00:01:27,330 --> 00:01:30,170 DAVID Малан: Сьогодні ми почнемо наше дослідження 4 00:01:30,170 --> 00:01:32,710 Основи інформатики та наше введення, 5 00:01:32,710 --> 00:01:35,070 Тепер, в мистецтві програмування, які, який 6 00:01:35,070 --> 00:01:36,260 Тільки один приклад. 7 00:01:36,260 --> 00:01:39,600 Але в тому ж дусі вирішення проблеми, знаємо, що 8 00:01:39,600 --> 00:01:42,080 Традиційний День Puzzle CS50 є завтра. 9 00:01:42,080 --> 00:01:45,190 Якщо ви ще не RSVPed до цієї події, ви можете піти в 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Ви можете принести команди з двох, трьох або чотирьох. 12 00:01:50,940 --> 00:01:53,080 Вам буде оскаржена з проблемами, як той, який ви бачили 13 00:01:53,080 --> 00:01:54,190 там на самому початку. 14 00:01:54,190 --> 00:01:57,000 Всі нові проблеми в цьому році, якщо ви взяли участь в минулому році, і ви 15 00:01:57,000 --> 00:01:59,680 будуть мати можливість потім, щоб виграти деякі казкові призи. 16 00:01:59,680 --> 00:02:02,750 Серед них, Wii і деякі подарункові сертифікати і т.п., 17 00:02:02,750 --> 00:02:05,650 Весь той час, бовтаючись з CS50 студентів та однокласників 18 00:02:05,650 --> 00:02:07,720 і піцу і Facebook. 19 00:02:07,720 --> 00:02:10,430 Так про це завтра, якщо ви хотіли б. 20 00:02:10,430 --> 00:02:13,330 >> У цьому і полягає CS50, для тих з вас приєднатися до нас для 21 00:02:13,330 --> 00:02:14,510 перший раз. 22 00:02:14,510 --> 00:02:18,030 І знайте, що цей курс особливо мають намір отримати 23 00:02:18,030 --> 00:02:22,605 Вас через цей курс, щоб її кінцева мета, в який момент ви 24 00:02:22,605 --> 00:02:24,270 буде мати не тільки розуміння цих 25 00:02:24,270 --> 00:02:26,450 Основи інформатики, але ви повинні будете 26 00:02:26,450 --> 00:02:29,120 це дуже практичний набір навичок, які потім можна забрати в 27 00:02:29,120 --> 00:02:31,370 власний відділ, будь то технічних наук, 28 00:02:31,370 --> 00:02:33,570 прикладна математика, природничі науки, природничі 29 00:02:33,570 --> 00:02:34,780 наука, або тому подібне. 30 00:02:34,780 --> 00:02:37,030 Дійсно, те, що так здорово про комп'ютерній науці ці 31 00:02:37,030 --> 00:02:39,900 днів в тому, що це саме так, застосовні до 32 00:02:39,900 --> 00:02:40,990 всі види полів. 33 00:02:40,990 --> 00:02:46,210 І хоча сьогодні, ми будемо тільки подряпати поверхню 34 00:02:46,210 --> 00:02:49,020 дуже традиційний мова програмування, відомої як C, ми будемо 35 00:02:49,020 --> 00:02:51,040 Замість дивитися на те, що називається Scratch, щось з 36 00:02:51,040 --> 00:02:53,420 яких ця історія печива любов була реалізована одна з ваших 37 00:02:53,420 --> 00:02:57,020 попередників в минулі роки, щоб розповідати історії, створювати ігри, 38 00:02:57,020 --> 00:03:00,060 для створення інтерактивного мистецтва, і фактично почати, щоб обернути наш 39 00:03:00,060 --> 00:03:02,240 умів навколо деяких з фундаментальних конструкцій, 40 00:03:02,240 --> 00:03:05,390 лежать в основі програм, але в контексті, як ви побачите, що це 41 00:03:05,390 --> 00:03:09,140 набагато менш страшно, що набагато менше таємницею, ніж ви побачите 42 00:03:09,140 --> 00:03:10,140 незабаром. 43 00:03:10,140 --> 00:03:12,410 І розумію, теж, для тих з вас тільки що приєдналися до нас ця 44 00:03:12,410 --> 00:03:16,170 семестру, фрази, за якими ми закінчили лекцію в середу, 45 00:03:16,170 --> 00:03:20,260 це не так важливо, де ви в кінцевому підсумку по відношенню до вашого 46 00:03:20,260 --> 00:03:22,950 Однокласники в цьому класі, але де ви, до кінця семестру 47 00:03:22,950 --> 00:03:27,190 У тиждень 11, в остаточному підсумку по відношенню до себе прямо в той же день. 48 00:03:27,190 --> 00:03:32,000 >> Отже, без подальших церемоній, це також варто відзначити, що 49 00:03:32,000 --> 00:03:34,450 тих, хто менш зручні, ті десь між ними, є 50 00:03:34,450 --> 00:03:36,825 Крім того, в конструкції цього, звичайно, не в будь-який недолік 51 00:03:36,825 --> 00:03:38,760 VIS-A-VIS тим більш зручними 52 00:03:38,760 --> 00:03:39,920 вступ у цьому класі. 53 00:03:39,920 --> 00:03:41,810 Як ви побачите в протягом тижня, щоб прибути, у нас різні 54 00:03:41,810 --> 00:03:44,600 треків для різних задній фон, розділи для тих, 55 00:03:44,600 --> 00:03:46,500 менш комфортно, більш зручні, ті, десь 56 00:03:46,500 --> 00:03:47,250 між ними. 57 00:03:47,250 --> 00:03:49,520 Як ви побачите в ці вихідні і на наступному тижні, дві версії 58 00:03:49,520 --> 00:03:52,410 Найбільш проблема набору в стандартному виданні і хакерських так 59 00:03:52,410 --> 00:03:55,390 що ви все можете самостійно вибрати по шляху, з яким ви 60 00:03:55,390 --> 00:03:56,615 Найбільш зручними. 61 00:03:56,615 --> 00:03:58,770 >> Отже, сьогодні ми заглибимося в цю програмуванню 62 00:03:58,770 --> 00:04:00,060 мову під назвою Scratch. 63 00:04:00,060 --> 00:04:02,250 Це графічний мову програмування, і все ж вона має 64 00:04:02,250 --> 00:04:04,500 ж функції, деякі з мов високого рівня ми будемо 65 00:04:04,500 --> 00:04:07,050 досліджувати пізніше в семестр, в тому числі і C 66 00:04:07,050 --> 00:04:08,670 JavaScript і PHP. 67 00:04:08,670 --> 00:04:11,890 Але це відбувається, щоб дозволити нам уникнути деяких відволікаючих 68 00:04:11,890 --> 00:04:14,890 на ранній стадії синтаксису, такі речі, як крапка з комою, дужки, 69 00:04:14,890 --> 00:04:17,720 та інші таємні деталі, які, на перший погляд, просто не 70 00:04:17,720 --> 00:04:19,916 на всіх інтелектуально цікава і, як правило, отримують в 71 00:04:19,916 --> 00:04:22,310 шлях від деяких фундаментальних розуміння. 72 00:04:22,310 --> 00:04:24,870 З точки зору зараз структура підтримки вперед, зрозумів, що це 73 00:04:24,870 --> 00:04:27,570 Інструмент, CS50 Обговорити, який буде пов'язаний з курсу 74 00:04:27,570 --> 00:04:30,320 сайт пізніше сьогодні, є інтернет-форумі обговорення в 75 00:04:30,320 --> 00:04:32,480 яких ви зможете ставити питання один одному і 76 00:04:32,480 --> 00:04:35,020 персоналу, і це також інструмент, як ми побачимо на наступному тижні, 77 00:04:35,020 --> 00:04:37,240 які ми будемо використовувати досить integratedly в 78 00:04:37,240 --> 00:04:38,780 робочий час, а також. 79 00:04:38,780 --> 00:04:41,670 Дійсно, години роботи почнуться в понеділок, і, чесно кажучи, перший 80 00:04:41,670 --> 00:04:43,930 тиждень в неробочий час досить низький ключ. 81 00:04:43,930 --> 00:04:46,820 >> Я не думаю, що ви знайдете Подряпини все, що доступно. 82 00:04:46,820 --> 00:04:48,930 Це досить очевидні, як ми побачимо, і так, що 83 00:04:48,930 --> 00:04:51,380 ми будемо використовувати це на сьогоднішній день є витяг деяких з 84 00:04:51,380 --> 00:04:53,990 Основні ідеї, які, потім, зберігаються протягом всього 85 00:04:53,990 --> 00:04:54,900 Інша частина семестру. 86 00:04:54,900 --> 00:04:57,980 Але, починаючи з понеділка, о 8:00 вечора за 11:00 вечора буде 87 00:04:57,980 --> 00:05:01,530 Прийомні години в Annenberg над мозком перерви. 88 00:05:01,530 --> 00:05:04,490 Секціонування два почнеться цього вечора, так що вже в цьому 89 00:05:04,490 --> 00:05:07,260 вихідні, перейдіть на cs50.net/section, і ви будете 90 00:05:07,260 --> 00:05:08,530 бути поставлено ряд питань. 91 00:05:08,530 --> 00:05:10,290 Серед них, як би ви описали вашу 92 00:05:10,290 --> 00:05:12,040 рівень комфорту на сьогоднішній день? 93 00:05:12,040 --> 00:05:14,450 Там немає жорсткого, швидкого правила щодо того, хто, в якому відро. 94 00:05:14,450 --> 00:05:17,170 Це просто така штука, що ви, мабуть, знаєте, якщо ви 95 00:05:17,170 --> 00:05:20,280 Серед тих, хто менш комфортно чи ні. 96 00:05:20,280 --> 00:05:21,350 >> І тепер, покрокові керівництва. 97 00:05:21,350 --> 00:05:24,020 Специфікація проблема набору на цьому тижні, як стандартних, 98 00:05:24,020 --> 00:05:28,560 і хакерських видання, так, зараз на cs50.net як зараз. 99 00:05:28,560 --> 00:05:31,500 І ви побачите, що перший з цих видань, 100 00:05:31,500 --> 00:05:33,940 Standard Edition щотижня, супроводжуються те, що ми 101 00:05:33,940 --> 00:05:36,550 дзвоніть код керівництві сесії на чолі з одним з 102 00:05:36,550 --> 00:05:39,100 викладанні курсу стипендіатів для Вас через, забезпечують 103 00:05:39,100 --> 00:05:42,290 Поради по, і ви отримаєте вниз, особливий шлях, коли мова йде 104 00:05:42,290 --> 00:05:44,150 для початку ці проблеми множин. 105 00:05:44,150 --> 00:05:46,790 Таким чином, з кожною з цих проблемних встановлює, якщо ви ніколи не бажаючих 106 00:05:46,790 --> 00:05:50,250 для себе, де я можу почати, ви починаєте з цим 107 00:05:50,250 --> 00:05:50,890 покрокові керівництва. 108 00:05:50,890 --> 00:05:53,450 І справді, дозвольте мені представити Zamyla Чан, це 109 00:05:53,450 --> 00:05:55,870 викладання році людина, яка буде керувати кожним 110 00:05:55,870 --> 00:05:56,910 одного з цих проходжень. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Оплески] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: О, привіт, всім. 114 00:06:03,975 --> 00:06:05,130 Мене звати Zamyla. 115 00:06:05,130 --> 00:06:08,250 Я молодший навчався на інженера в Winthrop будинку. 116 00:06:08,250 --> 00:06:10,890 Але я намагаюся і встановити за багато комп'ютерні науки курси, як я 117 00:06:10,890 --> 00:06:13,350 може, саме тому я дуже радий бути ведучим цього 118 00:06:13,350 --> 00:06:14,590 рік покрокові керівництва. 119 00:06:14,590 --> 00:06:16,950 Проходження, для мене були невід'ємною частиною мого CS50 120 00:06:16,950 --> 00:06:17,910 досвід. 121 00:06:17,910 --> 00:06:22,710 У керівництві для кожної р-безліч, ми пройдемо 122 00:06:22,710 --> 00:06:25,580 Проблема встановлені разом, дивитися на проблеми, вид 123 00:06:25,580 --> 00:06:27,360 розділити їх на керовані укусів. 124 00:06:27,360 --> 00:06:28,990 Я дам вам поради, методи, для отримання 125 00:06:28,990 --> 00:06:30,820 до кінця і приступити до роботи. 126 00:06:30,820 --> 00:06:33,510 Я сподіваюся побачити всіх вас на покрокові керівництва. 127 00:06:33,510 --> 00:06:34,720 Якщо ви не можете зробити це в обличчя, то 128 00:06:34,720 --> 00:06:36,580 будь ласка, мелодію в Інтернеті. 129 00:06:36,580 --> 00:06:36,840 >> DAVID Малан: Відмінно. 130 00:06:36,840 --> 00:06:37,950 Спасибі, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Так розумію, що покрокових посібників, дійсно, в п'ятницю 132 00:06:40,870 --> 00:06:43,110 вдень, але це навмисно дизайну, так що 133 00:06:43,110 --> 00:06:45,750 навіть якщо ви не хочете відвідувати заняття в п'ятницю 134 00:06:45,750 --> 00:06:48,490 Вдень, відео буде все швидше більш 135 00:06:48,490 --> 00:06:48,990 у вихідні дні. 136 00:06:48,990 --> 00:06:51,880 Так розумію, що cs50.net буде все в Zamyla 137 00:06:51,880 --> 00:06:53,130 покрокові керівництва. 138 00:06:54,800 --> 00:06:56,890 І що є сьогоднішня дата і час, 3:00 PM 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 І деякі з навчанні стипендіатів також підготували 141 00:07:00,080 --> 00:07:03,250 деякі зауваження для вас заочно, щоб дати вам трохи 142 00:07:03,250 --> 00:07:06,760 точки зору про те, що їх досвід та вступ до 143 00:07:06,760 --> 00:07:08,990 виходячи з CS50 був. 144 00:07:08,990 --> 00:07:11,250 Таким чином, якщо ми могли б тьмяне світло на мить, я даю вам 145 00:07:11,250 --> 00:07:18,100 Деякі із співробітників CS50 в. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: Я взяв CS50 в минулому році, на першому курсі в 147 00:07:20,440 --> 00:07:22,880 впасти, і це абсолютно підірвав мій розум. 148 00:07:22,880 --> 00:07:25,090 Я ніколи не брав ніякої програмування класів і колись, 149 00:07:25,090 --> 00:07:26,380 і ніколи не прийшов з будь-якого комп'ютера науки 150 00:07:26,380 --> 00:07:27,320 досвіду. 151 00:07:27,320 --> 00:07:29,240 І тільки я почув шум з приводу класу і 152 00:07:29,240 --> 00:07:30,050 вирішив прийняти його. 153 00:07:30,050 --> 00:07:31,780 >> JULIA Мітельман: Це було дійсно весело, дуже цікавим. 154 00:07:31,780 --> 00:07:33,480 Я до сих пір, і по сей день - 155 00:07:33,480 --> 00:07:36,560 Я тільки недавно побачила в мене є дискета, що Давид дав нам 156 00:07:36,560 --> 00:07:38,140 на наш перший день лекцій. 157 00:07:38,140 --> 00:07:40,020 Я повісив його на стіну. 158 00:07:40,020 --> 00:07:42,410 Це, напевно, трохи гальмівної, але я висів на моїй 159 00:07:42,410 --> 00:07:46,930 стіни в класі в якості нагадування про те, як прохолодно було. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: Це так ніяково. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: Комп'ютерні науки є те, що ви 162 00:07:50,770 --> 00:07:52,370 повинні спробувати, навіть якщо ви не з тих, 163 00:07:52,370 --> 00:07:54,980 традиційної науки. 164 00:07:54,980 --> 00:07:58,510 Це власний досвід, і CS50 буде переконатися, що ви 165 00:07:58,510 --> 00:08:01,520 підтримується також через нього з його ціла армія TFS. 166 00:08:01,520 --> 00:08:03,700 >> ALI Нама: Я прийняв це як на першому курсі, і тому я зробив багато 167 00:08:03,700 --> 00:08:04,215 нових друзів. 168 00:08:04,215 --> 00:08:07,170 Я також познайомився з цим всю концентрацію і 169 00:08:07,170 --> 00:08:10,770 Весь інженерній школі, і я дуже рекомендую його 170 00:08:10,770 --> 00:08:14,360 і вітати Вас на нашому CS50 сім'ї. 171 00:08:14,360 --> 00:08:17,510 >> Янів YACOBY: CS50 тільки навчить вас, як використовувати інструменти 172 00:08:17,510 --> 00:08:19,210 , Які є широко доступними. 173 00:08:19,210 --> 00:08:21,840 Вам просто потрібен ноутбук, необхідно веб-браузер, і ви 174 00:08:21,840 --> 00:08:26,030 потрібно навчитися писати код, і ви дійсно можете побудувати 175 00:08:26,030 --> 00:08:27,400 акуратні речі. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: Це так здорово мати можливість зробити щось 177 00:08:31,660 --> 00:08:34,580 і є люди використовують його, а люди це бачать, і це 178 00:08:34,580 --> 00:08:35,900 Що я дійсно люблю про це. 179 00:08:35,900 --> 00:08:37,429 >> Тім Маклафлін: - почуття спільності, я думаю, в цьому 180 00:08:37,429 --> 00:08:39,470 звичайно, більше, ніж будь-який інший курс я взяв до цих пір. 181 00:08:39,470 --> 00:08:41,350 Ви не просто з іншого - 182 00:08:41,350 --> 00:08:42,740 Ви не заповненням іншим вимогам. 183 00:08:42,740 --> 00:08:45,310 Ви не просто збирається лекції і збирається розділі. 184 00:08:45,310 --> 00:08:49,630 Але ви робите тонни речей, які все 185 00:08:49,630 --> 00:08:51,560 програмування та все про технології, але це не 186 00:08:51,560 --> 00:08:53,090 дійсно відчуваю, що клас більшу частину часу. 187 00:08:53,090 --> 00:08:55,012 >> TRAVIS DOWNS: І в перший день, вони роздали торт, і 188 00:08:55,012 --> 00:08:56,215 Я був миттєво розпроданий. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: Безкоштовні солодощі та піцу. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - незалежно від ваших інтересів рівні, я думаю, 191 00:08:59,820 --> 00:09:05,170 що CS50, ви будете мати задоволення, і ви будете інтелектуально 192 00:09:05,170 --> 00:09:06,070 стимулюється. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-СМІТ: Це завжди вечірці в класі, і це 194 00:09:07,926 --> 00:09:09,990 вечірка щоночі працюють над вашим р-безліч. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: Кожен раз, коли ви закінчите проблема набору, ви 196 00:09:11,880 --> 00:09:13,710 буде почувати себе, як ви закінчили проект. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Це був перший рік, і я зробив покупки. 198 00:09:16,580 --> 00:09:19,030 У мене були чотири класи готові, і я був в Annenberg. 199 00:09:19,030 --> 00:09:21,670 І я наткнутися на одного, і він говорить, агов, я роблю покупки 200 00:09:21,670 --> 00:09:24,330 цього класу називають CS50, і ви повинні піти зі мною. 201 00:09:24,330 --> 00:09:28,150 Закінчилося тим, що, що осінь, а після цього класу, я 202 00:09:28,150 --> 00:09:30,510 подумав, що я збираюся неповнолітнього в CS. 203 00:09:30,510 --> 00:09:33,760 Але от я, через три роки, ще навчаючись комп'ютера 204 00:09:33,760 --> 00:09:36,680 наука і фактично роблять це в якості основної, і я любив кожну 205 00:09:36,680 --> 00:09:37,780 Момент його. 206 00:09:37,780 --> 00:09:39,030 >> ROB Боуден: я поняття не маю. 207 00:09:46,408 --> 00:09:48,060 >> ALI Нама: Давайте подивимося. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: Божевілля. 209 00:09:49,200 --> 00:09:50,610 >> Виступаючий 1: Я відчуваю, що я був би дуже кліше. 210 00:09:50,610 --> 00:09:52,530 Я просто кажу, начебто, дивний. 211 00:09:52,530 --> 00:09:53,540 >> Янів YACOBY: Доступність. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: Безкоштовні солодощі та піцу. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: Не можу відмовити класу, який роздає торт. 214 00:09:57,310 --> 00:09:58,510 >> Тім Маклафлін: Енергетика. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Шехават: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB Боуден: Дозвольте мені придумати відповідь. 217 00:10:02,636 --> 00:10:04,480 Я думаю, що є щось. 218 00:10:04,480 --> 00:10:07,092 О, боже. 219 00:10:07,092 --> 00:10:13,370 Так, Роб мене звуть Боуден, і це CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Оплески] 221 00:10:20,810 --> 00:10:23,390 DAVID Малан: Гаразд, давайте почнемо малювати картину 222 00:10:23,390 --> 00:10:26,230 напрямки, в яких ми можемо піти, і давайте познайомимося 223 00:10:26,230 --> 00:10:28,190 ця концепція відома як тут псевдокод. 224 00:10:28,190 --> 00:10:29,560 Так псевдокоді це не програмування 225 00:10:29,560 --> 00:10:30,810 Мова сам по собі. 226 00:10:30,810 --> 00:10:33,250 У цьому немає нічого технічних сама по собі, але це всього лише свого роду 227 00:10:33,250 --> 00:10:36,490 загальний спосіб виразити себе досить точно, 228 00:10:36,490 --> 00:10:39,730 алгоритмічно досить, досить процедурно, але без 229 00:10:39,730 --> 00:10:42,570 турбуючись про те, яку мову ви вираженні 230 00:10:42,570 --> 00:10:43,150 себе дюйма 231 00:10:43,150 --> 00:10:46,280 Це деякі моделі англійської мови та мов програмування з 232 00:10:46,280 --> 00:10:48,790 яке вам пощастило бути знайомим, так що ми можемо почати 233 00:10:48,790 --> 00:10:50,600 написання такого роду речі, як ми йдемо. 234 00:10:50,600 --> 00:10:54,450 І справді, Йосип, я можу позичити вам на сцену, щоб бути 235 00:10:54,450 --> 00:10:55,490 писец тут? 236 00:10:55,490 --> 00:11:00,130 Я пішов вперед тут заздалегідь і забув надіти 237 00:11:00,130 --> 00:11:02,920 на деяких шкарпеток сьогодні, і це буде серед наших більш 238 00:11:02,920 --> 00:11:03,780 смішні приклади. 239 00:11:03,780 --> 00:11:04,580 >> Тепер, ти мені потрібен тут. 240 00:11:04,580 --> 00:11:05,630 Я зроблю шкарпетки частина. 241 00:11:05,630 --> 00:11:08,040 Отже, у нас є трохи блокнота. 242 00:11:08,040 --> 00:11:09,940 Це буквально TextEdit в Mac. 243 00:11:09,940 --> 00:11:12,270 Ми насправді не збирався написати працюючу програму, але 244 00:11:12,270 --> 00:11:14,220 ми тільки збираємося почати накидати на основі псевдокод 245 00:11:14,220 --> 00:11:17,830 по деяким порадам ви надаєте мене тут. 246 00:11:17,830 --> 00:11:20,760 Так ось мій купу шкарпеток будинку. 247 00:11:20,760 --> 00:11:23,320 У мене немає шкарпеток, коли я прокидаюся вранці, і ми тепер 248 00:11:23,320 --> 00:11:26,280 потрібно написати програму, алгоритм роду, з яким 249 00:11:26,280 --> 00:11:27,900 щоб отримати ці шкарпетки на ногах. 250 00:11:27,900 --> 00:11:30,860 І на цьому шляху, давайте подивимося, якщо ми спіткнутися, або зіткнутися, 251 00:11:30,860 --> 00:11:32,860 деякі з ідей, які ви будете мати, щоб почати 252 00:11:32,860 --> 00:11:35,470 думати про набагато більш серйозно, при програмуванні 253 00:11:35,470 --> 00:11:37,950 щоб ваші програми не поводяться зовсім по призначенню. 254 00:11:37,950 --> 00:11:39,580 >> Так що я сиджу тут. 255 00:11:39,580 --> 00:11:41,180 У мене є купа шкарпеток. 256 00:11:41,180 --> 00:11:43,780 Що перше, що розумне людська істота буде 257 00:11:43,780 --> 00:11:46,600 робити, якщо метою є покласти на пару шкарпеток? 258 00:11:46,600 --> 00:11:49,190 Хтось дав мені один крок, і тільки один крок. 259 00:11:49,190 --> 00:11:49,796 Так? 260 00:11:49,796 --> 00:11:50,690 АУДИТОРІЯ: Зігніть вниз. 261 00:11:50,690 --> 00:11:54,290 DAVID Малан: нагнутися, ладно. 262 00:11:54,290 --> 00:11:55,540 Крок другий. 263 00:11:59,975 --> 00:12:00,645 Крок другий. 264 00:12:00,645 --> 00:12:01,840 АУДИТОРІЯ: Підніміть свій носок. 265 00:12:01,840 --> 00:12:03,220 DAVID Малан: Підніміть свій носок. 266 00:12:03,220 --> 00:12:07,610 Отже, невелике двозначності тут, і це є одним з перших 267 00:12:07,610 --> 00:12:09,380 каменем спотикання, що ми повинні свідомо 268 00:12:09,380 --> 00:12:10,290 зустрічаємося тут. 269 00:12:10,290 --> 00:12:14,110 Це трохи неоднозначним, так забрати свій носок. 270 00:12:14,110 --> 00:12:17,425 Добре, я візьму це одне, а комп'ютер, розуміють, всього 271 00:12:17,425 --> 00:12:20,420 біт, не матиме такого роду людського інстинкту просто 272 00:12:20,420 --> 00:12:21,490 вибрати найближчий до вас. 273 00:12:21,490 --> 00:12:23,590 Ми збираємося мати, щоб почати, незабаром, висловлюючи 274 00:12:23,590 --> 00:12:24,610 себе більш точно. 275 00:12:24,610 --> 00:12:26,600 >> Гаразд, другий крок, це забрати ваші шкарпетки. 276 00:12:26,600 --> 00:12:27,520 Ми візьмемо його. 277 00:12:27,520 --> 00:12:28,620 Крок третій. 278 00:12:28,620 --> 00:12:29,532 У задній частині. 279 00:12:29,532 --> 00:12:30,900 АУДИТОРІЯ: Знайти підходящу пару. 280 00:12:30,900 --> 00:12:32,060 DAVID Малан: Знайти підходящу пару. 281 00:12:32,060 --> 00:12:34,740 Отже, це добре. 282 00:12:34,740 --> 00:12:35,650 Я повинен був вибрати цей носок. 283 00:12:35,650 --> 00:12:39,200 Таким чином, метою є знайти підходящий носок, зараз, але те, що 284 00:12:39,200 --> 00:12:39,990 що це значить? 285 00:12:39,990 --> 00:12:42,130 Розумного людської істоти, як і в середу, коли я тільки 286 00:12:42,130 --> 00:12:44,700 знав, як знайти Mike Smith в телефонній книзі, тільки вид 287 00:12:44,700 --> 00:12:45,640 пішов зі своїм інстинктам. 288 00:12:45,640 --> 00:12:49,220 Але тут, це очевидно, що це носок тут, але комп'ютер 289 00:12:49,220 --> 00:12:51,350 Не буде так інстинктивно. 290 00:12:51,350 --> 00:12:53,830 Комп'ютер буде мати набір бітів, як ми 291 00:12:53,830 --> 00:12:55,380 обговорюватися в середу, і ті 292 00:12:55,380 --> 00:12:56,710 організовано якось в пам'яті. 293 00:12:56,710 --> 00:13:00,400 Але справа в тому, що комп'ютер має тільки здатність 294 00:13:00,400 --> 00:13:03,390 дивитися на речі по одній за раз, і справді, навіть ми 295 00:13:03,390 --> 00:13:05,980 люди - навіть якщо він відчуває, як я подивився вниз і розкол 296 00:13:05,980 --> 00:13:08,900 Секунду опісля я знаю, де носок, мій мозок і очі 297 00:13:08,900 --> 00:13:12,000 Імовірно зробив швидкий знежирене тих шкарпетках, а потім замкненому 298 00:13:12,000 --> 00:13:13,400 на кожне питання. 299 00:13:13,400 --> 00:13:15,780 >> Таким чином, якщо ми будемо все більш цілеспрямованими тепер, як комп'ютер, 300 00:13:15,780 --> 00:13:17,780 Як мені знайти цього підходящу пару? 301 00:13:17,780 --> 00:13:18,890 Ну, у нас є для перебору. 302 00:13:18,890 --> 00:13:21,440 Ми повинні, можливо, цикл по цій мішанині шкарпетки 303 00:13:21,440 --> 00:13:25,760 підлога якої я кажу щось на зразок ДЛЯ КОЖНОГО носок, підняти його 304 00:13:25,760 --> 00:13:30,195 вгору, а якщо ж форму і розміри, як і інші одиниці, то 305 00:13:30,195 --> 00:13:32,150 точка, точка, точка, ми будемо продовжувати цю історію. 306 00:13:32,150 --> 00:13:34,430 Таким чином, для кожного носка, тому я піднімаю це. 307 00:13:34,430 --> 00:13:36,520 Я перевіряю це одно це. 308 00:13:36,520 --> 00:13:38,250 Це не так, тому я відклав боку. 309 00:13:38,250 --> 00:13:39,220 Тоді я ітерації знову. 310 00:13:39,220 --> 00:13:40,340 Це один рівними? 311 00:13:40,340 --> 00:13:42,010 Ні, це не так, тому я відклав її вбік. 312 00:13:42,010 --> 00:13:42,710 Чи є це? 313 00:13:42,710 --> 00:13:43,200 Ні. 314 00:13:43,200 --> 00:13:43,670 Цей? 315 00:13:43,670 --> 00:13:44,520 Ні, і так далі. 316 00:13:44,520 --> 00:13:48,730 І, нарешті, сподіваюся, я буду зіткнутися з цією носок тут. 317 00:13:48,730 --> 00:13:51,350 Так що, якщо це той же форми, розміру, візьміть його. 318 00:13:51,350 --> 00:13:53,980 >> А тепер, що б бути наш наступний крок тут? 319 00:13:53,980 --> 00:13:54,402 Так? 320 00:13:54,402 --> 00:13:56,090 АУДИТОРІЯ: Визначити праве від лівого. 321 00:13:56,090 --> 00:13:58,980 DAVID Малан: Добре, визначити праву і ліву, так 322 00:13:58,980 --> 00:14:01,870 На щастя, такого роду робіт. 323 00:14:01,870 --> 00:14:04,020 Трохи симетричний, або я просто носити їх таким чином. 324 00:14:04,020 --> 00:14:07,020 Гаразд, я визначив права. 325 00:14:07,020 --> 00:14:09,980 І тепер, перш ніж ми почнемо, дозвольте мені зазначити, що Йосип 326 00:14:09,980 --> 00:14:12,890 робили тут як свого роду розбираються програміста. 327 00:14:12,890 --> 00:14:15,800 Отже, ще раз, немає ніяких один із способів зробити це, але тільки за межами 328 00:14:15,800 --> 00:14:18,480 Нумерація рядків, Йосип вже почали це робити 329 00:14:18,480 --> 00:14:19,460 начебто відступу. 330 00:14:19,460 --> 00:14:21,950 Дійсно, це дуже поширена конвенції в галузі програмування, 331 00:14:21,950 --> 00:14:26,110 яким Коли ви робите щось ітераційний, цикл стилю, як 332 00:14:26,110 --> 00:14:28,480 Ми подразумевающее з англійської фрази "для кожного 333 00:14:28,480 --> 00:14:31,090 шкарпеток, "конвенція в псевдокоді і, як ми побачимо, 334 00:14:31,090 --> 00:14:33,410 нормальні мови програмування, це просто абзац. 335 00:14:33,410 --> 00:14:36,240 Натисніть пробіл кілька разів, натисніть клавішу Tab і т.п., 336 00:14:36,240 --> 00:14:40,660 так що вкладені під "Для кожного носка" є шматок 337 00:14:40,660 --> 00:14:43,430 Речі, які ви повинні зробити в результаті цього циклу. 338 00:14:43,430 --> 00:14:45,940 Так от все, що передачі семантично. 339 00:14:45,940 --> 00:14:48,620 Тепер Між тим, "Якщо це такої ж форми і розміру," 340 00:14:48,620 --> 00:14:51,590 Те, що "Візьміть його" з відступом надалі просто означає, що 341 00:14:51,590 --> 00:14:54,370 це єдина річ, яку ви повинні зробити, якщо ця умова, 342 00:14:54,370 --> 00:14:59,770 якщо це галузь, яка розвилці доріг, насправді правда. 343 00:14:59,770 --> 00:15:02,130 >> Так що тепер тут, ми знаходимося на четвертому етапі, визначити праву і ліву. 344 00:15:02,130 --> 00:15:03,410 Я визначені права. 345 00:15:03,410 --> 00:15:05,150 Дайте мені Крок п'ятий. 346 00:15:05,150 --> 00:15:07,880 І технічно, ми могли б дійсно назвати 347 00:15:07,880 --> 00:15:09,510 для кожної речі - 348 00:15:09,510 --> 00:15:11,450 Ви, ймовірно, слід нумерувати всі рядки, якщо 349 00:15:11,450 --> 00:15:12,190 ми збираємося це зробити. 350 00:15:12,190 --> 00:15:14,006 Йосип: [нерозбірливо] 351 00:15:14,006 --> 00:15:14,610 DAVID Малан: [нерозбірливо]? 352 00:15:14,610 --> 00:15:16,070 Гаразд, добре, добре, ми зробимо це ваш шлях. 353 00:15:16,070 --> 00:15:19,590 Гаразд, так що крок п'яти років, як ми це робимо правий носок? 354 00:15:19,590 --> 00:15:22,310 Як ми можемо перейти до наступного, тут? 355 00:15:22,310 --> 00:15:22,730 Так? 356 00:15:22,730 --> 00:15:24,300 АУДИТОРІЯ: Підніміть праву ногу. 357 00:15:24,300 --> 00:15:27,100 DAVID Малан: Підніміть праву ногу, ладно. 358 00:15:27,100 --> 00:15:29,330 Крок шість? 359 00:15:29,330 --> 00:15:30,728 Швидко. 360 00:15:30,728 --> 00:15:31,202 Так. 361 00:15:31,202 --> 00:15:33,100 АУДИТОРІЯ: Знайти відкритий кінець носка. 362 00:15:33,100 --> 00:15:34,440 DAVID Малан: Добре, знайти відкритий кінець носка. 363 00:15:34,440 --> 00:15:34,840 Так добре. 364 00:15:34,840 --> 00:15:37,180 Так от, якщо чесно, дуже поширений інстинкт буде просто 365 00:15:37,180 --> 00:15:39,880 покласти на правий носок, але це теж досить неоднозначно. 366 00:15:39,880 --> 00:15:42,750 Якщо комп'ютер або людина точно знає, що це означає, 367 00:15:42,750 --> 00:15:45,160 він не буде виконувати, що, так от, у мене є 368 00:15:45,160 --> 00:15:46,520 знайдено відкриття акції. 369 00:15:46,520 --> 00:15:48,222 Крок сім? 370 00:15:48,222 --> 00:15:49,700 АУДИТОРІЯ: натисніть пальцями ніг. 371 00:15:49,700 --> 00:15:51,070 DAVID Малан: Touch пальці. 372 00:15:51,070 --> 00:15:53,546 Отже, тепер ми йдемо - 373 00:15:53,546 --> 00:15:56,480 Гаразд, я збираюся взяти деякі вільності тут. 374 00:15:56,480 --> 00:15:57,110 Спасибі. 375 00:15:57,110 --> 00:15:59,210 Крок вісім? 376 00:15:59,210 --> 00:16:00,060 Покладіть на носок. 377 00:16:00,060 --> 00:16:02,060 Гаразд, так що тепер я, думаю, що ми досить близько, щоб сортувати прийняти 378 00:16:02,060 --> 00:16:03,480 цього будинку. 379 00:16:03,480 --> 00:16:05,980 Гаразд, так що це йде вгору. 380 00:16:05,980 --> 00:16:07,950 Я візьму деякі вільності з тим, що це означає насправді. 381 00:16:07,950 --> 00:16:08,920 Поставте шкарпетку. 382 00:16:08,920 --> 00:16:10,853 Гаразд, тепер кроці дев'ять? 383 00:16:10,853 --> 00:16:11,740 АУДИТОРІЯ: Покладіть ногу. 384 00:16:11,740 --> 00:16:12,510 DAVID Малан: Спасибо. 385 00:16:12,510 --> 00:16:15,610 Крок дев'ять, поклав ногу, і тепер ми можемо повторити. 386 00:16:15,610 --> 00:16:19,540 Таким чином, очевидно, тепер ми можемо йти в крок 10 і сказав виявлення 387 00:16:19,540 --> 00:16:21,960 залишив носок, але це мабуть вже зробили. 388 00:16:21,960 --> 00:16:24,100 >> І таким чином, я можу сортувати, повторіть ці кроки. 389 00:16:24,100 --> 00:16:25,260 Але такого роду виникає питання. 390 00:16:25,260 --> 00:16:28,100 До цього останній раз ми хотіли повторити щось, ми 391 00:16:28,100 --> 00:16:30,730 зробив це багаторазово, знову і знову, для 392 00:16:30,730 --> 00:16:32,660 Кожний цикл, так би мовити. 393 00:16:32,660 --> 00:16:36,420 Чи має сенс використовувати цикл для того, щоб обробляти як 394 00:16:36,420 --> 00:16:38,470 лівий і правий носок? 395 00:16:38,470 --> 00:16:40,460 Тому що він відчуває, як ці операції є в значній мірі 396 00:16:40,460 --> 00:16:43,090 ідентичними, за винятком того, що один починається тут і одне 397 00:16:43,090 --> 00:16:44,850 Тут починається? 398 00:16:44,850 --> 00:16:47,400 У нас цикл, або ж ми просто продовжувати писати кроків 399 00:16:47,400 --> 00:16:48,745 10, 11 і 12? 400 00:16:48,745 --> 00:16:50,540 АУДИТОРІЯ: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID Малан: Добре, так циклі. 402 00:16:52,240 --> 00:16:54,730 Я насправді сказав би просто продовжувати йти. 403 00:16:54,730 --> 00:16:55,720 Так чому ж це так? 404 00:16:55,720 --> 00:16:57,940 Ну, це насправді перший з наших неочевидним 405 00:16:57,940 --> 00:17:01,210 проектних рішень, а насправді, одна з метрик, з якими 406 00:17:01,210 --> 00:17:03,990 ми починаємо оцінювати, для себе і для вас, 407 00:17:03,990 --> 00:17:06,780 Якість програми, наскільки добре розроблена вона є. 408 00:17:06,780 --> 00:17:09,619 Ви зробили мінімальну кількість роботи, необхідної для 409 00:17:09,619 --> 00:17:12,480 отримати роботу швидше за все, або у вигляді 410 00:17:12,480 --> 00:17:15,430 Ваш час або в термінах часу роботи комп'ютера? 411 00:17:15,430 --> 00:17:17,589 Скільки операцій робить це бере, щоб виконати? 412 00:17:17,589 --> 00:17:20,180 Так що, можливо, це можливість для циклу, оскільки 413 00:17:20,180 --> 00:17:22,829 Як тільки я почала копіювання і вставки, як Йосип ефективно 414 00:17:22,829 --> 00:17:25,010 почнуть робити в момент, ти ніби витрачати 415 00:17:25,010 --> 00:17:27,140 час, і ти поводишся подвійно виразні. 416 00:17:27,140 --> 00:17:30,260 >> Але в той же час, це дійсно тільки два спеціальні 417 00:17:30,260 --> 00:17:31,890 випадках, вліво і вправо. 418 00:17:31,890 --> 00:17:34,930 І якщо раніше, я міг би мати 10 або 20 або більше шкарпетки 419 00:17:34,930 --> 00:17:37,960 купа, це безперечно має сенс не є 50 ліній 420 00:17:37,960 --> 00:17:40,180 Код кажучи перевірити цей носок, потім наступний, 421 00:17:40,180 --> 00:17:41,300 Потім наступний. 422 00:17:41,300 --> 00:17:43,450 Ось, це трохи менше, очевидно, і я б запропонував 423 00:17:43,450 --> 00:17:44,390 що ми могли б піти в будь-яку сторону. 424 00:17:44,390 --> 00:17:46,720 Ми можемо або, що цикл, хоча він тільки петлі 425 00:17:46,720 --> 00:17:50,620 в два рази, або ми можемо просто скопіювати і вставити трохи 426 00:17:50,620 --> 00:17:53,270 Тут для того, щоб отримати роботу. 427 00:17:53,270 --> 00:17:55,210 Але ця програма глючить, так би мовити. 428 00:17:55,210 --> 00:17:59,120 Він може мати деякі помилки, помилки, або кутовий випадках, так 429 00:17:59,120 --> 00:18:00,860 говорять, що ми дійсно не чекали. 430 00:18:00,860 --> 00:18:03,400 Нічого пішло не так на цей раз, але що пішло не так 431 00:18:03,400 --> 00:18:06,100 При виконанні цієї програми? 432 00:18:06,100 --> 00:18:07,040 АУДИТОРІЯ: Ви не маєте будь-які шкарпетки. 433 00:18:07,040 --> 00:18:08,980 >> DAVID Малан: Так не могло бути і шкарпетки існує взагалі. 434 00:18:08,980 --> 00:18:10,380 Так що давайте вважати, що кут випадок. 435 00:18:10,380 --> 00:18:14,670 Таким чином, якщо ми могли б прокрутити назад до першого кроку, так що крок один був 436 00:18:14,670 --> 00:18:16,540 нахилитися, так що перевірку. 437 00:18:16,540 --> 00:18:21,250 Крок другий, забрати свій носок, а потім знайти відповідні носок, 438 00:18:21,250 --> 00:18:22,420 визначити права. 439 00:18:22,420 --> 00:18:25,050 Ми ніби як зробили цілу купу припущень, і це, 440 00:18:25,050 --> 00:18:27,720 чесно кажучи, чому програма іноді краху. 441 00:18:27,720 --> 00:18:30,240 Якщо ви програміст, зробив деякі припущення, як 442 00:18:30,240 --> 00:18:33,000 звичайно, там буде шкарпетки або напевно є відбувається 443 00:18:33,000 --> 00:18:35,310 щоб залишити пам'ять у комп'ютері, звичайно, там збирається 444 00:18:35,310 --> 00:18:37,420 бути дискового простору залишилося на жорсткому диску - 445 00:18:37,420 --> 00:18:39,040 Ну, а якщо ви робите ці припущення, і це не так, 446 00:18:39,040 --> 00:18:41,880 У самому справі, реальність, яка знає, що іноді комп'ютер 447 00:18:41,880 --> 00:18:42,520 збираєтеся робити? 448 00:18:42,520 --> 00:18:44,450 А іноді, коли ви отримуєте обертовий куля пляжі або 449 00:18:44,450 --> 00:18:47,750 замерзлі вікна і т.п., ось саме тому, що деякі 450 00:18:47,750 --> 00:18:50,980 Програміст не припускав, ці так звані випадки кутку. 451 00:18:50,980 --> 00:18:53,050 Що ще могло піти не так у цій програмі? 452 00:18:53,050 --> 00:18:53,330 Так? 453 00:18:53,330 --> 00:18:55,950 >> АУДИТОРІЯ: Вам не доведеться праву ногу і ліву ногу. 454 00:18:55,950 --> 00:18:58,920 DAVID Малан: Гаразд, не може мати як праву ногу і 455 00:18:58,920 --> 00:19:01,940 Ліва нога, і тому ця програма не може бути універсально 456 00:19:01,940 --> 00:19:02,590 застосовні. 457 00:19:02,590 --> 00:19:03,658 Інші? 458 00:19:03,658 --> 00:19:05,650 Залу: Ви могли б узяв сироту носок. 459 00:19:05,650 --> 00:19:07,970 DAVID Малан: я б узяв сироту носок, так 460 00:19:07,970 --> 00:19:11,250 незбіжних носок, який просто не має братів і сестер, тому що в мене 461 00:19:11,250 --> 00:19:13,650 втратив його, він розривається, це в митті ще, і тому подібне. 462 00:19:13,650 --> 00:19:15,550 Так що, теж, насправді не були оброблені. 463 00:19:15,550 --> 00:19:15,790 Так? 464 00:19:15,790 --> 00:19:17,510 Залу: Ви, можливо, вже шкарпетки. 465 00:19:17,510 --> 00:19:19,050 DAVID Малан: Я, можливо, вже шкарпетки. 466 00:19:19,050 --> 00:19:20,080 Я насправді не перевірити. 467 00:19:20,080 --> 00:19:23,350 Якщо у вас немає шкарпеток, потім поступлю 468 00:19:23,350 --> 00:19:24,330 лінії один і два. 469 00:19:24,330 --> 00:19:24,980 А це може статися. 470 00:19:24,980 --> 00:19:26,880 Ви засинаєте з вашими носками, тощо, так 471 00:19:26,880 --> 00:19:28,860 , Що теж дуже розумним кутом випадок. 472 00:19:28,860 --> 00:19:29,630 А може бути, один іншого? 473 00:19:29,630 --> 00:19:31,310 Аудиторія: носок навиворіт. 474 00:19:31,310 --> 00:19:34,000 DAVID Малан: Так носок навиворіт, так що ми зробили жодної помилки 475 00:19:34,000 --> 00:19:35,330 перевірки, коротше кажучи. 476 00:19:35,330 --> 00:19:38,550 Ми не перевіряли, якщо держава світу так, як ми очікували. 477 00:19:38,550 --> 00:19:41,310 Ми не перевіряли, якщо ми насправді знайшов те, що ми шукаємо. 478 00:19:41,310 --> 00:19:43,310 >> І хоча це є свого роду смішний приклад 479 00:19:43,310 --> 00:19:46,110 за участю шкарпетки, врешті-решт, це саме те, 480 00:19:46,110 --> 00:19:48,740 роду мислення необхідно мати при написанні програм, 481 00:19:48,740 --> 00:19:51,740 навіть у подряпин, а також в C, в JavaScript, в PHP, 482 00:19:51,740 --> 00:19:53,920 тому що в противному випадку, ваші програми будуть проявляти 483 00:19:53,920 --> 00:19:56,980 еквівалента, що обертання пляжний волейбол або просто дати 484 00:19:56,980 --> 00:19:58,210 неточні результати. 485 00:19:58,210 --> 00:20:00,250 Так що велике спасибі тут, щоб наші писарем Джозефа. 486 00:20:00,250 --> 00:20:05,060 [Оплески] 487 00:20:05,060 --> 00:20:06,850 >> DAVID Малан: Добре, так в чому ж, в 488 00:20:06,850 --> 00:20:08,230 Дійсно, комп'ютерна програма? 489 00:20:08,230 --> 00:20:09,670 Ну, давайте кинемо швидкий погляд на 490 00:20:09,670 --> 00:20:11,100 Представник тут. 491 00:20:11,100 --> 00:20:15,260 Отже, це програма, написана на мові, званому C. З 492 00:20:15,260 --> 00:20:17,830 досить старий ці дні, але багато нові мови будуються 493 00:20:17,830 --> 00:20:18,460 на ньому. 494 00:20:18,460 --> 00:20:21,180 Дійсно, PHP, один з веб-орієнтованих мов, які ми будемо 495 00:20:21,180 --> 00:20:24,050 використовувати ближче до кінця семестру, сама по собі має те, що називається 496 00:20:24,050 --> 00:20:27,550 перекладач, програма, яка написана на C, але про це 497 00:20:27,550 --> 00:20:28,690 У багатьох тижнів. 498 00:20:28,690 --> 00:20:30,840 Але в цій програмі, а це що означає написати 499 00:20:30,840 --> 00:20:32,880 Програма, хоча і дуже простий. 500 00:20:32,880 --> 00:20:35,540 У нас є деякі досить загадкові синтаксису, але ви можете 501 00:20:35,540 --> 00:20:38,340 напевно, здогадалися, навіть якщо ви ніколи не програмували раніше, що 502 00:20:38,340 --> 00:20:39,750 це робить програма. 503 00:20:39,750 --> 00:20:43,640 В самом деле, я не знаю, що Printf є, але, звичайно, друкувати 504 00:20:43,640 --> 00:20:45,700 викликає в уяві ідею друкувати щось. 505 00:20:45,700 --> 00:20:48,590 А так да, ця програма в кінцевому рахунку, буде роздрукувати 506 00:20:48,590 --> 00:20:50,250 слова «Hello, World». 507 00:20:50,250 --> 00:20:53,390 >> Тепер, чи є у вас Mac або PC або Linux комп'ютері, шанси 508 00:20:53,390 --> 00:20:55,550 , По крайней мере, якщо ви завантажили деякі вільно 509 00:20:55,550 --> 00:20:58,000 доступно програмне забезпечення, ви могли писати програми на 510 00:20:58,000 --> 00:21:00,310 свій ноутбук протягом досить довгого часу тепер. 511 00:21:00,310 --> 00:21:03,040 У Mac OS, наприклад, є така програма під назвою 512 00:21:03,040 --> 00:21:05,340 Термінал, який поставляється з Mac, які, як правило, у вашій 513 00:21:05,340 --> 00:21:07,550 Утиліти папку, і вона взагалі відкривається чорно- 514 00:21:07,550 --> 00:21:09,820 білому або білі і чорні вікна, на якому у вас є 515 00:21:09,820 --> 00:21:11,410 підкажуть, на якому можна вводити команди. 516 00:21:11,410 --> 00:21:13,060 Так що це насправді нагадують те, що комп'ютери 517 00:21:13,060 --> 00:21:15,100 було раніше графічний користувальницький 518 00:21:15,100 --> 00:21:16,710 інтерфейси, GUI, прийшли разом. 519 00:21:16,710 --> 00:21:19,200 Тепер, в Windows, у вас є аналогічний механізм у вигляді 520 00:21:19,200 --> 00:21:20,130 з командного рядка. 521 00:21:20,130 --> 00:21:23,430 >> Але те, що я збираюся зробити, так це відкрити, скажімо, 522 00:21:23,430 --> 00:21:26,580 TextEdit знову, так само програми ми використовували для 523 00:21:26,580 --> 00:21:28,870 псевдокоді хвилину тому, і я збираюся йти вперед і 524 00:21:28,870 --> 00:21:30,080 написати свою першу програму. 525 00:21:30,080 --> 00:21:34,030 Включити stdio.h, що б це ні коштів, Int основний 526 00:21:34,030 --> 00:21:36,880 порожнеча, що б це ні коштів, а потім в середині тут, 527 00:21:36,880 --> 00:21:40,560 Е ("Hello, World."). І тоді близько цитати, 528 00:21:40,560 --> 00:21:42,340 закрити хлопець, крапка з комою. 529 00:21:42,340 --> 00:21:44,460 Тепер я збираюся йти вперед і просто натиснути Command-S. Я збираюся 530 00:21:44,460 --> 00:21:47,650 йти вперед і зберегти це як hello.c, тому конвенції в 531 00:21:47,650 --> 00:21:50,530 світ програмування C є ім'я файлу з точкою. 532 00:21:50,530 --> 00:21:52,880 Я збираюся просто покласти в домашній каталог Джона Гарварда, 533 00:21:52,880 --> 00:21:56,370 Тут, натисніть кнопку Зберегти, і тепер я збираюся перейти до цього 534 00:21:56,370 --> 00:21:59,110 вікно терміналу, який знову це чорно-білі рядки 535 00:21:59,110 --> 00:22:00,860 де я можу виконувати команди. 536 00:22:00,860 --> 00:22:04,550 >> Я можу запускати програми, ввівши своє ім'я, а не 537 00:22:04,550 --> 00:22:06,710 подвійному клацанню значків в звичайному сенсі. 538 00:22:06,710 --> 00:22:10,590 Але справа в тому, про C в тому, що мова, як З першого 539 00:22:10,590 --> 00:22:13,150 приходить в такому вигляді, то, що називається початковим кодом. 540 00:22:13,150 --> 00:22:15,400 Те, що виглядає трохи як англійська мова, але це 541 00:22:15,400 --> 00:22:17,980 Виразно менш, як англійський, ніж псевдокод Йосипа 542 00:22:17,980 --> 00:22:18,930 Хвилину тому. 543 00:22:18,930 --> 00:22:20,560 Це трохи більш складних. 544 00:22:20,560 --> 00:22:22,830 Здається слідувати деяким візерунками або правил. 545 00:22:22,830 --> 00:22:25,300 Той факт, що у мене є фігурні дужки, крапки з комою, лапки, 546 00:22:25,300 --> 00:22:28,240 кутові дужки, відчуває, як комп'ютер прийшов з цією 547 00:22:28,240 --> 00:22:29,250 роду мову. 548 00:22:29,250 --> 00:22:32,010 Але якщо я піду, зараз, це вікно терміналу, я можу запустити 549 00:22:32,010 --> 00:22:35,250 команда, яка збирається перетворити вихідний код 550 00:22:35,250 --> 00:22:36,610 так званий об'єктний код. 551 00:22:36,610 --> 00:22:39,690 Це збирається конвертувати Англійська-подібний синтаксис для нулів 552 00:22:39,690 --> 00:22:41,760 і ті, ті ж самі види з нулів і одиниць, ми 553 00:22:41,760 --> 00:22:42,820 говорили про середовище. 554 00:22:42,820 --> 00:22:44,810 Тепер, я збираюся виконати команду називають Clang. 555 00:22:44,810 --> 00:22:47,750 Докладніше про це в найближчі тижні, але це програма з 556 00:22:47,750 --> 00:22:52,330 який я можу перетворити hello.c в цілу купу 557 00:22:52,330 --> 00:22:53,640 з нулів та одиниць. 558 00:22:53,640 --> 00:22:54,950 >> Тепер, я виконати цю команду. 559 00:22:54,950 --> 00:22:57,940 Я біг Clang, а потім я сказав собі працювати на цьому файлі 560 00:22:57,940 --> 00:23:00,630 називається hello.c, який я створив хвилину тому, і 561 00:23:00,630 --> 00:23:02,090 ніщо, здається, сталося. 562 00:23:02,090 --> 00:23:05,550 Але насправді, якщо б я понишпорив мій домашній каталог, я хотів би бачити 563 00:23:05,550 --> 00:23:09,620 що це нерозумно ім'ям a.out програма існує в даний час. 564 00:23:09,620 --> 00:23:12,250 Це просто ім'я за замовчуванням для програми при запису в 565 00:23:12,250 --> 00:23:15,140 С. Ми можемо змінити це в кінцевому підсумку, але a.out є 566 00:23:15,140 --> 00:23:18,340 Назва програми я просто перетворюються на нулі й одиниці. 567 00:23:18,340 --> 00:23:21,490 А тепер, що це нулі і одиниці, мій Mac, в даному випадку, або 568 00:23:21,490 --> 00:23:24,670 вашого ПК з Windows, можна зрозуміти ті біти, ті, 569 00:23:24,670 --> 00:23:25,410 нулів і одиниць. 570 00:23:25,410 --> 00:23:29,130 І тому, коли я вдарив Enter, я бачу "Hello, World!" 571 00:23:29,130 --> 00:23:31,270 >> Але це трохи баггі. 572 00:23:31,270 --> 00:23:34,110 Я не зовсім сказати "привіт, світ: повітря: - jharvard". Повітря 573 00:23:34,110 --> 00:23:35,020 ім'я мого комп'ютера. 574 00:23:35,020 --> 00:23:37,730 Jharvard це ім'я облікового запису, так що я чітко 575 00:23:37,730 --> 00:23:41,070 виключити з програми? 576 00:23:41,070 --> 00:23:42,480 Якісь рядки. 577 00:23:42,480 --> 00:23:45,150 Я не потрапив в еквіваленті Enter або повернення каретки, 578 00:23:45,150 --> 00:23:47,760 і це, знову ж таки, свідчить той факт, що комп'ютери можуть 579 00:23:47,760 --> 00:23:49,800 тільки те, що ви говорите їм зробити. 580 00:23:49,800 --> 00:23:52,400 І те, що я не говорив комп'ютера рухатися 581 00:23:52,400 --> 00:23:53,860 курсор на наступний рядок - 582 00:23:53,860 --> 00:23:55,200 ну, це, звичайно, не збираюся просто зробити це 583 00:23:55,200 --> 00:23:56,750 самовпевнено для мене. 584 00:23:56,750 --> 00:24:00,860 Так що, якщо я повертаюся до моєї програмі, і я кажу \ п - 585 00:24:00,860 --> 00:24:03,180 Таким чином, \ п, як ми скоро побачимо, це шлях 586 00:24:03,180 --> 00:24:06,910 представляють дивні речі, як символи нового рядка, речі 587 00:24:06,910 --> 00:24:08,840 які могли б бути результатом 588 00:24:08,840 --> 00:24:09,940 удару клавішу введення. 589 00:24:09,940 --> 00:24:11,730 Але зараз, просто знаю, що удари Enter ключ буде 590 00:24:11,730 --> 00:24:14,170 просто зробити наш код виглядає дивним, так що світ вирішив, ви знаєте, 591 00:24:14,170 --> 00:24:16,580 що, щоб тримати речі красивіше, щоб тримати його в одному рядку, давайте 592 00:24:16,580 --> 00:24:19,070 просто сказати \ п представляє нову лінію. 593 00:24:19,070 --> 00:24:22,260 Дозвольте мені збережіть свій файл, поверніться у вікно терміналу, і 594 00:24:22,260 --> 00:24:25,290 повторні a.out, Enter. 595 00:24:25,290 --> 00:24:28,374 Тим не менш помилки, але навіщо? 596 00:24:28,374 --> 00:24:29,750 >> АУДИТОРІЯ: [нерозбірливо] 597 00:24:29,750 --> 00:24:31,540 DAVID Малан: Так, так що мені потрібно перекомпілювати. 598 00:24:31,540 --> 00:24:34,610 Таким чином, для компіляції програми просто означає, перетворити його з джерела 599 00:24:34,610 --> 00:24:37,660 код, об'єктний код, вихідний код нулів і одиниць. 600 00:24:37,660 --> 00:24:40,830 Тепер, сам факт, що я вдарив зберегти в цьому TextEdit не має 601 00:24:40,830 --> 00:24:43,450 , Що стосуються тих нулів і одиниць, тому що в першу чергу необхідно 602 00:24:43,450 --> 00:24:48,260 Скажіть Clang агов, я змінив ці рядки коду, 603 00:24:48,260 --> 00:24:49,040 вихідний код. 604 00:24:49,040 --> 00:24:51,010 Вам необхідно відновити a.out. 605 00:24:51,010 --> 00:24:52,990 Ніщо, здається, сталося, але в комп'ютері, 606 00:24:52,990 --> 00:24:55,820 в командному рядку, так що говорити, коли нічого не відбувається, 607 00:24:55,820 --> 00:24:57,510 Зазвичай це означає, що все добре. 608 00:24:57,510 --> 00:24:59,040 Коли щось трапляється, це означає, 609 00:24:59,040 --> 00:25:00,420 Ви зіпсували, взагалі. 610 00:25:00,420 --> 00:25:04,020 >> Отже, давайте тепер переходимо до a.out, та й зараз, у мене є "привіт, 611 00:25:04,020 --> 00:25:04,440 світу ". 612 00:25:04,440 --> 00:25:05,990 А тепер, що про ці нулів і одиниць? 613 00:25:05,990 --> 00:25:07,520 Де, власне, такі? 614 00:25:07,520 --> 00:25:10,710 Ну, я не можу дійсно просто якась копатися дуже 615 00:25:10,710 --> 00:25:11,210 ефективно. 616 00:25:11,210 --> 00:25:12,650 Дозвольте мені відкрити TextEdit. 617 00:25:12,650 --> 00:25:14,060 Ось a.out. 618 00:25:14,060 --> 00:25:17,390 Дозвольте мені йти вперед і відкрити це, і це, мабуть, те, що моя 619 00:25:17,390 --> 00:25:19,080 Програма виглядає. 620 00:25:19,080 --> 00:25:21,570 Так що я відкрив, не hello.c, але a.out. 621 00:25:21,570 --> 00:25:23,960 Але це насправді не те, що моя програма насправді. 622 00:25:23,960 --> 00:25:26,450 Зрозуміло, що це свого роду буквених символів. 623 00:25:26,450 --> 00:25:28,670 Я не бачу ніяких нулів і одиниць, але це 624 00:25:28,670 --> 00:25:30,780 a.out, тому що це програма. 625 00:25:30,780 --> 00:25:33,540 Нулі й одиниці - але TextEdit, як випливає з назви, це 626 00:25:33,540 --> 00:25:37,130 так само, як Блокнот на Windows, це просто текстовий редактор, так що це 627 00:25:37,130 --> 00:25:39,730 заплутаною всі ці нулі і одиниці, як 628 00:25:39,730 --> 00:25:41,870 якби вони були, то які? 629 00:25:41,870 --> 00:25:43,380 ASCII символів. 630 00:25:43,380 --> 00:25:45,020 >> Так згадаємо у середу, ми просто прийшли до цього 631 00:25:45,020 --> 00:25:48,740 довільне відображення цифр, або бітів, на листи, що містять 632 00:25:48,740 --> 00:25:51,690 алфавіт і знаки пунктуації тощо. 633 00:25:51,690 --> 00:25:54,920 Таким чином, TextEdit, що це текстовий редактор спотворюючи 634 00:25:54,920 --> 00:25:57,270 ці моделі з нулів та одиниць, які повинні бути 635 00:25:57,270 --> 00:25:59,990 друк слова, як "привіт, світ". Це їх відображення 636 00:25:59,990 --> 00:26:02,150 як ASCII, і саме тому він виглядає трохи брудним. 637 00:26:02,150 --> 00:26:04,910 Тепер, є деякі натяки на правильність тут. 638 00:26:04,910 --> 00:26:08,090 Зверніть увагу, якщо я виділити, є натяк насправді "привіт, 639 00:26:08,090 --> 00:26:10,810 світу ", так що десь у цій програмі 640 00:26:10,810 --> 00:26:12,120 пропозиція, яку я написав. 641 00:26:12,120 --> 00:26:14,610 Але давайте йти вперед і тепер бачимо з іншою програмою. 642 00:26:14,610 --> 00:26:17,420 Це не той, який ми будемо використовувати, що часто, але він також поставляється з 643 00:26:17,420 --> 00:26:19,970 Mac і буде всередині CS50 приладу. 644 00:26:19,970 --> 00:26:23,940 Дозвольте мені йти вперед і відкрити за допомогою програми під назвою XXD. 645 00:26:23,940 --> 00:26:26,530 >> Назад в день, більшість програм були названі досить загадково: 646 00:26:26,530 --> 00:26:28,200 і тому тенденція продовжується. 647 00:26:28,200 --> 00:26:31,160 Але-B означає плюнути цю програму в двійковому вигляді. 648 00:26:31,160 --> 00:26:32,330 Не запустити його. 649 00:26:32,330 --> 00:26:35,770 Показати мені, як нулі і одиниці, і це C 650 00:26:35,770 --> 00:26:37,190 Програма, яку ми тільки що написали. 651 00:26:37,190 --> 00:26:39,920 Тепер, я, як людина тут, я чесно не знаю, що 652 00:26:39,920 --> 00:26:42,230 ці різні візерунки з нулів і одиниць представляють. 653 00:26:42,230 --> 00:26:45,320 Назад в день, я, з моїм перфокарт і т.п., буде 654 00:26:45,320 --> 00:26:48,080 насправді потрібно подивитися, що ці різні моделі 655 00:26:48,080 --> 00:26:51,560 01111000, насправді являють. 656 00:26:51,560 --> 00:26:54,390 Або ще гірше, я повинен був би зробити штампування або створення 657 00:26:54,390 --> 00:26:56,130 з цих моделей з нулів та одиниць. 658 00:26:56,130 --> 00:27:00,410 Але зараз, прийняти на віру, що процесор, Intel всередині, так 659 00:27:00,410 --> 00:27:03,440 говорити, всередині все наші комп'ютери в ці дні, знає, 660 00:27:03,440 --> 00:27:05,100 як інтерпретувати ці нулі й одиниці. 661 00:27:05,100 --> 00:27:07,010 А деякі нулі й одиниці означають друку. 662 00:27:07,010 --> 00:27:09,040 Деякі нулів і одиниць означає відтворення звуку. 663 00:27:09,040 --> 00:27:13,630 Деякі нулів і одиниць означає приймати користувальницький введення з клавіатури. 664 00:27:13,630 --> 00:27:15,960 Там всі види різних моделей, але ми, на щастя, 665 00:27:15,960 --> 00:27:19,680 як люди, тільки в загальних рисах потрібно турбуватися про програмування на 666 00:27:19,680 --> 00:27:21,270 це досить високому рівні. 667 00:27:21,270 --> 00:27:24,320 А в інших класах CS ви можете поринути глибше і подивитися 668 00:27:24,320 --> 00:27:26,820 на речі, як ці нулі і одиниці, або ще 669 00:27:26,820 --> 00:27:28,000 іншого ще. 670 00:27:28,000 --> 00:27:29,210 >> Отже, тепер давайте перетворимо це. 671 00:27:29,210 --> 00:27:32,550 Давайте рухатися дуже швидко від C і рухатися до чогось 672 00:27:32,550 --> 00:27:36,390 трохи більше втішливі, трохи більш цікавою, в тому, що 673 00:27:36,390 --> 00:27:39,340 ми можемо повернути нашу анімацію, звуки і т.п., 674 00:27:39,340 --> 00:27:40,940 ясно, уникнув нас в цьому 675 00:27:40,940 --> 00:27:42,480 досить примітивний інтерфейс. 676 00:27:42,480 --> 00:27:46,430 Так це ж програму в C може бути представлена ​​зараз в цьому 677 00:27:46,430 --> 00:27:50,060 Мова програмування називається подряпин наступним чином. 678 00:27:50,060 --> 00:27:54,230 Це еквівалент цієї програми привіт світ написані на 679 00:27:54,230 --> 00:27:57,370 цей стиль паззл мовою під назвою Scratch. 680 00:27:57,370 --> 00:28:00,600 Отже, дозвольте мені йти вперед і відкривати цю програму. 681 00:28:00,600 --> 00:28:01,850 Він знову закликав до подряпин. 682 00:28:01,850 --> 00:28:03,880 Це у вільному доступі, і це те ж саме ми 683 00:28:03,880 --> 00:28:05,120 розпочалася сьогодні на. 684 00:28:05,120 --> 00:28:07,790 >> Так що тут Scratch, і він розбивається на кілька 685 00:28:07,790 --> 00:28:09,700 різних частин. 686 00:28:09,700 --> 00:28:12,690 На самому верхньому правому куті, у нас є так звані стадії, і 687 00:28:12,690 --> 00:28:13,670 Дійсно, там печиво 688 00:28:13,670 --> 00:28:15,440 виконується тільки трохи назад. 689 00:28:15,440 --> 00:28:19,660 І на цьому етапі, що називається спрайт, символів або 690 00:28:19,660 --> 00:28:21,030 об'єктів або осіб. 691 00:28:21,030 --> 00:28:23,320 Це дійсно не має значення, як ви думаєте про них, але вони 692 00:28:23,320 --> 00:28:26,740 є програмованими, рухомих речей, і в цьому випадку, це 693 00:28:26,740 --> 00:28:30,730 програми, що наш студент написав має кілька пряників 694 00:28:30,730 --> 00:28:32,990 печиво, пару кругових печиво, цілий букет 695 00:28:32,990 --> 00:28:35,430 серця, цілу купу очок. 696 00:28:38,170 --> 00:28:42,420 Через це, він або вона може запрограмувати кожну з цих 697 00:28:42,420 --> 00:28:44,720 окремі символи окремо. 698 00:28:44,720 --> 00:28:46,480 >> Отже, що це означає для програмування цих персонажів? 699 00:28:46,480 --> 00:28:49,440 Добре, дозвольте мені йти вперед і натисніть на цю лівій руці печиво 700 00:28:49,440 --> 00:28:51,830 і перейдіть до лівої верхньої тут. 701 00:28:51,830 --> 00:28:53,670 У верхньому лівому мого екрану в даний час є 702 00:28:53,670 --> 00:28:55,280 так звані сценарії області. 703 00:28:55,280 --> 00:28:58,790 Це свого роду чистий аркуш, на початковому етапі, на якому я можу 704 00:28:58,790 --> 00:29:01,540 перетягнути шматочки головоломки, що, відверто кажучи, зробити 705 00:29:01,540 --> 00:29:03,020 саме те, що вони говорять. 706 00:29:03,020 --> 00:29:05,820 На самому верху цієї стопки шматочки головоломки є слово 707 00:29:05,820 --> 00:29:09,340 Коли Зелений прапор Натиснув, і якщо ви раніше не помічали, 708 00:29:09,340 --> 00:29:12,300 так, як я почав, що печиво пісня була натискання, в буквальному сенсі, 709 00:29:12,300 --> 00:29:13,320 зелений прапор. 710 00:29:13,320 --> 00:29:16,590 Так що паззл в лівому верхньому кутку є означає, що при 711 00:29:16,590 --> 00:29:19,780 людські кліки зелений прапор, продовжив робити 712 00:29:19,780 --> 00:29:21,110 Наступні речі. 713 00:29:21,110 --> 00:29:23,330 >> Тепер, що ж вони печиво продовжити робити? 714 00:29:23,330 --> 00:29:25,810 Я дійсно не знаю, як інтерпретувати це, але 715 00:29:25,810 --> 00:29:29,220 печиво мабуть встановити його канавці до нуля, то вона чекала 716 00:29:29,220 --> 00:29:31,740 трьох секунд, потім він змінив свої групи в одну, то 717 00:29:31,740 --> 00:29:33,590 почекав секунду, потім вона змінила свою 718 00:29:33,590 --> 00:29:35,100 паз назад до одного. 719 00:29:35,100 --> 00:29:37,373 І тоді це насправді виглядає трохи помилка, не повинно 720 00:29:37,373 --> 00:29:39,440 повинні змінити свій паз знову і знову, якщо це не 721 00:29:39,440 --> 00:29:43,380 змінюється в іншому місці, але це ряд кроків, це те, що 722 00:29:43,380 --> 00:29:46,800 диктувати поведінку даного печива. 723 00:29:46,800 --> 00:29:49,180 Так що давайте насправді прокрутити назад і не дивитися на те, 724 00:29:49,180 --> 00:29:50,430 настільки складного немає. 725 00:29:50,430 --> 00:29:52,260 Дозвольте мені йти вперед і перейдіть в меню Файл, Новий, 726 00:29:52,260 --> 00:29:53,560 і отримати чистого аркуша. 727 00:29:53,560 --> 00:29:56,590 >> Так що тепер, я дійсно є порожня область сценарій, порожня сцена, 728 00:29:56,590 --> 00:29:59,380 з нашої нуля спрайтом за замовчуванням, а в лівому верхньому 729 00:29:59,380 --> 00:30:01,670 на екрані у мене піддон всіх своїх 730 00:30:01,670 --> 00:30:03,400 доступних частин головоломки. 731 00:30:03,400 --> 00:30:06,300 І ми не будемо пройти через майже що багато з цих речей 732 00:30:06,300 --> 00:30:09,470 сьогодні, тому що, знову ж, більшість з них очевидні, але ми будемо 733 00:30:09,470 --> 00:30:12,370 спробувати класифікувати їх і вказати на схожість 734 00:30:12,370 --> 00:30:15,380 з цими мовами майбутнього, до якого ми будемо пірнати. 735 00:30:15,380 --> 00:30:19,180 А в лівому верхньому кутку ось перша Коли Зелений прапор натискання 736 00:30:19,180 --> 00:30:22,170 так що дозвольте мені перетягнути цей тут, зменшити небагато. 737 00:30:22,170 --> 00:30:25,780 І якщо я натискаю на зелений прапор, нічого не відбувається, тому що 738 00:30:25,780 --> 00:30:29,360 Я не надавав ніякого логіці, будь-яка заява, так би мовити, в 739 00:30:29,360 --> 00:30:31,040 , Що зелений прапор, так що дозвольте мені йти до 740 00:30:31,040 --> 00:30:32,500 Категорії сюди. 741 00:30:32,500 --> 00:30:34,840 Я в даний час в контрольній категорії. 742 00:30:34,840 --> 00:30:37,630 Я замість цього збирається спуститися на категорію виглядає, і 743 00:30:37,630 --> 00:30:39,970 є ціла купа речей, які говорять, що тут Скажіть, 744 00:30:39,970 --> 00:30:43,110 Подумайте, зміна кольору, Switch костюма. 745 00:30:43,110 --> 00:30:44,860 >> Так що ви можете робити дурниці з костюмами і 746 00:30:44,860 --> 00:30:45,870 звуки тощо. 747 00:30:45,870 --> 00:30:49,970 Дозвольте мені йти вперед і просто сказати Скажіть, а зараз помітила, як я перетягнути 748 00:30:49,970 --> 00:30:52,940 і відмовитися від цього шматочка, він захоче, щоб замкнутися 749 00:30:52,940 --> 00:30:55,010 у відповідну форму. 750 00:30:55,010 --> 00:30:58,020 Тому, коли я йду вперед і відпустив мою миша, вони замикають 751 00:30:58,020 --> 00:31:01,770 разом, і тепер, якщо я йду сюди і натисніть зелений прапор, 752 00:31:01,770 --> 00:31:05,910 Кішка ж насправді привітатися, тому що це те, що всередині 753 00:31:05,910 --> 00:31:06,980 цієї білої коробці. 754 00:31:06,980 --> 00:31:08,900 Ми незабаром побачимо, що це біле поле те, що називається 755 00:31:08,900 --> 00:31:10,250 Аргумент, або параметр. 756 00:31:10,250 --> 00:31:12,560 Це спосіб зміни поведінки, в даному випадку, 757 00:31:12,560 --> 00:31:15,070 паззл, але якщо я хочу сказати саме те, що я сказав, 758 00:31:15,070 --> 00:31:18,610 до, скажімо привіт, світ, тепер я можу повернутися сюди, 759 00:31:18,610 --> 00:31:21,990 Натисніть кнопку Play, і "привіт, світ" є те, що сказав. 760 00:31:21,990 --> 00:31:24,340 >> Таким чином, ми в буквальному сенсі програмування зараз. 761 00:31:24,340 --> 00:31:27,540 Це ще не все, що переконливих програми, але принаймні 762 00:31:27,540 --> 00:31:30,140 це трохи більш переконливим, ніж те, що виглядає, по крайней 763 00:31:30,140 --> 00:31:31,300 перший погляд, начебто цього. 764 00:31:31,300 --> 00:31:34,190 І ми можемо дуже швидко отримати все більш виразним 765 00:31:34,190 --> 00:31:36,600 тому що в Scratch, як і в інших мовах, є всі 766 00:31:36,600 --> 00:31:40,010 роду заяви, а не тільки говорити чи щось роздрукувати, але 767 00:31:40,010 --> 00:31:42,650 Ви можете робити речі, як очікування, як ми тільки що бачили 768 00:31:42,650 --> 00:31:44,240 печиво, деяка кількість секунд. 769 00:31:44,240 --> 00:31:46,440 Ви можете грати звуками в середовищі нуля тільки 770 00:31:46,440 --> 00:31:49,050 як ви можете в нормальних звукових програм гра комп'ютера. 771 00:31:49,050 --> 00:31:52,440 Ви можете перевірити, що називається логічних виразів. 772 00:31:52,440 --> 00:31:55,630 Так що тепер, давайте почнемо додати до нашого інструментарій деякі терміни 773 00:31:55,630 --> 00:31:58,840 що насправді ставиться до прикладу, що Йосип і я 774 00:31:58,840 --> 00:32:00,080 Тут зі шкарпетками. 775 00:32:00,080 --> 00:32:03,040 Таким чином, заяви просто констатацією факту. 776 00:32:03,040 --> 00:32:04,160 Зробіть це. 777 00:32:04,160 --> 00:32:07,370 Директива для спрайту, або мені людину, щоб зробити щось. 778 00:32:07,370 --> 00:32:10,420 Логічний вираз є те, що має значення, 779 00:32:10,420 --> 00:32:14,580 так званого істинного значення, що це або нуль або один, помилкової або 780 00:32:14,580 --> 00:32:17,890 Правда, включений або вимкнений, немає чи да. 781 00:32:17,890 --> 00:32:19,730 Не має значення, наскільки ви думаєте про це, але це 782 00:32:19,730 --> 00:32:20,700 двійковий держави. 783 00:32:20,700 --> 00:32:22,610 Як Nate обговорюється у відео в середу, два 784 00:32:22,610 --> 00:32:23,570 різні речі. 785 00:32:23,570 --> 00:32:25,740 >> Таким чином, в Scratch, логічні вирази трапитися, щоб подивитися 786 00:32:25,740 --> 00:32:28,910 як ці сині об'єкти тут, і в цьому випадку питання 787 00:32:28,910 --> 00:32:30,960 Знак означає, що ви задаєте питання. 788 00:32:30,960 --> 00:32:34,250 Є кішки, або спрайту, доторкаючись до миші? 789 00:32:34,250 --> 00:32:36,580 Так що це тільки один з прикладів подряпин блоку, який збирається 790 00:32:36,580 --> 00:32:39,950 , Щоб ми могли перевірити так чи ні, це миша торкаючись 791 00:32:39,950 --> 00:32:40,790 спрайту на екрані? 792 00:32:40,790 --> 00:32:42,840 І це може бути корисно, якщо ви дійсно хочете, щоб робити речі 793 00:32:42,840 --> 00:32:43,820 за допомогою миші. 794 00:32:43,820 --> 00:32:46,470 На додаток до логічних виразів, у нас є речі 795 00:32:46,470 --> 00:32:49,110 начебто миші, так що ви можете виявити, що вид 796 00:32:49,110 --> 00:32:50,200 питання. 797 00:32:50,200 --> 00:32:52,590 Ми можемо зробити математику, якщо ви насправді хочете, і є 798 00:32:52,590 --> 00:32:55,170 насправді більш переконливим використовує для цього не тільки чистим 799 00:32:55,170 --> 00:32:56,400 арифметики, як ми побачимо. 800 00:32:56,400 --> 00:32:59,690 Псевдо випадковості і робить вашу програму здається, думають, 801 00:32:59,690 --> 00:33:03,490 або вести себе по різному в залежності від деяких, здавалося б випадкових величин, 802 00:33:03,490 --> 00:33:06,610 а то у нас такі речі, як логічні вирази як AND. 803 00:33:06,610 --> 00:33:08,830 Так що якщо ви дійсно хочете, щоб перевірити два значення, ми побачимо в 804 00:33:08,830 --> 00:33:11,110 Подряпина, що ми дійсно можемо перевірити, якщо це 805 00:33:11,110 --> 00:33:13,190 Правдиві й це правда. 806 00:33:13,190 --> 00:33:15,300 Наприклад, у випадку мої шкарпетки, я міг би в 807 00:33:15,300 --> 00:33:19,045 самому кінці задав питання, якщо не носок на праву і шкарпеток 808 00:33:19,045 --> 00:33:20,610 включений, кинути палити. 809 00:33:20,610 --> 00:33:22,710 Ви все зробили за день, так що було б 810 00:33:22,710 --> 00:33:24,300 можливість для цього. 811 00:33:24,300 --> 00:33:27,740 >> Так що давайте йти вперед і спробувати зібрати деякі з них разом 812 00:33:27,740 --> 00:33:31,570 і йдемо в пару прикладів більш 813 00:33:31,570 --> 00:33:32,610 переконливими, ніж цей. 814 00:33:32,610 --> 00:33:35,770 Отже, дозвольте мені йти вперед тут і відкрити деякі приклади 815 00:33:35,770 --> 00:33:38,350 , Який завжди буде на веб-сайті курсу, а також і 816 00:33:38,350 --> 00:33:39,870 відкрити hello2. 817 00:33:39,870 --> 00:33:42,910 Таким чином, в hello2 тут, у нас є програма, яка робить кілька 818 00:33:42,910 --> 00:33:46,290 речі, але це не робить це настільки ефективно, наскільки ми могли. 819 00:33:46,290 --> 00:33:48,900 Так от він каже: "привіт, світ" протягом однієї секунди, а потім чекає 820 00:33:48,900 --> 00:33:49,450 на секунду. 821 00:33:49,450 --> 00:33:51,720 А потім робить це знову, а потім робить це знову. 822 00:33:51,720 --> 00:33:55,530 Так що, якщо я натискаю на зелений прапор, Scratch говорить: "Здрастуй, світ. 823 00:33:55,530 --> 00:33:57,160 Здрастуй, світ. 824 00:33:57,160 --> 00:34:00,080 Здрастуй, світ ». І це, очевидно, кандидат в даний час для 825 00:34:00,080 --> 00:34:00,860 поліпшення. 826 00:34:00,860 --> 00:34:03,070 >> Що таке незначне поліпшення, сподіваюся, ми можемо 827 00:34:03,070 --> 00:34:07,610 Тепер зробити, якщо до подряпин підтримує концепцію? 828 00:34:07,610 --> 00:34:08,310 Свого роду цикл. 829 00:34:08,310 --> 00:34:10,960 Деякі види повторення, зараз, було б добре, тому дозвольте мені 830 00:34:10,960 --> 00:34:11,920 насправді спробувати. 831 00:34:11,920 --> 00:34:13,870 Дозвольте мені насправді піти і перемістити це. 832 00:34:13,870 --> 00:34:16,449 Таким чином, повідомлення може відокремити блоки так само легко, як ви можете додати в 833 00:34:16,449 --> 00:34:17,420 прикріпіть їх. 834 00:34:17,420 --> 00:34:20,730 Відпусти мене під контролем, прокрутіть вниз тут, і дійсно, 835 00:34:20,730 --> 00:34:24,000 Тобто цей шматок головоломки тут, повтор і назавжди і 836 00:34:24,000 --> 00:34:24,870 Якщо назавжди. 837 00:34:24,870 --> 00:34:28,500 Таким чином, є ряд способів вираження циклічних конструкцій 838 00:34:28,500 --> 00:34:29,340 У Scratch. 839 00:34:29,340 --> 00:34:31,730 Той, який я, ймовірно, хочете тут не назавжди, тому що я тільки 840 00:34:31,730 --> 00:34:34,639 хочемо, щоб це сталося три рази, але, ймовірно, повторити. 841 00:34:34,639 --> 00:34:38,449 Отже, дозвольте мені повторити перетягнути сюди, і перетягніть його, та 842 00:34:38,449 --> 00:34:42,530 Тепер замість того щоб сказати "привіт, світ" три окремих рази, 843 00:34:42,530 --> 00:34:44,230 Дозвольте мені перетягнути цей паззл тут. 844 00:34:44,230 --> 00:34:46,610 І хоча вона не вписується, програма розумний 845 00:34:46,610 --> 00:34:48,920 достатньо, щоб зрозуміти воно буде рости, щоб заповнити, так що це 846 00:34:48,920 --> 00:34:51,270 форму, що матерія і не абсолютний розмір. 847 00:34:51,270 --> 00:34:54,030 Дозвольте мені змінити повторень до трьох, а тепер відпустив мене 848 00:34:54,030 --> 00:34:56,560 вперед і перетягніть Зачекайте одну секунду там же. 849 00:34:56,560 --> 00:34:59,220 Це буде вистачати в а, і тому зараз я збираюся перетягнути 850 00:34:59,220 --> 00:35:01,370 ці хлопці тут і просто викинути їх, тому що я 851 00:35:01,370 --> 00:35:02,710 не потребують їх більше. 852 00:35:02,710 --> 00:35:05,920 Дозвольте мені масштаб і натисніть зелений прапор зараз, і ми маємо 853 00:35:05,920 --> 00:35:09,600 ту ж програму, але, як я і передбачав раніше, краще 854 00:35:09,600 --> 00:35:12,200 розроблений, тому що ви можете собі уявити, як погано це програма 855 00:35:12,200 --> 00:35:14,410 отримали б, звичайно, естетично, якщо б вам довелося 856 00:35:14,410 --> 00:35:16,640 почати копіювання і вставка, копіювання і вставка, або 857 00:35:16,640 --> 00:35:20,020 перетягуванням ж штопати речі знову і знову. 858 00:35:20,020 --> 00:35:22,260 >> Тепер, просто говорю речі на екрані, друк 859 00:35:22,260 --> 00:35:25,350 Екран, насправді все не так цікаво, так давайте відкриємо 860 00:35:25,350 --> 00:35:26,580 третій дисперсія тут. 861 00:35:26,580 --> 00:35:29,810 А тепер, як ви побачите, це буде швидко дратувати - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 DAVID Малан: - але це теж мило. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 DAVID Малан: Добре, так краще, і ми, безумовно, може використовувати це 866 00:35:37,460 --> 00:35:41,060 ж перехід відривів до цього в цикл 867 00:35:41,060 --> 00:35:43,520 структури, але давайте зробимо його ще більш цікавим. 868 00:35:43,520 --> 00:35:47,480 >> Дозвольте мені йти вперед і відкривати 1/4 дисперсія тут, де я 869 00:35:47,480 --> 00:35:50,020 приймати речі один крок вперед. 870 00:35:50,020 --> 00:35:54,450 Таким чином, у відповідності з цим, нерозумно, хоча це на перший 871 00:35:54,450 --> 00:35:58,530 погляд, те, що ця програма збираєтеся робити? 872 00:35:58,530 --> 00:35:59,790 Це буде нявкати раз. 873 00:35:59,790 --> 00:36:00,160 Чому? 874 00:36:00,160 --> 00:36:03,340 Ну, один є, наскільки я знаю, завжди менше, ніж два. 875 00:36:03,340 --> 00:36:04,890 Там немає поняття випадковості тут. 876 00:36:04,890 --> 00:36:07,240 Я буквально жорстко один і два, але це 877 00:36:07,240 --> 00:36:10,370 Наприклад, зараз у насправді з допомогою логічного виразу. 878 00:36:10,370 --> 00:36:13,650 Багато чого подобається, як Йосип зробив у своєму псевдокоді, відступи, якщо 879 00:36:13,650 --> 00:36:17,170 Ви знайдете шкарпетки потім виконайте такі дії, тут ми маємо 880 00:36:17,170 --> 00:36:19,750 Якщо один вираз менше, ніж два, то - 881 00:36:19,750 --> 00:36:21,820 а насправді у нас навіть є трохи відступів, 882 00:36:21,820 --> 00:36:24,480 де фіолетові злегка відступом праворуч - 883 00:36:24,480 --> 00:36:26,600 Тоді ви будете грати звук няв. 884 00:36:26,600 --> 00:36:30,060 Тепер, в цьому випадку, що один завжди менше, ніж два, так що це 885 00:36:30,060 --> 00:36:31,970 це свого роду марна трата стані. 886 00:36:31,970 --> 00:36:34,890 Але ми зможемо, як ми побачимо, для підключення інших речей в 887 00:36:34,890 --> 00:36:37,420 ці заповнювачі, де один і два зараз. 888 00:36:37,420 --> 00:36:41,340 Отже, давайте просуватися до прикладу п'яти з цих декількох 889 00:36:41,340 --> 00:36:45,850 вітань і подивитися на те, що ця програма буде робити. 890 00:36:45,850 --> 00:36:48,710 >> Так що тепер, в англійському реченні, як робить це 891 00:36:48,710 --> 00:36:51,460 Програма себе вести? 892 00:36:51,460 --> 00:36:52,950 АУДИТОРІЯ: нявкає половину часу. 893 00:36:52,950 --> 00:36:55,380 DAVID Малан: половина Meow за часом, так що це спосіб 894 00:36:55,380 --> 00:36:56,700 передачі дуже проста ідея. 895 00:36:56,700 --> 00:36:59,400 Хоча ми, трапляється, використовуючи деякі нерівності тут 896 00:36:59,400 --> 00:37:01,860 в деяких номерах, це дійсно тільки комуністичної програми 897 00:37:01,860 --> 00:37:09,490 До речі, точний спосіб, сказати, якщо монета впаде орлом, перейдіть 898 00:37:09,490 --> 00:37:10,270 попереду і нявкати. 899 00:37:10,270 --> 00:37:13,540 Або навпаки, якщо монета впаде хвости, не нявкають. 900 00:37:13,540 --> 00:37:15,110 І в цьому випадку, як ми можемо висловити це? 901 00:37:15,110 --> 00:37:17,950 Ми вибираємо випадкове число від 1 до 10, і якщо це 902 00:37:17,950 --> 00:37:21,110 число менше 6, йти вперед і нявкання. 903 00:37:21,110 --> 00:37:22,260 І як же це сюди потрапили? 904 00:37:22,260 --> 00:37:24,620 Ну знову, зауважте, просто перетягнувши і 905 00:37:24,620 --> 00:37:26,190 речі клацання. 906 00:37:26,190 --> 00:37:28,020 >> Отже, тепер давайте подивимося, якщо це випадковість працює. 907 00:37:28,020 --> 00:37:29,845 Дозвольте мені йти вперед і натисніть зелений прапор. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 DAVID Малан: Добре. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 DAVID Малан: Добре. 912 00:37:35,260 --> 00:37:38,510 Гаразд, добре, так що ми отримали голови, голови, хвости ефективно. 913 00:37:38,510 --> 00:37:39,295 Хвости. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 DAVID Малан: Heads. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 DAVID Малан: Відмінно. 918 00:37:44,040 --> 00:37:46,220 Це завжди ніяково, коли тільки статистично ви отримуєте поганий 919 00:37:46,220 --> 00:37:48,510 бігати, і все це головах, і програма насправді не 920 00:37:48,510 --> 00:37:49,230 працювати як можна було б сподіватися. 921 00:37:49,230 --> 00:37:51,210 Але на цей раз він працював, і ми, здається, є, якби ми зробили 922 00:37:51,210 --> 00:37:53,830 це нескінченне число разів, 50% шансів. 923 00:37:53,830 --> 00:37:56,950 Тепер знову ж таки, не все, що цікаво, тільки роблячи кішок 924 00:37:56,950 --> 00:37:59,840 няв, так що давайте подивимося, якщо ми не можемо просунути цю трохи далі 925 00:37:59,840 --> 00:38:01,820 тут, в шостій версії. 926 00:38:01,820 --> 00:38:05,620 Отже, тепер у нас є дійсно дратує версії - 927 00:38:05,620 --> 00:38:08,215 [Нявкати кожні кілька секунд] 928 00:38:08,215 --> 00:38:10,640 DAVID Малан: - і це те, що відомо, взагалі, як 929 00:38:10,640 --> 00:38:11,670 нескінченний цикл. 930 00:38:11,670 --> 00:38:14,190 >> Так нескінченний цикл у цьому випадку погано себе почуває. 931 00:38:14,190 --> 00:38:16,970 Це безперечно збираюся почати звучання погане, і ще нескінченне 932 00:38:16,970 --> 00:38:18,740 Петлі не завжди погано. 933 00:38:18,740 --> 00:38:20,910 Чи можете ви пригадати контекст, в комп'ютерних програмах, де потрібно 934 00:38:20,910 --> 00:38:22,910 насправді хочете нескінченний цикл? 935 00:38:22,910 --> 00:38:23,691 Так? 936 00:38:23,691 --> 00:38:26,520 АУДИТОРІЯ: Якщо ви хочете, щоб перевірити стан. 937 00:38:26,520 --> 00:38:28,240 DAVID Малан: Добре, якщо ви хочете продовжувати перевіряти стан? 938 00:38:28,240 --> 00:38:29,190 Як що? 939 00:38:29,190 --> 00:38:30,440 АУДИТОРІЯ: [нерозбірливо] 940 00:38:36,060 --> 00:38:38,170 DAVID Малан: Добре, добре, так що якщо у вас кілька програм, деякі 941 00:38:38,170 --> 00:38:40,440 вид домашньої автоматизації річ, де ви хочете, щоб постійно 942 00:38:40,440 --> 00:38:41,980 Монітор щось випадку. 943 00:38:41,980 --> 00:38:42,850 Чи є світло? 944 00:38:42,850 --> 00:38:45,020 Є світло, тому що, може бути, у вас є таймер, і 945 00:38:45,020 --> 00:38:47,360 Ви хочете, щоб піти, вам доведеться щось робити 946 00:38:47,360 --> 00:38:48,290 знову і знову. 947 00:38:48,290 --> 00:38:50,540 І справді, говорячи про таймери, кожен з вас, хто 948 00:38:50,540 --> 00:38:53,100 Годинник на комп'ютері або цифровий годинник, це 949 00:38:53,100 --> 00:38:54,210 нескінченний цикл. 950 00:38:54,210 --> 00:38:56,980 Він продовжує оновлювати часу, тому що він постійно 951 00:38:56,980 --> 00:38:59,750 перевірка і перевірка та перевірка є час змінилося, 952 00:38:59,750 --> 00:39:01,000 і якщо так, о, мій бог. 953 00:39:03,670 --> 00:39:04,740 Годинник, нарешті, змінився. 954 00:39:04,740 --> 00:39:07,020 Він повинен показувати, що цінність для вас. 955 00:39:07,020 --> 00:39:10,880 Таким чином, у той час як більшу частину часу нескінченні цикли є помилкою, 956 00:39:10,880 --> 00:39:13,950 або принаймні поганим рішенням дизайну, іноді вони не роблять 957 00:39:13,950 --> 00:39:14,785 мають свою цінність. 958 00:39:14,785 --> 00:39:18,170 >> Ну, давайте рухатися далі тут, щоб hello7. 959 00:39:18,170 --> 00:39:20,410 Так що тепер програма буде отримати трохи більш інтерактивним. 960 00:39:20,410 --> 00:39:23,120 Дозвольте мені збільшити тут, і знову, це те, що приємно 961 00:39:23,120 --> 00:39:23,640 Про Scratch. 962 00:39:23,640 --> 00:39:26,760 І ми будемо використовувати це, щоб бути ясним, Scratch, тільки сьогодні і в 963 00:39:26,760 --> 00:39:27,780 Проблема наступного тижня встановлені. 964 00:39:27,780 --> 00:39:31,920 Але в понеділок, ми зануритися в С. У цій програмі, це так, 965 00:39:31,920 --> 00:39:33,190 назавжди, в наступному. 966 00:39:33,190 --> 00:39:35,890 Якщо торкатися покажчик миші - тепер, хто 967 00:39:35,890 --> 00:39:36,420 контексту тут? 968 00:39:36,420 --> 00:39:39,670 Ну, і зауважив, що хто обраний тут внизу 969 00:39:39,670 --> 00:39:43,060 Справа знаходиться кішка, спрайт один, так що ці сценарії, це 970 00:39:43,060 --> 00:39:45,720 Програма, ставиться до нього спеціально. 971 00:39:45,720 --> 00:39:48,950 Так що, якщо кішка дотику покажчика миші, то це буде 972 00:39:48,950 --> 00:39:51,350 щоб грати в цю вниз і чекати дві секунди, і 973 00:39:51,350 --> 00:39:53,030 потім повторити до нудоти. 974 00:39:53,030 --> 00:39:55,360 >> Так що давайте йти вперед і вдарив гру. 975 00:39:55,360 --> 00:39:57,580 Нічого не відбувається, але якщо я хочу, щоб погладити 976 00:39:57,580 --> 00:39:59,310 Кішка тепер, я можу просто. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 DAVID Малан: чарівні. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 DAVID Малан: Гаразд, менше дратує, але також отримує нудно, 981 00:40:08,750 --> 00:40:11,480 так що давайте рухатися далі і подивитися, якщо ми не можемо вводити 982 00:40:11,480 --> 00:40:12,460 трохи більше логіки. 983 00:40:12,460 --> 00:40:14,300 Це був приклад сім. 984 00:40:14,300 --> 00:40:16,090 >> Тут у приклад вісім, ми збираємося 985 00:40:16,090 --> 00:40:18,670 ввести ELSE стані. 986 00:40:18,670 --> 00:40:21,440 Так багато, як буквальне розвилці доріг, в яких ви можете піти 987 00:40:21,440 --> 00:40:24,260 вліво або ви можете йти прямо, стан, при програмуванні 988 00:40:24,260 --> 00:40:28,120 мову, як Scratch, або, як ми побачимо, C, може дозволити вам 989 00:40:28,120 --> 00:40:32,230 йдуть в одному напрямку або іншому через IF ELSE побудувати. 990 00:40:32,230 --> 00:40:35,160 Так що цілком буквально, якщо дотики покажчика миші, це 991 00:40:35,160 --> 00:40:38,680 гратиме якийсь звук, інакше він буде грати цю друга 992 00:40:38,680 --> 00:40:39,800 звук, нявкання. 993 00:40:39,800 --> 00:40:42,510 Тепер, якщо ви можете укласти з назви ці звуки, ви можете 994 00:40:42,510 --> 00:40:45,310 напевно, здогадалися, що ця програма призначається, щоб викликати в уяві 995 00:40:45,310 --> 00:40:46,250 ідеї. 996 00:40:46,250 --> 00:40:48,742 Ця кішка нявкає щасливо. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 DAVID Малан: на щастя, але не 999 00:40:51,410 --> 00:40:52,926 дуже хотів бути порушені. 1000 00:40:52,926 --> 00:40:54,550 [Реве] 1001 00:40:54,550 --> 00:40:57,500 DAVID Малан: Отже, тепер у нас є кіт, який буде кричати на вас. 1002 00:40:57,500 --> 00:41:00,570 >> Гаразд, добре, один останній приклад з кішками тут, і 1003 00:41:00,570 --> 00:41:02,920 Давайте відкритої версії дев'яти цьому тут. 1004 00:41:02,920 --> 00:41:06,190 Отже, тепер у нас є наступна самим дратівливим звуком, що я міг 1005 00:41:06,190 --> 00:41:11,630 знайти, тому ми повинні моржа або морського лева, хто збирається 1006 00:41:11,630 --> 00:41:13,222 виконайте такі дії. 1007 00:41:13,222 --> 00:41:20,870 [SEAL БАРК] 1008 00:41:20,870 --> 00:41:23,310 DAVID Малан: Добре, так це триватиме, поки ви з'ясувати, як 1009 00:41:23,310 --> 00:41:24,640 ця програма працює. 1010 00:41:24,640 --> 00:41:28,560 Тому цього разу, ця тварина має два сценарії, і що 1011 00:41:28,560 --> 00:41:31,050 Тут цікаво те, що ці сценарії збираються виконувати 1012 00:41:31,050 --> 00:41:32,260 паралельно. 1013 00:41:32,260 --> 00:41:35,340 Таким чином тому, що вони обидва починаються з одним зеленим прапором натисканні 1014 00:41:35,340 --> 00:41:38,080 Це як піти, як це, і обидві програми розпочнеться показ цього 1015 00:41:38,080 --> 00:41:41,370 одного разу навіть якщо вони цикл назавжди. 1016 00:41:41,370 --> 00:41:44,420 Таким чином, у верхній сценарій, у мене є логіка. 1017 00:41:44,420 --> 00:41:49,275 Які функції, які забезпечують там? 1018 00:41:49,275 --> 00:41:50,740 [SEAL БАРК] 1019 00:41:50,740 --> 00:41:51,670 АУДИТОРІЯ: [нерозбірливо] 1020 00:41:51,670 --> 00:41:53,295 DAVID Малан: Якщо це що? 1021 00:41:53,295 --> 00:41:53,760 [SEAL БАРК] 1022 00:41:53,760 --> 00:41:55,852 АУДИТОРІЯ: Якщо приглушених до нуля, він збирається продовжувати грати 1023 00:41:55,852 --> 00:41:58,410 звучало. [SEAL БАРК] 1024 00:41:58,410 --> 00:41:58,940 DAVID Малан: Гаразд, добре. 1025 00:41:58,940 --> 00:42:01,960 Так що, якщо приглушені, незалежно від цього, ця помаранчева річ дорівнює нулю, 1026 00:42:01,960 --> 00:42:05,370 Тоді грати звук морського лева і думати: "О, 1027 00:42:05,370 --> 00:42:06,770 привіт, "протягом двох секунд. 1028 00:42:06,770 --> 00:42:09,380 Тепер, я не знаю, що це приглушені, але нулю викликає в уяві 1029 00:42:09,380 --> 00:42:11,230 Ідея помилкової чи ні. 1030 00:42:11,230 --> 00:42:14,490 Так що, якщо приглушені є помилковим, так що якщо не відключений, 1031 00:42:14,490 --> 00:42:15,660 продовжувати грати звук. 1032 00:42:15,660 --> 00:42:17,350 Гаразд, добре, як ми можемо відключити цю річ? 1033 00:42:17,350 --> 00:42:19,310 >> Ну, давайте подивимося на другий сценарій там. 1034 00:42:19,310 --> 00:42:22,130 Другий сценарій говорить встановлений приглушених до нуля. 1035 00:42:22,130 --> 00:42:25,180 Зверніть увагу, що це також помаранчеві, так що подряпин робить це колір 1036 00:42:25,180 --> 00:42:27,400 блоки в той же відтінок, якщо це свого роду 1037 00:42:27,400 --> 00:42:28,850 логічно пов'язані між собою. 1038 00:42:28,850 --> 00:42:32,850 Так само, як приглушені поповнити був помаранчевим, так відключений тут 1039 00:42:32,850 --> 00:42:34,060 згадані в помаранчевому блоці. 1040 00:42:34,060 --> 00:42:36,170 Але це значення змінної, так як в 1041 00:42:36,170 --> 00:42:39,170 Алгебра, у вас є х, у і г, в програмуванні у вас є 1042 00:42:39,170 --> 00:42:41,440 змінних, але вони в цілому - 1043 00:42:41,440 --> 00:42:42,580 давайте паузу на мить і зрозуміти, як 1044 00:42:42,580 --> 00:42:44,280 щоб зупинити цей гавкіт. 1045 00:42:44,280 --> 00:42:45,480 Як мені це зробити? 1046 00:42:45,480 --> 00:42:46,480 [SEAL БАРК] 1047 00:42:46,480 --> 00:42:47,920 DAVID Малан: Добре. 1048 00:42:47,920 --> 00:42:49,490 Він зупинився. Добре. 1049 00:42:49,490 --> 00:42:52,230 >> Так само, як в алгебрі у вас є змінні х, у, г, а в 1050 00:42:52,230 --> 00:42:55,260 програмування, що мають такі змінні, як х, у, г, як правило, 1051 00:42:55,260 --> 00:42:57,330 несхваленням, тому що вони зовсім не виразно. 1052 00:42:57,330 --> 00:43:00,070 Вони не мають ніякого смислового значення взагалі, так що в більшості 1053 00:43:00,070 --> 00:43:02,110 Мови програмування, змінні можуть мати повну 1054 00:43:02,110 --> 00:43:05,270 Опера імена або слова чи фрази, як приглушені, не кажучи 1055 00:43:05,270 --> 00:43:06,030 що вони роблять. 1056 00:43:06,030 --> 00:43:09,380 Таким чином, це другий сценарій також слухав назавжди, і він сказав, 1057 00:43:09,380 --> 00:43:12,100 якщо ключ, Космічні клавіші клавіатури, є 1058 00:43:12,100 --> 00:43:13,370 натисканні знак питання. 1059 00:43:13,370 --> 00:43:16,300 Так що стан з логічного виразу, що це 1060 00:43:16,300 --> 00:43:19,010 збирається відповісти на питання, або правдиво чи брехливо, 1061 00:43:19,010 --> 00:43:22,880 то у мене всередині нього, якщо простір натисканні клавіші 1062 00:43:22,880 --> 00:43:28,020 Якщо приглушені дорівнює нулю, встановлені приглушені до одного, ELSE встановити приглушених до нуля. 1063 00:43:28,020 --> 00:43:30,510 Таким чином, це інший розвилці доріг, і зверніть увагу, як я 1064 00:43:30,510 --> 00:43:33,500 вкладеними два, якщо умови, є способом перевірки є 1065 00:43:33,500 --> 00:43:36,610 Пробіл натиснутою, тому що якщо це так, я або хочуть йти цим 1066 00:43:36,610 --> 00:43:38,000 так чи так. 1067 00:43:38,000 --> 00:43:40,210 І як я можу Інвертувати значення приглушені? 1068 00:43:40,210 --> 00:43:41,410 Я повинен перевірити це нуль? 1069 00:43:41,410 --> 00:43:45,890 Якщо так, то це одне, інше зробити це нуль тому перемикання 1070 00:43:45,890 --> 00:43:47,670 своїх двох держав. 1071 00:43:47,670 --> 00:43:50,030 >> Гаразд, у нас є то деякі з цих фундаментальних 1072 00:43:50,030 --> 00:43:50,540 конструкціями. 1073 00:43:50,540 --> 00:43:52,810 У нас є логічні вирази, і розумію, теж, ці 1074 00:43:52,810 --> 00:43:54,050 Не все, що незнайомі. 1075 00:43:54,050 --> 00:43:56,730 У самому справі, ось швидкий скріншот з Гарвардського курсу CS50 1076 00:43:56,730 --> 00:43:59,740 торговий інструмент, і будь-який веб-сайт, що там є прапорців 1077 00:43:59,740 --> 00:44:02,420 і падіння падіння, дійсно, все це час, використовують 1078 00:44:02,420 --> 00:44:03,430 Логічних виразів. 1079 00:44:03,430 --> 00:44:05,760 У цьому випадку тут, якщо ви встановите прапорець поруч із 1080 00:44:05,760 --> 00:44:08,620 Звичайно більше або дорівнює 4,5, або ж поруч з 1081 00:44:08,620 --> 00:44:11,200 факультет, ви вказуєте логічне вираження. 1082 00:44:11,200 --> 00:44:14,780 Покажіть мені курсів, для яких цей вираз істинно. 1083 00:44:14,780 --> 00:44:17,080 Або мають рацію, не конфліктує з курсів я 1084 00:44:17,080 --> 00:44:20,440 приймати, якщо це перевірили, то так, ви хочете перевірити 1085 00:44:20,440 --> 00:44:22,890 що умова, що ви хочете, щоб його ігнорувати. 1086 00:44:22,890 --> 00:44:25,170 Таким чином, логічні вирази є свого роду все навколо, але коли 1087 00:44:25,170 --> 00:44:28,080 ми ставимо їх в умови, якщо чи умови, якщо 1088 00:44:28,080 --> 00:44:30,480 Ельсес, або ми можемо навіть імітувати глибокий 1089 00:44:30,480 --> 00:44:32,830 рівнів, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 так що це свого роду потрійний держави. 1091 00:44:34,430 --> 00:44:36,920 Ви можете йти по цьому шляху або так чи так. 1092 00:44:36,920 --> 00:44:39,680 Ми можемо зберегти вкладення речей, щоб піти в різних напрямках. 1093 00:44:39,680 --> 00:44:41,800 >> Так подряпина ці петлі, як Forever. 1094 00:44:41,800 --> 00:44:44,750 Вона має наступні функції, такі як Повторити 10, деякі 1095 00:44:44,750 --> 00:44:46,260 кінцеве число раз. 1096 00:44:46,260 --> 00:44:49,040 У нас є можливість зараз, щоб встановити змінні, тому в даному випадку 1097 00:44:49,040 --> 00:44:51,810 Я оголосив, наприклад, змінна звані шкарпетки. 1098 00:44:51,810 --> 00:44:54,340 Я ініціалізується в 0, і це ще один напрямок 1099 00:44:54,340 --> 00:44:56,940 ми могли б взяти тут з Йосипом, якому, можливо, я 1100 00:44:56,940 --> 00:45:00,150 просто відстежувати, скільки шкарпеток у мене є, і припинити 1101 00:45:00,150 --> 00:45:03,490 програми, коли значення цієї змінної дорівнює 2. 1102 00:45:03,490 --> 00:45:05,660 Це був би ще один спосіб роду узагальнення, що 1103 00:45:05,660 --> 00:45:08,820 проблеми і робити щось знову і знову. 1104 00:45:08,820 --> 00:45:12,080 Ну, давайте йти вперед і тепер ввести пару нових речей. 1105 00:45:12,080 --> 00:45:14,100 Так що ті з вас, до програмування досвід буде 1106 00:45:14,100 --> 00:45:17,120 Відомо, що багато мов мають масиви або вектори або 1107 00:45:17,120 --> 00:45:19,970 списки, і дійсно, подряпина щось подібне до цього, теж. 1108 00:45:19,970 --> 00:45:22,510 Отже, давайте подивимося, якщо ми не можемо взяти речі на наступний рівень тут. 1109 00:45:22,510 --> 00:45:24,920 Якщо у мене є можливість, то тепер, з цими шматочки головоломки, щоб 1110 00:45:24,920 --> 00:45:29,080 щось додати, наприклад, слова або числа, змінної, я можу 1111 00:45:29,080 --> 00:45:30,550 починають накопичуватися речі. 1112 00:45:30,550 --> 00:45:33,630 І це насправді дуже до речі такі речі, як гри, 1113 00:45:33,630 --> 00:45:35,810 рольових ігор, де ти ніби ходити 1114 00:45:35,810 --> 00:45:38,600 деякі фантазії світу, збираючи речі, збираючи речі, 1115 00:45:38,600 --> 00:45:39,900 заробляти очки, і тому подібне. 1116 00:45:39,900 --> 00:45:42,310 Ви можете слідкувати за якийсь інвентар, і 1117 00:45:42,310 --> 00:45:45,180 Дійсно, це те, що один з наших колишніх студентів тут зробили з 1118 00:45:45,180 --> 00:45:47,750 те, що називається Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Отже, дозвольте мені йти вперед і відкривати цю річ тут, і в 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, у нас є цей світ догори на вершину. 1121 00:45:56,260 --> 00:45:58,820 Отже, дозвольте мені йти вперед і натисніть зелений прапор. 1122 00:45:58,820 --> 00:46:01,040 Зверніть увагу на лівий верхній є свого роду інвентаризацію. 1123 00:46:01,040 --> 00:46:04,110 Це здійснюється в подряпинам як те, що ми називаємо масиву або 1124 00:46:04,110 --> 00:46:06,890 список, і тепер у нас є ця маленька анімація. 1125 00:46:06,890 --> 00:46:10,440 Так само, як ми почали раніше з цією історією любові печиво, 1126 00:46:10,440 --> 00:46:13,320 і тоді ми просунулися на кішок і морських левів, тепер ми можемо 1127 00:46:13,320 --> 00:46:15,100 речі, які є ще більш інтерактивним. 1128 00:46:15,100 --> 00:46:18,250 І цей маленький блакитний хлопець, я можу почати рухатися навколо його 1129 00:46:18,250 --> 00:46:19,500 трохи тут як вдома. 1130 00:46:19,500 --> 00:46:22,570 Так це виглядає, як ніби він отримав вихід тут, тому я використовую 1131 00:46:22,570 --> 00:46:25,260 клавіші зі стрілками, вгору, вниз, вліво-вправо. 1132 00:46:25,260 --> 00:46:28,370 І тепер я зовні, так нехай те, що я потрапив сюди. 1133 00:46:28,370 --> 00:46:30,920 Схоже, помаранчеві, і дійсно, як тільки я торкаюся 1134 00:46:30,920 --> 00:46:33,110 помаранчевий, він отримує гепнувся в моєму інвентарі. 1135 00:46:33,110 --> 00:46:35,640 Якщо я йду сюди, щоб вишні, тепер у мене є дещо 1136 00:46:35,640 --> 00:46:36,760 решта в моєму інвентарі. 1137 00:46:36,760 --> 00:46:39,100 І це все красиво і мило, але думати про те, як тепер, це 1138 00:46:39,100 --> 00:46:39,840 реалізований. 1139 00:46:39,840 --> 00:46:42,490 Ну, у нас це поняття списку, і це очевидно 1140 00:46:42,490 --> 00:46:45,470 паззл, що ви тільки що сказали, що ви хочете додати до цього, додайте 1141 00:46:45,470 --> 00:46:46,950 апельсина, додати вишні. 1142 00:46:46,950 --> 00:46:48,540 Тепер, те, що ця маленька синя хлопець робить? 1143 00:46:48,540 --> 00:46:49,810 Ну, він спрайту. 1144 00:46:49,810 --> 00:46:52,190 І мабуть, помаранчевий і вишні - 1145 00:46:52,190 --> 00:46:54,140 вони самі були окремі спрайт. 1146 00:46:54,140 --> 00:46:56,980 І, використовуючи умови в логічні вирази, 1147 00:46:56,980 --> 00:47:00,530 Студент був, ймовірно, в змозі висловити Якщо синій хлопець 1148 00:47:00,530 --> 00:47:04,590 торкаючись вишні потім додати слово вишня його 1149 00:47:04,590 --> 00:47:07,890 інвентаризації, а потім і приховати вишні спрайту. 1150 00:47:07,890 --> 00:47:10,600 Таким чином, під капотом, там, ймовірно, як і раніше є вишня 1151 00:47:10,600 --> 00:47:11,350 спрайт там. 1152 00:47:11,350 --> 00:47:14,160 Ми тільки що сказали, щоб він став ефективним невидимим. 1153 00:47:14,160 --> 00:47:16,340 >> Тепер, якщо я продовжувати йти сюди, ми також можемо це зробити 1154 00:47:16,340 --> 00:47:19,150 проксимального річ, куди я можу піти і прочитати знак. 1155 00:47:19,150 --> 00:47:23,170 Таким чином, якщо сині хлопець торкаючись знак, ми можемо це сказати блоку 1156 00:47:23,170 --> 00:47:26,455 так само, як кішки говорив з нами в словах, привіт, раніше, "Got 1157 00:47:26,455 --> 00:47:26,880 деякі фрукти? 1158 00:47:26,880 --> 00:47:29,290 Принесіть його до фруктів місце ". Гаразд, так і тепер, мабуть, 1159 00:47:29,290 --> 00:47:30,550 У мене є напрямки. 1160 00:47:30,550 --> 00:47:33,050 Я можу піти сюди, щоб плоди місце, вирівняти себе в порядок 1161 00:47:33,050 --> 00:47:33,740 з дверима. 1162 00:47:33,740 --> 00:47:35,390 Так от, я тут. 1163 00:47:35,390 --> 00:47:38,120 Я можу підійти до людини за стійкою. 1164 00:47:38,120 --> 00:47:40,330 Він виявляє, що я поряд з ним, тому він не повинен бути 1165 00:47:40,330 --> 00:47:46,780 зовсім однаково зворушливо, і я виграв. 1166 00:47:46,780 --> 00:47:49,890 Так що у нас є Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Таким чином, ми можемо зробити речі ще більш просунутий, ніж це. 1168 00:47:52,200 --> 00:47:53,200 Ми можемо додати звуки. 1169 00:47:53,200 --> 00:47:54,610 Ми можемо додати псевдо випадковості. 1170 00:47:54,610 --> 00:47:56,260 Ми можемо додати складності. 1171 00:47:56,260 --> 00:47:58,490 Дозвольте мені йти вперед тут, і замість того, робити це сам, 1172 00:47:58,490 --> 00:48:01,240 Дозвольте мені показати вам одну з більш складних уявлень 1173 00:48:01,240 --> 00:48:06,640 ми отримали в минулому році від певних якийсь Блейк. 1174 00:48:06,640 --> 00:48:08,910 Може в нас є один доброволець, який зручно з'являтися на 1175 00:48:08,910 --> 00:48:12,600 камера і є для граєте в гру? 1176 00:48:12,600 --> 00:48:13,450 Як щодо прямо там? 1177 00:48:13,450 --> 00:48:15,380 Піднімайся. 1178 00:48:15,380 --> 00:48:19,680 Гаразд, так що гра, яку ви тільки що несвідомо 1179 00:48:19,680 --> 00:48:20,780 зголосилися грати - 1180 00:48:20,780 --> 00:48:25,910 [Оплески] 1181 00:48:25,910 --> 00:48:28,610 DAVID Малан: - це щось з минулого називається 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Як тебе звуть? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Ренді. 1184 00:48:30,730 --> 00:48:31,050 DAVID Малан: Redna? 1185 00:48:31,050 --> 00:48:32,530 RENDA: Це як Бренда з б. 1186 00:48:32,530 --> 00:48:33,190 DAVID Малан: Добре, Ренді. 1187 00:48:33,190 --> 00:48:33,590 Давид. 1188 00:48:33,590 --> 00:48:34,580 Дуже приємно. 1189 00:48:34,580 --> 00:48:38,690 >> Так от в "Frogger", і якби ми могли збільшити гучність тільки 1190 00:48:38,690 --> 00:48:39,780 небагато, ви це маленьке 1191 00:48:39,780 --> 00:48:41,010 Зелена жаба на дні. 1192 00:48:41,010 --> 00:48:43,940 Ви можете використовувати вліво, вправо, вгору і вниз, і ваша мета полягає в 1193 00:48:43,940 --> 00:48:46,510 перейти вулицю, перетнути річку, і доторкнутися до лілії 1194 00:48:46,510 --> 00:48:47,760 у верхній частині. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Ще один т - 1197 00:48:54,630 --> 00:48:56,400 повтор, все гаразд? 1198 00:48:56,400 --> 00:48:58,890 Давайте хіт зупинки. 1199 00:48:58,890 --> 00:49:00,140 Ніхто не бачив цього. 1200 00:49:10,470 --> 00:49:12,930 [Оплески] 1201 00:49:17,023 --> 00:49:17,850 [Оплески] 1202 00:49:17,850 --> 00:49:19,341 DAVID Малан: Так. 1203 00:49:19,341 --> 00:49:20,832 Дуже добре зроблено. 1204 00:49:20,832 --> 00:49:22,082 Відмінно, спасибі. 1205 00:49:27,300 --> 00:49:29,430 >> Так що не було Frogger. Тепер, коли ви знаєте, що у Вас є 1206 00:49:29,430 --> 00:49:32,170 отримав собі в ще один волонтер для різних 1207 00:49:32,170 --> 00:49:34,910 гра представлений іншим студентом. 1208 00:49:34,910 --> 00:49:35,560 Ви хочете, щоб прийти на вгору? 1209 00:49:35,560 --> 00:49:36,576 Як тебе звуть? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Річард. 1211 00:49:37,000 --> 00:49:37,420 DAVID Малан: Річард. 1212 00:49:37,420 --> 00:49:39,732 Все в порядку, Річард, давай вгору. 1213 00:49:39,732 --> 00:49:42,187 [Оплески] 1214 00:49:45,140 --> 00:49:47,030 DAVID Малан: у вас є щось, що буде звучати 1215 00:49:47,030 --> 00:49:54,180 знайомий найближчим часом, так що тут ваші вказівки. 1216 00:49:54,180 --> 00:49:56,580 Таким чином, в даний час деякі шматочки головоломки збираються для прокрутки вгору 1217 00:49:56,580 --> 00:49:58,150 з екрану, які виглядають як зліва 1218 00:49:58,150 --> 00:49:59,450 або вправо вгору або вниз. 1219 00:49:59,450 --> 00:50:01,230 Ви будете мати, щоб вразити стрілки таким чином, 1220 00:50:01,230 --> 00:50:04,540 , Що відповідає тим шматочки головоломки шикуються в чергу з 1221 00:50:04,540 --> 00:50:05,720 заповнювачів на вершині. 1222 00:50:05,720 --> 00:50:07,500 Тому, коли ви бачите стрілку вліво, і він на одній лінії з лівого 1223 00:50:07,500 --> 00:50:09,260 стрілку, натисніть ліву стрілку. 1224 00:50:09,260 --> 00:50:10,866 Ви можете почати. 1225 00:50:10,866 --> 00:50:13,674 [MUSIC - "сильніше" Kayne WEST] 1226 00:51:21,222 --> 00:51:23,470 DAVID Малан: Все правильно, великий вибух оплесків для Річарда. 1227 00:51:23,470 --> 00:51:26,082 [Оплески] 1228 00:51:32,426 --> 00:51:33,720 DAVID Малан: Дуже добре зроблено. 1229 00:51:33,720 --> 00:51:34,110 Спасибі. 1230 00:51:34,110 --> 00:51:37,104 [Оплески] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID Малан: Так весело і, мабуть, свого роду 1232 00:51:44,330 --> 00:51:46,590 страхітливо, як це може бути, щоб здійснити те, як 1233 00:51:46,590 --> 00:51:49,550 здавалося б, складні, як це, розумієш, що студент 1234 00:51:49,550 --> 00:51:51,450 не ставив перед собою і просто написати це все відразу. 1235 00:51:51,450 --> 00:51:54,200 Замість цього, ви можете зламати проблема, як здавалося б, складні 1236 00:51:54,200 --> 00:51:56,840 як це в набагато менших шматків, і це теж 1237 00:51:56,840 --> 00:51:57,560 буде темою. 1238 00:51:57,560 --> 00:52:00,490 Найгірше, що ви можете зробити в написанні програми в більшості будь 1239 00:52:00,490 --> 00:52:03,480 мову, щоб сісти, стати дійсно збуджений, написати 1240 00:52:03,480 --> 00:52:07,200 всю цю чортову річ, а потім просто сподіваюся, що це працює, 1241 00:52:07,200 --> 00:52:08,510 раз, коли ви закінчили писати. 1242 00:52:08,510 --> 00:52:10,920 Швидше за все, процес програмування як правило, повинні 1243 00:52:10,920 --> 00:52:13,440 дуже навмисним, дуже ітераційний, в якому ви просто 1244 00:52:13,440 --> 00:52:16,955 встановлені дуже маленькі кроки для себе, маленькі шматочки 1245 00:52:16,955 --> 00:52:20,070 Ви хочете, щоб відкусити, і так, що у вас є ці розсудливості 1246 00:52:20,070 --> 00:52:21,740 чеки, мало віхи ви можете зустрітися. 1247 00:52:21,740 --> 00:52:24,170 А потім побудувати на вершині тих, для створення більш 1248 00:52:24,170 --> 00:52:25,400 складні речі досі. 1249 00:52:25,400 --> 00:52:26,820 >> Так, наприклад, як ми могли б йти про 1250 00:52:26,820 --> 00:52:28,380 здійснення такої гри? 1251 00:52:28,380 --> 00:52:30,160 Ну, чесно кажучи, я б, звичайно, почати з тільки що 1252 00:52:30,160 --> 00:52:32,260 підтримка одного ключа одночасно. 1253 00:52:32,260 --> 00:52:34,840 Давайте просто реалізувати підтримку зі стрілкою вліво. 1254 00:52:34,840 --> 00:52:37,610 Таким чином, студент повинен був якимось чином створити в Photoshop, або в 1255 00:52:37,610 --> 00:52:40,340 Подряпина себе за допомогою маленького графічного редактора, 1256 00:52:40,340 --> 00:52:42,680 стрілкою, яка виглядає як один в лівому верхньому кутку є, просто 1257 00:52:42,680 --> 00:52:43,910 сірі рамки. 1258 00:52:43,910 --> 00:52:46,610 Тоді студент повинен був з'ясувати, що ж, у координата 1259 00:52:46,610 --> 00:52:48,380 покласти його, куди покласти його у вікно. 1260 00:52:48,380 --> 00:52:50,730 0, 0, тут, так що ви повинні з'ясувати кількість 1261 00:52:50,730 --> 00:52:53,690 пікселів, або точок, щоб компенсувати те, що стрілка від 1262 00:52:53,690 --> 00:52:54,800 у верхній частині екрана. 1263 00:52:54,800 --> 00:52:57,040 А потім одного разу, що знаходиться в місці, ваша програма насправді не 1264 00:52:57,040 --> 00:53:00,380 нічого робити, так що ви тоді потрібен другий спрайт, для 1265 00:53:00,380 --> 00:53:04,470 Наприклад зеленою стрілкою, який також вказує ліворуч, та ви 1266 00:53:04,470 --> 00:53:06,710 Потім необхідно, щоб почати писати кілька сценаріїв для цього. 1267 00:53:06,710 --> 00:53:09,310 >> А ви помітили, напевно, що ці речі стали приходити в 1268 00:53:09,310 --> 00:53:11,470 різних швидкостях, а кольори були в різних 1269 00:53:11,470 --> 00:53:13,750 місцях, і це тому, що студент використовував небагато 1270 00:53:13,750 --> 00:53:14,990 псевдо випадковості. 1271 00:53:14,990 --> 00:53:17,440 І псевдо-випадковість, я просто означає вибрати номер 1272 00:53:17,440 --> 00:53:20,230 між чимось і чимось, тому що ви можете 1273 00:53:20,230 --> 00:53:22,890 починають карті речей, як якщо число від одного до 1274 00:53:22,890 --> 00:53:24,940 п'ять, ну, давайте зробимо річ зеленого кольору. 1275 00:53:24,940 --> 00:53:28,290 Якщо це між 6 і 10, давайте зробимо паззл 1276 00:53:28,290 --> 00:53:29,730 замість червоного. 1277 00:53:29,730 --> 00:53:31,840 До тих пір, поки у вас є спосіб створення свого роду 1278 00:53:31,840 --> 00:53:34,730 випадковістю, ви можете приймати рішення, грунтуючись на тому 1279 00:53:34,730 --> 00:53:35,260 випадковість. 1280 00:53:35,260 --> 00:53:37,490 І я постійно говорю псевдовипадкових тому що є 1281 00:53:37,490 --> 00:53:38,390 маленький брудний секрет. 1282 00:53:38,390 --> 00:53:41,130 Комп'ютери не можуть придумати випадкових чисел. 1283 00:53:41,130 --> 00:53:42,800 Вони можуть робити тільки те, що вони сказали, тому що 1284 00:53:42,800 --> 00:53:44,110 вони техногенних пристроїв. 1285 00:53:44,110 --> 00:53:45,880 Вони не можуть просто вгадати число, як ми, люди, 1286 00:53:45,880 --> 00:53:46,960 відчуваю, що ми можемо. 1287 00:53:46,960 --> 00:53:50,970 Комп'ютер повинен зробити щось математичне, пробуджуючи 1288 00:53:50,970 --> 00:53:53,970 Ілюзія математичні числа, іноді з використанням 1289 00:53:53,970 --> 00:53:57,420 Поточний день час як внесок у з'ясування того, що 1290 00:53:57,420 --> 00:53:59,570 Число повернутися, але про це іншим разом. 1291 00:53:59,570 --> 00:54:02,060 А зараз просто знаю, що ми можемо створити псевдо випадковості. 1292 00:54:02,060 --> 00:54:04,610 >> Тому, як тільки у мене є здібності до стрілку вліво, щоб почати 1293 00:54:04,610 --> 00:54:07,990 з'являються в різний час і з різною швидкістю, то 1294 00:54:07,990 --> 00:54:10,230 Я можу повернутися і додати деякі з них, якщо умови. 1295 00:54:10,230 --> 00:54:14,950 Якщо це спрайт торкаючись іншого, і стрілки вліво 1296 00:54:14,950 --> 00:54:16,330 клавіша була натиснута - 1297 00:54:16,330 --> 00:54:17,900 так три умови в цьому випадку. 1298 00:54:17,900 --> 00:54:20,750 Я можу використовувати, що і блок, можливо, в цьому випадку - 1299 00:54:20,750 --> 00:54:23,210 Тоді я хочу, щоб йти вперед і збільшити рахунок. 1300 00:54:23,210 --> 00:54:25,130 І на вершині, у нас є рахунок, у нас є Awesome, 1301 00:54:25,130 --> 00:54:26,510 Круто, добре, і Бу. 1302 00:54:26,510 --> 00:54:29,810 Так що мабуть п'яти змінних, що цей студент 1303 00:54:29,810 --> 00:54:32,220 використовується для відстеження цих різних показників. 1304 00:54:32,220 --> 00:54:34,180 Коротше кажучи, кінцевим результатом є дивним. 1305 00:54:34,180 --> 00:54:37,320 Це весело, це цікаво грати, це залучення, але це не 1306 00:54:37,320 --> 00:54:38,380 де студент почав. 1307 00:54:38,380 --> 00:54:42,210 Він або вона почалася набагато менший набір кроків. 1308 00:54:42,210 --> 00:54:44,470 >> Так що деякі інші блоки, які ми можемо 1309 00:54:44,470 --> 00:54:45,760 переплетення в цих програмах? 1310 00:54:45,760 --> 00:54:48,750 Ну, ось це інше поняття у більшості мов, 1311 00:54:48,750 --> 00:54:50,730 Подряпина серед них, відомий як потоки. 1312 00:54:50,730 --> 00:54:54,660 Таким чином, комп'ютер може насправді дійсно не зробити кілька речей 1313 00:54:54,660 --> 00:54:56,730 Час, принаймні, не зазвичай. 1314 00:54:56,730 --> 00:54:59,930 Швидше за все, комп'ютер зазвичай має тільки один процесор, і навіть 1315 00:54:59,930 --> 00:55:02,230 хоча комп'ютери супер швидко і може, таким чином, 1316 00:55:02,230 --> 00:55:04,740 створити ілюзію робити кілька речей одночасно - 1317 00:55:04,740 --> 00:55:06,180 перевіряючи свою пошту, отримувати миттєвий 1318 00:55:06,180 --> 00:55:07,770 Повідомлення, друк документ - 1319 00:55:07,770 --> 00:55:11,530 дійсно, комп'ютер просто стрибати від друку на IMing 1320 00:55:11,530 --> 00:55:15,160 до електронної пошти, тому і назад і вперед і назад так швидко, що ми 1321 00:55:15,160 --> 00:55:18,170 повільним кмітливі люди просто не розуміють, що це насправді 1322 00:55:18,170 --> 00:55:21,240 запуску цих програм трохи за один раз. 1323 00:55:21,240 --> 00:55:23,960 Тепер, це трохи білого лежать в ці дні, тому що, в даний час, 1324 00:55:23,960 --> 00:55:26,740 багато наших комп'ютери є так звані багатоядерні, так що ви 1325 00:55:26,740 --> 00:55:29,760 один процесор, але кілька ядер, які ніби як 1326 00:55:29,760 --> 00:55:31,760 наявність декількох процесорів. 1327 00:55:31,760 --> 00:55:35,020 >> І тому іноді, комп'ютери дійсно може зробити кілька речей 1328 00:55:35,020 --> 00:55:38,500 в той час, але в цілому в рамках програми, програми 1329 00:55:38,500 --> 00:55:40,200 покладатися на ці речі називаються потоками. 1330 00:55:40,200 --> 00:55:43,160 Таким чином, потік зразок мініатюрної програми, яка може 1331 00:55:43,160 --> 00:55:46,540 існують поряд з іншою мініатюрний програми і може працювати 1332 00:55:46,540 --> 00:55:51,250 Паралельно, або принаймні може працювати в ілюзії, що 1333 00:55:51,250 --> 00:55:52,990 вони працюють одночасно. 1334 00:55:52,990 --> 00:55:55,060 Так подряпин підтримує ці речі називаються потоками. 1335 00:55:55,060 --> 00:55:57,580 Ви можете мати кілька сценаріїв виконання відразу ж, як ми 1336 00:55:57,580 --> 00:56:00,220 зробив з морський лев, і це дозволяє нам насправді 1337 00:56:00,220 --> 00:56:03,620 тобто взаємодія між цими спрайтів. 1338 00:56:03,620 --> 00:56:09,910 Дозвольте мені йти вперед тут і потягніть вгору, скажімо, потоків і 1339 00:56:09,910 --> 00:56:11,870 грати в цю наступним чином. 1340 00:56:11,870 --> 00:56:13,950 У нас є два спрайту, кожна з яких ми побачимо, 1341 00:56:13,950 --> 00:56:15,720 має тільки один сценарій. 1342 00:56:15,720 --> 00:56:18,000 І ви помітите, як видається, деякі розвідки в 1343 00:56:18,000 --> 00:56:21,335 Кішка в цьому, тому що він стає ближче - 1344 00:56:21,335 --> 00:56:21,730 [Реве] 1345 00:56:21,730 --> 00:56:24,540 DAVID Малан: - і ближче до маленької птиці. 1346 00:56:24,540 --> 00:56:26,570 >> Отже, як птах операційної? 1347 00:56:26,570 --> 00:56:28,200 Що ж, давайте подивимося на птицю в першу чергу. 1348 00:56:28,200 --> 00:56:31,220 Птах сценарію сказав, коли зелений прапор натискання, перейдіть на х 1349 00:56:31,220 --> 00:56:34,020 дорівнює негативною 115 і у дорівнює 150. 1350 00:56:34,020 --> 00:56:37,010 Так що я просто зрозумів, випадкове місце, де я хотів 1351 00:56:37,010 --> 00:56:39,580 Птах, щоб почати, і я просто гепнувся його там за замовчуванням. 1352 00:56:39,580 --> 00:56:42,800 Тоді назавжди, якщо не торкаючись кішки, так що це інша 1353 00:56:42,800 --> 00:56:45,080 вид циклічної конструкцією, але та ж ідея, зробити це знову і 1354 00:56:45,080 --> 00:56:45,780 знову і знову. 1355 00:56:45,780 --> 00:56:49,410 До тих пір, поки ви не торкайтеся до кішці, перемістити три кроки, і 1356 00:56:49,410 --> 00:56:51,680 якщо ви знаходитесь на краю, відскік, де це свого роду 1357 00:56:51,680 --> 00:56:53,320 відображення в тому сенсі, більярд. 1358 00:56:53,320 --> 00:56:56,140 Так от, як птах рухається навколо вигляді 1359 00:56:56,140 --> 00:56:58,890 здавалося б, випадково, але це тільки тому, що він відскакуючи 1360 00:56:58,890 --> 00:57:00,170 Стіни в цьому випадку. 1361 00:57:00,170 --> 00:57:03,170 >> Тепер кішка, між тим, це свого роду обман. 1362 00:57:03,170 --> 00:57:05,520 Кішка, коли зелений прапор натискання, так, починається в 1363 00:57:05,520 --> 00:57:07,390 деякі місця, випадковому місці - 1364 00:57:07,390 --> 00:57:09,590 принаймні частково у відповідності з вибором 1365 00:57:09,590 --> 00:57:11,430 випадковий зелений блок там - 1366 00:57:11,430 --> 00:57:14,660 , А потім назавжди, якщо торкатися до птаха, грати лева звук, 1367 00:57:14,660 --> 00:57:15,790 а потім зупинити сценарій. 1368 00:57:15,790 --> 00:57:18,560 Так що, коли я сказав, припинити або до виходу, тобто головоломки 1369 00:57:18,560 --> 00:57:20,600 шматок в подряпин, що буде просто вбити програму на що 1370 00:57:20,600 --> 00:57:22,900 момент, тому що це свого роду логічно зробити. 1371 00:57:22,900 --> 00:57:25,030 Але з іншого боку, ось, зверніть увагу на те, що станеться. 1372 00:57:25,030 --> 00:57:28,470 Точка в сторону птиці і один крок. 1373 00:57:28,470 --> 00:57:31,390 Так що цей момент до птаха це свого роду перевага кішки 1374 00:57:31,390 --> 00:57:34,640 є в тому, що це самонаведення на рухому птицю, і ми можемо 1375 00:57:34,640 --> 00:57:37,370 Зараз роблять цю програму ще цікавішою. 1376 00:57:37,370 --> 00:57:41,520 Замість переміщення на один крок за один раз за цикл процесора, на 1377 00:57:41,520 --> 00:57:44,280 вдарити дзвінком, так би мовити, дозвольте мені йти вперед і 1378 00:57:44,280 --> 00:57:47,350 рухатися, скажімо, п'ять кроків, в той час, як кішка. 1379 00:57:47,350 --> 00:57:51,120 Виберіть пункт Виконати, і тепер він дійсно вважає його швидко. 1380 00:57:51,120 --> 00:57:55,620 Якщо ми подвоїмо цю далі 10 кроків, вона як би йде 1381 00:57:55,620 --> 00:57:56,370 Право на нього. 1382 00:57:56,370 --> 00:57:57,750 Тепер ми можемо дати птахові, 1383 00:57:57,750 --> 00:57:59,540 Можливо, трохи переваг. 1384 00:57:59,540 --> 00:58:02,370 Підемо до птиці і сказати замість переміщення трьох кроків, 1385 00:58:02,370 --> 00:58:07,140 давайте рухатися йому 30 кроків. 1386 00:58:07,140 --> 00:58:08,700 Але він все одно був спійманий в кінці кінців. 1387 00:58:08,700 --> 00:58:10,430 >> Так от, у нас є дві теми. 1388 00:58:10,430 --> 00:58:13,230 Він поміщений в подряпин з двома сценаріями і два 1389 00:58:13,230 --> 00:58:16,150 спрайт, але ідея на інші мови, що ви можете 1390 00:58:16,150 --> 00:58:19,220 писати, по суті, дуже багато програм, як це і є 1391 00:58:19,220 --> 00:58:22,950 їх працювати по-справжньому, або мислимо, паралельно. 1392 00:58:22,950 --> 00:58:25,280 >> Тепер, є також ця концепція в програмуванні відомо як 1393 00:58:25,280 --> 00:58:28,010 подій, і це те, що ми не побачимо в C, 1394 00:58:28,010 --> 00:58:30,500 мову, відомий як С. Ми побачимо ближче до кінця семестру 1395 00:58:30,500 --> 00:58:33,240 в веб-програмуванні, коли ми введемо JavaScript і 1396 00:58:33,240 --> 00:58:36,970 Поняття будівля веб-сторінок, які є динамічними і взаємодіяти 1397 00:58:36,970 --> 00:58:37,710 з користувачами. 1398 00:58:37,710 --> 00:58:40,430 Таким чином, в цьому випадку, у нас є дуже простий приклад двох 1399 00:58:40,430 --> 00:58:43,860 спрайт, хлопчик і дівчинка, кожен з яких мають свої відповідні 1400 00:58:43,860 --> 00:58:48,040 теми, але чомусь ці два взаємо-зв'язок шляхом 1401 00:58:48,040 --> 00:58:49,490 того, що називається подіями. 1402 00:58:49,490 --> 00:58:52,750 Отже, дозвольте мені йти вперед тут і збільшити на сценарій хлопчика, 1403 00:58:52,750 --> 00:58:54,050 який виглядає наступним чином. 1404 00:58:54,050 --> 00:58:57,510 При натисканні зелений прапор, назавжди зробити наступне. 1405 00:58:57,510 --> 00:59:01,510 Якщо ключ простір, або пробіл, натискання, скажімо, 1406 00:59:01,510 --> 00:59:03,900 Марко протягом двох секунд, це чисто естетична на 1407 00:59:03,900 --> 00:59:06,860 екран, маленький пухирець мови, але потім в ефір. 1408 00:59:06,860 --> 00:59:09,240 >> Таким чином, трансляція інший подряпин шматок, що це 1409 00:59:09,240 --> 00:59:12,050 Представник класу функціональність в програмуванні 1410 00:59:12,050 --> 00:59:15,080 , Що дозволяє різним програмам, різні теми, 1411 00:59:15,080 --> 00:59:17,120 Інтер-зв'язок, щоб хоч якось відправити 1412 00:59:17,120 --> 00:59:18,520 повідомлення, одне на інше. 1413 00:59:18,520 --> 00:59:21,930 Переходячи папірець в класі є свого роду низьких технологій 1414 00:59:21,930 --> 00:59:22,700 еквівалентні. 1415 00:59:22,700 --> 00:59:24,300 Таким чином, трансляція події. 1416 00:59:24,300 --> 00:59:26,210 Я можу відправити це повідомлення, і слова події 1417 00:59:26,210 --> 00:59:27,270 є абсолютно довільним. 1418 00:59:27,270 --> 00:59:30,000 Подряпини іноді це падіння падіння, так що я просто підійшов 1419 00:59:30,000 --> 00:59:33,230 з випадковим словом, як подія, тому що зараз, що хлопчик робить 1420 00:59:33,230 --> 00:59:36,600 коли я натискаю на ключ, він передає цю подію. 1421 00:59:36,600 --> 00:59:39,270 І якщо я тепер подивіться на сценарій дівчини, її сценарій 1422 00:59:39,270 --> 00:59:42,690 супер просто, тому що все, що їй потрібно зробити, це не діє, коли 1423 00:59:42,690 --> 00:59:44,100 зелений прапор кнопки. 1424 00:59:44,100 --> 00:59:47,910 Вона призначена для дій, коли вона отримує цитата, кінець цитати, 1425 00:59:47,910 --> 00:59:51,210 "Подія", і в цей момент, вона слухає, отже, для 1426 00:59:51,210 --> 00:59:52,960 так звані події знову і знову. 1427 00:59:52,960 --> 00:59:55,790 Як тільки вона одержує цьому випадку вона буде кричати 1428 00:59:55,790 --> 00:59:57,680 Polo протягом двох секунд. 1429 00:59:57,680 --> 01:00:01,090 >> І тому ви, можливо, може вивести з цього, що саме 1430 01:00:01,090 --> 01:00:03,190 Наступний результат буде. 1431 01:00:03,190 --> 01:00:04,910 Дозвольте мені клацніть зелений прапор. 1432 01:00:04,910 --> 01:00:06,610 Нічого не відбувається, тому що мені потрібно робити? 1433 01:00:06,610 --> 01:00:07,310 АУДИТОРІЯ: Space Bar. 1434 01:00:07,310 --> 01:00:08,630 DAVID Малан: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Хлопчик говорить Марко Поло каже дівчина. 1436 01:00:11,990 --> 01:00:13,670 Але це не жорстко як такої. 1437 01:00:13,670 --> 01:00:16,740 Це взаємо-зв'язок між скриптів, так що тепер ми 1438 01:00:16,740 --> 01:00:19,240 є можливість зробити ще більш складні програми, в яких 1439 01:00:19,240 --> 01:00:22,830 ці двоє якось між спілкуванням. 1440 01:00:22,830 --> 01:00:25,260 >> Отже, у яких напрямках ми можемо прийняти це? 1441 01:00:25,260 --> 01:00:28,260 Ну, в задачу безліч 0, дійсно, мета полягає в тому, щоб 1442 01:00:28,260 --> 01:00:29,830 весело провести час з нуля. 1443 01:00:29,830 --> 01:00:32,440 Для хакером видання, ви будете отримувати задоволення, а не з більш 1444 01:00:32,440 --> 01:00:35,850 складна версія подряпин називається BYOB, зборки 1445 01:00:35,850 --> 01:00:38,040 Власні блоки, але ідея та ж. 1446 01:00:38,040 --> 01:00:38,780 Ви зможете - 1447 01:00:38,780 --> 01:00:39,710 Так, це було навмисно. 1448 01:00:39,710 --> 01:00:42,450 Він прийшов з Берклі. 1449 01:00:42,450 --> 01:00:45,200 BYOB це версія хакер видання цього, але обидва 1450 01:00:45,200 --> 01:00:48,180 , Демографії, Standard Edition та хакерських видання, так 1451 01:00:48,180 --> 01:00:50,940 Мета під рукою протягом найближчого тижня насправді просто пірнути в 1452 01:00:50,940 --> 01:00:53,050 глибоко, щоб ваші руки брудні з програмуванням, і зробити 1453 01:00:53,050 --> 01:00:55,240 щось цікаве, щось зробити інтерактивним, щоб 1454 01:00:55,240 --> 01:00:58,020 щось художнє, зробити щось весело насправді 1455 01:00:58,020 --> 01:01:01,020 продемонструвати, так що до кінця тижня, ви будете мати проект, 1456 01:01:01,020 --> 01:01:03,770 не тільки для вашого першого CS50 PSET, але ви повинні будете 1457 01:01:03,770 --> 01:01:05,620 дещо, що ви можете показати в Annenberg до 1458 01:01:05,620 --> 01:01:08,830 друзів або навіть сім'ї, завантаживши його на сайт Массачусетського технологічного інституту. 1459 01:01:08,830 --> 01:01:11,760 І так, як я сказав у середу ми очікуємо, що 90% класу, 1460 01:01:11,760 --> 01:01:13,970 загалом, робити стандартні видання. 1461 01:01:13,970 --> 01:01:16,660 Зрозумійте, що є також це вихід для тих з вас, хто 1462 01:01:16,660 --> 01:01:18,990 в іншому випадку могли знайти собі трохи нудно з основами 1463 01:01:18,990 --> 01:01:21,650 і дійсно хочете вивчити і виробити бачення у вас вже 1464 01:01:21,650 --> 01:01:25,380 Тобто з попереднього фон в цьому більш дружнім 1465 01:01:25,380 --> 01:01:26,240 навколишнього середовища. 1466 01:01:26,240 --> 01:01:29,030 >> Отже, дозвольте мені підтягнути ще один приклад, що один з наших колишніх 1467 01:01:29,030 --> 01:01:33,830 Тут студенти зробили і трохи розповісти щось через пісню. 1468 01:01:33,830 --> 01:01:37,430 Це так само, як це грає, думаю про те, як ви йдете з приводу 1469 01:01:37,430 --> 01:01:40,520 реалізації цієї програми за допомогою саме цих же 1470 01:01:40,520 --> 01:01:44,180 будівельні блоки, трохи псевдо-випадковість, а 1471 01:01:44,180 --> 01:01:46,010 Трохи знайому пісню. 1472 01:01:46,010 --> 01:01:47,910 Якби ми могли збільшити гучність трохи? 1473 01:01:47,910 --> 01:01:49,160 [MUSIC - "це Raining Men" Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID Малан: Ось саме для CS50. 1475 01:03:03,930 --> 01:03:05,860 Ми будемо бачити Вас в понеділок. 1476 01:03:05,860 --> 01:03:21,152 [Оплески]