1 00:00:00,000 --> 00:00:15,059 >> [МУЗИКА] 2 00:00:15,059 --> 00:00:19,170 >> Це CS50-- Harvard введення університету 3 00:00:19,170 --> 00:00:22,070 до інтелектуальної підприємств інформатики 4 00:00:22,070 --> 00:00:23,800 і мистецтво програмування. 5 00:00:23,800 --> 00:00:27,020 А мене звуть Девід Малан і Я просто подумав сьогодні вранці, 6 00:00:27,020 --> 00:00:33,120 це було дивно 20 років сьогодні так як я в останній раз сидів, де ви, хлопці, тепер робити. 7 00:00:33,120 --> 00:00:33,840 >> Це був 1996. 8 00:00:33,840 --> 00:00:37,550 Я був на другому курсі, і я приймав CS50 в перший раз. 9 00:00:37,550 --> 00:00:40,890 І я навіть не встав нерв взяти його сам перший рік, 10 00:00:40,890 --> 00:00:42,500 почасти через часу. 11 00:00:42,500 --> 00:00:44,782 Інформатика мені був ніби як, Мех. 12 00:00:44,782 --> 00:00:46,990 Я був трохи виродка зростає , Але я насправді не 13 00:00:46,990 --> 00:00:49,180 є будь-які інтелектуальні інтерес до того, з'явилися 14 00:00:49,180 --> 00:00:51,920 щоб бути просто ціла купа люди програмування весь час. 15 00:00:51,920 --> 00:00:53,904 >> І мені було страшно, якщо чесно. 16 00:00:53,904 --> 00:00:56,820 Курс і інформатика докладніше як правило, мали і в якійсь мірі, 17 00:00:56,820 --> 00:01:01,230 до сих пір має таку репутацію поля до стережіться, якщо тільки тому, що багато хто з нас 18 00:01:01,230 --> 00:01:04,410 не знайомі з ним і впевнені в ньому. 19 00:01:04,410 --> 00:01:08,480 І це насправді не було, поки я не робив покупки цей клас, другокурсник fall-- 20 00:01:08,480 --> 00:01:10,880 і навіть тоді, я тільки вступив тому що professor-- 21 00:01:10,880 --> 00:01:13,950 один з перших моїх наставників, Брайан Керніган тепер в Princeton-- 22 00:01:13,950 --> 00:01:15,700 дозволив мені взяти клас пас потерпіти невдачу. 23 00:01:15,700 --> 00:01:18,020 І справді, ось чому сьогодні ми дозволяємо і заохочувати 24 00:01:18,020 --> 00:01:20,030 студентів прийняти цей клас сидів / unsat. 25 00:01:20,030 --> 00:01:22,040 >> І тільки потім, на кінець семестру 26 00:01:22,040 --> 00:01:24,870 я зрозумів, як, нічого собі, це не був таким незнайомим поле. 27 00:01:24,870 --> 00:01:26,850 Насправді, це було дуже розширення прав і можливостей області, 28 00:01:26,850 --> 00:01:28,970 і більш збудливо, особливо пізніше, 29 00:01:28,970 --> 00:01:32,809 як я взяв курси Драматичне мистецтво 101 і Латинської A 30 00:01:32,809 --> 00:01:34,600 а потім в кінці кінців, Неповна середня археологія, 31 00:01:34,600 --> 00:01:37,860 я дійсно починаю бачити Перетину цього поля, комп'ютер 32 00:01:37,860 --> 00:01:41,979 наука, з гуманітарними науками, природничі науки, мистецтво, медицина, 33 00:01:41,979 --> 00:01:42,520 тощо. 34 00:01:42,520 --> 00:01:44,420 І так це те, що просто так акуратний про комп'ютерної науки 35 00:01:44,420 --> 00:01:46,930 в кінцевому рахунку, як ми сподіваємося, що ви будете see-- є його застосовність 36 00:01:46,930 --> 00:01:50,280 до цих інших полях, і як ви можете прийняти деякі з сьогоднішніх і семестру 37 00:01:50,280 --> 00:01:53,070 ідеї та практичні навички назад в свій власний домен, 38 00:01:53,070 --> 00:01:58,200 і насправді вивчення цього перетину ліберальних мистецтв і наук. 39 00:01:58,200 --> 00:02:02,690 >> Таким чином, 73% з вас, якщо останній рік будь-яких ознак, 40 00:02:02,690 --> 00:02:04,390 ніколи не брав курс CS раніше. 41 00:02:04,390 --> 00:02:06,389 Так що якщо, як я, ви почуття трохи 42 00:02:06,389 --> 00:02:09,190 страшно, або відверто ви не дійсно впевнений, чому ви навіть тут. 43 00:02:09,190 --> 00:02:11,510 Можливо, ви просто пішли деякі друзями за Сандерсу прямо зараз. 44 00:02:11,510 --> 00:02:12,490 Це абсолютно нормально. 45 00:02:12,490 --> 00:02:15,059 Мета тут полягає в гак ви і запевнити Вас 46 00:02:15,059 --> 00:02:17,100 що якщо ви дивитеся на зліва і справа, 47 00:02:17,100 --> 00:02:21,480 ви збираєтеся, щоб побачити однокласників як мало або стільки ж досвіду 48 00:02:21,480 --> 00:02:22,890 що ви самі могли б мати. 49 00:02:22,890 --> 00:02:25,280 І справді, ми розділимо деякі статистичні дані пізніше сьогодні 50 00:02:25,280 --> 00:02:28,120 щодо того, що демографія клас, як правило, схожі. 51 00:02:28,120 --> 00:02:31,440 >> І, як додав reassurance-- і це ми маю на увазі, так як я взяв протягом 52 00:02:31,440 --> 00:02:33,252 Через кілька років в ago-- навчальний план Курсу 53 00:02:33,252 --> 00:02:35,460 є this--, що в кінцевому рахунку питання в цьому курсі 54 00:02:35,460 --> 00:02:38,040 не так багато, де ви в кінцевому вгору щодо ваших однокласників, 55 00:02:38,040 --> 00:02:43,110 але де ви в тиждень 11, кінець семестр, в кінцевому підсумку по відношенню до себе 56 00:02:43,110 --> 00:02:46,280 в тиждень 0, що де ми знаходимося сьогодні тут. 57 00:02:46,280 --> 00:02:48,704 І це те, що я зрозумів, всі ці роки тому. 58 00:02:48,704 --> 00:02:50,620 І я знаю багато класи кажуть, що це, але це 59 00:02:50,620 --> 00:02:52,450 особливо вірно в інформатиці. 60 00:02:52,450 --> 00:02:55,320 Зрештою, це поле незнайомий, як це було зі мною 61 00:02:55,320 --> 00:02:58,590 і може бути до вас, насправді як раз про вирішення проблем. 62 00:02:58,590 --> 00:03:01,324 І як такий, у нього є це застосовність для отримання інших полів. 63 00:03:01,324 --> 00:03:03,490 І справді, якби ми спробували переганяти, що це означає, 64 00:03:03,490 --> 00:03:06,897 це рішення проблем по своїй суті, я вважаю. 65 00:03:06,897 --> 00:03:09,480 Там в input-- так що все це є те, що ви намагаєтеся вирішити. 66 00:03:09,480 --> 00:03:12,264 Там в вихід, який, ми сподіваємося, рішення цієї проблеми. 67 00:03:12,264 --> 00:03:14,180 А потім, як би ми кажуть в інформатиці, 68 00:03:14,180 --> 00:03:17,310 Тобто цей чорний ящик в середній, що ви не обов'язково 69 00:03:17,310 --> 00:03:19,450 повинні піклуватися про те, як вона працює. 70 00:03:19,450 --> 00:03:22,230 Ви в кінці кінців, самі могли б реалізувати те, що всередині цієї коробки. 71 00:03:22,230 --> 00:03:25,194 Але для сьогоднішніх цілей та більш як правило, в житті, все, що ви дбаєте про 72 00:03:25,194 --> 00:03:26,610 в тому, що ці проблеми вирішуються отримати. 73 00:03:26,610 --> 00:03:29,340 >> І те, що цей курс в кінцевому рахунку, про вивчає 74 00:03:29,340 --> 00:03:31,700 перетин ці входи і виходи, 75 00:03:31,700 --> 00:03:34,410 і ці так звані алгоритми, як ми скоро побачимо, 76 00:03:34,410 --> 00:03:37,450 які реалізують те, що внизу є, капот. 77 00:03:37,450 --> 00:03:40,487 Але ці входи і ці outputs-- що ж це насправді означає? 78 00:03:40,487 --> 00:03:43,570 Ну, врешті-решт, нам потрібно якийсь спосіб представлення інформації. 79 00:03:43,570 --> 00:03:46,660 Це особливо вірно в комп'ютері, який, як фантазії і складно, як 80 00:03:46,660 --> 00:03:48,160 Може скластися враження, є досить німим пристрій. 81 00:03:48,160 --> 00:03:52,240 Чи потрібна від electricity-- кабель або акумулятор, як input-- 82 00:03:52,240 --> 00:03:55,820 а потім він виробляє деякі preprogramed відповіді на екрані. 83 00:03:55,820 --> 00:03:57,970 >> Але як же ми отримуємо з від початку до кінця там? 84 00:03:57,970 --> 00:03:59,470 Ну, що проблема повинна бути вирішена? 85 00:03:59,470 --> 00:04:01,050 Ну, може бути, ми могли б, в початок будь-якого семестру, 86 00:04:01,050 --> 00:04:02,841 спробувати взяти участь в кімнаті, як це. 87 00:04:02,841 --> 00:04:04,750 Так що я міг би зробити, як один, два, три. 88 00:04:04,750 --> 00:04:07,060 Або, може бути, якби я це зробив до виду стежити 89 00:04:07,060 --> 00:04:10,560 з myself-- стежити за things-- Я міг швидко бігти з пальців. 90 00:04:10,560 --> 00:04:14,650 Так що я міг би просто зробити хеш marks-- один людина, два, три, чотири, п'ять, шість, 91 00:04:14,650 --> 00:04:15,431 сім, вісім. 92 00:04:15,431 --> 00:04:17,930 І всі ми, напевно, зробив це, будь то на ваших руках 93 00:04:17,930 --> 00:04:19,680 або на аркуші паперу. 94 00:04:19,680 --> 00:04:22,140 І це насправді просто що називається унарний notation-- 95 00:04:22,140 --> 00:04:26,130 де, якщо у вас є тільки одна буква в вашому алфавіті, один або хеш 96 00:04:26,130 --> 00:04:29,440 відмітка в даному випадку, для кожного вхід ви хочете порахувати, 97 00:04:29,440 --> 00:04:32,330 вам потрібно скласти одну з них letters-- один з цих марок. 98 00:04:32,330 --> 00:04:32,510 >> Добре. 99 00:04:32,510 --> 00:04:34,790 Це все чудово і добре, і не всі, що складніше. 100 00:04:34,790 --> 00:04:37,800 Але комп'ютери не всі що набагато більш складним. 101 00:04:37,800 --> 00:04:40,770 Справді, більшість з вас, ймовірно, знаєте, навіть якщо ви насправді не 102 00:04:40,770 --> 00:04:44,080 вважається, що це означає, що комп'ютери розуміють тільки нулі 103 00:04:44,080 --> 00:04:45,870 і ones-- так званої подвійної системи. 104 00:04:45,870 --> 00:04:49,390 Ми, люди, навпаки, настільки набагато складніші остільки 105 00:04:49,390 --> 00:04:51,770 як ми розуміємо нулі через дев'яток. 106 00:04:51,770 --> 00:04:55,740 >> Але навіть якщо двійковий файл, спочатку погляд, не все, що знайоме, 107 00:04:55,740 --> 00:05:00,330 виявляється, це так само, як системи і ідеї, які ми вже знаємо. 108 00:05:00,330 --> 00:05:02,420 Так, наприклад, розглянути це питання. 109 00:05:02,420 --> 00:05:03,896 Це просто послідовність символів. 110 00:05:03,896 --> 00:05:05,770 І все ви, коли глянувши на нього, напевно, 111 00:05:05,770 --> 00:05:09,380 не думаю, що нічого 123-- дійсно цікаво там. 112 00:05:09,380 --> 00:05:11,940 Але чому це число, 123? 113 00:05:11,940 --> 00:05:14,440 Це лише гліфів screen-- просто візерунки 114 00:05:14,440 --> 00:05:16,387 що хтось міг би волочіння або набраний. 115 00:05:16,387 --> 00:05:18,970 Але якщо ви схожі на мене, ви ймовірно, пам'ятаєте з початкової школи 116 00:05:18,970 --> 00:05:21,610 що є свого роду колони або місця тут. 117 00:05:21,610 --> 00:05:25,340 Там в місце в своїй і десятник місце і сто вказане місце. 118 00:05:25,340 --> 00:05:29,820 І причина того, що це 123 і не тільки зразок з трьох символів 119 00:05:29,820 --> 00:05:33,090 відбувається тому, що, звичайно ж, якщо є один в сотні місці, 120 00:05:33,090 --> 00:05:36,610 ви робите математику в 100 раз один, а потім два в десяти свого місця. 121 00:05:36,610 --> 00:05:41,390 Так що це в 10 разів 2, а потім три в місце з однією і це 1 раз 3. 122 00:05:41,390 --> 00:05:45,670 І коли ви додаєте всі ці вгору, з Звичайно, ви отримаєте 100 плюс 20 плюс 3. 123 00:05:45,670 --> 00:05:48,220 >> Отже, ми почали тільки з малюнком з symbols-- в alphabet-- 124 00:05:48,220 --> 00:05:51,670 але тоді ми завдамо значення на це шляхом цих колон. 125 00:05:51,670 --> 00:05:54,450 Що ж, виходить, що комп'ютери справді не 126 00:05:54,450 --> 00:05:56,300 все, що відрізняється від вас і мене. 127 00:05:56,300 --> 00:06:01,840 Але замість того, щоб використовувати сили 10, так, щоб speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10000 місце і так forth-- вони насправді 129 00:06:04,330 --> 00:06:08,930 просто використовувати повноваження 2-- так що один, 2, 4, а потім 130 00:06:08,930 --> 00:06:12,810 якщо покласти більше цифр, 8, 16, 32, 64, 128, і так далі. 131 00:06:12,810 --> 00:06:16,050 І так це те, як комп'ютер буде являти собою число 0, 132 00:06:16,050 --> 00:06:17,300 так само, як ми, люди. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- і ви можете здогадатися, який патерн з нулів і одиниць, 134 00:06:21,660 --> 00:06:24,610 якщо комп'ютер може тільки говорити 0 або 1--, що 135 00:06:24,610 --> 00:06:29,110 картина буде представляти число, яке ми знаємо, люди як 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Добре. 138 00:06:31,090 --> 00:06:35,900 Таким чином, 0, 0, 1, як ми уявляємо 1, так що ви можете бути схильні потім 139 00:06:35,900 --> 00:06:39,510 для представлення числа 2, якщо у вас є всі четверо в вказане місце і місце в двійкове 140 00:06:39,510 --> 00:06:48,290 в одному місці, ви можете сказати, ну, якби ми мали 1 місце в своєму місці, 141 00:06:48,290 --> 00:06:50,430 і тепер ми хочемо порахувати до 2, ви можете 142 00:06:50,430 --> 00:06:53,310 зробити це і залишити це бути нульовим. 143 00:06:53,310 --> 00:06:56,397 Але, звичайно, це не так, як десяткова система працює або. 144 00:06:56,397 --> 00:06:58,230 Якщо поставити цифру обидва цих колон, 145 00:06:58,230 --> 00:06:59,563 ви повинні зробити арифметику. 146 00:06:59,563 --> 00:07:01,930 Так що число зробив я випадково тільки представляють? 147 00:07:01,930 --> 00:07:06,710 >> Так що це 3, тому що в 2 рази 1 плюс 1 1 раз, звичайно ж, дає нам три. 148 00:07:06,710 --> 00:07:08,340 Так що це було б два. 149 00:07:08,340 --> 00:07:12,730 Біт роду перевертається, так би мовити, як 0 стає одним, так само, як 9 ролей більш 150 00:07:12,730 --> 00:07:14,840 і стає 0, коли ви носите 1. 151 00:07:14,840 --> 00:07:16,510 Тоді це було б три курси. 152 00:07:16,510 --> 00:07:20,170 Four-- Ще одна цікава річ відбувається, коли ті пролонгувати 153 00:07:20,170 --> 00:07:21,750 і ви носите 1, якщо можна так висловитися. 154 00:07:21,750 --> 00:07:23,320 Так що це, звичайно, 4. 155 00:07:23,320 --> 00:07:25,160 >> Але якщо ви швидко вперед зараз, що найбільше число відбувається 156 00:07:25,160 --> 00:07:26,660 щоб бути, що комп'ютер може представляти? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Так що в цьому випадку якраз сім, чи не так? 159 00:07:32,380 --> 00:07:35,570 Тому що у вас є один в чотирьох, один в два, один в один. 160 00:07:35,570 --> 00:07:36,900 Так що це 4 плюс 2 плюс 1. 161 00:07:36,900 --> 00:07:37,972 Так що дає вам сім. 162 00:07:37,972 --> 00:07:39,680 І справді, це було б здатися на перший погляд 163 00:07:39,680 --> 00:07:43,750 що комп'ютери можуть розраховувати не вище цього. 164 00:07:43,750 --> 00:07:45,210 >> Але це, звичайно, не відповідає дійсності. 165 00:07:45,210 --> 00:07:48,243 Що ми, люди роблять, коли ми хочемо розраховувати вище, ніж як 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Просто носити одну і просто додати четверту цифру вліво. 168 00:07:53,900 --> 00:07:55,070 І так насправді ми могли. 169 00:07:55,070 --> 00:07:57,900 Ми могли б мати вісім-х місце і місце 16-го, в 170 00:07:57,900 --> 00:08:02,000 і 32 в вказане місце, 64, 128-- і ви може просто продовжувати йти на нескінченно. 171 00:08:02,000 --> 00:08:04,640 Таким чином, ці нулі і ones-- так званий бінарний сістема-- 172 00:08:04,640 --> 00:08:10,290 це те, що комп'ютерний вчений буде як правило, називати трохи, або двійковий розряд. 173 00:08:10,290 --> 00:08:13,590 >> Але тепер, як же ми отримуємо від концепція або графіки цих речей 174 00:08:13,590 --> 00:08:14,620 до фактичного комп'ютера? 175 00:08:14,620 --> 00:08:17,170 Ми, здається, пропускаючи крок тут. 176 00:08:17,170 --> 00:08:20,210 Ну, єдиний вхід в кінці дня, на мій ноутбук тут 177 00:08:20,210 --> 00:08:22,060 цей потік електроенергії. 178 00:08:22,060 --> 00:08:24,560 Навіть якщо це було давно час, так як ви думали про 179 00:08:24,560 --> 00:08:26,580 або ніколи не думали про як працює електрику, 180 00:08:26,580 --> 00:08:30,909 є електрони, що протікають в систему або поза, і це мій вид введення. 181 00:08:30,909 --> 00:08:34,659 >> Так що, якщо це все, що ми отримувати в якості вхідних даних тут, 182 00:08:34,659 --> 00:08:36,830 що ми можемо зробити з цією інформацією? 183 00:08:36,830 --> 00:08:40,040 Ну, ми могли б думати про якість нуля тільки відсутність електрики. 184 00:08:40,040 --> 00:08:42,540 Ніщо не flowinw, нічого рухатися, нічого не відбувається. 185 00:08:42,540 --> 00:08:44,690 Це просто за замовчуванням state-- нуль. 186 00:08:44,690 --> 00:08:48,200 Але якщо є електрика тече, чому ми просто не довільно, а на глобальному рівні 187 00:08:48,200 --> 00:08:50,250 послідовно, називаємо це один. 188 00:08:50,250 --> 00:08:54,760 >> Так просто не маючи ніякої влади, у нас є нуль, так влада, 189 00:08:54,760 --> 00:08:57,520 ми маємо одно-- ніякої влади, та влада. 190 00:08:57,520 --> 00:09:01,520 І таким чином, використовуючи щось більше фізичний або електронний 191 00:09:01,520 --> 00:09:05,340 ми починаємо реалізовувати це поняття щось або як один або нуль. 192 00:09:05,340 --> 00:09:07,230 Справді, ми могли б просто зробити це тут. 193 00:09:07,230 --> 00:09:10,590 Так ось, у мене є не три, а вісім лампочок, кожна з яких 194 00:09:10,590 --> 00:09:11,810 має свій власний комутатор. 195 00:09:11,810 --> 00:09:15,760 >> І тому, якщо я хотів би представити число сім тут, 196 00:09:15,760 --> 00:09:18,510 Я міг би включити ці три лампочки. 197 00:09:18,510 --> 00:09:21,470 І справді, всередині мій комп'ютер мільйони, 198 00:09:21,470 --> 00:09:25,650 мільярди речей, які просто менше, ніж, звані транзистори, 199 00:09:25,650 --> 00:09:27,330 перемикачі, які ви просто вмикати і вимикати. 200 00:09:27,330 --> 00:09:30,420 Таким чином, вони big-- щодо big-- перемикачі всередині моєї laptop-- 201 00:09:30,420 --> 00:09:32,150 багато, багато, багато, багато інших комутатори. 202 00:09:32,150 --> 00:09:35,160 Але всі вони роблять це саме that-- включити щось, поверніть щось геть. 203 00:09:35,160 --> 00:09:38,076 І як такий, комп'ютер може являти собою, з цими мільйонами або мільярдами 204 00:09:38,076 --> 00:09:40,480 транзисторів, багато і багато нулів і одиниць. 205 00:09:40,480 --> 00:09:43,160 І є інші апаратні засоби, які до сих пір дозволяє зберігати інформацію про довгострокову перспективу, 206 00:09:43,160 --> 00:09:45,243 так що, коли ви тягнете плагін, ви не втратите його. 207 00:09:45,243 --> 00:09:46,900 Але це історія для іншого дня. 208 00:09:46,900 --> 00:09:51,170 >> Отже, що ми можемо зробити з цими бітами? 209 00:09:51,170 --> 00:09:54,309 Ми могли б просто взяти тиск з me-- 210 00:09:54,309 --> 00:09:56,600 може хтось хоче приїхати тут і піднесе демо? 211 00:09:56,600 --> 00:09:57,516 Я бачив цю руку в першу чергу. 212 00:09:57,516 --> 00:09:58,709 Як вас звати? 213 00:09:58,709 --> 00:09:59,250 Мадай: Мадай. 214 00:09:59,250 --> 00:10:00,542 DAVID Маланки: Мадай, давай вгору. 215 00:10:00,542 --> 00:10:01,250 Приємно познайомитись. 216 00:10:01,250 --> 00:10:02,390 Мадай: Приємно познайомитися. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Маланки: Давай так. 218 00:10:02,930 --> 00:10:04,182 Я не доведеться губи тебе. 219 00:10:04,182 --> 00:10:04,682 Добре. 220 00:10:04,682 --> 00:10:11,090 Так ось, у нас є, notice-- один, two-- ми будемо редагувати що out-- один, два, чотири, 221 00:10:11,090 --> 00:10:13,350 ,, Вісім, 16 32 64, 128. 222 00:10:13,350 --> 00:10:14,220 Це зроблено навмисно. 223 00:10:14,220 --> 00:10:17,370 Там о восьмій біт here-- двійковий digits-- нулі і одиниці. 224 00:10:17,370 --> 00:10:21,460 І трохи корисна одиниця measure-- не так корисна, одиниця виміру 225 00:10:21,460 --> 00:10:21,999 на себе. 226 00:10:21,999 --> 00:10:24,290 Як правило, ви хочете, по крайней мере, вісім з цих речей, а.к.а. 227 00:10:24,290 --> 00:10:24,790 байт. 228 00:10:24,790 --> 00:10:26,230 Таким чином, ми маємо байт бітів тут. 229 00:10:26,230 --> 00:10:31,130 >> Так що, якщо ми хочемо, щоб кинути виклик вам, наприклад, виклавши, в двійковій системі, 230 00:10:31,130 --> 00:10:33,230 це значення here-- 42. 231 00:10:33,230 --> 00:10:35,140 Хочете прийняти удар на що? 232 00:10:35,140 --> 00:10:36,034 >> Мадай: [нерозбірливо]. 233 00:10:36,034 --> 00:10:38,700 DAVID Маланки: Так, просто натисніть маленькі білі перемикачі спереду. 234 00:10:38,700 --> 00:10:41,290 І ви хочете, щоб по буквах з 42, і для захоплень 235 00:10:41,290 --> 00:10:44,061 це CS50 стрес м'яч, якщо ви отримаєте це. 236 00:10:44,061 --> 00:10:44,560 Добре. 237 00:10:44,560 --> 00:10:46,420 Таким чином, у вас є 32. 238 00:10:46,420 --> 00:10:48,430 Ми будемо потребувати 42. 239 00:10:48,430 --> 00:10:51,410 Так що це вісімка, так що 40. 240 00:10:51,410 --> 00:10:54,160 І excellent-- дуже красиво зроблено. 241 00:10:54,160 --> 00:10:55,186 Дякую. 242 00:10:55,186 --> 00:10:58,790 >> [Оплески] 243 00:10:58,790 --> 00:10:59,290 Добре. 244 00:10:59,290 --> 00:11:00,623 Таким чином, у нас є ще один стрес м'яч. 245 00:11:00,623 --> 00:11:03,595 Давайте зробимо це ще раз, якщо ми можемо. 246 00:11:03,595 --> 00:11:05,368 Ще один доброволець? 247 00:11:05,368 --> 00:11:07,970 Вільний стрес м'яч, вільний стрес м'яч. 248 00:11:07,970 --> 00:11:08,470 ДОБРЕ. 249 00:11:08,470 --> 00:11:11,640 За тут в середині, Ви хочете, щоб спуститися? 250 00:11:11,640 --> 00:11:14,100 Добре. 251 00:11:14,100 --> 00:11:15,552 Я знаю. 252 00:11:15,552 --> 00:11:16,360 Там ми йдемо. 253 00:11:16,360 --> 00:11:20,818 >> Так що число here-- приходять вниз. 254 00:11:20,818 --> 00:11:21,567 Як вас звати? 255 00:11:21,567 --> 00:11:21,984 >> Davey: Деві. 256 00:11:21,984 --> 00:11:22,820 >> DAVID Маланки: Деві. 257 00:11:22,820 --> 00:11:23,320 ДОБРЕ. 258 00:11:23,320 --> 00:11:24,810 Вставай, Деві. 259 00:11:24,810 --> 00:11:25,890 Приємно познайомитись. 260 00:11:25,890 --> 00:11:28,639 І те, що ми будемо мати вас spell--, якщо ви могли б затриматися там 261 00:11:28,639 --> 00:11:32,810 тільки для одного moment-- є число 50. 262 00:11:32,810 --> 00:11:36,293 Але, але, але зате, але, ці початкової школи магніти по причині. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Просто стало трохи складніше, все в порядку? 265 00:11:43,327 --> 00:11:44,160 Там ще вісім. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Добре. 268 00:11:47,320 --> 00:11:48,486 Так що ж ми маємо там? 269 00:11:48,486 --> 00:11:51,356 У нас є 32. 270 00:11:51,356 --> 00:11:54,344 Ніцца. 271 00:11:54,344 --> 00:11:58,610 32 плюс 16 дає нам 48-- так близько. 272 00:11:58,610 --> 00:12:00,390 І чудово. 273 00:12:00,390 --> 00:12:02,831 Вітаємо Деві, а також. 274 00:12:02,831 --> 00:12:05,720 >> [Оплески] 275 00:12:05,720 --> 00:12:06,516 >> Добре. 276 00:12:06,516 --> 00:12:09,390 Таким чином, ми можемо зробити це протягом всього дня, і він не отримує все, що набагато більше 277 00:12:09,390 --> 00:12:10,800 цікавою і більш складним завданням. 278 00:12:10,800 --> 00:12:13,250 Але це насправді point-- як відносно простий 279 00:12:13,250 --> 00:12:16,930 це, врешті-решт, яка Комп'ютер робить для зберігання інформації, 280 00:12:16,930 --> 00:12:21,740 зберігати входи і в кінцевому рахунку зберігати або представляти ці виходи. 281 00:12:21,740 --> 00:12:23,750 Але цифри самі по собі не є все, що цікаво. 282 00:12:23,750 --> 00:12:26,069 >> Так що люди, кілька років тому, вирішили, ви знаєте, що? 283 00:12:26,069 --> 00:12:27,860 Було б добре, якщо комп'ютери були не просто 284 00:12:27,860 --> 00:12:31,030 калькулятори для арифметики операції, але насправді може 285 00:12:31,030 --> 00:12:35,209 робити речі, як обробка текстів, або електронна пошта, або більш сучасні інкарнації 286 00:12:35,209 --> 00:12:36,500 з цих видів технологій. 287 00:12:36,500 --> 00:12:40,680 І тому світ вирішив довільно, але повсюдно, 288 00:12:40,680 --> 00:12:44,380 що якщо ви хочете зберегти капітал Буква А в комп'ютері, ви знаєте, що? 289 00:12:44,380 --> 00:12:47,730 Давайте просто все згодні з тим, щоб зберегти деякі моделі з нулів і ones-- 290 00:12:47,730 --> 00:12:52,422 bits--, що в кінцевому рахунку представляє десяткове число 65. 291 00:12:52,422 --> 00:12:53,630 Ми просто все згодні з цим. 292 00:12:53,630 --> 00:12:56,620 >> 66 представлятиме B, 67 представлятиме C, 293 00:12:56,620 --> 00:13:00,210 і є згустки інших моделей нулі і одиниці, або базові цифри, 294 00:13:00,210 --> 00:13:02,224 що буде представляти інші листи до сих пір. 295 00:13:02,224 --> 00:13:04,390 Так що якщо ви начебто розумово вбирають на мить, 296 00:13:04,390 --> 00:13:10,900 Я свідомо миритися через I, де Н 72 і I 73. 297 00:13:10,900 --> 00:13:15,830 Якщо комп'ютер, то, в контексті програма для обробки текстів чи електронної пошти, 298 00:13:15,830 --> 00:13:19,620 виявили під капотом, щоб мати ці моделі bits-- візерунка 299 00:13:19,620 --> 00:13:22,500 бітів, що представляють 72, потім 73, потім 33-- 300 00:13:22,500 --> 00:13:26,640 що могло б це заклинання в цій програмі? 301 00:13:26,640 --> 00:13:28,150 >> Так що привіт, а потім щось. 302 00:13:28,150 --> 00:13:31,460 Ми не обов'язково знати, але насправді 33-- не так на графіку earlier-- 303 00:13:31,460 --> 00:13:33,170 був просто знак оклику. 304 00:13:33,170 --> 00:13:38,870 Таким чином, 72 був H, 73 я, 33 відбувається щоб бути знак оклику досі. 305 00:13:38,870 --> 00:13:41,719 Але це все прекрасно і добре, і насправді в даний час, а не 306 00:13:41,719 --> 00:13:43,760 просто використовувати сім або вісім біти, завдяки чомусь 307 00:13:43,760 --> 00:13:46,530 називається Unicode в протилежність щоб ASCii назад в той же день, 308 00:13:46,530 --> 00:13:50,010 ми насправді можемо уявити ще більше цікаві персонажі, ніж просто 309 00:13:50,010 --> 00:13:52,980 це оригінальний англійська зміщена літери. 310 00:13:52,980 --> 00:13:56,030 Але ми також можемо уявити навіть акуратніше такі речі, як кольору. 311 00:13:56,030 --> 00:13:59,750 >> Якщо ви коли-небудь чули акронім RGB, червоний, зелений, синій, що 312 00:13:59,750 --> 00:14:03,510 просто означає, що комп'ютер як правило, використовує три набори bits-- 313 00:14:03,510 --> 00:14:06,760 деяка кількість бітів, які представляють собою число за скільки червоного ви хочете, 314 00:14:06,760 --> 00:14:08,940 інший набір бітів для скільки зелений ви хочете, 315 00:14:08,940 --> 00:14:11,430 і інший набір номер для скільки синього ви хочете. 316 00:14:11,430 --> 00:14:14,457 Так що велике число означає багато червоний, невелике число означає, що немає червоного кольору. 317 00:14:14,457 --> 00:14:16,290 І так це свого роду від середнього значення тут. 318 00:14:16,290 --> 00:14:20,180 >> Так дайте мені якісь червоні, дайте мені деякі зелений, і дай мені трохи синього кольору. 319 00:14:20,180 --> 00:14:24,260 А якщо змішати ці три відтінки кольори разом, в цьому випадку, 320 00:14:24,260 --> 00:14:26,850 ви отримаєте цей темний відтінок жовтого або коричневого кольору. 321 00:14:26,850 --> 00:14:32,330 Але ця картина вісім плюс вісім плюс eight-- так 24 bits-- 322 00:14:32,330 --> 00:14:36,550 зліва направо, як комп'ютер представлятиме цей конкретний колір. 323 00:14:36,550 --> 00:14:38,090 Тепер це просто точка на екрані. 324 00:14:38,090 --> 00:14:42,230 Якщо дивитися дуже близько на екрані телевізора ваші комп'ютер, ви побачите точки або пікселі. 325 00:14:42,230 --> 00:14:45,420 І якщо у вас є ціла сітка пікселів по горизонталі і вертикалі, 326 00:14:45,420 --> 00:14:46,630 у вас є зображення. 327 00:14:46,630 --> 00:14:49,029 І потім, якщо ви берете зображення, а потім мити 328 00:14:49,029 --> 00:14:52,070 показати себе інший образ, інший образ, інший образ, інший образ, 329 00:14:52,070 --> 00:14:54,760 дуже швидко, ви, звичайно, є фільми. 330 00:14:54,760 --> 00:14:56,109 >> І ось зверніть увагу, де ми почали. 331 00:14:56,109 --> 00:14:57,650 Ми почали з цих нулів і одиниць. 332 00:14:57,650 --> 00:15:00,570 Ми працювали звідти в десяткову числа, як ми уявляємо їх. 333 00:15:00,570 --> 00:15:02,070 Тепер у нас є букви алфавіту. 334 00:15:02,070 --> 00:15:05,664 Але в інших контекстах чекати, ми можемо використовувати дещо більше бітів і представляють кольори. 335 00:15:05,664 --> 00:15:07,830 Як тільки у вас є здатність представляти кольору, 336 00:15:07,830 --> 00:15:11,200 у вас є можливість представляти фотографії та анімаційні картинки 337 00:15:11,200 --> 00:15:13,780 та інші подібні символи на екрані. 338 00:15:13,780 --> 00:15:17,160 І коли у вас є цілий букет Зображення обльоту людини відразу, 339 00:15:17,160 --> 00:15:21,480 це виглядає як кінофільми, і таким чином ви отримуєте відео, а також. 340 00:15:21,480 --> 00:15:23,460 >> Таким чином, використовуючи ці дуже прості примітиви ми робимо 341 00:15:23,460 --> 00:15:28,070 є спосіб представлення в кінцевому рахунку, всі ці види засобів масової інформації. 342 00:15:28,070 --> 00:15:30,450 І ми знову відведеної Бо не знову і знову, поки ми 343 00:15:30,450 --> 00:15:33,467 отримати від найнижчого рівня на цьому високому рівні. 344 00:15:33,467 --> 00:15:35,550 Так що дає нам це загальна ідея абстракції. 345 00:15:35,550 --> 00:15:36,990 Але ми почали тут. 346 00:15:36,990 --> 00:15:38,790 >> Ось тепер, ми могли б представляють в комп'ютері 347 00:15:38,790 --> 00:15:41,920 наші входи з нулів і одиниць, наші виходи в нулів і одиниць, 348 00:15:41,920 --> 00:15:43,640 але те, що відбувається всередині коробки? 349 00:15:43,640 --> 00:15:46,080 Ось де комп'ютер наука стає цікавим. 350 00:15:46,080 --> 00:15:49,770 Ось де ви насправді принести ваш власні уми, щоб винести рішення проблеми. 351 00:15:49,770 --> 00:15:52,590 Тепер ми можемо передбачити, для Інша частина семестру, так. 352 00:15:52,590 --> 00:15:53,870 Я знаю, як бінарні роботи. 353 00:15:53,870 --> 00:15:57,942 Я пам'ятаю, як Ascii або Unicode-- відображення на letters-- робіт. 354 00:15:57,942 --> 00:15:59,650 І це, безумовно, варто зрозуміло, що ми 355 00:15:59,650 --> 00:16:03,470 може представляти червоний і зелений і синій, і являють собою мультимедіа, а також. 356 00:16:03,470 --> 00:16:05,390 Але це цікавий матеріал. 357 00:16:05,390 --> 00:16:09,790 Це те, що робить хтось здатних вирішувати проблеми. 358 00:16:09,790 --> 00:16:11,980 >> І одна з таких проблем ми хотіли б зробити, насправді, 359 00:16:11,980 --> 00:16:15,345 бере участь, або роблячи це алгоритмічно. 360 00:16:15,345 --> 00:16:16,470 І знову ж таки, я міг би зробити це. 361 00:16:16,470 --> 00:16:19,580 Я міг би зробити один, два, три, чотири п'ять, шість, сім, вісім дев'ять. 362 00:16:19,580 --> 00:16:21,520 І я міг би написати його вниз, щоб стежити за ним. 363 00:16:21,520 --> 00:16:23,769 Але це тільки як би я представляти інформацію. 364 00:16:23,769 --> 00:16:27,550 Або я міг би зробити це faster-- два, чотири, шість, вісім, десять, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- він відчуває, як в два рази так швидко, але це як і раніше 366 00:16:30,380 --> 00:16:32,050 збирається зайняти багато часу. 367 00:16:32,050 --> 00:16:35,990 >> Але виходить, якщо ми використовувати ще ще resource-- і дійсно комп'ютери 368 00:16:35,990 --> 00:16:38,940 в ці дні є кілька процесорів або мозок. 369 00:16:38,940 --> 00:16:41,970 Виявляється, комп'ютери можуть робити багато речей відразу, 370 00:16:41,970 --> 00:16:44,460 і насправді ми, в цій кімнаті, може представляти саме це. 371 00:16:44,460 --> 00:16:47,130 >> Так що це трохи соціально незручно, але якби мене гумор 372 00:16:47,130 --> 00:16:51,550 всього за три кроки процесу, нехай я прошу всіх на місці там просто 373 00:16:51,550 --> 00:16:54,640 встати на мить. 374 00:16:54,640 --> 00:16:57,380 Встаньте. 375 00:16:57,380 --> 00:17:01,580 Так що думати про себе, номер одно-- так що все в цій кімнаті, 376 00:17:01,580 --> 00:17:05,010 крім тих людей, які не зробили зобов'язують, думають номер один. 377 00:17:05,010 --> 00:17:06,510 Так що ваш номер прямо зараз. 378 00:17:06,510 --> 00:17:09,399 Це перший крок, або як вчений або програміст 379 00:17:09,399 --> 00:17:11,827 як правило, буде робити, ми будемо щоб почати відлік з нуля. 380 00:17:11,827 --> 00:17:14,410 Якщо найменше число ми можемо представляють з цими лампочками 381 00:17:14,410 --> 00:17:17,410 дорівнює нулю, шляхом просто залишаючи їх все геть, я міг би також просто 382 00:17:17,410 --> 00:17:19,271 почати відлік нуль замість одного. 383 00:17:19,271 --> 00:17:21,020 І ось що комп'ютерні вчені роблять. 384 00:17:21,020 --> 00:17:23,750 Так крок нуль, встати і думати про номер один. 385 00:17:23,750 --> 00:17:26,339 Наступним кроком є ​​this-- пара геть з хтось стоїть 386 00:17:26,339 --> 00:17:27,660 і додати свої числа разом. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Чудово. 389 00:17:32,850 --> 00:17:37,640 >> Так що на даний момент часу, буквально всі беруть участь 390 00:17:37,640 --> 00:17:41,930 думає про № 2, за винятком для одного непарного людини, якщо ми маємо 391 00:17:41,930 --> 00:17:43,450 непарне число людей в кімнаті. 392 00:17:43,450 --> 00:17:50,640 А тепер третій крок тут буде бути this-- один з вас повинен сісти. 393 00:17:50,640 --> 00:17:54,490 Один з вас повинен сісти, і якщо ви все ще стоїть, 394 00:17:54,490 --> 00:17:56,590 повернутися до першого кроку. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Добре. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Добре. 399 00:19:01,650 --> 00:19:03,880 Так що все більше і більше людей повинні сидіти вниз. 400 00:19:03,880 --> 00:19:08,280 Зверніть увагу на те, що це спонукало loop-- якийсь цикл. 401 00:19:08,280 --> 00:19:11,983 Деякі з вас, має бути ніяково застряг, ходить взад і вперед між кроці 402 00:19:11,983 --> 00:19:14,180 і два, один і два, один і два. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Все добре. 405 00:19:21,810 --> 00:19:22,630 Наша перша помилка. 406 00:19:22,630 --> 00:19:24,740 Ми будемо мати справу з цим. 407 00:19:24,740 --> 00:19:25,320 Добре. 408 00:19:25,320 --> 00:19:27,370 Дозвольте мені спробувати підштовхнути речі разом. 409 00:19:27,370 --> 00:19:31,454 >> У теорії, тільки одна людина стоїть як все як і раніше на пари. 410 00:19:31,454 --> 00:19:33,870 Але дозвольте мені прискорити процес з людьми, все ще стоїть. 411 00:19:33,870 --> 00:19:35,480 Який номер ви думаєте? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 ДОБРЕ. 414 00:19:36,570 --> 00:19:37,820 Ідіть вперед і сісти. 415 00:19:37,820 --> 00:19:39,190 Ви, хлопці, все ще стоять. 416 00:19:39,190 --> 00:19:42,130 Хто все ще стоїть? 417 00:19:42,130 --> 00:19:45,240 Який номер ви думаєте? 418 00:19:45,240 --> 00:19:46,160 ДОБРЕ. 419 00:19:46,160 --> 00:19:47,900 >> Таким чином, ми повернемося до вас. 420 00:19:47,900 --> 00:19:49,630 Ззаду? 421 00:19:49,630 --> 00:19:50,790 Що це? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK хтось ще до top-- так? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 ДОБРЕ. 426 00:19:58,300 --> 00:20:02,780 За тут на моєму right-- тут? 427 00:20:02,780 --> 00:20:06,820 132, дуже приємно. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> ДОБРЕ. 430 00:20:08,990 --> 00:20:10,031 А хто ще стоїть? 431 00:20:10,031 --> 00:20:11,000 Ось тут? 432 00:20:11,000 --> 00:20:14,520 46, дуже приємно. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Я не можу гальмувати набагато довше. 435 00:20:18,220 --> 00:20:20,520 Так? 436 00:20:20,520 --> 00:20:22,490 30, приємно. 437 00:20:22,490 --> 00:20:24,120 Ось тут? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> І я думаю, що це все крім вас, хлопці, ніякого тиску. 441 00:20:30,920 --> 00:20:32,860 Зачекайте. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Тільки вісім. 445 00:20:38,281 --> 00:20:38,780 ДОБРЕ. 446 00:20:38,780 --> 00:20:41,030 Тільки вісім. 447 00:20:41,030 --> 00:20:42,580 Вниз тут? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Це найгірше реалізація цього алгоритму будь-коли. 454 00:20:54,690 --> 00:20:55,190 ДОБРЕ. 455 00:20:55,190 --> 00:20:59,760 Так що хтось інший? 456 00:20:59,760 --> 00:21:00,421 Будь-хто інший? 457 00:21:00,421 --> 00:21:00,920 ДОБРЕ. 458 00:21:00,920 --> 00:21:03,300 Ще один. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 ДОБРЕ. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 Добре. 463 00:21:06,010 --> 00:21:09,070 Так що, якщо я не пропустив хтось в яскраве світло тут, коли я вдарив Enter, 464 00:21:09,070 --> 00:21:13,091 ми побачимо, алгоритмічно, то Загальна кількість людей в Сандерсом. 465 00:21:13,091 --> 00:21:16,340 Бо знову ж таки, це як якби все як ви сіли, пройшли свій номер від 466 00:21:16,340 --> 00:21:19,215 кому-то ще, кому-то ще, кому-то ще, так що в теорії, 467 00:21:19,215 --> 00:21:22,304 в кінці кінців, тільки одне незручне людина повинна залишитися стояти. 468 00:21:22,304 --> 00:21:22,970 Але це нормально. 469 00:21:22,970 --> 00:21:24,290 Ми прискорили речі вручну. 470 00:21:24,290 --> 00:21:27,590 Це особливо важко зрозуміти, В даному конкретному просторі. 471 00:21:27,590 --> 00:21:34,200 >> А загальне число людей, ми думаємо, що тут є 546. 472 00:21:34,200 --> 00:21:37,330 Загальна кількість я передав Вченням стипендіатів, 473 00:21:37,330 --> 00:21:40,660 хто це зробив старий школа повільний шлях, було 820. 474 00:21:40,660 --> 00:21:43,660 >> [Сміється] 475 00:21:43,660 --> 00:21:47,170 >> [Оплески] 476 00:21:47,170 --> 00:21:48,670 >> Все добре. 477 00:21:48,670 --> 00:21:50,740 Так що, звичайно, тобто ці помилки. 478 00:21:50,740 --> 00:21:51,460 І це прекрасно. 479 00:21:51,460 --> 00:21:53,810 І так думаю, що ми повернемося до цього перший раз, коли щось 480 00:21:53,810 --> 00:21:55,420 Ви пишете, не обов'язково працювати. 481 00:21:55,420 --> 00:21:57,620 Це трапилося зі мною тут. 482 00:21:57,620 --> 00:22:00,844 Але давайте тепер розглянемо, як ми могли б застосувати цю ж ідею до чогось 483 00:22:00,844 --> 00:22:03,760 Ви, можливо, бачили раніше, що це стара школа технологія here-- 484 00:22:03,760 --> 00:22:05,130 дійсно велика телефонна книга. 485 00:22:05,130 --> 00:22:09,380 І припустимо, що цей телефон книги має 1000 сторінок і 1000 імен 486 00:22:09,380 --> 00:22:11,360 і цифри в алфавітному порядку всередині нього. 487 00:22:11,360 --> 00:22:14,860 >> Ну, ми могли б вид застосувати аналогічний Ідея цієї самої фізичної проблеми, 488 00:22:14,860 --> 00:22:16,270 просто використовував мене. 489 00:22:16,270 --> 00:22:18,810 Я тільки частково обдуреним за рахунок використання всіх вас 490 00:22:18,810 --> 00:22:23,240 з великим і великою кількістю різних процесорів або мозок виконання деякого алгоритму. 491 00:22:23,240 --> 00:22:25,440 Але якщо це просто мало старий мене, я все ще можу 492 00:22:25,440 --> 00:22:29,630 використовувати ту ж саму суть ідеї ділення і завойовуючи цю проблему 493 00:22:29,630 --> 00:22:32,970 знову і знову, в результаті чого половина з вас, половина з вас, половина з вас, половина з вас, 494 00:22:32,970 --> 00:22:35,830 теоретично тримали сидячи, поки ми не були залишені, теоретично, 495 00:22:35,830 --> 00:22:36,990 тільки з однією людиною. 496 00:22:36,990 --> 00:22:39,810 >> Так що в цій старій школі technology-- ми не робимо 497 00:22:39,810 --> 00:22:43,030 це потрібно map-- це старі технології школи, 498 00:22:43,030 --> 00:22:47,300 ми могли б почати шукати для кого-то як Майк Сміт, одну сторінку за один раз. 499 00:22:47,300 --> 00:22:49,410 І я бачу, що немає, Майк чи не тут. 500 00:22:49,410 --> 00:22:51,110 Я до сих пір в розділі A. 501 00:22:51,110 --> 00:22:53,900 Зрештою, я вважаю, я в розділі B. 502 00:22:53,900 --> 00:22:56,910 І це algorithm-- крок за кроком інструкції. 503 00:22:56,910 --> 00:22:59,890 Початок о сторінці початку і одного в той час, зверніть увагу на Майка Сміта. 504 00:22:59,890 --> 00:23:03,410 Чи є це correct-- це алгоритм або підхід? 505 00:23:03,410 --> 00:23:04,550 >> Так, це правильно. 506 00:23:04,550 --> 00:23:06,840 Якщо Майк тут, в кінці кінців Я повернуся до нього. 507 00:23:06,840 --> 00:23:08,139 Але це не так ефективно. 508 00:23:08,139 --> 00:23:09,180 Це, очевидно, дуже повільно. 509 00:23:09,180 --> 00:23:11,340 Так що я можу використовувати самі Ті ж twosies наближаються. 510 00:23:11,340 --> 00:23:15,350 Я можу зробити те два, чотири, шість, вісім, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Це в два рази швидше. 512 00:23:16,330 --> 00:23:18,290 Я збираюся дістатися до Mike швидше, якщо він там. 513 00:23:18,290 --> 00:23:20,770 Це правильно? 514 00:23:20,770 --> 00:23:22,320 Так, але я почув little-- НІ. 515 00:23:22,320 --> 00:23:24,200 Тепер я почув, звідки немає. 516 00:23:24,200 --> 00:23:24,700 Так. 517 00:23:24,700 --> 00:23:26,190 Там є помилка потенційно. 518 00:23:26,190 --> 00:23:29,374 Може бути, Майк просто випадково отримує затиснутою між двома сторінками, 519 00:23:29,374 --> 00:23:31,290 тому що я лечу через це два одночасно. 520 00:23:31,290 --> 00:23:33,580 Таким чином, по крайней мере, нам потрібні вид умовного виправлення. 521 00:23:33,580 --> 00:23:35,330 Я повинен сказати, агов, якщо я вдарив когось, чий 522 00:23:35,330 --> 00:23:39,190 ім'я починається з T замість S, Я краще загнути принаймні, одну сторінку. 523 00:23:39,190 --> 00:23:40,767 Так глючить спочатку, але можна виправити. 524 00:23:40,767 --> 00:23:43,850 Але ніхто з нас не буде шукати Майк Сміт через 1000 сторінок телефону в 525 00:23:43,850 --> 00:23:45,290 замовити одну сторінку за один раз. 526 00:23:45,290 --> 00:23:48,486 Що нормальна людина збирається робити? 527 00:23:48,486 --> 00:23:50,860 Ви збираєтеся йти на S-х років, якби ви знали, де S'S. 528 00:23:50,860 --> 00:23:54,230 Ви можете піти приблизно до середини або злегка зміщені в бік кінця. 529 00:23:54,230 --> 00:23:56,850 І я дивлюся вниз тут і Я в розділі M. 530 00:23:56,850 --> 00:23:58,952 Але що ви знаєте про цю проблему в даний час, 531 00:23:58,952 --> 00:24:02,160 що ми не обов'язково знати, перш ніж з усіма нами просто вважаючи себе 532 00:24:02,160 --> 00:24:03,030 що те ж саме? 533 00:24:03,030 --> 00:24:06,010 Ну, Майк явно збирається бути в цій половині книги 534 00:24:06,010 --> 00:24:07,920 якщо він взагалі тут, тому що він впорядкований. 535 00:24:07,920 --> 00:24:10,160 >> І таким чином ви можете дуже dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Задихаючись] 537 00:24:11,250 --> 00:24:12,300 >> Я знаю. 538 00:24:12,300 --> 00:24:16,940 >> [Оплески] 539 00:24:16,940 --> 00:24:19,450 >> Це насправді дуже легко, якщо ви робите це вниз по хребту там. 540 00:24:19,450 --> 00:24:22,070 Але ви можете кинути половина від вирішення проблеми. 541 00:24:22,070 --> 00:24:25,950 Тепер, я залишився з тим же problem-- знайти Mike Smith в телефон book-- 542 00:24:25,950 --> 00:24:29,610 але тепер телефонна книга починається з M і йде до Z, але це удвічі менше. 543 00:24:29,610 --> 00:24:30,890 >> Але це те, що вражає. 544 00:24:30,890 --> 00:24:34,170 Так само, як в теорії, ви, хлопці, коли Ви всі програли тільки половину, в той час, 545 00:24:34,170 --> 00:24:37,150 проблема є вдвічі менше, вдвічі менше, знову і знову. 546 00:24:37,150 --> 00:24:40,260 Таким чином, ця проблема стала Та ж проблема, але вдвічі менше. 547 00:24:40,260 --> 00:24:42,670 Тепер це проблема 250 стр. 548 00:24:42,670 --> 00:24:45,340 Як тільки я розумію, про, я в розділі T випадково. 549 00:24:45,340 --> 00:24:46,590 Я зайшов занадто далеко. 550 00:24:46,590 --> 00:24:48,500 Я можу кинути, що половина книги телефону геть. 551 00:24:48,500 --> 00:24:50,410 Тепер, я вниз до чверть цієї проблеми. 552 00:24:50,410 --> 00:24:53,910 >> І ви можете повторити, повторити, повторюватися до тих пір, в теорії, ви не 553 00:24:53,910 --> 00:24:55,460 залишилося тільки з однієї сторінки. 554 00:24:55,460 --> 00:24:59,010 І якщо Майк знаходиться на цій сторінці, Тепер я можу вирішити цю проблему. 555 00:24:59,010 --> 00:25:00,810 Але як швидко я вирішити цю проблему? 556 00:25:00,810 --> 00:25:05,420 У першому випадку, це зайняло у мене як може бути 1000 кроків, щоб знайти Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Це, можливо, взяли me-- Я взяв телефонну книгу 558 00:25:09,260 --> 00:25:11,440 і я почав шукати одна сторінка в той час, 559 00:25:11,440 --> 00:25:13,480 і Майк може бути 1000 сторінок пізніше. 560 00:25:13,480 --> 00:25:16,020 >> Другий підхід може бути бере мене 500 кроків, 561 00:25:16,020 --> 00:25:17,960 тому що я лечу через два одночасно. 562 00:25:17,960 --> 00:25:21,082 І третій підхід, хоча, це особливо потужним. 563 00:25:21,082 --> 00:25:23,790 Але давайте розглянемо, що ми насправді зробив з цією третьою підходом. 564 00:25:23,790 --> 00:25:27,590 Я є те, що я буду називати тільки ці заяви, по одному за раз. 565 00:25:27,590 --> 00:25:28,560 Підніміть телефонну книгу. 566 00:25:28,560 --> 00:25:30,130 Відкрити в середині телефонної книги. 567 00:25:30,130 --> 00:25:31,419 Подивіться на імена. 568 00:25:31,419 --> 00:25:33,960 І тоді все стає трохи більш інтелектуально цікавим, 569 00:25:33,960 --> 00:25:35,170 якщо до сих пір просто. 570 00:25:35,170 --> 00:25:38,350 Якщо Сміт є одним з Імена на цій поточній сторінці, 571 00:25:38,350 --> 00:25:40,170 потім зробити щось умовно. 572 00:25:40,170 --> 00:25:41,840 Це схоже на розвилці доріг. 573 00:25:41,840 --> 00:25:42,660 Зателефонуйте Майк. 574 00:25:42,660 --> 00:25:44,930 Якщо Майк серед імен на цій сторінці, називається Mike. 575 00:25:44,930 --> 00:25:49,720 Але тільки зробити лінію чотири, якщо лінія дерево, якщо ви будете, правда. 576 00:25:49,720 --> 00:25:51,590 Відповідь на це питання, так. 577 00:25:51,590 --> 00:25:55,520 >> Інакше, якщо Сміт раніше в book-- Іншими словами, якщо я перебуваю в розділі M 578 00:25:55,520 --> 00:25:58,540 і я шукаю когось лівий, то що я повинен робити 579 00:25:58,540 --> 00:26:00,300 щось дуже схожі. 580 00:26:00,300 --> 00:26:03,440 Тоді я повинен відкрити до середини лівій половині книги. 581 00:26:03,440 --> 00:26:07,930 Так ідіть ліворуч, а потім повернутися до кроку два. 582 00:26:07,930 --> 00:26:09,290 Подивіться на імена там. 583 00:26:09,290 --> 00:26:12,779 >> Отже, іншими словами, зробити те ж саме, але з проблеми, яка була в два рази. 584 00:26:12,779 --> 00:26:13,570 Ви знаєте, що ще? 585 00:26:13,570 --> 00:26:16,470 Якщо Сміт у книзі пізніше заснований на сторінці я дивлюся, 586 00:26:16,470 --> 00:26:18,790 відкритий для середини права половина книги 587 00:26:18,790 --> 00:26:22,050 а потім знову повернутися до другого кроку, else-- 588 00:26:22,050 --> 00:26:24,000 є четвертий можливість тут. 589 00:26:24,000 --> 00:26:28,830 Майк або тут, або вліво або вправо чи ні. 590 00:26:28,830 --> 00:26:30,570 І тут ми краще розглянути це питання. 591 00:26:30,570 --> 00:26:33,360 І справді, якщо ви коли-небудь мав ваш комп'ютер просто аварії на вас, 592 00:26:33,360 --> 00:26:36,822 що іноді, але не завжди, Результат просто людини програміст не 593 00:26:36,822 --> 00:26:39,280 розуміючи, про стріляти, є насправді це четвертий сценарій. 594 00:26:39,280 --> 00:26:41,650 І якщо ви не пишете код для обробки цього сценарію, 595 00:26:41,650 --> 00:26:43,220 Іноді ви не знаєте, що комп'ютер може зробити. 596 00:26:43,220 --> 00:26:44,770 І справді програма може привести до збою. 597 00:26:44,770 --> 00:26:47,550 >> Але в цьому випадку, я думав, про це, і я сказав, ще кинути палити, 598 00:26:47,550 --> 00:26:49,850 тому що це четвертий логічний можливий сценарій. 599 00:26:49,850 --> 00:26:51,950 Тепер, давайте просто додати деякі словниковий запас, тому ми 600 00:26:51,950 --> 00:26:55,320 може почати, щоб кинути навколо термінів, в іншому досить інтуїтивно. 601 00:26:55,320 --> 00:26:57,870 Всі речі, які я просто виділені жовтим кольором тут, 602 00:26:57,870 --> 00:27:00,140 Я просто до функції або процедури. 603 00:27:00,140 --> 00:27:01,590 Вони просто вид дій. 604 00:27:01,590 --> 00:27:04,900 Так що забрати, відкритий для, подивіться на, телефонуйте, відкрито, відкрито, 605 00:27:04,900 --> 00:27:09,170 quit-- це тільки дії, або ми будемо називати їх більш формально, функції. 606 00:27:09,170 --> 00:27:11,410 >> Тим часом, в даний час в жовтому кольорі, Я виділив речі 607 00:27:11,410 --> 00:27:14,084 that-- давайте просто почати називати їх умови або філії. 608 00:27:14,084 --> 00:27:16,750 Це точки прийняття рішення, де Ви могли б йти цим шляхом, таким чином, 609 00:27:16,750 --> 00:27:18,100 або деякий інший напрямок досі. 610 00:27:18,100 --> 00:27:19,430 Так що ті будуть створені умови. 611 00:27:19,430 --> 00:27:20,930 І тепер цей трохи вправнішим. 612 00:27:20,930 --> 00:27:24,600 Давайте назвемо ці питання Логічні вирази, 613 00:27:24,600 --> 00:27:26,530 після того, як хтось з прізвищем Bool. 614 00:27:26,530 --> 00:27:28,340 >> І це логічне вираз це просто щось 615 00:27:28,340 --> 00:27:30,290 що це не істинним або хибним, так чи ні. 616 00:27:30,290 --> 00:27:35,870 Так що це питання, відповідь на вас піклуватися про те, щоб в стані 617 00:27:35,870 --> 00:27:39,210 зробити decision-- отримати назад відповідь, а потім йти вліво або вправо, або щось 618 00:27:39,210 --> 00:27:40,450 то зовсім інше. 619 00:27:40,450 --> 00:27:42,860 >> І тоді, нарешті, ці Лінії here-- повернутися 620 00:27:42,860 --> 00:27:44,737 до другого кроку, повернутися до етапу two-- ми могли б 621 00:27:44,737 --> 00:27:46,320 реалізувати цю ідею по-різному. 622 00:27:46,320 --> 00:27:49,028 І тоді ті з вас досвід програмування міг би зробити 623 00:27:49,028 --> 00:27:50,670 або може собі робити це по-іншому. 624 00:27:50,670 --> 00:27:53,170 Але для сьогоднішніх цілей, це просто ідея, що має значення. 625 00:27:53,170 --> 00:27:55,400 Це те, що индуцируя ми зазвичай називаємо 626 00:27:55,400 --> 00:28:00,110 loop-- якийсь цикл, тому що це змушує мене зробити щось знову. 627 00:28:00,110 --> 00:28:03,340 >> Так що тепер, давайте просто розглянемо наскільки добре цей алгоритм. 628 00:28:03,340 --> 00:28:03,899 Це вірно. 629 00:28:03,899 --> 00:28:06,940 Якщо Майк в книзі, це один з ці чотири scenarios-- знову і знову 630 00:28:06,940 --> 00:28:08,023 і знову, ми знайдемо його. 631 00:28:08,023 --> 00:28:08,890 Але наскільки добре це? 632 00:28:08,890 --> 00:28:10,150 Ну, ми не маємо щоб бути занадто формальним тут. 633 00:28:10,150 --> 00:28:12,066 Але давайте просто сюжет щось, х і у, щоб отримати 634 00:28:12,066 --> 00:28:14,470 почуття форми цієї проблеми. 635 00:28:14,470 --> 00:28:17,160 >> На осі абсцис тут розмір моєї проблеми. 636 00:28:17,160 --> 00:28:20,256 І вони у-вісь тут буде час, щоб вирішити. 637 00:28:20,256 --> 00:28:21,630 Так що, можливо, це кількість сторінок. 638 00:28:21,630 --> 00:28:24,400 Може бути, це секунди або сторінка turns-- би там не було. 639 00:28:24,400 --> 00:28:27,290 Однак ви хочете порахувати це то, що ця картина буде представляти. 640 00:28:27,290 --> 00:28:30,630 І це перший алгоритм, я збираюся описати, як тільки по прямій лінії. 641 00:28:30,630 --> 00:28:33,120 Якщо є п сторінок телефонна книга, то вона 642 00:28:33,120 --> 00:28:36,010 може взяти мене так багато а п кроків, щоб знайти Майк. 643 00:28:36,010 --> 00:28:38,930 Якщо Verizon або телефонної компанії додає ще одну сторінку в наступному році, 644 00:28:38,930 --> 00:28:42,170 це може зайняти мені ще один step-- ще одна одиниця часу, щоб знайти Майк. 645 00:28:42,170 --> 00:28:44,230 Таким чином, є тільки це один до одного відношення. 646 00:28:44,230 --> 00:28:45,970 Це нахил прямої лінії. 647 00:28:45,970 --> 00:28:49,110 >> У той же час, що другий algorithm-- якщо я 648 00:28:49,110 --> 00:28:51,570 збирається два на два time--, чотири, шість, вісім, чи double-- 649 00:28:51,570 --> 00:28:54,550 пройшовши через сторінки в два рази в той час, два в той час, 650 00:28:54,550 --> 00:28:55,710 це все-таки пряма. 651 00:28:55,710 --> 00:28:58,720 Там зараз один до двох відношення, але тільки трохи нижче. 652 00:28:58,720 --> 00:29:02,240 Так що, якщо є це багато сторінок на графіку тут в жовтому, 653 00:29:02,240 --> 00:29:04,800 які могли б взяти мене це багато кроків або секунд, 654 00:29:04,800 --> 00:29:07,980 в іншому випадку він збирається взяти мене вдвічі більше, ніж на червоній лінії. 655 00:29:07,980 --> 00:29:10,190 >> Але зелена лінія є реальним винос. 656 00:29:10,190 --> 00:29:12,290 Це те, що ми в цілому викликати logorithm-- журнал 657 00:29:12,290 --> 00:29:13,840 п, де п число сторінок. 658 00:29:13,840 --> 00:29:16,450 Але це форма, яка має значення сьогодні, тому що ми не маємо 659 00:29:16,450 --> 00:29:17,950 навіть думати про побудову точок. 660 00:29:17,950 --> 00:29:19,830 >> Подумайте про те крайньому випадку. 661 00:29:19,830 --> 00:29:23,070 Припустимо, що Verizon завтра подвоює кількість сторінок в цій телефонній книзі, 662 00:29:23,070 --> 00:29:24,900 від 1000 до 2000 осіб. 663 00:29:24,900 --> 00:29:28,440 У першому алгоритмі, я може витрачати додаткові 1000 664 00:29:28,440 --> 00:29:32,080 кроки шукає Майк, тільки тому, що Verizon в два рази розмір книги. 665 00:29:32,080 --> 00:29:34,740 Другий algorithm-- це може візьміть мене додаткові 500 кроків. 666 00:29:34,740 --> 00:29:38,370 більше 1000 сторінок, я ходжу два за time-- ще 500 кроків, щоб знайти Майк. 667 00:29:38,370 --> 00:29:41,020 >> Але третій алгоритм це свого роду магічне. 668 00:29:41,020 --> 00:29:44,270 Verizon подвоює число сторінок від 1000 до 2000, 669 00:29:44,270 --> 00:29:47,730 але скільки ще кроків робить він взяти мене шукати Майк? 670 00:29:47,730 --> 00:29:51,220 Це всього лише один, тому що я можу просто розірвати телефонній книзі ще раз 671 00:29:51,220 --> 00:29:55,280 від Проблема 2000 цю сторінку 1000 сторінок проблема, і вуаля. 672 00:29:55,280 --> 00:29:57,030 Я взяв масивний шматок з нього. 673 00:29:57,030 --> 00:29:59,405 >> І якщо ви йдете дійсно екстремальний, Припустимо, що в телефонній книзі 674 00:29:59,405 --> 00:30:03,600 компанія повинна була щось божевільний, як телефонна книга 4 млрд стор. 675 00:30:03,600 --> 00:30:07,020 Ну, скільки кроків це може зайняти щоб знайти Майка Сміта в 4 мільярди 676 00:30:07,020 --> 00:30:09,990 сторінка телефонної книги? 677 00:30:09,990 --> 00:30:16,450 Це велике число, але все 4 млрд 2 млрд до 1 млрд до 500 млн, 678 00:30:16,450 --> 00:30:18,720 250 million-- ще звучить як великих чисел, 679 00:30:18,720 --> 00:30:20,980 але я дуже швидко отримувати менші значення. 680 00:30:20,980 --> 00:30:24,790 >> І справді, якщо я роблю математику Добре, я можу тільки розділити 4 мільярди 681 00:30:24,790 --> 00:30:28,750 приблизно на 32 раз, перш ніж Я отримую вниз тільки один. 682 00:30:28,750 --> 00:30:31,640 Так що, якщо телефонна книга була 4 довгі мільярдів сторінок, не склало великих труднощів. 683 00:30:31,640 --> 00:30:35,270 Протягом декількох секунд, може бути, 32 секунд, я міг би розділити його навпіл 684 00:30:35,270 --> 00:30:39,560 і в кінцевому підсумку знайти Майк або зробити висновок, що він не існує. 685 00:30:39,560 --> 00:30:42,219 І це суть algorithm-- хороший алгоритм. 686 00:30:42,219 --> 00:30:44,260 І це одна з Цілі класу, як це, 687 00:30:44,260 --> 00:30:47,350 намагається з'ясувати, як я вирішити проблему не тільки правильно, 688 00:30:47,350 --> 00:30:52,360 як я завжди знав, як зробити це один сторінка на time--, але правильно і добре. 689 00:30:52,360 --> 00:30:55,034 Як мені створити хороший вирішення проблем? 690 00:30:55,034 --> 00:30:57,200 Так що давайте момент тут і дати вам сенс зараз 691 00:30:57,200 --> 00:31:00,260 з CS50 курс ввести в тому: співробітники в декількох курсу. 692 00:31:00,260 --> 00:31:02,010 Незадовго до 2:00, ми будемо коротку перерву 693 00:31:02,010 --> 00:31:03,520 так що ті з вас Хто такі можуть ходити по магазинам 694 00:31:03,520 --> 00:31:05,130 качка, і взяти подивитися на якийсь інший клас 695 00:31:05,130 --> 00:31:06,580 і дивитися на решті частини цього онлайн. 696 00:31:06,580 --> 00:31:09,250 Але зараз, дозвольте мені представити CS50, сам клас, 697 00:31:09,250 --> 00:31:11,330 і, зокрема, що є новим. 698 00:31:11,330 --> 00:31:13,960 >> Таким чином, навесні ми провів зовсім небагато time-- 699 00:31:13,960 --> 00:31:17,911 Персонал Курс і я-- мислення про те, що саме ми хочемо бути CS50, 700 00:31:17,911 --> 00:31:19,910 і повернутися до першого принципи, так би мовити, 701 00:31:19,910 --> 00:31:22,760 щоб розглянути, що саме ми хочемо цей курс, щоб виглядати і бути 702 00:31:22,760 --> 00:31:23,740 як для своїх студентів. 703 00:31:23,740 --> 00:31:26,480 І ви побачите в завданні встановити нуль, а, запрошення 704 00:31:26,480 --> 00:31:28,780 щоб поглянути на що URL, який узагальнює 705 00:31:28,780 --> 00:31:33,270 деякі з мотивацій позаду наступні характеристики падіння 2016 року. 706 00:31:33,270 --> 00:31:35,570 >> Так як ви можете почерпнути від TL: роздатковий DR, 707 00:31:35,570 --> 00:31:39,060 навчальний план сьогодні, а також від каталог, звичайно, в цьому році в CS50, 708 00:31:39,060 --> 00:31:42,540 ви тільки повинні відвідувати тому роботу раз сьогодні добре done-- 709 00:31:42,540 --> 00:31:45,960 і остання лекція 21 листопада. 710 00:31:45,960 --> 00:31:49,150 І ви вітаються, але не очікується відвідувати ці лекції в середині, 711 00:31:49,150 --> 00:31:51,180 тому що ми робимо В цьому році, стрілянина 712 00:31:51,180 --> 00:31:52,661 в реальному часі матеріалу Курсу. 713 00:31:52,661 --> 00:31:54,660 Так що все залишиться струму і включити 714 00:31:54,660 --> 00:31:57,410 як найкраще ми can-- поточні події і розмови, які люди могли б 715 00:31:57,410 --> 00:32:00,400 бути маючи в промисловості в світ, але робить цей матеріал 716 00:32:00,400 --> 00:32:03,892 доступні, в результаті, навіть earlier-- в комплекті з повним текстом стенограми 717 00:32:03,892 --> 00:32:05,850 і можливість пошуку і посилання на інші ресурси. 718 00:32:05,850 --> 00:32:07,930 >> І справді, ми були стверджуючи, що протягом деякого часу 719 00:32:07,930 --> 00:32:10,830 і ми вважаємо, що це в даний час, що ми можемо створити, в цифровому вигляді, 720 00:32:10,830 --> 00:32:15,170 більш захоплюючий, більш привабливим освітній досвід, на відміну 721 00:32:15,170 --> 00:32:19,110 щоб зібрати тут близько 23 разів особисто, почувши хтось любить мене 722 00:32:19,110 --> 00:32:22,925 просто говорити про інформатику, на відміну від більш активного залучення. 723 00:32:22,925 --> 00:32:25,800 Таким чином, ви будете бачити в навчальний план Курсу ескіз семестру тут, 724 00:32:25,800 --> 00:32:27,840 поряд з тим, коли лекції будуть буде знято, до якого ви 725 00:32:27,840 --> 00:32:29,710 вітаються, але не очікував, і коли вони будуть 726 00:32:29,710 --> 00:32:31,640 буде випущений на веб-сайті курсу. 727 00:32:31,640 --> 00:32:34,300 >> І що ми будемо робити тут Середовища починаючи з наступного тижня, 728 00:32:34,300 --> 00:32:37,362 є набагато більш тісно, ​​з тільки ті люди, які хочуть брати участь, 729 00:32:37,362 --> 00:32:39,820 це так звана прогулянка, де я і керівники Курсу 730 00:32:39,820 --> 00:32:41,730 буде насправді робити речі трохи більше інтимне 731 00:32:41,730 --> 00:32:44,313 тут в оркестрі розділ, до сих пір деякі технології 732 00:32:44,313 --> 00:32:46,365 і пройти через Проблема набору поточного тижня, 733 00:32:46,365 --> 00:32:50,020 і запропонувати вам particularly-- якщо серед тим менше comfortable-- все більше 734 00:32:50,020 --> 00:32:52,790 рекомендації, які ви могли б хотіти або потреба кинути виклик тижні. 735 00:32:52,790 --> 00:32:55,820 І точно так само, для тих, хто не може бути присутнім на тих, хто особисто, не склало великих труднощів. 736 00:32:55,820 --> 00:32:58,486 Там буде так само на чолі один із старших співробітників Курсу, 737 00:32:58,486 --> 00:33:02,650 Zamalya, та ж можливість вбудованого в завданню самих множин. 738 00:33:02,650 --> 00:33:04,960 >> Проблема встановлює в цьому році буде випущений по п'ятницях 739 00:33:04,960 --> 00:33:08,080 і більше не робити сім днів по тому, але 10 днів later-- навмисно 740 00:33:08,080 --> 00:33:10,910 перекривається з кожною проблемою встановити, з тим, щоб краще пристосувати, 741 00:33:10,910 --> 00:33:13,050 ми сподіваємося, припливи і відливи в студентських розкладі, 742 00:33:13,050 --> 00:33:16,550 особливо коли з легкої атлетики або проміжних виборах або академіки або extracurriculars 743 00:33:16,550 --> 00:33:18,465 як правило, приходять і йдуть особливо в середині семестру. 744 00:33:18,465 --> 00:33:21,340 Це повинно дати вам трохи більше свій розсуд, щоб ви передній 745 00:33:21,340 --> 00:33:25,690 завантажити свою тиждень з CS50 або задньої навантаження це на наступний уїк-енду замість. 746 00:33:25,690 --> 00:33:28,817 Так що дивіться, щоб навчальний план Курсу тут його графіка. 747 00:33:28,817 --> 00:33:30,900 І ви помітите, теж серед зміни в цьому році, 748 00:33:30,900 --> 00:33:34,082 для тих, хто більше знайомі з програмування в минулому, 749 00:33:34,082 --> 00:33:36,290 ми почнемо семестр як ми будемо сьогодні в порожньому місці, 750 00:33:36,290 --> 00:33:39,730 зосередити увагу насамперед на мові називається C, а потім не перехід на 751 00:33:39,730 --> 00:33:43,430 в PHP, але на мові під назвою Python до кінця семестру 752 00:33:43,430 --> 00:33:46,565 в контексті веб-програмування, поряд з SQL і JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, і все ж більше. 754 00:33:48,930 --> 00:33:51,790 >> І у відповідь на запитання, це дійсно так 755 00:33:51,790 --> 00:33:55,520 що CS не так страшно, як я колись думав, що це було, але це так багато роботи 756 00:33:55,520 --> 00:33:57,280 як я чув, що це могло б бути. 757 00:33:57,280 --> 00:34:03,210 Але це сказати, що тут деякі Статистика від падіння 2015 студентів, 758 00:34:03,210 --> 00:34:06,460 в результаті чого горизонтальні сині лінії являють собою середню кількість годин 759 00:34:06,460 --> 00:34:06,960 повідомили. 760 00:34:06,960 --> 00:34:10,570 І ви побачите, в середньому від шести до 10 до 12--, може бути 16 761 00:34:10,570 --> 00:34:14,580 або так і так далі, але з висока дисперсія бути ясним. 762 00:34:14,580 --> 00:34:18,570 І так розумію, що є не тільки студенти більш зручним і менш 763 00:34:18,570 --> 00:34:22,150 комфортно в курсі, але відповідна підтримка 764 00:34:22,150 --> 00:34:25,699 структура, щоб отримати ті студенти через закінчення семестру. 765 00:34:25,699 --> 00:34:29,409 >> Дійсно, у відповідь на запитання, повинні ви берете CS50 як перший рік? 766 00:34:29,409 --> 00:34:30,139 Абсолютно вірно. 767 00:34:30,139 --> 00:34:32,690 І справді, я шкодую не знайшовши свій шлях 768 00:34:32,690 --> 00:34:35,170 або знайшов нове поле що перший рік, а також. 769 00:34:35,170 --> 00:34:39,149 І ви повинні прийняти CS50 з інші курси, звичайно ж, як well-- 770 00:34:39,149 --> 00:34:41,940 і загальний рада, який ми могли б дати студентам, що CS50, ймовірно, 771 00:34:41,940 --> 00:34:44,929 не вид класу або класу інтро що ви повинні взяти з собою три 772 00:34:44,929 --> 00:34:47,199 інший або чотири інших р-безліч класів. 773 00:34:47,199 --> 00:34:50,583 Але якщо ви приймаєте два інших р-набір класи, щось ще, і CS50, 774 00:34:50,583 --> 00:34:51,499 абсолютно керованим. 775 00:34:51,499 --> 00:34:54,900 У мене було багато студентів в минуле зроблено цілком успішно. 776 00:34:54,900 --> 00:34:57,490 >> А щоб отримати вас до що закінчити лінію успішно, 777 00:34:57,490 --> 00:35:00,260 робить звичайно є sections-- різні траси для студентів 778 00:35:00,260 --> 00:35:03,100 менш комфортно, більш комфортно, і десь посередині, 779 00:35:03,100 --> 00:35:04,850 причому в Курсу Перший набір проблем, 780 00:35:04,850 --> 00:35:06,360 вам буде запропоновано, щоб описати себе. 781 00:35:06,360 --> 00:35:09,151 І якщо ви серед тих, менш зручно, це така річ, 782 00:35:09,151 --> 00:35:10,420 що ви просто достатньо знати. 783 00:35:10,420 --> 00:35:13,010 І справді, що це було зростаючого демографічного в CS50 784 00:35:13,010 --> 00:35:14,090 вже кілька років. 785 00:35:14,090 --> 00:35:17,680 >> За осені минулого року для Примірник, 58% класу 786 00:35:17,680 --> 00:35:20,560 описали себе як серед тих, хто менш комфортно, 787 00:35:20,560 --> 00:35:23,210 з 9% серед тих, хто більше зручно, а потім 788 00:35:23,210 --> 00:35:25,900 інші студенти там в червоний описуючи себе 789 00:35:25,900 --> 00:35:27,890 а десь посередині. 790 00:35:27,890 --> 00:35:31,980 І ви побачите тут теми в цілому і графік секцій, кожна з яких 791 00:35:31,980 --> 00:35:34,820 пропонується особисто, в в реальному масштабі часу, з Курсу 792 00:35:34,820 --> 00:35:38,320 Дивно, співробітники навчальних товаришів і курс асистенти, деякі з яких 793 00:35:38,320 --> 00:35:39,660 ви зустрінете всього декілька хвилин. 794 00:35:39,660 --> 00:35:42,993 >> Самі розділи, як ви побачите, буде бути по понеділках і вівторках і середах, 795 00:35:42,993 --> 00:35:45,910 таким чином, щоб дозволити вам пірнати після участі, якщо ви так 796 00:35:45,910 --> 00:35:48,110 вибрати, в Курсу лекції на початку цього тижня. 797 00:35:48,110 --> 00:35:51,420 А потім робочі години, які звичайно ж, з кожним роком, 798 00:35:51,420 --> 00:35:54,110 Не було такою ж виклик для курсу. 799 00:35:54,110 --> 00:35:57,040 І в цьому році ми не плануємо тільки тримати офіс hours-- один 800 00:35:57,040 --> 00:36:00,300 на одній можливості для допомоги для Студенти по середах четвергах 801 00:36:00,300 --> 00:36:03,790 і неділях, останній з тих, будучи в другій половині дня по дизайну 802 00:36:03,790 --> 00:36:06,910 зменшити частину напруги, що незмінно виникає з пізньої ночі 803 00:36:06,910 --> 00:36:10,180 п-settting з крайнім терміном looming-- але годинник офісу також будуть запропоновані 804 00:36:10,180 --> 00:36:14,920 по понеділках і вівторках і По середах і п'ятницях і суботах, 805 00:36:14,920 --> 00:36:17,080 завдяки нашим друзям в HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 тепер має свій власний простір для студентів і співробітників CS50, 807 00:36:20,330 --> 00:36:23,070 на вершині 67 Mount Auburn Street, прямо в Гарвардській площі. 808 00:36:23,070 --> 00:36:26,340 Бачення якого є те, що CS50-х ТФ і центри сертифікації протягом тижня, 809 00:36:26,340 --> 00:36:29,052 в значній мірі протягом більшої днів, буде там для підтримки. 810 00:36:29,052 --> 00:36:30,760 Так що якщо у вас є деякі Питання про р-безлічі 811 00:36:30,760 --> 00:36:33,093 або ви відчуваєте себе трохи заблокований або трохи заплутався, 812 00:36:33,093 --> 00:36:35,640 і, чорт забирай, у вас є час або півгодини між класами, 813 00:36:35,640 --> 00:36:38,920 особливо в square-- ви можете поп і є це питання відповів 814 00:36:38,920 --> 00:36:41,720 від того, мають цю плутанину clarified-- дуже в дусі, 815 00:36:41,720 --> 00:36:45,490 ви знайомі, з математики власні математичні питання центр відділу, 816 00:36:45,490 --> 00:36:49,300 але в значній мірі навколо годинника в [? Гкал?], Що ми розмістимо на сайті. 817 00:36:49,300 --> 00:36:52,400 >> Репетиторство також доступна для тих, студенти, вільно від Курсу 818 00:36:52,400 --> 00:36:54,750 власний персонал, якщо ви хочете більш інтимний один на один, 819 00:36:54,750 --> 00:36:58,940 або тільки два або три однокласники, працюючи з одним із співробітників цього курсу. 820 00:36:58,940 --> 00:37:02,320 І дійсно, вони тут просто деякі із співробітників Курсу, 821 00:37:02,320 --> 00:37:04,120 деякі з яких ви будете зустрічаються в мить. 822 00:37:04,120 --> 00:37:07,440 Насправді, CS50 власного керівник навчання співробітник, 823 00:37:07,440 --> 00:37:09,790 і голова звичайно помічник, і Наставником, 824 00:37:09,790 --> 00:37:12,998 може прийти на вгору, дозволяють їм сказати привіт. 825 00:37:12,998 --> 00:37:22,498 >> [Оплески] 826 00:37:22,498 --> 00:37:23,456 СПІКЕР 1: [нерозбірливо]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [Оплески] 829 00:37:57,856 --> 00:37:58,814 СПІКЕР 2: [нерозбірливо]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [Оплески] 832 00:38:27,238 --> 00:38:28,196 Виступаючий 3: [нерозбірливо]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [Оплески] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Маланки: І дозвольте нам принести на борт два з CS50 самих 836 00:39:06,740 --> 00:39:09,730 старших співробітників, Роб і Zamayla, а також. 837 00:39:09,730 --> 00:39:15,120 >> [Оплески] 838 00:39:15,120 --> 00:39:17,226 >> Справді, як Роб і Zamayla були з нами 839 00:39:17,226 --> 00:39:19,940 так довго, що я був в стані йти в архіви CS50 в 840 00:39:19,940 --> 00:39:22,470 і знайти цю саму SD кадри з них беруть участь 841 00:39:22,470 --> 00:39:25,402 на самих етапі кілька років тому. 842 00:39:25,402 --> 00:39:26,110 БОР: [нерозбірливо]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [Оплески] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [нерозбірливо] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [Оплески] 848 00:40:52,467 --> 00:40:53,425 DAVID Маланки: Дякую. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Таким чином, на додаток до них Члени команди тут, 851 00:40:58,030 --> 00:41:01,662 CS50 має команду майже 100 співробітники, всі з яких 852 00:41:01,662 --> 00:41:04,370 будуть доступні для секцій і офісні годинники та багато іншого. 853 00:41:04,370 --> 00:41:06,920 І, як Роб говорить, що теж, це найзначніший ремонт 854 00:41:06,920 --> 00:41:09,534 з CS50 в 10 років, що Я був в [нерозбірливо]. 855 00:41:09,534 --> 00:41:12,200 [Нерозбірливо] зосереджені особливо в забезпеченні структури підтримки, 856 00:41:12,200 --> 00:41:14,050 підрізування геть багато основна частина, яка була 857 00:41:14,050 --> 00:41:16,870 накопичений за останні 10 років итеративной розробки 858 00:41:16,870 --> 00:41:18,120 на проблемні набори Курсу. 859 00:41:18,120 --> 00:41:21,470 >> Так що в цьому році, не тільки в класі, але також у вигляді завдання Курсу 860 00:41:21,470 --> 00:41:24,800 набори, ви повинні знайти речі бути більш обтічний, триммер, багато 861 00:41:24,800 --> 00:41:26,700 більш керованим, ніж в минулі роки, як ми 862 00:41:26,700 --> 00:41:31,330 проливають деякі з багажу, що це розроблений характер розвивається року 863 00:41:31,330 --> 00:41:32,970 після того, як рік і ітерації. 864 00:41:32,970 --> 00:41:35,110 Таким чином, новий і покращений починається сьогодні. 865 00:41:35,110 --> 00:41:37,860 >> Ви зустрінете ще деякі з Персонал звичайно знаходиться поза в [нерозбірливо] 866 00:41:37,860 --> 00:41:40,186 о 2:30, де ми служимо, як традиції, торт. 867 00:41:40,186 --> 00:41:42,060 Там трохи більше торт ніж це, але ви будете 868 00:41:42,060 --> 00:41:44,690 зустрічаються Erin і Тобіас і інші досі. 869 00:41:44,690 --> 00:41:46,470 І дозвольте мені дати вам тур, перш ніж ми чуємо 870 00:41:46,470 --> 00:41:49,600 від деяких інших співробітників в класі, про те, що так само чекає. 871 00:41:49,600 --> 00:41:52,730 Насправді, ми завжди починаємо CS50-х Семестр У найближчу суботу, 872 00:41:52,730 --> 00:41:54,330 з тим, що називається CS50 Puzzle день. 873 00:41:54,330 --> 00:41:56,710 >> Вона не має нічого спільного з комп'ютерні науки самі по собі, 874 00:41:56,710 --> 00:41:58,669 але про проблему рішення в цілому. 875 00:41:58,669 --> 00:42:01,210 І якщо ви так вирішите взяти участь, за деякі з запрошень, 876 00:42:01,210 --> 00:42:03,460 Ви, можливо, бачили двері впав або на сцені тут, 877 00:42:03,460 --> 00:42:05,830 це можливість в командах двох або трьох або чотирьох, 878 00:42:05,830 --> 00:42:10,680 взяти участь для головоломок і піци і призи і more-- в цю суботу, 879 00:42:10,680 --> 00:42:12,560 стежте за багато іншого. 880 00:42:12,560 --> 00:42:15,082 >> Ви знайдете також, що кожен У п'ятницю, в Вогонь і лід, 881 00:42:15,082 --> 00:42:16,790 CS50 чи принести ціла купа студентів 882 00:42:16,790 --> 00:42:19,100 на обід, щоб зробити великий клас відчувати себе більш інтимне, 883 00:42:19,100 --> 00:42:21,820 і взагалі звести воєдино Випускники і друзі з промисловості 884 00:42:21,820 --> 00:42:24,710 говорити про те, що вони мають був до моменту закінчення. 885 00:42:24,710 --> 00:42:27,820 Крім того, в цьому році, ми ознаменувати перший коли-небудь CS50 50 886 00:42:27,820 --> 00:42:31,390 кодування contest-- в середині семестру можливість дозволити кожному 887 00:42:31,390 --> 00:42:35,430 на вибрати в основі, щоб мати виклик дотепність проти однокласників, 888 00:42:35,430 --> 00:42:39,250 знову в командах з двох або трьох або чотири, використовуючи тільки що програмування 889 00:42:39,250 --> 00:42:41,920 здоровий глузд, що ви після цього маєте під Ваш пояс всього лише після шести або семи років 890 00:42:41,920 --> 00:42:44,710 тижнів класу, а також участь в цьому виді змагань 891 00:42:44,710 --> 00:42:50,261 online--, якщо ви хочете, щоб відточити свій власний навички все більше в цей виклик. 892 00:42:50,261 --> 00:42:52,760 В кінці семестру так званий CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 можливість, яка починається о 7:00 PM закінчується о 7:00 ранку, і по шляху 894 00:42:56,970 --> 00:43:01,900 12 вечірні години, в яких пірнати в остаточному project-- Курсу 895 00:43:01,900 --> 00:43:04,820 можливість розробки та реалізувати більшість нічого цікавого 896 00:43:04,820 --> 00:43:06,980 Вам з вашим вченням керівництво стипендіата. 897 00:43:06,980 --> 00:43:09,600 Близько 9:00 ранку ми зазвичай робимо служити піца, 1:00 AM, 898 00:43:09,600 --> 00:43:13,210 Філіпа, і мало хто з нас які до сих пір прокидаються о 5:00 ранку, 899 00:43:13,210 --> 00:43:16,310 є шатл шинний вниз Дорога до IHOP для сніданку. 900 00:43:16,310 --> 00:43:19,340 >> А потім через кілька днів це так званий CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 кінець семестру в виставці святкування, як далеко так багато 902 00:43:23,450 --> 00:43:28,200 з CS50 студентів прийшли з нульовий тижня аж до тижня, 903 00:43:28,200 --> 00:43:32,610 і маючи на увазі, що 73% з них однокласники і за вами в цьому році 904 00:43:32,610 --> 00:43:34,840 ніколи не брав клас CS раніше. 905 00:43:34,840 --> 00:43:39,226 Насправді, щоб ще раз підкреслити, як багато, тут це кілька осіб з персоналу CS50 в. 906 00:43:39,226 --> 00:43:40,184 Виступаючий 4: [нерозбірливо]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 СПІКЕР 5: [нерозбірливо]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 СПІКЕР 6: [нерозбірливо]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 СПІКЕР 7: [нерозбірливо]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 СПІКЕР 8: [нерозбірливо] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 СПІКЕР 9: [нерозбірливо]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> Виступаючий 4: [нерозбірливо]. 919 00:44:15,461 --> 00:44:16,461 >> СПІКЕР 10: [нерозбірливо]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 СПІКЕР 11: [нерозбірливо]. 922 00:44:23,438 --> 00:44:24,438 СПІКЕР 12: [нерозбірливо]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 СПІКЕР 13: [нерозбірливо] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> СПІКЕР 14: [нерозбірливо]. 927 00:44:40,342 --> 00:44:42,863 >> СПІКЕР 13: [нерозбірливо]. 928 00:44:42,863 --> 00:44:43,821 СПІКЕР 15: [нерозбірливо] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 СПІКЕР 16: [нерозбірливо]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> СПІКЕР 11: [нерозбірливо] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 СПІКЕР 5: [нерозбірливо]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Маланки: Деякі команди самі торгові класи. 937 00:45:15,130 --> 00:45:17,760 Але якщо ці члени персоналу CS50 тут, 938 00:45:17,760 --> 00:45:19,230 може прийти на на мить. 939 00:45:19,230 --> 00:45:23,450 CS50-х ТФ і центри сертифікації і [? персонал?] Члени here-- це лише деякі з них 940 00:45:23,450 --> 00:45:28,880 з faces-- один з яких ви просто бачив, і кілька other-- і кілька інших 941 00:45:28,880 --> 00:45:30,020 до сих пір. 942 00:45:30,020 --> 00:45:33,242 Чому б нам не піти далі і дозволити ви, хлопці, п'ять хвилинну перерву. 943 00:45:33,242 --> 00:45:35,450 Якщо вам потрібно, щоб качка магазин класи, це прекрасно. 944 00:45:35,450 --> 00:45:38,900 А через п'ять хвилин ми резюме, поглянути на Scratch-- першої 945 00:45:38,900 --> 00:45:42,420 нашої мови програмування, познайомитися Співробітники Курс тут дещо більше, 946 00:45:42,420 --> 00:45:45,020 і зосередитися в кінцевому рахунку, з проблеми встановити нуль. 947 00:45:45,020 --> 00:45:46,710 Таким чином, ми повернемося через п'ять хвилин. 1 00:45:46,864 --> 00:45:47,370 >> Добре. 2 00:45:47,370 --> 00:45:48,590 Таким чином, ми повернулися. 3 00:45:48,590 --> 00:45:51,330 А в нашому інші Час сьогодні, мета 4 00:45:51,330 --> 00:45:54,320 щоб вирівняти ігрове поле в термінах деякої термінології, 5 00:45:54,320 --> 00:45:55,297 з точки зору деяких ідей. 6 00:45:55,297 --> 00:45:57,380 Тому що справді, відповідно до деякі з діаграм більш ранніх, 7 00:45:57,380 --> 00:46:00,130 там буде цілий ряд рівні досвіду в класі, 8 00:46:00,130 --> 00:46:03,210 деякі з яких студенти мають прийняті деякі програми перед тим, 9 00:46:03,210 --> 00:46:04,200 деякі з яких не мають. 10 00:46:04,200 --> 00:46:07,430 І ось з цієї першого завдання встановити і з цим першою мовою 11 00:46:07,430 --> 00:46:10,830 у нас є можливість почати приймати як належне після того, як сьогодні 12 00:46:10,830 --> 00:46:12,960 деякий загальний словниковий запас і ідея. 13 00:46:12,960 --> 00:46:15,590 >> І ми будемо робити це шляхом перший languages-- Курсу 14 00:46:15,590 --> 00:46:21,070 на додаток до C і Python і JavaScript і SQL і HTML і CSS, 15 00:46:21,070 --> 00:46:24,450 ми будемо спочатку сконцентрувавши увагу і тільки для проблем встановити нуль 16 00:46:24,450 --> 00:46:28,160 на цьому графічному мовою, називається Подряпини, розроблена в MIT Media Lab'S 17 00:46:28,160 --> 00:46:30,880 вниз по дорозі, щоб допомогти студенти і діти особливо 18 00:46:30,880 --> 00:46:35,070 виразити себе algorithmically-- таким чином, більш відповідає тому, що 19 00:46:35,070 --> 00:46:37,300 ми могли б назвати обчислювальні мислення. 20 00:46:37,300 --> 00:46:40,985 >> І це корисно, тому що мова дуже швидко на наступному тижні в тиждень один, 21 00:46:40,985 --> 00:46:44,360 ми перехід до більш традиційний і аркан мову називається 22 00:46:44,360 --> 00:46:46,370 З, що є чисто текстуально. 23 00:46:46,370 --> 00:46:48,930 Ви тільки використовувати клавіатуру в Для того щоб написати інструкції 24 00:46:48,930 --> 00:46:50,230 як вони на екрані. 25 00:46:50,230 --> 00:46:52,840 Але навіть якщо ви ніколи не бачили мова програмування, перед тим, 26 00:46:52,840 --> 00:46:55,170 в просто глянувши на це, все це бути загадковим, 27 00:46:55,170 --> 00:47:00,010 ви можете здогадатися, що ймовірно, друкує Hello World. 28 00:47:00,010 --> 00:47:02,050 Але є багато синтаксичний над головою є. 29 00:47:02,050 --> 00:47:05,770 Існує дивна хеш символ або хеш-тег нагорі. 30 00:47:05,770 --> 00:47:08,900 Там в кутові дужки, деякі круглі дужки, фігурні дужки, напів-colon-- 31 00:47:08,900 --> 00:47:11,880 там просто так багато зорових образів синтаксис, який стає на шляху. 32 00:47:11,880 --> 00:47:13,940 Ми починаємо курс з Подряпини, з тим, щоб отримати 33 00:47:13,940 --> 00:47:17,600 повз всіх тих, хто інтелектуально нецікаві відволікання, 34 00:47:17,600 --> 00:47:20,290 і замість цього зосередитися на ідеях. 35 00:47:20,290 --> 00:47:22,540 >> Насправді, це може бути і раніше. 36 00:47:22,540 --> 00:47:24,830 Це, для цього, тиждень буде після. 37 00:47:24,830 --> 00:47:26,760 Це, в цьому графічному мова Царапина, 38 00:47:26,760 --> 00:47:29,870 як ви б реалізувати той же program-- програму, яка при запуску, 39 00:47:29,870 --> 00:47:31,340 просто говорить привіт світ. 40 00:47:31,340 --> 00:47:34,740 І що приємно про Подряпини що саме це графічне програмування 41 00:47:34,740 --> 00:47:38,780 середовище, яке використовує шматочки головоломки або блоки, що тільки зчіплюються разом 42 00:47:38,780 --> 00:47:40,440 якщо він має логічний зміст зробити це. 43 00:47:40,440 --> 00:47:43,810 І з нуля ви можете розвинути анімації та інтерактивних ігор 44 00:47:43,810 --> 00:47:47,270 і мистецтво, і будь-яку кількість речей, які ви можете собі уявити в своєму власному розумі, 45 00:47:47,270 --> 00:47:51,200 і реалізувати їх просто перетягуючи шматочки головоломки. 46 00:47:51,200 --> 00:47:54,265 >> І справді, ми будемо мати можливість щоб висловити деякі з тих же ідей 47 00:47:54,265 --> 00:47:56,890 що я щойно згадав мить назад в контексті Майк Сміт 48 00:47:56,890 --> 00:48:00,670 і телефонний book-- речі як функції, просто дії, 49 00:48:00,670 --> 00:48:03,070 такі речі, як петлі, які роблять речі знову і знову, 50 00:48:03,070 --> 00:48:05,170 змінні, що є то, що ми будемо вводити, 51 00:48:05,170 --> 00:48:08,086 але це, можливо, знайомі з algebra-- просто якась заповнювач 52 00:48:08,086 --> 00:48:10,840 зберігати деяке значення, яке ви могли б потрібні later-- логічні вирази, 53 00:48:10,840 --> 00:48:13,720 де ті, так ні, або правда помилкові питання з раніше. 54 00:48:13,720 --> 00:48:17,117 Умови ті вила в road-- ті галузі, так би мовити. 55 00:48:17,117 --> 00:48:19,700 І тоді є деякі вправнішим Особливо ми побачимо, навіть сьогодні, 56 00:48:19,700 --> 00:48:22,850 звані масиви і потоки і Події, які ми потім повернемося через 57 00:48:22,850 --> 00:48:24,460 час на різних мовах. 58 00:48:24,460 --> 00:48:26,790 Але Царапина дозволяє нам для вивчення всіх з них. 59 00:48:26,790 --> 00:48:30,779 Так що тут в порожньому місці, це фіолетовий блок, що функція, як правило, 60 00:48:30,779 --> 00:48:31,570 буде виглядати. 61 00:48:31,570 --> 00:48:35,620 Це фіолетовий шматок головоломки, що є деякі слово, як, скажімо, що це дія, 62 00:48:35,620 --> 00:48:38,490 а потім він може мати аргумент або parameter-- якимось чином 63 00:48:38,490 --> 00:48:41,140 від виду призначеної для користувача настройки то, що блок робить 64 00:48:41,140 --> 00:48:45,182 так що це не зумовлені MIT каже, що цей фіолетовий блок. 65 00:48:45,182 --> 00:48:47,390 Насправді, ви побачите в той момент, коли я в змозі надрукувати 66 00:48:47,390 --> 00:48:49,931 слова як привіт світ, або привіт Девід, або привіт Zamayla, 67 00:48:49,931 --> 00:48:53,750 або те, що я хочу, в аргументі для цієї головоломки piece-- білий квадрат 68 00:48:53,750 --> 00:48:54,251 там. 69 00:48:54,251 --> 00:48:57,166 У той же час, якщо я хочу цикл, ми будемо бачити, що є шматочки головоломки, які 70 00:48:57,166 --> 00:48:58,640 виглядати трохи помаранчевого кольору, як це. 71 00:48:58,640 --> 00:49:01,690 І їх форма роду передбачає, що щось знову і знову відбувається 72 00:49:01,690 --> 00:49:02,680 в циклі. 73 00:49:02,680 --> 00:49:06,800 >> Так що якщо я обернути привіт світ блок сказати з назавжди блокувати в порожньому місці, 74 00:49:06,800 --> 00:49:10,307 це просто буде продовжувати говорити привіт світ назавжди, в буквальному сенсі слова. 75 00:49:10,307 --> 00:49:12,390 У той же час, є ще тип циклу в порожньому місці 76 00:49:12,390 --> 00:49:14,348 що ми будемо see-- повторення block--, де, якщо ви 77 00:49:14,348 --> 00:49:17,940 знати заздалегідь, скільки разів Ви хочете, щоб виконати цикл 78 00:49:17,940 --> 00:49:21,850 кінцеве число раз в fact-- вас можна вказати, що, запровадивши в ряді 79 00:49:21,850 --> 00:49:25,380 або навіть закупорки в змінної, як х або у, як ми побачимо. 80 00:49:25,380 --> 00:49:27,690 >> Насправді, як змінні Я в цьому випадку, який 81 00:49:27,690 --> 00:49:30,109 є загальною назвою для ціла змінна, що 82 00:49:30,109 --> 00:49:31,900 просто зберігає number-- ціле число, може бути, 83 00:49:31,900 --> 00:49:35,470 використовувати цей помаранчевий блок тут встановити змінну, як я до нуля. 84 00:49:35,470 --> 00:49:38,900 Ось приклад в зелені поля Логічний вираз в порожньому місці. 85 00:49:38,900 --> 00:49:43,700 Навіть якщо це виглядає як математика формула, математичні нерівності, як це 86 00:49:43,700 --> 00:49:45,320 насправді є булевими виразами. 87 00:49:45,320 --> 00:49:46,570 Це або істинним, або хибним. 88 00:49:46,570 --> 00:49:48,300 Я менше, ніж 50. 89 00:49:48,300 --> 00:49:51,815 Це або так чи ні відповіді або істинним або хибним відповіддю. 90 00:49:51,815 --> 00:49:53,940 І ми зазвичай називаємо ці логічні вирази. 91 00:49:53,940 --> 00:49:55,148 І це не повинно бути 50. 92 00:49:55,148 --> 00:49:57,970 Це може бути х менше, ніж у, більше, ніж у, рівний y-- 93 00:49:57,970 --> 00:50:00,020 будь-яку кількість інших може бути задані питання. 94 00:50:00,020 --> 00:50:03,250 >> Тепер, на перший погляд, це може виглядати раптом зовсім сміливими тут, і це. 95 00:50:03,250 --> 00:50:06,540 Але концепція мудрий, це досить добре знайомі з раніше. 96 00:50:06,540 --> 00:50:09,370 Якщо х менше у, ніж, скажімо, як багато. 97 00:50:09,370 --> 00:50:12,230 Інакше, якщо х більше ніж у, то кажуть, як багато. 98 00:50:12,230 --> 00:50:14,260 Інакше сказати, х одно у. 99 00:50:14,260 --> 00:50:17,220 Таким чином, ми маємо приклад там третього scenario-- 100 00:50:17,220 --> 00:50:20,600 тільки третій possibility-- х є або більше, менше або дорівнює. 101 00:50:20,600 --> 00:50:22,420 Таким чином, у нас є три способи роздоріжжі. 102 00:50:22,420 --> 00:50:26,290 >> І зауважте, що це круто here-- Царапина, здавалося б, має тільки одну головоломку 103 00:50:26,290 --> 00:50:28,840 частина, в даному випадку, в блоці, якщо інше. 104 00:50:28,840 --> 00:50:32,090 І тим не менше, що, здавалося б, припускають, що ви можете є тільки два шляхи розвилки доріг. 105 00:50:32,090 --> 00:50:34,631 Ви можете піти наліво або направо, але що щодо третього сценарію? 106 00:50:34,631 --> 00:50:35,760 Що робити, якщо х одно у? 107 00:50:35,760 --> 00:50:36,500 Нічого страшного. 108 00:50:36,500 --> 00:50:39,640 Візьміть один шматок головоломки, покласти інший усередині нього 109 00:50:39,640 --> 00:50:45,759 створити семантичний еквівалент в разі, якщо ще, else-- і тепер ви 110 00:50:45,759 --> 00:50:47,300 мати свій тристоронній роздоріжжі. 111 00:50:47,300 --> 00:50:49,091 І, як ми бачимо, подряпина головоломки 112 00:50:49,091 --> 00:50:51,820 може бути розтягнутий і рости, так що а втиснути більше матеріалу в них. 113 00:50:51,820 --> 00:50:54,420 Вам не потрібно, щоб відповідати все, що в його розміру за замовчуванням. 114 00:50:54,420 --> 00:50:56,690 >> Це те, що ми будемо незабаром см називається масивом. 115 00:50:56,690 --> 00:51:00,880 Це як list-- якимось чином зберігання декількох фрагментів інформації 116 00:51:00,880 --> 00:51:02,886 в змінної, а не просто номер. 117 00:51:02,886 --> 00:51:05,760 Це ми бачимо представника щось, зване многопоточность. 118 00:51:05,760 --> 00:51:08,280 Насправді, всі ваші Маков і ПК в ці дні 119 00:51:08,280 --> 00:51:10,810 Підтримує багатопоточність, а це значить, ви можете в буквальному сенсі 120 00:51:10,810 --> 00:51:12,390 робити кілька речей одночасно. 121 00:51:12,390 --> 00:51:15,390 Ви можете мати Microsoft Word вгору в на передньому плані, працюючи на якомусь есе. 122 00:51:15,390 --> 00:51:17,160 Ви можете мати браузер у фоновому режимі відкриття 123 00:51:17,160 --> 00:51:18,720 G поштою або Facebook або тощо. 124 00:51:18,720 --> 00:51:22,730 Ваш комп'ютер може зробити кілька речей сьогодні, тому що це багато-, 125 00:51:22,730 --> 00:51:26,390 і програми, вони знаходяться в в Зокрема, також багатопоточний. 126 00:51:26,390 --> 00:51:28,970 >> Там в речі, названі події, як а в світі нуля, 127 00:51:28,970 --> 00:51:32,640 а потім є спосіб теж, щоб зробити наші власні головоломки, якщо речі 128 00:51:32,640 --> 00:51:34,810 насправді не існує заздалегідь. 129 00:51:34,810 --> 00:51:38,260 Так що давайте мотивують це наступним чином. 130 00:51:38,260 --> 00:51:40,580 Кілька років тому, коли я вперше виявлений на порожньому місці, 131 00:51:40,580 --> 00:51:43,530 коли я був насправді аспірантом в Массачусетському технологічному інституті, ми 132 00:51:43,530 --> 00:51:45,640 самі були поставлено завдання зробити домашнє завдання. 133 00:51:45,640 --> 00:51:47,614 І я implemented-- який, в ретроспективі, 134 00:51:47,614 --> 00:51:50,780 було дуже погане рішення, тому що це сама сказ пісня в світі 135 00:51:50,780 --> 00:51:53,321 щоб слухати протягом восьми годин під час роботи на homework-- 136 00:51:53,321 --> 00:51:57,180 але щось я назвав Оскар Час, який, можливо, знайома пісня. 137 00:51:57,180 --> 00:51:59,820 >> CS50s власний Jordan Hayashi, один з наші старші співробітники, 138 00:51:59,820 --> 00:52:03,920 підвищило його до 2015 року і Тепер 2016, так як назад в день, 139 00:52:03,920 --> 00:52:06,610 У мене було все, що тільки збирається в кошик для сміття Оскара. 140 00:52:06,610 --> 00:52:09,320 В даний час ми підтримуємо переробку і компостування. 141 00:52:09,320 --> 00:52:12,050 >> Але щоб намалювати картину про те, що ми можемо зробити тут 142 00:52:12,050 --> 00:52:14,130 і мотивувати деяких нижні приклади рівня, 143 00:52:14,130 --> 00:52:16,400 ми могли б отримати один інший Робота на громадських засадах, щоб просто прийти на вгору 144 00:52:16,400 --> 00:52:18,331 і грати мій перший домашнє завдання будь-коли? 145 00:52:18,331 --> 00:52:18,830 Піднімайся. 146 00:52:18,830 --> 00:52:19,250 Як вас звати? 147 00:52:19,250 --> 00:52:20,030 >> ГЕНРІ: Генрі. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Маланки: Генрі, давай вгору. 149 00:52:22,660 --> 00:52:24,190 Піднімайся. 150 00:52:24,190 --> 00:52:27,070 Голова так чи інакше, і ви побачите в даний момент, 151 00:52:27,070 --> 00:52:29,870 Я збираюся йти вперед і вдарив зелений прапор у верхній правій руці 152 00:52:29,870 --> 00:52:31,100 кут, що означає йти. 153 00:52:31,100 --> 00:52:33,320 Значок знак трохи зупинки збирається сказати стоп, 154 00:52:33,320 --> 00:52:35,490 і це при запуску і зупинити програму. 155 00:52:35,490 --> 00:52:36,450 Приємно познайомитись. 156 00:52:36,450 --> 00:52:36,950 Добре. 157 00:52:36,950 --> 00:52:39,100 Отже, ми збираємося, щоб побачити інструкції на екрані в мить. 158 00:52:39,100 --> 00:52:41,450 І просто грати в цю гру для декількох seconds-- повірте мені, 159 00:52:41,450 --> 00:52:43,670 ми не будемо хотіти грати всі шляхи до end-- ви будете 160 00:52:43,670 --> 00:52:45,470 отримати уявлення про те, що робить програма. 161 00:52:45,470 --> 00:52:49,170 І більше, ніж просто зосередитися на Генрі бути добрим чи поганим в цій грі, фокус 162 00:52:49,170 --> 00:52:52,600 і як вони були реалізовані мною спочатку, а потім Йорданії. 163 00:52:52,600 --> 00:52:54,640 Іншими словами, де змінні? 164 00:52:54,640 --> 00:52:55,520 Де петлі? 165 00:52:55,520 --> 00:52:56,520 Де функції? 166 00:52:56,520 --> 00:53:00,700 І ми побачимо, якщо ми не бачимо ті, під капотом. 167 00:53:00,700 --> 00:53:03,660 >> Просто натисніть і перетягніть сміття до відповідного бункер. 168 00:53:03,660 --> 00:54:02,100 >> [МУЗИКА] 169 00:54:02,100 --> 00:54:02,600 Добре. 170 00:54:02,600 --> 00:54:03,160 Це дуже добре. 171 00:54:03,160 --> 00:54:04,286 Чому б нам не зупинити його там. 172 00:54:04,286 --> 00:54:04,786 Дякую. 173 00:54:04,786 --> 00:54:05,830 Вітаємо Генрі. 174 00:54:05,830 --> 00:54:07,002 Дякую. 175 00:54:07,002 --> 00:54:10,690 >> [Оплески] 176 00:54:10,690 --> 00:54:12,450 >> Тільки уявіть собі цю програму налагодження. 177 00:54:12,450 --> 00:54:15,880 Якщо є проблема двох й хвилині, але так song-- 178 00:54:15,880 --> 00:54:17,430 що тут відбувається насправді? 179 00:54:17,430 --> 00:54:20,900 Як складно, як може здатися починають здаватися, щоб отримати протягом довгого часу, 180 00:54:20,900 --> 00:54:22,910 насправді все більше і більше речі почали падати, 181 00:54:22,910 --> 00:54:25,370 що цікаво про цей вид example-- 182 00:54:25,370 --> 00:54:27,270 і ми побачимо, деякі з них others-- в тому, що якщо ви 183 00:54:27,270 --> 00:54:30,416 дивитися повз складності або витонченість гри, 184 00:54:30,416 --> 00:54:33,040 є дуже просте будівлю блоки, play-- все з яких, 185 00:54:33,040 --> 00:54:35,840 якщо ви відігнати їх тим, будівельні блоки, дуже доступні 186 00:54:35,840 --> 00:54:37,401 і реалізованими їм самим. 187 00:54:37,401 --> 00:54:39,150 Наприклад, це було деякий час, але я 188 00:54:39,150 --> 00:54:42,900 упевнений, що я спочатку зробив, коли що робить цю гру в перший раз 189 00:54:42,900 --> 00:54:44,787 я був повністю як тягнули. 190 00:54:44,787 --> 00:54:47,120 Я не зосередитися на всіх на логіка або шматочки головоломки, 191 00:54:47,120 --> 00:54:50,810 Я зосередився на графіку і знаходження вулиця пост і сміттєвий бак 192 00:54:50,810 --> 00:54:51,540 і все це. 193 00:54:51,540 --> 00:54:53,456 Але це були необхідною умовою інгредієнти в першу чергу. 194 00:54:53,456 --> 00:54:57,220 І як тільки я закінчив відкладати і виклавши загальні рамки, 195 00:54:57,220 --> 00:55:00,337 Я вирішив, дозвольте мені зробити один частина падіння для сміття з неба. 196 00:55:00,337 --> 00:55:02,170 І ми побачимо, до подряпин підтримує речі, звані 197 00:55:02,170 --> 00:55:06,386 sprites-- символів, які можуть мають різні костюми на так що вони 198 00:55:06,386 --> 00:55:07,010 виглядають по-різному. 199 00:55:07,010 --> 00:55:09,660 >> І тому я ставлю сміття костюм на одному з таких спрайту. 200 00:55:09,660 --> 00:55:12,007 І я просто потребував падати з неба. 201 00:55:12,007 --> 00:55:14,590 І так виходить, до подряпин, як і більшість мов програмування, 202 00:55:14,590 --> 00:55:18,099 підтримує випадкові числа або технічно псевдокод випадкових чисел, 203 00:55:18,099 --> 00:55:20,390 так що за допомогою перетягування скинувши певні частини головоломки, 204 00:55:20,390 --> 00:55:22,890 Я був в змозі мати сміття приходять зліва на перший погляд. 205 00:55:22,890 --> 00:55:25,580 І тоді наступного разу, він впав, з право, а потім з середини. 206 00:55:25,580 --> 00:55:28,060 І все ж гра була просто є сміття, які падають з неба. 207 00:55:28,060 --> 00:55:29,770 Ви не могли б вказати на неї або натиснути на неї. 208 00:55:29,770 --> 00:55:31,103 Ви не могли відкрити сміттєвий бак. 209 00:55:31,103 --> 00:55:32,160 Ви нічого не могли зробити. 210 00:55:32,160 --> 00:55:34,450 Але це був крок дитини до моєї кінцевої бачення. 211 00:55:34,450 --> 00:55:36,720 >> І після цього, я насправді реалізований якийсь 212 00:55:36,720 --> 00:55:41,230 зондування, так що якщо ви зробили натисніть і перетягнути на шматок сміття 213 00:55:41,230 --> 00:55:44,350 по банку мотлоху, Оскар кришка буде відкриватися і закриватися. 214 00:55:44,350 --> 00:55:47,650 Нічого не трапиться зі сміттям, але по крайней мере, кришка буде відкриватися і закриватися. 215 00:55:47,650 --> 00:55:49,642 Таким чином, перевірте, крок два з двох. 216 00:55:49,642 --> 00:55:52,100 І це те, що буде ключ в обох завданню встановити нуль 217 00:55:52,100 --> 00:55:55,970 і в програмуванні в більш загальному плані, є приймати ці дуже умисні кроки дитини. 218 00:55:55,970 --> 00:55:59,390 Тому що воно не тільки дозволить вам відчувати себе чесно досягнуто багато іншого 219 00:55:59,390 --> 00:56:01,250 quickly-- це найгірше в світі 220 00:56:01,250 --> 00:56:06,149 щоб спробувати реалізувати всі Оскар часу, потім годинами пізніше вдарив зелений прапор, 221 00:56:06,149 --> 00:56:08,440 і нічого не працює, як очікувалося тому що, коли Ви навіть 222 00:56:08,440 --> 00:56:11,150 почати налагодження або усунути цю програму? 223 00:56:11,150 --> 00:56:12,470 Це просто переважною. 224 00:56:12,470 --> 00:56:16,792 >> І так дійсно освоюють цю ідею приймати steps-- кроки дитини знову 225 00:56:16,792 --> 00:56:19,000 і again-- побудова то, що це, врешті-решт, 226 00:56:19,000 --> 00:56:23,672 дійсно вражає і складний, але по-перше, не так сильно. 227 00:56:23,672 --> 00:56:24,630 Насправді, давайте зробимо це. 228 00:56:24,630 --> 00:56:28,989 Дозвольте мені йти вперед і-- Подряпини себе існує в Інтернеті за адресою Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 і ви будете, як сказав багато разів в завданні 230 00:56:30,780 --> 00:56:34,200 встановити нуль, специфікація для який вже знаходиться на веб-сайті CS50 в. 231 00:56:34,200 --> 00:56:35,725 >> Але це те, що само по собі є подряпин. 232 00:56:35,725 --> 00:56:38,210 І є насправді просто три основні області. 233 00:56:38,210 --> 00:56:40,980 У верхньому лівому куті є це так званий етап. 234 00:56:40,980 --> 00:56:41,810 Це Подряпини. 235 00:56:41,810 --> 00:56:43,710 костюм за замовчуванням є кішка. 236 00:56:43,710 --> 00:56:46,950 І це прямокутний світ які ви можете move-- вгору, вниз, вліво, 237 00:56:46,950 --> 00:56:48,130 право і деякі інші речі. 238 00:56:48,130 --> 00:56:51,839 В середині тут наші категорії або наші піддони головоломки, 239 00:56:51,839 --> 00:56:53,630 і різні кольори означають різні речі. 240 00:56:53,630 --> 00:56:56,520 І якщо ви пошукайте, ви побачите речі, такі як цикли і умови 241 00:56:56,520 --> 00:56:58,160 і змінні та інші інгредієнти. 242 00:56:58,160 --> 00:57:00,060 >> А потім тут є область скриптів. 243 00:57:00,060 --> 00:57:03,020 Це де я можу перетягнути ці шматочки головоломки, щоб робити речі. 244 00:57:03,020 --> 00:57:04,690 Так давайте зробимо одну таку річ. 245 00:57:04,690 --> 00:57:06,630 Дозвольте мені йти вперед і-- і я знаю, де це. 246 00:57:06,630 --> 00:57:10,110 Так що я збираюся негайно натиснути на де я знаю, що все готові бути, 247 00:57:10,110 --> 00:57:13,140 але вказуючи і натиснувши і колупатися неминучі. 248 00:57:13,140 --> 00:57:15,320 Тому, коли зелений прапор клацнув, Що я хочу зробити? 249 00:57:15,320 --> 00:57:17,100 Я збираюся зробити це. 250 00:57:17,100 --> 00:57:20,699 Я збираюся перетягнути цей фіолетовий головоломки частина, скажімо привіт протягом двох секунд, 251 00:57:20,699 --> 00:57:21,490 і дозвольте мені збільшити. 252 00:57:21,490 --> 00:57:23,865 >> І я збираюся змінити це щоб бути тим, що я хочу, щоб be-- 253 00:57:23,865 --> 00:57:26,471 привіт світ протягом двох секунд нормально. 254 00:57:26,471 --> 00:57:28,970 Тепер, я збираюся натиснути зелений прапор, або якщо я дійсно хочу, 255 00:57:28,970 --> 00:57:31,820 Я можу в повноекранному режимі, а потім повернутися. 256 00:57:31,820 --> 00:57:34,060 Він буде просто тримати все в одному вікні. 257 00:57:34,060 --> 00:57:36,141 Зелений flag-- привіт світ. 258 00:57:36,141 --> 00:57:36,640 Добре. 259 00:57:36,640 --> 00:57:38,789 Не всі, що цікаво. 260 00:57:38,789 --> 00:57:40,080 Отже, дозвольте мені йти вперед і робити це. 261 00:57:40,080 --> 00:57:41,038 Дозвольте мені спробувати ще. 262 00:57:41,038 --> 00:57:44,740 Коли зелений прапор clicked-- давайте зробити щось на зразок звуку. 263 00:57:44,740 --> 00:57:46,880 І зверніть увагу, що з коробка безкоштовно ви отримуєте 264 00:57:46,880 --> 00:57:49,910 звук кота, як спрайт за замовчуванням. 265 00:57:49,910 --> 00:57:52,380 Так що тепер дозвольте мені йти вперед і вдарив зелений прапор прямо зараз. 266 00:57:52,380 --> 00:57:53,224 >> [Нявкання] 267 00:57:53,224 --> 00:57:54,490 >> Ав. 268 00:57:54,490 --> 00:57:55,370 Це чудово. 269 00:57:55,370 --> 00:57:57,040 Я програмування. 270 00:57:57,040 --> 00:57:58,550 Так що я зробив? 271 00:57:58,550 --> 00:58:00,430 Це еквівалент програми. 272 00:58:00,430 --> 00:58:01,600 Це, очевидно, супер просто. 273 00:58:01,600 --> 00:58:05,300 Це насправді не приймати все, що багато зусилля і MIT зробив велику частину роботи, 274 00:58:05,300 --> 00:58:07,890 але я називається функцією. 275 00:58:07,890 --> 00:58:08,940 Я використовував функцію. 276 00:58:08,940 --> 00:58:12,480 Я зробив якусь дію, використовуючи тільки що один фіолетовий шматок головоломки. 277 00:58:12,480 --> 00:58:15,960 >> Ну, якщо я хочу зробити три нявкає поспіль? 278 00:58:15,960 --> 00:58:18,570 Дозвольте мені йти вперед і робити два і три. 279 00:58:18,570 --> 00:58:20,910 І зауважте, що коли ви парити поруч шматок головоломки, 280 00:58:20,910 --> 00:58:22,970 з'являється маленька біла лінія свого роду магнітним способом, 281 00:58:22,970 --> 00:58:25,190 і вона лопне разом, коли ви відпускаєте. 282 00:58:25,190 --> 00:58:26,600 Давайте подивимося, що тут відбувається. 283 00:58:26,600 --> 00:58:27,920 >> [Нявкання] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Там є помилка. 286 00:58:34,510 --> 00:58:35,650 Я чую тільки одне нявкання. 287 00:58:35,650 --> 00:58:37,440 Чому це може бути? 288 00:58:37,440 --> 00:58:39,001 Так? 289 00:58:39,001 --> 00:58:39,500 Так. 290 00:58:39,500 --> 00:58:41,650 Ми насправді не чути, але це хороша інтуїція. 291 00:58:41,650 --> 00:58:43,400 Вони всі грають в той же час. 292 00:58:43,400 --> 00:58:44,000 Чому? 293 00:58:44,000 --> 00:58:46,587 Ну, комп'ютер просто буде робити те, що ви скажете їй зробити. 294 00:58:46,587 --> 00:58:48,670 Так що, якщо ви говорите, відтворення звуку, відтворення звуку, відтворення звуку, 295 00:58:48,670 --> 00:58:52,887 але ви не говорите це грати до ви закінчите, грати, поки ви не закінчите, 296 00:58:52,887 --> 00:58:54,970 це буде дути через програма дуже швидко 297 00:58:54,970 --> 00:58:56,830 і не тільки те, що ви скажете їй зробити. 298 00:58:56,830 --> 00:58:59,040 >> Так що я насправді потрібно виправити це кількома способами. 299 00:58:59,040 --> 00:59:00,623 Я міг би просто зробити це, щоб позбутися від цього. 300 00:59:00,623 --> 00:59:04,180 Дозвольте мені спробувати цю іншу головоломку piece-- грати звук мяу поки не зроблено, 301 00:59:04,180 --> 00:59:07,072 а потім перетягнути три ці та натисніть кнопку відтворення. 302 00:59:07,072 --> 00:59:09,430 >> [Нявкання] 303 00:59:09,430 --> 00:59:13,350 >> Це насправді не very-- спасибі you-- дуже природно. 304 00:59:13,350 --> 00:59:16,590 Так чому ж не i-- нехай мені йти, щоб контролювати тут. 305 00:59:16,590 --> 00:59:17,090 Ніцца. 306 00:59:17,090 --> 00:59:22,230 Зачекайте одну секунду, а тепер дозвольте мені повернутися звуки і відтворювати звук, поки не зроблено, 307 00:59:22,230 --> 00:59:24,620 а потім дозвольте мені почекати одну секунду. 308 00:59:24,620 --> 00:59:28,692 А потім дозвольте мені піти і отримати один більше звуку, і тут ми йдемо. 309 00:59:28,692 --> 00:59:31,350 >> [Нявкання] 310 00:59:31,350 --> 00:59:35,930 >> Трохи більш природним, але це не дуже ефективно. 311 00:59:35,930 --> 00:59:39,830 Як мені стає нудно, все буде Коротше кажучи, натиснувши назад і вперед 312 00:59:39,830 --> 00:59:42,724 і дійсно дублюючи моє work-- досить багато копіювання і вставки. 313 00:59:42,724 --> 00:59:44,640 Дійсно, якщо я керую або натиснув правою клавішею натиснув, 314 00:59:44,640 --> 00:59:46,500 Я міг би просто скопіювати і вставити. 315 00:59:46,500 --> 00:59:49,870 Що було б краще побудувати використовувати? 316 00:59:49,870 --> 00:59:51,090 Яка ідея від раніше? 317 00:59:51,090 --> 00:59:51,990 >> Так, так що петля. 318 00:59:51,990 --> 00:59:54,580 І справді, якщо ми понишпорив, ми могли б знайти саме те, що. 319 00:59:54,580 --> 00:59:57,730 Дозвольте мені йти на події або, вірніше, контролю. 320 00:59:57,730 --> 00:59:59,650 Так repeat-- я не хочуть, щоб це було в 10 разів. 321 00:59:59,650 --> 01:00:01,370 Це збирається дратувати швидко. 322 01:00:01,370 --> 01:00:03,380 Але я буду повторювати три рази. 323 01:00:03,380 --> 01:00:06,355 Дозвольте мені повернутися до звуку і грати звук, поки це не зроблено. 324 01:00:06,355 --> 01:00:08,480 Дозвольте мені повернутися до контролю і просто чекати одну секунду. 325 01:00:08,480 --> 01:00:10,271 І зауважте, ви можете думаю, що це не підходить, 326 01:00:10,271 --> 01:00:13,520 але знову ж таки, якщо магнітним ви дозволите оснастки на місці, вона буде рости, щоб заповнити. 327 01:00:13,520 --> 01:00:14,971 Що він грає зараз? 328 01:00:14,971 --> 01:00:18,500 >> [Нявкання] 329 01:00:18,500 --> 01:00:19,000 ДОБРЕ. 330 01:00:19,000 --> 01:00:19,660 Ніцца. 331 01:00:19,660 --> 01:00:22,540 І це те, що можна було б назвати програма, яка також правильно. 332 01:00:22,540 --> 01:00:27,590 Він нявкав три рази досить природно, але це краще розроблені. 333 01:00:27,590 --> 01:00:29,580 Я використовую менше надмірності. 334 01:00:29,580 --> 01:00:30,970 Я не скопіювати і вставити що-небудь. 335 01:00:30,970 --> 01:00:32,470 Я просто використовував краще представлення. 336 01:00:32,470 --> 01:00:35,340 >> Тепер, це ще не все, що Цікаво, з нуля не робити 337 01:00:35,340 --> 01:00:35,930 що-небудь. 338 01:00:35,930 --> 01:00:37,388 Так що давайте робити щось ще замість цього. 339 01:00:37,388 --> 01:00:38,670 Давайте робити щось назавжди. 340 01:00:38,670 --> 01:00:39,420 І ви знаєте, що? 341 01:00:39,420 --> 01:00:40,470 Рух здається цікавим. 342 01:00:40,470 --> 01:00:45,760 Давайте йому рухатися 10 кроки і вдарив грати прямо зараз. 343 01:00:45,760 --> 01:00:46,570 >> ДОБРЕ. 344 01:00:46,570 --> 01:00:49,300 Ну ми можемо вид опору його назад, і він як і раніше 345 01:00:49,300 --> 01:00:51,250 працює, тому що він робить це назавжди. 346 01:00:51,250 --> 01:00:53,150 Таким чином, цикл робить що він говорить робити, 347 01:00:53,150 --> 01:00:54,650 але це не все, що цікаво. 348 01:00:54,650 --> 01:00:55,310 Давай зробимо це. 349 01:00:55,310 --> 01:00:59,870 Дозвольте мені додати блок управління, і використовувати одну з цих умов в перший раз. 350 01:00:59,870 --> 01:01:03,119 >> Так що це буде рухатися 10 steps-- 10 точок, 10 пікселів на screen-- 351 01:01:03,119 --> 01:01:04,660 то це буде поставити це питання. 352 01:01:04,660 --> 01:01:09,340 Якщо щось правда, то робити щось всередині цього блоку. 353 01:01:09,340 --> 01:01:13,060 Так що виходить зондування має цілий зв'язка булевої expressions-- 354 01:01:13,060 --> 01:01:16,580 питання так ні чи правда помилкова form-- зробимо це. 355 01:01:16,580 --> 01:01:19,260 >> Якщо touching-- і потім є це маленьке меню, що випадає. 356 01:01:19,260 --> 01:01:20,410 Я можу параметризрвані його. 357 01:01:20,410 --> 01:01:23,010 Якщо торкаючись до edge-- давайте зробити щось на зразок цього. 358 01:01:23,010 --> 01:01:27,310 Так що, якщо ви торкаєтеся edge-- дозвольте мені повернутися до руху. 359 01:01:27,310 --> 01:01:32,281 А чому б нам не просто розвернутися на 180 градусів? 360 01:01:32,281 --> 01:01:32,780 Добре. 361 01:01:32,780 --> 01:01:35,070 Так назавжди, рухатися 10 кроків. 362 01:01:35,070 --> 01:01:37,670 Якщо ви зворушливі край, поворот на 180 градусів. 363 01:01:37,670 --> 01:01:39,720 І це ще не кінець програми тому що ви в назавжди блокувати, 364 01:01:39,720 --> 01:01:42,053 так що збирається йти знову і знову і знову і знову. 365 01:01:42,053 --> 01:01:43,980 Отже, давайте подивимося, що станеться. 366 01:01:43,980 --> 01:01:44,785 ДОБРЕ. 367 01:01:44,785 --> 01:01:48,270 Трохи глючний, але вигляд прохолодного. 368 01:01:48,270 --> 01:01:51,710 >> І ми можемо додати до цього якісь дурні речі що не все, що інтелектуально 369 01:01:51,710 --> 01:01:52,270 цікаво. 370 01:01:52,270 --> 01:01:57,210 Але якщо ми цей маленький хіт Мікрофон button-- Уч. 371 01:01:57,210 --> 01:01:58,480 Дозвольте мені очистити це. 372 01:01:58,480 --> 01:02:01,540 Дозвольте мені поліпшити це як вони б сказали по телевізору. 373 01:02:01,540 --> 01:02:05,400 Очистіть, що вгору, Зберегти і Тепер йти до скриптів. 374 01:02:05,400 --> 01:02:07,500 >> А тепер дозвольте мені перейти до звуку. 375 01:02:07,500 --> 01:02:09,002 Дозвольте мені дати йому ім'я. 376 01:02:09,002 --> 01:02:12,440 Я буду називати це Ouch. 377 01:02:12,440 --> 01:02:13,840 І тепер грати звук Ouch. 378 01:02:13,840 --> 01:02:16,520 Зверніть увагу на те, що з'являється в трохи меню, що випадає. 379 01:02:16,520 --> 01:02:17,612 Давайте подивимося. 380 01:02:17,612 --> 01:02:20,444 >> [ОЙ] 381 01:02:20,444 --> 01:02:24,377 >> [Сміється] 382 01:02:24,377 --> 01:02:25,835 Але ми можемо змінити т Його на льоту. 383 01:02:25,835 --> 01:02:28,106 Ми можемо бути в два рази дратує. 384 01:02:28,106 --> 01:02:31,760 >> [ОЙ] 385 01:02:31,760 --> 01:02:35,332 >> Або, якщо ми робимо це, як 1000 кроків за time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> ДОБРЕ. 388 01:02:40,670 --> 01:02:42,295 Отже, ми збираємося залишити це один поодинці. 389 01:02:42,295 --> 01:02:45,290 Так знову ж, будівництво blocks-- I почав з чимось супер простий, 390 01:02:45,290 --> 01:02:47,930 а потім я додав функцію, додана можливість, додана можливість. 391 01:02:47,930 --> 01:02:50,721 І я більше не потрібно турбуватися про як перший з цих функцій 392 01:02:50,721 --> 01:02:53,690 був реалізований як я як і раніше нашаровувати речі на вершині. 393 01:02:53,690 --> 01:02:55,430 Так що насправді, дозвольте мені зробити одне інше тут. 394 01:02:55,430 --> 01:03:00,580 Дозвольте мені йти вперед і відкрити файл, Я приніс заздалегідь, називається Овець. 395 01:03:00,580 --> 01:03:03,970 >> Так що він має трохи інший символ, який виглядає наступним чином. 396 01:03:03,970 --> 01:03:07,370 І дозвольте мені побачити, якщо я не можу зробити щось за допомогою лічильника 397 01:03:07,370 --> 01:03:09,310 в цьому case-- так звану змінну. 398 01:03:09,310 --> 01:03:15,540 Я збираюся йти вперед і під Events-- дозвольте мені отримати зелений прапор клацнув. 399 01:03:15,540 --> 01:03:19,030 Тоді дозвольте мені перейти до даних, які я знаю, від просто грав раніше, 400 01:03:19,030 --> 01:03:20,214 де змінні. 401 01:03:20,214 --> 01:03:21,880 І я збираюся йти вперед і перетягнути це. 402 01:03:21,880 --> 01:03:25,144 >> Так що змінна називається лічильник, і Я збираюся ініціювати його до нуля. 403 01:03:25,144 --> 01:03:27,560 Я можу назвати його anything-- х або у або z--, але в програмуванні, 404 01:03:27,560 --> 01:03:30,410 називаючи щось в семантично корисний спосіб, як лічильник, 405 01:03:30,410 --> 01:03:34,540 який описує, що це таке, це набагато легше читати ваш код пізніше. 406 01:03:34,540 --> 01:03:37,460 Дозвольте мені йти вперед і отримати назавжди заблокувати тут. 407 01:03:37,460 --> 01:03:41,289 І дозвольте мені перейти до зовнішності сторінки і зробити блок Say. 408 01:03:41,289 --> 01:03:44,330 Але що це круто про змінних я не потрібно просто ввести щось 409 01:03:44,330 --> 01:03:47,850 як привіт світ, який ми вже зроблено, я можу замість того, щоб перейти до даних 410 01:03:47,850 --> 01:03:50,690 і перетягнути мою змінну, і навіть хоча форма не зовсім 411 01:03:50,690 --> 01:03:53,000 виглядати він повинен відповідати, вона буде рости, щоб заповнити. 412 01:03:53,000 --> 01:03:58,396 І я просто скажу, лічильник для одного second-- spoiler-- він збирається розраховувати. 413 01:03:58,396 --> 01:04:00,380 Ми будемо говорити про це протягом однієї секунди. 414 01:04:00,380 --> 01:04:02,840 Тоді я піду і є його чекати протягом однієї секунди, 415 01:04:02,840 --> 01:04:04,650 так що це не вважається занадто швидко. 416 01:04:04,650 --> 01:04:08,430 І потім, нарешті, змінити лічильник по одно-- іншими словами, 417 01:04:08,430 --> 01:04:13,520 приріст лічильника на одиницю додаткове значення і зробити це назавжди. 418 01:04:13,520 --> 01:04:16,129 >> Так що вівці теж, подібно програміст, вважає від 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 І якщо ми будемо чекати досить довго, він зробить це назавжди. 421 01:04:23,740 --> 01:04:27,740 Але це не зовсім вірно, тому що справді, як ми виявимо в тиждень один, 422 01:04:27,740 --> 01:04:31,871 цілі числа і комп'ютери в більш загальному плані, технічно є тільки finite-- добре, 423 01:04:31,871 --> 01:04:33,829 а комп'ютери, коли вони представляють собою цілі числа, 424 01:04:33,829 --> 01:04:35,670 тільки кінцеве число бітів. 425 01:04:35,670 --> 01:04:37,860 Ці лампочки там може розраховувати тільки настільки висока 426 01:04:37,860 --> 01:04:39,239 перш ніж ви з лампочок. 427 01:04:39,239 --> 01:04:41,590 І комп'ютер теж, тільки має так багато пам'яті, 428 01:04:41,590 --> 01:04:44,640 тільки має так багато транзисторів, так що він може розраховувати тільки така висока. 429 01:04:44,640 --> 01:04:47,409 >> Так виходить, що вівці, Я думаю, що, може розраховувати на 2 млрд 430 01:04:47,409 --> 01:04:48,409 або щось досить великий. 431 01:04:48,409 --> 01:04:50,325 Таким чином, ми не будемо чекати, поки це станеться. 432 01:04:50,325 --> 01:04:54,850 Але врешті-решт якась помилка буде відбуватися які можуть мати деякі дуже реальний світ 433 01:04:54,850 --> 01:04:55,970 відгалуженнях. 434 01:04:55,970 --> 01:04:58,861 Але за овець, що просто вводить змінну. 435 01:04:58,861 --> 01:05:01,110 Давайте йти вперед і відкрити то, що я зробив заздалегідь 436 01:05:01,110 --> 01:05:07,430 тут називається улюбленця Cat-- Pet Кота тут. 437 01:05:07,430 --> 01:05:10,420 І зауважте, тут це мало блоки, але коли зелений прапор 438 01:05:10,420 --> 01:05:12,474 клацнув, назавжди, виконавши такі дії. 439 01:05:12,474 --> 01:05:15,265 Якщо ви доторкаючись до миші pointer--, щоб курсор на екрані, 440 01:05:15,265 --> 01:05:18,529 arrow-- гра звук мяу а потім почекайте дві секунди. 441 01:05:18,529 --> 01:05:19,570 І як раз зробити це назавжди. 442 01:05:19,570 --> 01:05:22,619 Просто постійно чекати щоб побачити, якщо pointer-- 443 01:05:22,619 --> 01:05:24,710 якщо кішка чіпає покажчик. 444 01:05:24,710 --> 01:05:26,060 >> Так що я вдарив грати. 445 01:05:26,060 --> 01:05:26,920 Нічого не відбувається. 446 01:05:26,920 --> 01:05:28,980 Але, як я перемістити курсор над кішкою, 447 01:05:28,980 --> 01:05:31,960 >> [Нявкання] 448 01:05:31,960 --> 01:05:34,750 >> І якщо я перемістити його в сторону, не гладить кішку більше. 449 01:05:34,750 --> 01:05:38,090 Таким чином, деякі умовна логіка вкладеними всередині циклу. 450 01:05:38,090 --> 01:05:43,070 Як про це прикладі, навмисно називається Чи не погладити кішку? 451 01:05:43,070 --> 01:05:45,253 Що це буде робити? 452 01:05:45,253 --> 01:05:47,880 >> [Нявкання] 453 01:05:47,880 --> 01:05:50,215 >> Чому ви не гладите кішку? 454 01:05:50,215 --> 01:05:59,440 >> [Нявкання] 455 01:05:59,440 --> 01:06:00,699 >> ДОБРЕ. 456 01:06:00,699 --> 01:06:03,880 Так що це приклад, якщо в іншому місці. 457 01:06:03,880 --> 01:06:06,482 Це точка прийняття рішення і тому що він сидить в петлі, 458 01:06:06,482 --> 01:06:07,690 вони обидва отримувати чек. 459 01:06:07,690 --> 01:06:08,280 Це правда? 460 01:06:08,280 --> 01:06:08,760 Це правда? 461 01:06:08,760 --> 01:06:09,250 Це правда? 462 01:06:09,250 --> 01:06:09,791 Це правда? 463 01:06:09,791 --> 01:06:11,880 І врешті-решт, один з ті, збирається подати заявку 464 01:06:11,880 --> 01:06:16,480 і тому ви чуєте або мяу або рев лева в цьому випадку. 465 01:06:16,480 --> 01:06:21,400 >> Що ж, давайте робити трохи більше фантазії одного що я зробив заздалегідь too-- ниток. 466 01:06:21,400 --> 01:06:25,210 Таким чином, потік є лише одним річ, що комп'ютер може зробити. 467 01:06:25,210 --> 01:06:29,349 Так многопоточної програма являє собою програму що може зробити кілька речей одночасно. 468 01:06:29,349 --> 01:06:31,140 І всі ці приклади до сих пір мали 469 01:06:31,140 --> 01:06:35,980 тільки один сценарій, так speak-- одна програма, як це тут. 470 01:06:35,980 --> 01:06:38,810 Але зверніть увагу, ця програма має два спрайту, два символи. 471 01:06:38,810 --> 01:06:40,020 Одним з них є птах. 472 01:06:40,020 --> 01:06:40,870 Одним з них є кішка. 473 01:06:40,870 --> 01:06:45,080 >> І зверніть увагу, коли я натискаю на них вниз зліва, кожен з них має свої власні сценарії 474 01:06:45,080 --> 01:06:47,120 або програмне забезпечення, пов'язані з ними. 475 01:06:47,120 --> 01:06:49,420 І обидва ці програми, повідомлення, початок 476 01:06:49,420 --> 01:06:52,600 з тим, коли зелений прапор clicked-- давайте подивимося на cat-- 477 01:06:52,600 --> 01:06:54,030 коли зелений прапор клацнув. 478 01:06:54,030 --> 01:06:58,220 І так насправді, коли я вдарив грати зараз, дві речі, які будуть відбуватися одночасно. 479 01:06:58,220 --> 01:07:01,750 Кішка і птах обидва буде працювати одночасно 480 01:07:01,750 --> 01:07:03,815 для створення цього ефекту. 481 01:07:03,815 --> 01:07:05,440 І ви можете собі уявити, що відбувається. 482 01:07:05,440 --> 01:07:08,340 Там є петля і птиця і кішки знаходяться в петлі. 483 01:07:08,340 --> 01:07:11,270 Птах просто підстрибуючи, як Я був раніше, коли я сказав Уч. 484 01:07:11,270 --> 01:07:13,040 Але кіт явно має перевагу. 485 01:07:13,040 --> 01:07:16,040 Там інша чутливий блок що вказує кішку навмисно 486 01:07:16,040 --> 01:07:19,836 щоб птиці в цьому випадку тут. 487 01:07:19,836 --> 01:07:22,960 Таким чином, ми могли б дражнити один від одного, дивлячись через ці блоки, що відбувається. 488 01:07:22,960 --> 01:07:25,460 Але ключовий інгредієнт тут один. 489 01:07:25,460 --> 01:07:28,520 Птах, так що ця гра не повністю boring-- або це animation-- 490 01:07:28,520 --> 01:07:30,060 починається в довільному напрямку. 491 01:07:30,060 --> 01:07:32,890 І комп'ютер набирає число від 90 до 180 492 01:07:32,890 --> 01:07:36,110 по суті, таким чином, що це злегка різні анімації кожен раз. 493 01:07:36,110 --> 01:07:39,480 >> І зверніть увагу на те тут, якщо кіт чіпає птицю, то 494 01:07:39,480 --> 01:07:42,030 грати лева чотири sound-- рев. 495 01:07:42,030 --> 01:07:46,330 Але поки в пташину палітра, у нас є це. 496 01:07:46,330 --> 01:07:49,229 Назавжди, якщо не торкаючись кота, просто продовжувати рухатися три кроки. 497 01:07:49,229 --> 01:07:50,770 А потім ось ще шматок головоломки. 498 01:07:50,770 --> 01:07:52,030 Якщо ви перебуваєте на краю, підстрибувати. 499 01:07:52,030 --> 01:07:54,840 Таким чином, птах просто вид звертаючи уваги свій власний бізнес, 500 01:07:54,840 --> 01:07:57,330 просто літати навколо і підстрибуючи, і це дійсно 501 01:07:57,330 --> 01:08:01,780 кішка, яка була умовною логіки щоб визначити, чи є він зловив птицю. 502 01:08:01,780 --> 01:08:02,280 Добре. 503 01:08:02,280 --> 01:08:08,800 Так давайте зробимо один інший тут, це одна з яких називається Привіт Привіт Привіт. 504 01:08:08,800 --> 01:08:15,100 І цей тут просто робить це в назавжди петлі. 505 01:08:15,100 --> 01:08:18,925 Але notice--, як ми зупиняємо це дуже дратує програма? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Натисніть пробіл. 508 01:08:22,640 --> 01:08:27,990 Тому що, якщо я можу це зробити, ліва рука program-- 509 01:08:27,990 --> 01:08:31,550 зверніть увагу, що це постійно listening-- є ключовим простір преса. 510 01:08:31,550 --> 01:08:34,090 Якщо пробіл натиснута, і якщо так, то що він робить? 511 01:08:34,090 --> 01:08:35,980 Це робить дуже поширену техніку. 512 01:08:35,980 --> 01:08:38,590 Вона встановлює змінну рівною деякому значенню. 513 01:08:38,590 --> 01:08:39,741 Але вона перемикає це значення. 514 01:08:39,741 --> 01:08:41,490 [? Так що зовнішній вигляд?] заснований на shape-- I 515 01:08:41,490 --> 01:08:43,160 є змінна, що я писав заздалегідь під назвою 516 01:08:43,160 --> 01:08:44,770 Приглушений, який просто говорить: так чи ні. 517 01:08:44,770 --> 01:08:45,880 Приглушений звук чи ні? 518 01:08:45,880 --> 01:08:46,990 Правда чи неправда? 519 01:08:46,990 --> 01:08:51,580 І зауважте, я кажу, якщо this-- приглушені дорівнює нулю, то змінюється на один, 520 01:08:51,580 --> 01:08:53,840 інакше встановити німого його до нуля. 521 01:08:53,840 --> 01:08:55,540 Таким чином, просто переверніть значення від нуля до одиниці. 522 01:08:55,540 --> 01:08:58,320 Я міг би змінити його done-- від двох до трьох і від трьох до двох 523 01:08:58,320 --> 01:09:00,162 або від чотирьох до п'яти або чотирьох до шести. 524 01:09:00,162 --> 01:09:01,870 Але це не має значення які цифри, які я використовую, 525 01:09:01,870 --> 01:09:04,090 до тих пір, поки я змінюючи його протилежність. 526 01:09:04,090 --> 01:09:07,290 >> І більшість будь-який програміст міг би просто вибрати нуль і одно-- брехня і правда, 527 01:09:07,290 --> 01:09:09,510 викл та on--, щоб представити це. 528 01:09:09,510 --> 01:09:10,930 І це все ще працює. 529 01:09:10,930 --> 01:09:12,190 Якщо я знову натиснути пробіл 530 01:09:12,190 --> 01:09:13,590 >> [SEAL ЗВУКИ] 531 01:09:13,590 --> 01:09:15,440 >> Програма все ще працює. 532 01:09:15,440 --> 01:09:18,400 Тому що цей інший сценарій що говорить, назавжди зробити наступне. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Якщо приглушений змінна дорівнює zero-- так що якщо ви не приглушений 535 01:09:24,770 --> 01:09:29,609 є logic--, якщо воно помилкове чи ні, а потім відтворювати звук, 536 01:09:29,609 --> 01:09:30,650 тому що ви не приглушений. 537 01:09:30,650 --> 01:09:33,358 Ви повинні грати звук, а потім думаю привіт привіт привіт протягом двох секунд 538 01:09:33,358 --> 01:09:35,790 а потім чекати, і зробити це знову і знову і знову. 539 01:09:35,790 --> 01:09:40,760 >> І ось таким чином ми маємо шлях для люди, метою яких для програм, щоб взаємодіяти. 540 01:09:40,760 --> 01:09:43,120 І вони не повинні бути, як датувати інші. 541 01:09:43,120 --> 01:09:46,280 Насправді, тикаючи around-- НЕ каламбур intended-- 542 01:09:46,280 --> 01:09:49,250 хтось витратив величезну кількість час в Інтернеті, що реалізує 543 01:09:49,250 --> 01:09:51,580 PokemonGo в порожньому місці. 544 01:09:51,580 --> 01:09:55,440 Він навіть geolocates вас в Кембридж чи Олстон тут. 545 01:09:55,440 --> 01:10:03,120 Так що якщо ви хочете, щоб побачити, що люди занадто може зробити, це дуже this-- фантазії меню. 546 01:10:03,120 --> 01:10:04,780 Натисніть тут. 547 01:10:04,780 --> 01:10:07,430 >> Це я з моїми клавішами зі стрілками в даний час. 548 01:10:07,430 --> 01:10:09,446 Я збираюся піти після цього. 549 01:10:09,446 --> 01:10:09,946 Натисніть. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 І тепер ви клацніть PokeBall. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Я маю на увазі, я думаю, що ти повинен натиснути PokeBall. 554 01:10:20,260 --> 01:10:20,760 Добре. 555 01:10:20,760 --> 01:10:22,680 Так що я зробив це. 556 01:10:22,680 --> 01:10:23,950 Я можу піти тут. 557 01:10:23,950 --> 01:10:27,790 І ця людина реалізований ще трохи PokeBalls над here-- трьох PokeBalls. 558 01:10:27,790 --> 01:10:29,950 >> Ми опублікуємо посилання на цю сторінку онлайн, так що ви можете грати. 559 01:10:29,950 --> 01:10:32,364 Але зверніть увагу: є тільки деякі основні будівельні блоки. 560 01:10:32,364 --> 01:10:33,780 Це виглядає набагато вправнішим, і це. 561 01:10:33,780 --> 01:10:35,905 Це вражає і багато іншого ніж ми, як правило, 562 01:10:35,905 --> 01:10:37,740 очікувати, звичайно, для завдання встановити нуль. 563 01:10:37,740 --> 01:10:40,809 Я поняття не маю, як довго ця людина провів в Інтернеті. 564 01:10:40,809 --> 01:10:41,850 Але це всього лише петля. 565 01:10:41,850 --> 01:10:43,180 Там є звук гри. 566 01:10:43,180 --> 01:10:44,850 Там якась петля прослуховує чи я я 567 01:10:44,850 --> 01:10:47,558 потрапивши стрілку вгору або вниз на стрілка або лівий і правий, 568 01:10:47,558 --> 01:10:49,834 а потім, якщо це так, він рухається це деяка кількість пікселів. 569 01:10:49,834 --> 01:10:51,750 І потім, якщо я натискаю на інший спрайт, є 570 01:10:51,750 --> 01:10:53,390 свого роду, якщо стан там. 571 01:10:53,390 --> 01:10:54,806 Так, це стає занадто інтенсивним. 572 01:10:54,806 --> 01:10:56,100 Ми збираємося зупинитися. 573 01:10:56,100 --> 01:10:57,750 Це все ті основні будівельні блоки. 574 01:10:57,750 --> 01:11:01,530 Там немає інших інших інгредієнтів ніж ті, які ми розглянули вже. 575 01:11:01,530 --> 01:11:04,670 >> І все ж тут, зробимо один останній набір прикладів 576 01:11:04,670 --> 01:11:06,960 що малює картину занадто про те, що ви можете зробити тут. 577 01:11:06,960 --> 01:11:10,481 Ось дуже проста програма, яка просто робить this-- кашель, кашель, кашель. 578 01:11:10,481 --> 01:11:12,480 І грунтуючись лише на те, що ми розглянули досі, 579 01:11:12,480 --> 01:11:14,570 де це очевидно можливість для поліпшення. 580 01:11:14,570 --> 01:11:15,570 Ця програма є правильним. 581 01:11:15,570 --> 01:11:17,980 Він кашляє три рази, який є те, що я мав намір. 582 01:11:17,980 --> 01:11:19,650 Але це погано реалізується. 583 01:11:19,650 --> 01:11:20,600 Це погано сплановані. 584 01:11:20,600 --> 01:11:22,000 Чому? 585 01:11:22,000 --> 01:11:22,500 Так. 586 01:11:22,500 --> 01:11:23,230 Це не петля. 587 01:11:23,230 --> 01:11:24,610 І це не так багато що це не петля, 588 01:11:24,610 --> 01:11:26,400 це те, що є багато надмірності. 589 01:11:26,400 --> 01:11:28,830 Там копіюється і вставити код, якщо можна так висловитися. 590 01:11:28,830 --> 01:11:31,830 І рішення, ймовірно, дійсно петля. 591 01:11:31,830 --> 01:11:34,350 Отже, дозвольте мені йти вперед і поліпшити це. 592 01:11:34,350 --> 01:11:36,250 І я збираюся тягнути їх сюди. 593 01:11:36,250 --> 01:11:39,986 Дозвольте мені йти вперед і отримати повторення блок, змінити це на три. 594 01:11:39,986 --> 01:11:41,860 Я збираюся викинути деякі з цих блоків. 595 01:11:41,860 --> 01:11:43,150 >> І ви побачите, що це досить інтуїтивно. 596 01:11:43,150 --> 01:11:45,691 Перетягнути і речі з'являються і зникають в кінці кінців. 597 01:11:45,691 --> 01:11:49,170 І я можу просто перетягнути це тут, і У мене тепер є більш чисту версію досі. 598 01:11:49,170 --> 01:11:50,730 Але ви знаєте, що? 599 01:11:50,730 --> 01:11:52,940 Там ця можливість тепер для abstraction-- 600 01:11:52,940 --> 01:11:56,350 щоб почати визначати новий словник що MIT не очікували. 601 01:11:56,350 --> 01:11:59,110 Там чекати і повторіть і на віки віків, і якщо, 602 01:11:59,110 --> 01:12:02,590 але що, якщо я хочу представити слово кашель як блок? 603 01:12:02,590 --> 01:12:06,230 Що робити, якщо я хочу шматок головоломки чия мета в житті кашель? 604 01:12:06,230 --> 01:12:10,720 >> Що ж, давайте подивимося на цю версію тут, який я зробив такий спосіб. 605 01:12:10,720 --> 01:12:13,579 Чарівно, я створив цей шматок головоломки тут, 606 01:12:13,579 --> 01:12:14,870 який Царапина дозволяє робити. 607 01:12:14,870 --> 01:12:16,787 І справді С і Python і JavaScript є 608 01:12:16,787 --> 01:12:18,370 збирається, щоб дозволити вам зробити це, а також. 609 01:12:18,370 --> 01:12:21,830 Ви можете створити свій власний частини, які ви називаєте те, що ви хочете. 610 01:12:21,830 --> 01:12:24,890 У цьому випадку, кашель відчуває як розумне визначення. 611 01:12:24,890 --> 01:12:27,880 А потім з цими частинами вниз тут ви можете визначити, що це означає. 612 01:12:27,880 --> 01:12:30,290 >> Я перетягнуті з ця палітра here-- більш 613 01:12:30,290 --> 01:12:33,500 blocks-- цей великий фіолетовий блок, де я надрукував від кашлю 614 01:12:33,500 --> 01:12:35,290 як ім'я мого нового паззл. 615 01:12:35,290 --> 01:12:39,920 І тоді я кажу кожен раз, коли користувач називає цей новий шматок головоломки кашель, 616 01:12:39,920 --> 01:12:41,770 зробити слово і чекати. 617 01:12:41,770 --> 01:12:46,160 І ось тут, в моєму повторному блоці, Я можу тільки кашель в три рази. 618 01:12:46,160 --> 01:12:49,972 >> І я б сказав, особливо якщо тепер ви приховати цю деталь. 619 01:12:49,972 --> 01:12:51,430 Хто дбає, як реалізується кашель? 620 01:12:51,430 --> 01:12:54,390 Все, що я дбаю про якість програміст, що я можу кашель. 621 01:12:54,390 --> 01:12:56,280 Мене не хвилює, як кажуть, реалізується. 622 01:12:56,280 --> 01:12:58,620 Я просто все одно, що кіт може сказати щось. 623 01:12:58,620 --> 01:13:02,720 Я можу абстрагуватися від деталей і що акцентувати увагу тільки на те, що на екрані тут. 624 01:13:02,720 --> 01:13:04,400 Але я можу зробити ще один крок вперед. 625 01:13:04,400 --> 01:13:08,070 >> Зверніть увагу на те, що тут, у мене є реалізований контур в три рази. 626 01:13:08,070 --> 01:13:11,560 Але що, якщо замість того, щоб я хапаю цю версію? 627 01:13:11,560 --> 01:13:14,640 А що, якщо замість того, щоб У цій версії тут, 628 01:13:14,640 --> 01:13:18,730 Я просто змінити свій шматок головоломки, щоб прийняти аргумент і вхід до себе? 629 01:13:18,730 --> 01:13:21,100 І що вхід може бути число, наприклад три. 630 01:13:21,100 --> 01:13:24,580 Так що тепер, якщо я пишу програму і я хочу, щоб кішка кашляти, 631 01:13:24,580 --> 01:13:28,270 Я можу насправді сказати головоломки шматочках, скільки разів кашель, 632 01:13:28,270 --> 01:13:31,990 тому що на дні тут, любитель версія цих користувальницьких головоломки 633 01:13:31,990 --> 01:13:34,500 дозволяє мені вказати, що кашель фактично приймає 634 01:13:34,500 --> 01:13:36,951 input-- приймає аргумент, як це. 635 01:13:36,951 --> 01:13:37,700 І ви знаєте, що? 636 01:13:37,700 --> 01:13:38,890 Може бути, я розумію, зачекайте хвилину. 637 01:13:38,890 --> 01:13:40,680 Кашель є same-- це принципово 638 01:13:40,680 --> 01:13:42,120 та ж ідея, як чхання. 639 01:13:42,120 --> 01:13:44,040 Це просто різні слово на екрані. 640 01:13:44,040 --> 01:13:46,550 Я можу абстрагуватися від далі і реалізувати 641 01:13:46,550 --> 01:13:48,750 ця остання версія кашель, який на перший погляд 642 01:13:48,750 --> 01:13:50,660 шлях більш складний вид. 643 01:13:50,660 --> 01:13:52,140 Але зверніть увагу на те, що я зробив. 644 01:13:52,140 --> 01:13:55,930 У мене зараз generalized-- узагальненого really-- цей шматок головоломки 645 01:13:55,930 --> 01:13:59,900 щоб назвати слово сказати п раз. 646 01:13:59,900 --> 01:14:04,410 >> І тепер у мене є дві нові частини головоломки тут визначають кашель п раз. 647 01:14:04,410 --> 01:14:06,790 А що функція кашлю робити? 648 01:14:06,790 --> 01:14:08,420 Що робить моє замовлення шматок головоломки робити? 649 01:14:08,420 --> 01:14:11,996 Це просто викликає блок скажімо, передаючи слова я хочу сказати, 650 01:14:11,996 --> 01:14:13,870 проходячи в кількості раз я хочу сказати. 651 01:14:13,870 --> 01:14:18,210 Тому що тепер я можу реалізувати чханні, просто кажучи Achoo, 652 01:14:18,210 --> 01:14:20,320 У цьому випадку, кілька разів. 653 01:14:20,320 --> 01:14:22,360 >> І тому я відводами і укладанні. 654 01:14:22,360 --> 01:14:25,690 І знову ж таки, ключ тут не як я реалізував його, але той факт, 655 01:14:25,690 --> 01:14:28,070 що якщо я просто в буквальному сенсі перемістити їх з екрану, 656 01:14:28,070 --> 01:14:31,280 Подивіться, як просто, якщо не красива моя програма зараз виглядає. 657 01:14:31,280 --> 01:14:33,930 Тому що це те, що він каже, я відведеної 658 01:14:33,930 --> 01:14:37,640 далеко, що знаходиться всередині цього чорного ящика. це трапляється фіолетову коробку тут, 659 01:14:37,640 --> 01:14:41,430 але я перешкоджали далеко, що всередині тому що я не хвилює, як це працює. 660 01:14:41,430 --> 01:14:43,650 Я просто все одно тепер, що це працює. 661 01:14:43,650 --> 01:14:46,375 >> І справді, в завданню встановити нуль, це точно 662 01:14:46,375 --> 01:14:49,250 вид нашарування ідей, які ви будете мають можливість досліджувати. 663 01:14:49,250 --> 01:14:53,510 Це саме можливість застосовувати методи вирішення проблем, 664 01:14:53,510 --> 01:14:55,550 до того, що, ймовірно, незнайомому середовищі. 665 01:14:55,550 --> 01:14:57,890 І чи є ви не запрограмований перед тим або запрограмоване перед тим, 666 01:14:57,890 --> 01:14:59,500 ви побачите, що є дещо 667 01:14:59,500 --> 01:15:00,874 в цьому середовищі для всіх. 668 01:15:00,874 --> 01:15:02,770 І з проблемою встановити один протягом тижня, 669 01:15:02,770 --> 01:15:06,630 ми будемо переходили до зосередження на більш високому рівні мови під назвою 670 01:15:06,630 --> 01:15:09,290 C-- або, скоріше, нижчу рівень мови називається 671 01:15:09,290 --> 01:15:11,347 C--, що ще більш потужний, навіть якщо це 672 01:15:11,347 --> 01:15:12,930 трохи більше загадковим на перший погляд. 673 01:15:12,930 --> 01:15:16,740 >> І ви зрозумієте, що на сьогоднішній TL: DR, що ця проблема встановити має більш короткий 674 01:15:16,740 --> 01:15:19,880 вікно часу, ніж майбутні, просто тому що ви повинні знайти його досить 675 01:15:19,880 --> 01:15:20,420 доступною. 676 01:15:20,420 --> 01:15:22,211 І не хвилюйтеся, якщо Ви додаєте клас пізно. 677 01:15:22,211 --> 01:15:23,920 Ми будемо вирішувати, що до тих пір. 678 01:15:23,920 --> 01:15:28,480 І перш ніж ми закрию для торта, давайте закінчити всього лише дві хвилини погляду 679 01:15:28,480 --> 01:15:30,500 на те, що чекає вас тут в CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [МУЗИКА] 682 01:17:20,803 --> 01:17:21,302 Добре. 683 01:17:21,302 --> 01:17:22,690 Ось це для CS50. 684 01:17:22,690 --> 01:17:23,650 Ми побачимо вас найближчим часом. 685 01:17:23,650 --> 01:17:25,526 Торт тепер служив. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [МУЗИКА] 688 01:18:14,267 --> 01:18:16,350 СПІКЕР 17: Ви чули з творчої відпустки, начальник? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 СПІКЕР 18: Може бути, є більше під капотом. 691 01:18:31,920 --> 01:18:38,279