1 00:00:00,000 --> 00:00:10,980 >> [За възпроизвеждане на музика] 2 00:00:10,980 --> 00:00:13,260 >> -Добре! 3 00:00:13,260 --> 00:00:16,400 >> -Това Е CS50. 4 00:00:16,400 --> 00:00:18,220 >> -Това Е CS50. 5 00:00:18,220 --> 00:00:19,324 >> -Това Е CS50. 6 00:00:19,324 --> 00:00:20,615 [MUSIC - IGGY AZALEA "FANCY"] 7 00:00:20,615 --> 00:00:29,925 8 00:00:29,925 --> 00:00:33,570 >> -Моята Любим спомен от CS50 беше, когато отидох да Пъзел Day. 9 00:00:33,570 --> 00:00:35,797 >> -Probably Само време работено върху проблемните комплекти 10 00:00:35,797 --> 00:00:38,630 с моите приятели и хора, които Уолд евентуално да се превърне моите blockmates. 11 00:00:38,630 --> 00:00:40,421 >> -Моята Най-добрия спомен от CS50 е Hackathon. 12 00:00:40,421 --> 00:00:41,630 -Таблицата CS50 Hackathon. 13 00:00:41,630 --> 00:00:42,130 >> -Hackathon. 14 00:00:42,130 --> 00:00:42,800 >> -Hackathon. 15 00:00:42,800 --> 00:00:43,300 -Hackathon. 16 00:00:43,300 --> 00:00:43,883 -Таблицата Hackathon 17 00:00:43,883 --> 00:00:45,027 -Rob Боудън. 18 00:00:45,027 --> 00:00:46,110 Просто всичко за него. 19 00:00:46,110 --> 00:00:47,401 >> [MUSIC - IGGY AZALEA "FANCY"] 20 00:00:47,401 --> 00:00:56,790 21 00:00:56,790 --> 00:01:02,512 >> -Моята Любимата памет е, когато бях на етап и съм играл с престижната роля 22 00:01:02,512 --> 00:01:04,220 на възел [? в свързаните?] [? List. ?] 23 00:01:04,220 --> 00:01:08,470 >> Кога ние всички се безплатно Dropbox пространство и Дейвид беше като, изглежда по местата си. 24 00:01:08,470 --> 00:01:10,520 И това е като място за всички! 25 00:01:10,520 --> 00:01:11,811 >> [MUSIC - IGGY AZALEA "FANCY"] 26 00:01:11,811 --> 00:01:20,940 27 00:01:20,940 --> 00:01:22,830 >> -Моята Съвети за всеки входящо студент би 28 00:01:22,830 --> 00:01:26,170 да наистина да работят по P-комплекти с приятели. 29 00:01:26,170 --> 00:01:27,960 >> -Office Часа е много твой приятел. 30 00:01:27,960 --> 00:01:30,870 >> -Накарай Максимума от вашия опит и отговарят на най-много хора, колкото можете. 31 00:01:30,870 --> 00:01:32,390 >> Не бъди страхувайте да помолите за помощ. 32 00:01:32,390 --> 00:01:33,890 Началната р-групи в началото на седмица. 33 00:01:33,890 --> 00:01:36,723 -Мисля Най-голямото нещо е да да се възползват от всички ресурси 34 00:01:36,723 --> 00:01:37,950 че CS50 има. 35 00:01:37,950 --> 00:01:39,960 >> Върви до офис часа по-рано през седмицата. 36 00:01:39,960 --> 00:01:41,430 >> Определено гледате шорти. 37 00:01:41,430 --> 00:01:42,989 >> -Не Отлагаме за вашите P-комплекти. 38 00:01:42,989 --> 00:01:45,780 -Осъществяване, Че сте намерите голяма група на хората да работят по P-комплекти с. 39 00:01:45,780 --> 00:01:48,530 Можете да имате много забавно и си свършат работата заедно. 40 00:01:48,530 --> 00:01:50,370 >> Не бъди страх да се насилвате. 41 00:01:50,370 --> 00:01:52,080 Отиди за хакерската издание понякога. 42 00:01:52,080 --> 00:01:55,410 >> -Write Неща на хартия, преди да ли сте някога се докоснат компютъра. 43 00:01:55,410 --> 00:01:58,380 >> -CS50 Е наистина чудесно да осигуряване на начини да получите помощ. 44 00:01:58,380 --> 00:02:01,134 >> -Моята Едно парче съвет е сън. 45 00:02:01,134 --> 00:02:02,050 Някой каза, че? 46 00:02:02,050 --> 00:02:04,100 Sleep, със сигурност. 47 00:02:04,100 --> 00:02:08,919 Това е лесно да не правим, но ти трябва да го направиш, мисля. 48 00:02:08,919 --> 00:02:12,982 >> -I Бих казал, наистина се психически подготвени защото ти започваш да го обичам. 49 00:02:12,982 --> 00:02:14,273 [MUSIC - IGGY AZALEA "FANCY"] 50 00:02:14,273 --> 00:02:17,750 51 00:02:17,750 --> 00:02:18,940 >> -Това Е CS50. 52 00:02:18,940 --> 00:02:22,090 53 00:02:22,090 --> 00:02:23,066 >> -Това Е CS50. 54 00:02:23,066 --> 00:02:26,400 55 00:02:26,400 --> 00:02:26,989 >> -Това Е CS50. 56 00:02:26,989 --> 00:02:28,280 [MUSIC - IGGY AZALEA "FANCY"] 57 00:02:28,280 --> 00:02:31,290 58 00:02:31,290 --> 00:02:31,964 >> -Това Е CS50. 59 00:02:31,964 --> 00:02:36,020 60 00:02:36,020 --> 00:02:42,270 >> [APPLAUSE] 61 00:02:42,270 --> 00:02:46,040 >> DAVID J. Malan: Значи това е CS50 и това е края на седмица 0. 62 00:02:46,040 --> 00:02:48,770 И това е само част на персонала CS50 е кой 63 00:02:48,770 --> 00:02:51,100 Очакваме не само в раздели и работно време, но, 64 00:02:51,100 --> 00:02:54,390 Също така, тази събота и неделя при CS50 Puzzle Day. 65 00:02:54,390 --> 00:02:56,410 Което, отново, не е всичко за програмиране. 66 00:02:56,410 --> 00:02:59,710 В действителност, това се очаква, че няма да се налага да програмирате нещо, 67 00:02:59,710 --> 00:03:03,780 а по-скоро решаване на проблеми, използвайки съобразителност и приятели заедно с вас. 68 00:03:03,780 --> 00:03:06,400 >> Ние ще се присъединят и някои от нашите приятели в Facebook-- 69 00:03:06,400 --> 00:03:08,980 ако се регистрирате тук-- които за последните няколко години, 70 00:03:08,980 --> 00:03:11,450 действително са били писане тези предизвикателства с нас. 71 00:03:11,450 --> 00:03:14,822 И така, те ще бъдат тези, които в крайна сметка работи Puzzle Day. 72 00:03:14,822 --> 00:03:17,530 И така, ще бъде оспорено с точно вида на предметите 73 00:03:17,530 --> 00:03:20,520 и проблеми, които други хора по време Facebook искал да си помисля. 74 00:03:20,520 --> 00:03:21,860 Така че това е утре. 75 00:03:21,860 --> 00:03:25,980 Регистрирайте се в cs50.harvard.edu/register. 76 00:03:25,980 --> 00:03:28,120 >> Сега няколко думи за няколко на персонала, по-специално. 77 00:03:28,120 --> 00:03:30,090 Това тук е Ансел Duff, който всъщност е една 78 00:03:30,090 --> 00:03:33,860 от съавторите на тези двоичен крушки, които видяхме в сряда, 79 00:03:33,860 --> 00:03:36,710 в допълнение към собствената Дан Брадли CS50 е. 80 00:03:36,710 --> 00:03:40,094 Ансел Дъф е също бивш първокурсник advisee мой преди 3 години 81 00:03:40,094 --> 00:03:41,760 и той всъщност дори построил този аналой. 82 00:03:41,760 --> 00:03:45,330 Той си отиде, за да се направи инженерните науки и др. 83 00:03:45,330 --> 00:03:49,279 Сега, снимката му тук е всъщност Ансел преди 3 години в CS50 Hackathon 84 00:03:49,279 --> 00:03:51,820 когато той назаем един от нашите балони, тя остана до лаптопа си, 85 00:03:51,820 --> 00:03:55,240 , а за следващите 12 някои странни часа, фокусирани върху крайната си проект, 86 00:03:55,240 --> 00:03:59,150 приемащи паузи само за да отворите торби с бонбони в Hackathon. 87 00:03:59,150 --> 00:04:02,210 >> Но той продължи по-скоро да прекарат това лято с нас, 88 00:04:02,210 --> 00:04:05,270 тъй като CS50 за своя персонал, и предприятието студенти този семестър, 89 00:04:05,270 --> 00:04:06,770 има своя собствена 3D принтер. 90 00:04:06,770 --> 00:04:10,180 И по-накратко на 3D принтери е устройство, което изглежда съвсем като този. 91 00:04:10,180 --> 00:04:15,700 Можете да го изпълни с пластмасова макара че се претопява от устройството 92 00:04:15,700 --> 00:04:18,940 и да изгради неща буквално от нищото. 93 00:04:18,940 --> 00:04:22,660 Много прилича на мастилено-струен принтер, вие започвате изплю малки точици от пластмаса 94 00:04:22,660 --> 00:04:24,990 че да образуват заедно образуват цели обекти. 95 00:04:24,990 --> 00:04:28,430 И така Ансел например, по-рано това лято, има iPhone 5 96 00:04:28,430 --> 00:04:30,722 и реши, че наистина исках да го подкрепят на бюрото му. 97 00:04:30,722 --> 00:04:32,638 Но той не искаше да изляза и да купя нещо 98 00:04:32,638 --> 00:04:36,030 от магазина Apple или други подобни, така че той Седнах и започнах да рисувам нещо. 99 00:04:36,030 --> 00:04:38,280 Той направи няколко измервания за това как дебел 100 00:04:38,280 --> 00:04:41,270 и как неговият широк iPhone е, той извади тази картинка тук, 101 00:04:41,270 --> 00:04:43,870 той реши, че иска да имат наклон 75 градуса 102 00:04:43,870 --> 00:04:46,150 тъй като тя се взираше в го на бюрото си там. 103 00:04:46,150 --> 00:04:50,440 След това той се обърна това, като се използват софтуер, в 3D CAD модел 104 00:04:50,440 --> 00:04:52,400 че изглеждаше малко нещо като това. 105 00:04:52,400 --> 00:04:55,940 И след това той продължи, в крайна сметка, наистина да го създадете. 106 00:04:55,940 --> 00:05:00,250 Така че в действителност, ако някой от вас тук, може би в един ред, че мога да хвърля, има 107 00:05:00,250 --> 00:05:06,780 an-- там имаме хора с iPhone 5, и тук имаме още два. 108 00:05:06,780 --> 00:05:10,650 109 00:05:10,650 --> 00:05:17,037 >> Сега, за да не остане по-назад, CS50 собственото Cheng Gong изложени също така това лято 110 00:05:17,037 --> 00:05:19,870 да се изгради доста неща и, В действителност, поради причини, които са все още 111 00:05:19,870 --> 00:05:23,970 неясна, е бавно отпечатване на армия от слонове 112 00:05:23,970 --> 00:05:27,250 с представлява позициите оръжие и стволове. 113 00:05:27,250 --> 00:05:32,515 Няколко от които са всъщност тук, ако Сега някой ще харесвам-- слон. 114 00:05:32,515 --> 00:05:35,650 115 00:05:35,650 --> 00:05:40,522 Добре. Но това, което също е Cheng за нас е, че много любезно създаде фотоапарат 116 00:05:40,522 --> 00:05:42,230 защото това слон, вярвате или не, 117 00:05:42,230 --> 00:05:44,690 Отнема малко два и половин час, за да отпечатате. 118 00:05:44,690 --> 00:05:47,840 Дори стойката iPhone взе час и половина, за да отпечатате. 119 00:05:47,840 --> 00:05:51,490 И какво Cheng отиде напред и да направи е създадена хубава камера в предната част 120 00:05:51,490 --> 00:05:55,580 на този 3D принтер, заснет за един час и половина като дизайн Ансел, отпечатана. 121 00:05:55,580 --> 00:05:58,090 Ние обкова някои секси музика към него, за 122 00:05:58,090 --> 00:06:00,570 да ти дам това, за да потърсите как работи 3D печат. 123 00:06:00,570 --> 00:06:02,494 И въпреки че това е действително в пластмаса, 124 00:06:02,494 --> 00:06:05,160 осъзнават, че ако това е област, от интерес за вас академично, 125 00:06:05,160 --> 00:06:07,120 има хора, сред ги Дженифър Люис тук 126 00:06:07,120 --> 00:06:09,036 в школата на Engineering, които всъщност са 127 00:06:09,036 --> 00:06:10,920 работи върху 3D печат на пластмасови предмети. 128 00:06:10,920 --> 00:06:14,150 Но дори и все повече биологични материали за решаване 129 00:06:14,150 --> 00:06:16,530 физиологични проблеми за хората. 130 00:06:16,530 --> 00:06:19,944 Но тук е малко нещо от CS50. 131 00:06:19,944 --> 00:06:31,625 >> [LOUD МЕХАНИЧНА шумове] 132 00:06:31,625 --> 00:06:34,250 DAVID J. Malan: Това не звучи нещо подобно, че в действителност, 133 00:06:34,250 --> 00:06:37,240 но това е много по-хладна, за да го гледате при тази скорост, и с този звук. 134 00:06:37,240 --> 00:06:40,000 >> Сега, в сряда, как сме първи стигна до тук? 135 00:06:40,000 --> 00:06:43,345 Ние започнахме да говорим за компютър науката и ние попита какво е това. 136 00:06:43,345 --> 00:06:46,470 И това е за няколко неща, и Има толкова много различни посоки 137 00:06:46,470 --> 00:06:48,477 , в която можете да се отправите след курс като CS50. 138 00:06:48,477 --> 00:06:50,810 В действителност, ако вдигна едно на тези неофициални водачи 139 00:06:50,810 --> 00:06:54,080 до CS отвън, книжката, че сме предоставили, независимо дали сте 140 00:06:54,080 --> 00:06:57,150 мисли за отчитане само CS50, или може би прави вторична, 141 00:06:57,150 --> 00:06:59,557 или може би дори и концентриране в CS, да прелистите това. 142 00:06:59,557 --> 00:07:01,390 И вие ще видите диаграма към края, че 143 00:07:01,390 --> 00:07:04,950 показва много различни посоки в CS, че можете да отидете на разстояние вътре. 144 00:07:04,950 --> 00:07:09,030 >> Но за днес, ние ще се съсредоточи отново върху наистина един от основните възгледи, 145 00:07:09,030 --> 00:07:11,500 може би, когато имате входове на проблемите, 146 00:07:11,500 --> 00:07:13,430 имате изходи от проблеми, а вие имате 147 00:07:13,430 --> 00:07:17,420 алгоритми, с които да се създаде тези изходи от тези входове. 148 00:07:17,420 --> 00:07:20,330 И един такъв пример, е на Разбира се, този телефон книга тук. 149 00:07:20,330 --> 00:07:24,180 И ние се използва като пример, за да отидете чрез алгоритъм, който е бил правилен. 150 00:07:24,180 --> 00:07:26,490 И после още един беше правилно, но малко по-бързо. 151 00:07:26,490 --> 00:07:29,448 И после още един, че е малко по-драматично, но фундаментално 152 00:07:29,448 --> 00:07:30,000 по-бързо. 153 00:07:30,000 --> 00:07:32,720 >> Точно така, този телефон книга ние твърди имала около 1000 страници. 154 00:07:32,720 --> 00:07:36,200 И колко пъти имам скъсате телефонен указател на половина 155 00:07:36,200 --> 00:07:39,930 да се намери някой като Майк Смит, максимално, в 1000 страници на книгата? 156 00:07:39,930 --> 00:07:41,040 Така че, 10 или да се даде. 157 00:07:41,040 --> 00:07:45,050 И така, след като се отскубна от това нещо в половината, или просто, по-зряло, 158 00:07:45,050 --> 00:07:48,490 разделен на половина, това е само 10 страници от 1000. 159 00:07:48,490 --> 00:07:51,470 И ако се екстраполира, малко нереалистично за телефонния указател, 160 00:07:51,470 --> 00:07:56,540 но ако този телефонен указател имаше около 4 милиард страници в него, така че напълно 161 00:07:56,540 --> 00:07:59,680 тромава физически, колко пъти да ви разделят с 4 милиарда 162 00:07:59,680 --> 00:08:01,460 страница телефонен указател на половина? 163 00:08:01,460 --> 00:08:03,035 Така че това е всъщност 32, или да се даде. 164 00:08:03,035 --> 00:08:07,090 И така 32 пъти само, извън на 4 милиарда страници, може да 165 00:08:07,090 --> 00:08:08,700 те намеря някой като Майк Смит. 166 00:08:08,700 --> 00:08:09,740 И това е ефективност. 167 00:08:09,740 --> 00:08:12,130 Това е добър алгоритъм, смея. 168 00:08:12,130 --> 00:08:14,480 >> Но след това се преместихме от това да се опита да го официализира. 169 00:08:14,480 --> 00:08:16,100 И аз предложих това pseudocode код. 170 00:08:16,100 --> 00:08:17,800 Pseudocode код не е нищо официално. 171 00:08:17,800 --> 00:08:18,880 Това не е нещо, което да запомните. 172 00:08:18,880 --> 00:08:21,588 Това е просто нещо, което да изрази доста интуитивно използването на английски език, 173 00:08:21,588 --> 00:08:24,990 или всеки език, наистина, че предава идеите си накратко. 174 00:08:24,990 --> 00:08:26,990 Но това, което е ключово за pseudocode код е, че 175 00:08:26,990 --> 00:08:30,331 се опитват да предвидят всички от възможни случаи, които биха могли да се случат. 176 00:08:30,331 --> 00:08:33,080 И наистина, в това pseudocode код, там наистина са три случая 177 00:08:33,080 --> 00:08:34,700 всеки път, когато се разделя телефонния указател. 178 00:08:34,700 --> 00:08:36,006 Майк може да бъде в ляво. 179 00:08:36,006 --> 00:08:37,130 Майк може да бъде в дясно. 180 00:08:37,130 --> 00:08:39,240 Или той може да бъде точно на страницата съм. 181 00:08:39,240 --> 00:08:42,110 Или четвъртия ъгъл случай, така да се каже. 182 00:08:42,110 --> 00:08:46,470 Лошият сценарий може да бъде един which-- какво се случва? 183 00:08:46,470 --> 00:08:48,860 Майк просто не е в телефонния указател на всички. 184 00:08:48,860 --> 00:08:52,720 >> И когато програми crash-- когато Mac и PC софтуер, който вие се движат 185 00:08:52,720 --> 00:08:56,400 от вашите компютри понякога виси или се затваря неочаквано, 186 00:08:56,400 --> 00:08:59,770 че като цяло означава, че някои програмист, някои човешки като теб скоро, 187 00:08:59,770 --> 00:09:01,650 просто прецаках и направи някаква грешка. 188 00:09:01,650 --> 00:09:05,207 Може би не е очаквала, че може би има не е Mike Smith в телефонния указател. 189 00:09:05,207 --> 00:09:08,040 И ако всъщност не пиша код, за да се справят с такива ситуации, че 190 00:09:08,040 --> 00:09:09,890 непредказуема неща могат да се случат. 191 00:09:09,890 --> 00:09:10,960 Вашето устройство може да се замразява. 192 00:09:10,960 --> 00:09:11,730 Тя може да се рестартира. 193 00:09:11,730 --> 00:09:12,889 Програмата може да се откажат. 194 00:09:12,889 --> 00:09:14,722 И така, всички от тях глупости, че може 195 00:09:14,722 --> 00:09:18,030 са срещнали в действителната живот само с помощта на компютри, 196 00:09:18,030 --> 00:09:20,710 все повече ще бъде само обясни далеч от тази интуиция 197 00:09:20,710 --> 00:09:24,920 и това разбиране за това какво е всъщност се случва под капака. 198 00:09:24,920 --> 00:09:27,329 >> Сега нека да се опитаме да погледнем в по-общ проблем. 199 00:09:27,329 --> 00:09:29,120 Вместо да обслужване на място, като 200 00:09:29,120 --> 00:09:32,230 това, което би било много бавно да се направи една, две, три, четири. 201 00:09:32,230 --> 00:09:34,070 Или може би две, четири, шест, осем. 202 00:09:34,070 --> 00:09:36,080 Нека се съсредоточим върху как бихме могли да се формализира 203 00:09:36,080 --> 00:09:39,400 алгоритъм на процеса от които можем да вземем обслужване. 204 00:09:39,400 --> 00:09:42,290 И по пътя, нека да започнем да се прилагат някои номенклатура 205 00:09:42,290 --> 00:09:47,130 че ние ще използваме днес, когато ние действително започнете програмирането на езика. 206 00:09:47,130 --> 00:09:50,910 Така че сега ти я даде, четири минути видео че ние поставяме заедно с нашите приятели 207 00:09:50,910 --> 00:09:52,820 от TED, организацията. 208 00:09:52,820 --> 00:09:56,380 Чрез която се доставя по сценарий и те докараха аниматори да понесе, 209 00:09:56,380 --> 00:10:00,970 и всъщност създаде 2D анимация на това, което алгоритъмът е. 210 00:10:00,970 --> 00:10:02,776 Ако можехме да намаляване на осветлението. 211 00:10:02,776 --> 00:10:06,664 >> [За възпроизвеждане на музика] 212 00:10:06,664 --> 00:10:17,890 213 00:10:17,890 --> 00:10:19,140 Разказвач: Какво е алгоритъм? 214 00:10:19,140 --> 00:10:21,620 В компютърните науки, алгоритъм е набор 215 00:10:21,620 --> 00:10:24,840 от инструкции, решаване някакъв проблем стъпка по стъпка. 216 00:10:24,840 --> 00:10:27,310 Обикновено, алгоритми изпълнен от компютри, 217 00:10:27,310 --> 00:10:29,365 но ние, хората, имаме алгоритми, както добре. 218 00:10:29,365 --> 00:10:31,240 Например, как ще отида за броене 219 00:10:31,240 --> 00:10:32,990 броят на хората в една стая? 220 00:10:32,990 --> 00:10:36,840 Е, ако сте като мен, вие вероятно ще точка на всяко лице, една по една 221 00:10:36,840 --> 00:10:38,370 и брои от нула. 222 00:10:38,370 --> 00:10:41,200 Един, два, три, четири, и така нататък. 223 00:10:41,200 --> 00:10:42,410 Е, това е един алгоритъм. 224 00:10:42,410 --> 00:10:45,820 Всъщност, нека се опитаме да го изразим малко по-официално в pseudocode код. 225 00:10:45,820 --> 00:10:48,940 English-подобен синтаксис, който прилича на език за програмиране. 226 00:10:48,940 --> 00:10:50,880 >> Нека N равен 0. 227 00:10:50,880 --> 00:10:55,210 За всеки човек в стаята, определен п равно на п плюс 1. 228 00:10:55,210 --> 00:10:56,790 Как да тълкуваме pseudocode? 229 00:10:56,790 --> 00:10:59,490 Ами първа линия декларира, така да се каже, с променлива 230 00:10:59,490 --> 00:11:02,880 нарича N и инициализира стойността си до 0 Това просто 231 00:11:02,880 --> 00:11:05,080 означава, че в началото на нашия алгоритъм, 232 00:11:05,080 --> 00:11:07,910 нещо, с което ние сме броене има стойност от 0. 233 00:11:07,910 --> 00:11:10,860 В крайна сметка, преди да започнем да броим ние все още не са преброени нищо. 234 00:11:10,860 --> 00:11:13,580 Обаждане на тази променлива п е просто конвенция. 235 00:11:13,580 --> 00:11:15,130 Бих могъл да го нарече най-нищо. 236 00:11:15,130 --> 00:11:17,460 Сега втора линия demarks началото на цикъл, 237 00:11:17,460 --> 00:11:20,550 последователност от стъпки, които ще Повтарям някои брой пъти. 238 00:11:20,550 --> 00:11:24,130 Така че в нашия пример, стъпката сме поемане се брои хора в стаята. 239 00:11:24,130 --> 00:11:26,260 Beneath втора линия е линията три, който описва 240 00:11:26,260 --> 00:11:28,400 как точно ще отидем за преброяване. 241 00:11:28,400 --> 00:11:31,720 Вдлъбнатината предполага, че това е трета линия, която ще се повтаря. 242 00:11:31,720 --> 00:11:35,190 Така е и с кода на pseudocode е поговорка е, че след като се започне от 0 243 00:11:35,190 --> 00:11:38,940 за всяко лице в стая ние ще се увеличи с 1 п 244 00:11:38,940 --> 00:11:41,310 Сега е този алгоритъм е правилно? 245 00:11:41,310 --> 00:11:42,820 Ами нека взрив върху него малко. 246 00:11:42,820 --> 00:11:45,520 >> Има ли работа, ако има двама души в стаята? 247 00:11:45,520 --> 00:11:46,420 Нека да видим. 248 00:11:46,420 --> 00:11:48,500 В съответствие едно ние инициализира N до 0. 249 00:11:48,500 --> 00:11:51,910 За всеки от тези двама души, След това ние увеличаваме п от 1. 250 00:11:51,910 --> 00:11:55,570 Така че в първия пътуване през контур, ние актуализираме п от 0 до 1. 251 00:11:55,570 --> 00:11:59,320 На втория пътуването през тази една и съща линия, ние актуализираме п от 1 до 2. 252 00:11:59,320 --> 00:12:02,850 И така, от този алгоритъм е край, п е 2, който 253 00:12:02,850 --> 00:12:04,950 наистина отговаря на броя на хората в стаята. 254 00:12:04,950 --> 00:12:06,040 Дотук добре. 255 00:12:06,040 --> 00:12:07,870 >> Какво ще кажете за случай на корнер обаче? 256 00:12:07,870 --> 00:12:11,090 Да предположим, че има 0 души в room-- освен мен, който е 257 00:12:11,090 --> 00:12:12,420 прави броене. 258 00:12:12,420 --> 00:12:15,380 В съответствие едно, ние отново се инициализира N до 0. 259 00:12:15,380 --> 00:12:17,810 Този път обаче, линия три не изпълнява изобщо 260 00:12:17,810 --> 00:12:19,610 тъй като там не е човек в стаята. 261 00:12:19,610 --> 00:12:23,540 И така п остава 0, което наистина отговаря на броят на хората в стаята. 262 00:12:23,540 --> 00:12:24,670 Доста проста, нали? 263 00:12:24,670 --> 00:12:27,880 Но броим хората един по един е доста неефективно, прекалено, нали? 264 00:12:27,880 --> 00:12:29,160 Със сигурност можем да направим по-добре. 265 00:12:29,160 --> 00:12:33,440 Защо не разчита на двама души в даден момент, вместо да броим едно, две, три, 266 00:12:33,440 --> 00:12:36,470 четири, пет, шест, седем, осем, и така нататък. 267 00:12:36,470 --> 00:12:39,106 Защо не се брои два, четири, шест, осем, и така нататък? 268 00:12:39,106 --> 00:12:40,670 Той дори звучи по-бързо. 269 00:12:40,670 --> 00:12:41,940 И това със сигурност е така. 270 00:12:41,940 --> 00:12:44,490 >> Нека изразим тази оптимизация в pseudocode код. 271 00:12:44,490 --> 00:12:46,040 Нека N равен 0. 272 00:12:46,040 --> 00:12:50,760 За всяка двойка на хора в стая, задайте п равно на N плюс 2. 273 00:12:50,760 --> 00:12:52,360 Доста проста промяна, нали? 274 00:12:52,360 --> 00:12:56,560 Вместо да се разчита хора един по един, ние, вместо да ги брои по две наведнъж. 275 00:12:56,560 --> 00:12:59,240 Този алгоритъм е, по този начин, два пъти по-бързо от предишната. 276 00:12:59,240 --> 00:13:00,530 Но това е правилно? 277 00:13:00,530 --> 00:13:01,160 Нека да видим. 278 00:13:01,160 --> 00:13:03,580 Има ли работа, ако има двама души в стаята? 279 00:13:03,580 --> 00:13:05,800 В съответствие едно, ние инициализира N до 0. 280 00:13:05,800 --> 00:13:09,160 За един чифт на хора, След това ние увеличаваме N от 2. 281 00:13:09,160 --> 00:13:11,910 И така от този алгоритъм е край п е 2, който 282 00:13:11,910 --> 00:13:13,910 наистина отговаря на броя на хората в стаята. 283 00:13:13,910 --> 00:13:16,610 >> Да предположим, че има следващия нулеви хора в стаята. 284 00:13:16,610 --> 00:13:19,080 В съответствие едно ние инициализира N до 0. 285 00:13:19,080 --> 00:13:21,260 Както и преди, трета линия не всичко се изпълни 286 00:13:21,260 --> 00:13:25,270 тъй като там не са всички двойки от хора в стаята, така и п остава 0. 287 00:13:25,270 --> 00:13:27,840 Което наистина съвпада с брой хора в помещението. 288 00:13:27,840 --> 00:13:30,520 Но какво, ако има трима души в стая? 289 00:13:30,520 --> 00:13:32,380 Как работи този алгоритъм тарифа? 290 00:13:32,380 --> 00:13:35,710 Нека да видим, в съответствие едно, ние инициализира N до 0. 291 00:13:35,710 --> 00:13:39,140 За чифт от тези хора, След това ние увеличаваме N от 2. 292 00:13:39,140 --> 00:13:40,050 Но след това какво? 293 00:13:40,050 --> 00:13:42,340 Там не е един пълен чифт от хората в стаята, 294 00:13:42,340 --> 00:13:44,430 така че втора линия вече не се прилага. 295 00:13:44,430 --> 00:13:48,790 И така до края на този алгоритъм е, п е все още 2, който не е правилна. 296 00:13:48,790 --> 00:13:52,070 Всъщност този алгоритъм каза да е бъгав, защото има грешка. 297 00:13:52,070 --> 00:13:54,070 >> Нека обезщетение с някои нов код pseudocode. 298 00:13:54,070 --> 00:13:56,110 Нека N равен 0. 299 00:13:56,110 --> 00:14:00,790 За всяка двойка на хора в стая, задайте N равно на N плюс 2. 300 00:14:00,790 --> 00:14:05,410 Ако един човек остава нечифтосаната, определен N равна п плюс 1. 301 00:14:05,410 --> 00:14:09,340 За решаването на този конкретен проблем, ние сме въведени в съответствие четири условие, 302 00:14:09,340 --> 00:14:12,120 иначе известни като браншови, че тя изпълнява само 303 00:14:12,120 --> 00:14:14,890 ако има един човек, който не може да сдвоите с друго. 304 00:14:14,890 --> 00:14:17,140 И така, сега, дали има един, или три, 305 00:14:17,140 --> 00:14:21,550 или която и да е нечетен брой на хората в помещението, този алгоритъм сега ще ги брои. 306 00:14:21,550 --> 00:14:22,810 Можем ли да направим още по-добре? 307 00:14:22,810 --> 00:14:25,890 Е, ние може да разчита в тройки, или четири крака, или дори петици и десетки, 308 00:14:25,890 --> 00:14:29,390 но освен това, че ще се получи малко по-трудно да се посочи. 309 00:14:29,390 --> 00:14:32,900 >> В края на деня, дали изпълнен от компютри или хора, 310 00:14:32,900 --> 00:14:34,870 алгоритми са само набор от инструкции 311 00:14:34,870 --> 00:14:36,560 с които да се решават проблемите. 312 00:14:36,560 --> 00:14:38,360 Това са само три. 313 00:14:38,360 --> 00:14:41,860 Какъв проблем бихте реши с алгоритъм? 314 00:14:41,860 --> 00:14:44,261 >> DAVID J. Malan: Значи умишлено, много проста програма, 315 00:14:44,261 --> 00:14:46,260 много прост алгоритъм, за постигане на нещо 316 00:14:46,260 --> 00:14:48,280 много проста, да броим брой хора в помещението. 317 00:14:48,280 --> 00:14:50,370 >> Но нека да дразни с изключение някои от представителя 318 00:14:50,370 --> 00:14:52,870 разполага тук, че всъщност са ще бъде полезен дори когато 319 00:14:52,870 --> 00:14:54,880 прилагането на най- комплекс от софтуер. 320 00:14:54,880 --> 00:14:58,060 Така например, в първия ред, ние имаме това, което ние наричаме променлива, 321 00:14:58,060 --> 00:15:01,040 и от алгебра, вие сте обикновено запознат с помощта X и Y 322 00:15:01,040 --> 00:15:02,930 и Z понякога, и така нататък. 323 00:15:02,930 --> 00:15:05,770 Но в програмирането, променливи са все още в края на деня, 324 00:15:05,770 --> 00:15:06,680 много подобен на този. 325 00:15:06,680 --> 00:15:09,910 Но това е може би просто да мислим, на променлива като просто контейнер. 326 00:15:09,910 --> 00:15:13,520 И в действителност, това е известно брой битове реализира по някакъв начин в твърдия ви диск 327 00:15:13,520 --> 00:15:16,410 или в паметта на компютъра, но повече за това в бъдеще. 328 00:15:16,410 --> 00:15:17,670 Това е просто един контейнер. 329 00:15:17,670 --> 00:15:20,310 И ако ти кажа нещо като нека п равно 0, 330 00:15:20,310 --> 00:15:24,310 добре, че е все едно да наречеш това стъкло купа тук н, просто произволно име, 331 00:15:24,310 --> 00:15:26,230 и пускането нищо в него първоначално. 332 00:15:26,230 --> 00:15:28,940 Така стойността на този купа в момента е нула. 333 00:15:28,940 --> 00:15:31,380 И разбира се, ако вие възприемате в последващо линия, 334 00:15:31,380 --> 00:15:35,070 действително да увеличите някои линия на код, като в тази трета линия тук, 335 00:15:35,070 --> 00:15:39,857 от един, това е като да кажеш, какъв е текущата стойност на N, това е 0, плюс 1, 336 00:15:39,857 --> 00:15:41,690 сложи нещо като пинг-понг топка в тук. 337 00:15:41,690 --> 00:15:45,140 Сега стойността на този променлива е просто един. 338 00:15:45,140 --> 00:15:50,064 И бихте могли много бързо да се екстраполира, но сега това е 2, сега е 3, и така нататък. 339 00:15:50,064 --> 00:15:51,230 Така че всичко е променлива е. 340 00:15:51,230 --> 00:15:53,740 Това е част от паметта, която всъщност се съхранява някои данни. 341 00:15:53,740 --> 00:15:55,050 За сега това е пинг-понг топка. 342 00:15:55,050 --> 00:15:55,883 Там това е номер. 343 00:15:55,883 --> 00:15:58,910 Но тя може да бъде думи в речник, като проверка на правописа 344 00:15:58,910 --> 00:16:02,300 Аз споменах в сряда за един от миналогодишните проблемните комплекти. 345 00:16:02,300 --> 00:16:05,640 >> Сега друга ключова идея, че по подобен начин е доста интуитивен Бих твърдят, 346 00:16:05,640 --> 00:16:06,690 е, че на една линия. 347 00:16:06,690 --> 00:16:08,930 И примката в процеса за преброяване на всички 348 00:16:08,930 --> 00:16:12,540 е, разбира се, прави същото нещо отново и again-- или един 349 00:16:12,540 --> 00:16:14,140 по време или две в даден момент. 350 00:16:14,140 --> 00:16:17,690 И вие можете да изразите това на английски, или pseudocode код, в произволен брой начини, 351 00:16:17,690 --> 00:16:21,560 но използването на този предлог "за" е много често срещан начин за правене на това. 352 00:16:21,560 --> 00:16:24,460 За всеки човек в стаята, направи това. 353 00:16:24,460 --> 00:16:25,350 Отново и отново. 354 00:16:25,350 --> 00:16:27,700 И факта, че е разчленен, трета линия, 355 00:16:27,700 --> 00:16:29,840 просто означава, че това, което Трябваше да си направя 356 00:16:29,840 --> 00:16:33,490 е неща, които е разчленена под линия се две. 357 00:16:33,490 --> 00:16:35,590 Просто човек конвенция, но един общ 358 00:16:35,590 --> 00:16:39,010 както ще видим в действителност по-висока програмиране ниво езици. 359 00:16:39,010 --> 00:16:41,870 >> Сега малко по-интересна е когато можете да получите в случай корнер. 360 00:16:41,870 --> 00:16:43,970 Например, един ъгъл случай е, когато има 361 00:16:43,970 --> 00:16:48,060 трима души, или пет, или седем, или която и да е нечетен брой на хората в помещението, 362 00:16:48,060 --> 00:16:51,630 защото това, че избиват спирачки в крайна сметка, защото ви ще 363 00:16:51,630 --> 00:16:54,265 да пропусна някого, или в самото начало или в самия край 364 00:16:54,265 --> 00:16:55,390 в зависимост от това как го правиш. 365 00:16:55,390 --> 00:16:59,800 И така, сега, аз имам този клон, или състояние, ако един човек остава 366 00:16:59,800 --> 00:17:04,490 След това отидете напред и да се справя с това една самотен човек, който не се получи 367 00:17:04,490 --> 00:17:05,690 в двойка с някой друг. 368 00:17:05,690 --> 00:17:09,030 Така че това е, което ние наричаме състояние, или клон. 369 00:17:09,030 --> 00:17:11,500 >> Сега pseudocode код -общо може да бъде 370 00:17:11,500 --> 00:17:13,730 написана, за да реши всеки редица проблеми. 371 00:17:13,730 --> 00:17:16,490 И това, което смятахме, че ще правим тук, е да вземе един момент 372 00:17:16,490 --> 00:17:20,089 да поканим да кажем CS50 е притежавате Rob Боудън на сцената 373 00:17:20,089 --> 00:17:25,040 да се присъединят и двама доброволци, които нямат представа какво очаква. 374 00:17:25,040 --> 00:17:26,890 Една ръка слезе веднага след като го казах. 375 00:17:26,890 --> 00:17:28,700 Какво ще кажете за вас на свършва тук, хайде нагоре. 376 00:17:28,700 --> 00:17:33,040 А какво ще кажете за по-далеч от далеч, какво ще кажеш начин в гърба. 377 00:17:33,040 --> 00:17:35,200 Обратно ред, хайде нагоре с ръцете си нагоре. 378 00:17:35,200 --> 00:17:36,475 Добре, и какво е вашето име? 379 00:17:36,475 --> 00:17:36,960 >> ANITA: Анита. 380 00:17:36,960 --> 00:17:37,655 >> DAVID J. Malan: Анита. 381 00:17:37,655 --> 00:17:38,613 Добре, хубаво е да се запознаем. 382 00:17:38,613 --> 00:17:41,010 Позволете ми да ви запозная с Rob Боудън. 383 00:17:41,010 --> 00:17:42,890 Това е Анита. 384 00:17:42,890 --> 00:17:44,033 А какво е твоето име? 385 00:17:44,033 --> 00:17:44,800 >> KIERSTEN: Kiersten 386 00:17:44,800 --> 00:17:46,020 >> DAVID J. Malan: Kiersten. 387 00:17:46,020 --> 00:17:49,790 Kiersten, хайде и отговарят Rob Боудън и Анита. 388 00:17:49,790 --> 00:17:51,036 Приятно ми е да се запознаем. 389 00:17:51,036 --> 00:17:52,160 KIERSTEN: Приятно ми е да се запознаем. 390 00:17:52,160 --> 00:17:53,368 DAVID J. Malan: Добре, Роб. 391 00:17:53,368 --> 00:17:54,650 ROB Боудън: Приятно ми е да се запознаем. 392 00:17:54,650 --> 00:17:55,566 DAVID J. Malan: Анита. 393 00:17:55,566 --> 00:17:56,520 KIERSTEN: Hi Анита. 394 00:17:56,520 --> 00:17:58,686 DAVID J. Malan: И си няколкостотин съученици. 395 00:17:58,686 --> 00:18:02,490 Така че, сега нека да вървим напред и издърпайте до само една проста програма тук 396 00:18:02,490 --> 00:18:05,690 на Mac OS, че ще ме пусне всъщност нахвърлям някои бележки надолу. 397 00:18:05,690 --> 00:18:09,570 И ако вие искате да всеки да вземе позиция в едно от тези училища там, 398 00:18:09,570 --> 00:18:16,360 позволете ми да отида напред и започва списък на pseudocode код, ако щете. 399 00:18:16,360 --> 00:18:19,970 И това, което искам да направя тук, в крайна сметка е вид за вас 400 00:18:19,970 --> 00:18:22,470 някои инструкции, които ни публиката са всъщност 401 00:18:22,470 --> 00:18:23,569 ще рецитира за нас. 402 00:18:23,569 --> 00:18:25,860 Позволете ми да отида напред и просто промените на номериран списък 403 00:18:25,860 --> 00:18:27,720 да съответства това, което правехме там. 404 00:18:27,720 --> 00:18:30,990 И това, което аз ще направя с вашата помощ, е да напишете програма 405 00:18:30,990 --> 00:18:34,620 в pseudocode, с което тези момчета ще 406 00:18:34,620 --> 00:18:38,150 за изпълнение на фъстъчено масло и желе сандвич. 407 00:18:38,150 --> 00:18:40,880 Така че това е може би между другото да покажа нещо на някои от вас 408 00:18:40,880 --> 00:18:44,560 Може би сте виждали в интернет само за един кратък миг досадно. 409 00:18:44,560 --> 00:18:47,650 >> [MUSIC BUCKEWHEAT BOYS ", фъстъчено масло  JELLY TIME "] 410 00:18:47,650 --> 00:19:08,119 411 00:19:08,119 --> 00:19:08,910 DAVID J. Malan: OK. 412 00:19:08,910 --> 00:19:10,050 Това е достатъчно за това. 413 00:19:10,050 --> 00:19:12,690 Така че тук междувременно, имам чифт Google Glasses които 414 00:19:12,690 --> 00:19:16,500 ние ще поставим на собствен Rob Боудън CS50 е да видиш света през неговите очи. 415 00:19:16,500 --> 00:19:19,140 И ние ще направим всичко възможно в пост производство действително да тъкат 416 00:19:19,140 --> 00:19:23,100 кадри от това, което Роб се виждат сега, в тази актуална лекция 417 00:19:23,100 --> 00:19:26,420 видео с нашите две доброволци до него. 418 00:19:26,420 --> 00:19:28,480 Така че това, което аз ще направя е, аз ще бъда машинописка. 419 00:19:28,480 --> 00:19:31,849 Ние имаме за цел тук на Всъщност написването на програма 420 00:19:31,849 --> 00:19:34,640 с които да се направи, в крайна сметка, по- фъстъчено масло и желе сандвич, 421 00:19:34,640 --> 00:19:37,680 но тези тримата ще се държат като че ли те са компютри. 422 00:19:37,680 --> 00:19:40,638 И компютри, в края на деня, всъщност са доста тъпи устройства. 423 00:19:40,638 --> 00:19:44,432 Те са супер бързо, но само те могат да правим, буквално, това, което им се казва. 424 00:19:44,432 --> 00:19:46,890 Не може просто да се каже, направи фъстъчено масло и желе сандвич. 425 00:19:46,890 --> 00:19:48,640 Трябва да ги програмирате да направя това. 426 00:19:48,640 --> 00:19:51,420 Трябва да им кажа с точност какво да правя, 427 00:19:51,420 --> 00:19:54,400 по-малко нещата се ужасно и, Надяваме се, забавно проваля. 428 00:19:54,400 --> 00:19:57,460 >> Така че с това каза, ние трябва една табла от страна на публиката 429 00:19:57,460 --> 00:19:59,440 за това, което трябва да засили едно е, ако целта тук 430 00:19:59,440 --> 00:20:01,356 е да се направи фъстъчено масло и желе сандвич. 431 00:20:01,356 --> 00:20:01,910 Да? 432 00:20:01,910 --> 00:20:03,647 >> АУДИТОРИЯ: [недоловим] торбата с хляб. 433 00:20:03,647 --> 00:20:05,230 DAVID J. Malan: Отворете чантата на хляб. 434 00:20:05,230 --> 00:20:08,360 Така че, ако трите състезателите ще искате да продължите да се направи това буквално. 435 00:20:08,360 --> 00:20:12,394 Отворете чантата на хляб. 436 00:20:12,394 --> 00:20:15,810 >> [АУДИТОРИЯ Вижте] 437 00:20:15,810 --> 00:20:20,717 438 00:20:20,717 --> 00:20:22,300 DAVID J. Malan: Така че нека да работим върху това. 439 00:20:22,300 --> 00:20:23,180 Добре. 440 00:20:23,180 --> 00:20:25,400 Така стъпка две, how-- нека да вземем това допълнително. 441 00:20:25,400 --> 00:20:26,480 Да, в предната част. 442 00:20:26,480 --> 00:20:27,240 >> АУДИТОРИЯ: [недоловим] хляба. 443 00:20:27,240 --> 00:20:27,735 >> DAVID J. Malan: Какво е това? 444 00:20:27,735 --> 00:20:28,836 >> АУДИТОРИЯ: Извадете хляба. 445 00:20:28,836 --> 00:20:30,210 DAVID J. Malan: Извадете хляба. 446 00:20:30,210 --> 00:20:31,190 Подобно сбит. 447 00:20:31,190 --> 00:20:33,667 Благодаря ви. 448 00:20:33,667 --> 00:20:43,777 >> [APPLAUSE] 449 00:20:43,777 --> 00:20:44,860 DAVID J. Malan: Това ли е? 450 00:20:44,860 --> 00:20:48,830 ОК, така че втора стъпка ще да премахнете хляба. 451 00:20:48,830 --> 00:20:51,790 Добре, някой иска да пишете ни по-дълго изречение? 452 00:20:51,790 --> 00:20:52,640 Някой друг? 453 00:20:52,640 --> 00:20:53,920 Малко повече [недоловим]. 454 00:20:53,920 --> 00:20:54,810 Не, нищо сега. 455 00:20:54,810 --> 00:20:56,094 Да? 456 00:20:56,094 --> 00:20:58,900 >> АУДИТОРИЯ: Place две резени един до друг. 457 00:20:58,900 --> 00:21:03,575 >> DAVID J. Malan: Place две резени един до друг. 458 00:21:03,575 --> 00:21:06,420 >> [АУДИТОРИЯ Вижте] 459 00:21:06,420 --> 00:21:09,590 >> DAVID J. Malan: Place две резени един до друг. 460 00:21:09,590 --> 00:21:11,334 Стъпка четири. 461 00:21:11,334 --> 00:21:12,816 Да? 462 00:21:12,816 --> 00:21:14,792 >> АУДИТОРИЯ: Вземи си ръка и я постави леко 463 00:21:14,792 --> 00:21:17,756 в горната част на капака на фъстъчено масло. 464 00:21:17,756 --> 00:21:19,710 >> [АУДИТОРИЯ Вижте] 465 00:21:19,710 --> 00:21:21,710 АУДИТОРИЯ: [недоловим] в непосредствена близост до фъстъчено масло. 466 00:21:21,710 --> 00:21:21,870 DAVID J. Malan: Какво? 467 00:21:21,870 --> 00:21:22,520 Кажи, че отново. 468 00:21:22,520 --> 00:21:26,308 >> АУДИТОРИЯ: Развийте капака и сложи нежно до фъстъчено масло. 469 00:21:26,308 --> 00:21:31,490 >> DAVID J. Malan: Сложете го внимателно в непосредствена близост до фъстъчено масло. 470 00:21:31,490 --> 00:21:37,770 471 00:21:37,770 --> 00:21:40,090 OK, прогрес. 472 00:21:40,090 --> 00:21:41,080 Стъпка пет. 473 00:21:41,080 --> 00:21:42,380 Отлично. 474 00:21:42,380 --> 00:21:43,261 Да? 475 00:21:43,261 --> 00:21:44,163 >> Вземете нож. 476 00:21:44,163 --> 00:21:46,380 477 00:21:46,380 --> 00:21:47,630 DAVID J. Malan: Вземете нож. 478 00:21:47,630 --> 00:21:52,320 479 00:21:52,320 --> 00:21:53,631 OK, шеста стъпка. 480 00:21:53,631 --> 00:21:54,130 Да? 481 00:21:54,130 --> 00:21:56,237 >> АУДИТОРИЯ: Задръжте нож с помощта на дръжката. 482 00:21:56,237 --> 00:21:57,945 DAVID J. Malan: Задръжте нож от дръжката. 483 00:21:57,945 --> 00:22:00,710 484 00:22:00,710 --> 00:22:03,230 Дръжте нож от дръжката. 485 00:22:03,230 --> 00:22:04,880 Стъпка седем. 486 00:22:04,880 --> 00:22:05,692 Да? 487 00:22:05,692 --> 00:22:10,030 >> АУДИТОРИЯ: [недоловим] нож в фъстъчено масло и по-малко от [недоловим]. 488 00:22:10,030 --> 00:22:13,070 >> DAVID J. Malan: Сложете нож в-- I Чух "сложи нож в фъстъчено масло 489 00:22:13,070 --> 00:22:19,500 и да вземат по-малко от колкото е възможно. " 490 00:22:19,500 --> 00:22:22,480 Между другото, отстранете хартията, на първо място. 491 00:22:22,480 --> 00:22:29,320 492 00:22:29,320 --> 00:22:31,890 Добре, стъпка девет. 493 00:22:31,890 --> 00:22:34,910 Стъпка девет. 494 00:22:34,910 --> 00:22:35,624 Стъпка девет. 495 00:22:35,624 --> 00:22:37,290 Ние не са действително направени сандвич все още. 496 00:22:37,290 --> 00:22:37,790 Да? 497 00:22:37,790 --> 00:22:41,570 АУДИТОРИЯ: Използването на нож в фъстъчено масло, прилага фъстъчено масло каза хляб. 498 00:22:41,570 --> 00:22:47,440 >> DAVID J. Malan: Използването на нож в фъстъчено масло, фъстъчено масло се прилага върху 499 00:22:47,440 --> 00:22:48,736 каза хляб. 500 00:22:48,736 --> 00:22:56,030 >> [АУДИТОРИЯ Вижте] 501 00:22:56,030 --> 00:22:59,480 DAVID J. Malan: Добре стъпка 10. 502 00:22:59,480 --> 00:23:01,762 Стъпка 10. 503 00:23:01,762 --> 00:23:02,750 Да? 504 00:23:02,750 --> 00:23:05,220 >> АУДИТОРИЯ: Taste фъстъчено масло за да се гарантира качество. 505 00:23:05,220 --> 00:23:15,960 >> [АУДИТОРИЯ Вижте] 506 00:23:15,960 --> 00:23:16,960 DAVID J. Malan: Стъпка 11. 507 00:23:16,960 --> 00:23:19,500 508 00:23:19,500 --> 00:23:21,340 Стъпка 11. 509 00:23:21,340 --> 00:23:22,101 Стъпка 11. 510 00:23:22,101 --> 00:23:22,600 Хайде. 511 00:23:22,600 --> 00:23:23,099 Да? 512 00:23:23,099 --> 00:23:24,208 Точно там. 513 00:23:24,208 --> 00:23:25,840 >> АУДИТОРИЯ: Внимателно вдигнете желе. 514 00:23:25,840 --> 00:23:28,220 >> DAVID J. Malan: Внимателно вдигнете желе. 515 00:23:28,220 --> 00:23:29,970 OK, а след това друга страна нагоре. 516 00:23:29,970 --> 00:23:32,812 517 00:23:32,812 --> 00:23:33,520 Точно зад теб. 518 00:23:33,520 --> 00:23:35,761 Да, в синьо. 519 00:23:35,761 --> 00:23:40,671 >> АУДИТОРИЯ: Добре, извадете капак от [недоловим], да, 520 00:23:40,671 --> 00:23:42,635 премахнете капака от желе. 521 00:23:42,635 --> 00:23:43,617 >> [АУДИТОРИЯ Вижте] 522 00:23:43,617 --> 00:23:44,742 >> DAVID J. Malan: От желе. 523 00:23:44,742 --> 00:23:45,581 Ха-ха. 524 00:23:45,581 --> 00:23:48,967 >> [АУДИТОРИЯ Вижте] 525 00:23:48,967 --> 00:23:49,800 DAVID J. Malan: И? 526 00:23:49,800 --> 00:23:52,490 АУДИТОРИЯ: И едва помете всяко [недоловим]. 527 00:23:52,490 --> 00:23:59,536 [АУДИТОРИЯ Вижте] 528 00:23:59,536 --> 00:24:04,456 АУДИТОРИЯ: Разбира се, преди [недоловим], Извадете хартията от желе. 529 00:24:04,456 --> 00:24:06,940 DAVID J. Malan: Извадете хартията от желе. 530 00:24:06,940 --> 00:24:08,229 Стъпка 14. 531 00:24:08,229 --> 00:24:09,020 Ние сме почти там. 532 00:24:09,020 --> 00:24:09,857 Да? 533 00:24:09,857 --> 00:24:12,600 >> АУДИТОРИЯ: Invert бутилка желе преди всичко пада. 534 00:24:12,600 --> 00:24:16,515 >> DAVID J. Malan: Invert желе бутилка преди желе пада. 535 00:24:16,515 --> 00:24:19,070 536 00:24:19,070 --> 00:24:19,890 Стъпка 15. 537 00:24:19,890 --> 00:24:21,130 >> АУДИТОРИЯ: Поставете капачката. 538 00:24:21,130 --> 00:24:22,463 >> DAVID J. Malan: Поставете капачката. 539 00:24:22,463 --> 00:24:25,880 540 00:24:25,880 --> 00:24:28,190 Стъпка 16. 541 00:24:28,190 --> 00:24:28,931 Да? 542 00:24:28,931 --> 00:24:29,806 >> АУДИТОРИЯ: [недоловим] 543 00:24:29,806 --> 00:24:34,109 544 00:24:34,109 --> 00:24:35,400 DAVID J. Malan: Кажи, че отново. 545 00:24:35,400 --> 00:24:38,100 АУДИТОРИЯ: Обърнете капачката на вашия желе. 546 00:24:38,100 --> 00:24:39,650 DAVID J. Malan: Off си желе. 547 00:24:39,650 --> 00:24:43,720 548 00:24:43,720 --> 00:24:49,510 Така наистина-- Oops. 549 00:24:49,510 --> 00:24:50,420 Хайде. 550 00:24:50,420 --> 00:24:51,740 Поставете капачката. 551 00:24:51,740 --> 00:24:56,660 Сложете cap-- Казахте Отстранете капачката на желе. 552 00:24:56,660 --> 00:24:58,950 Почувствайте се като ние сме в малко на една линия. 553 00:24:58,950 --> 00:24:59,640 Стъпка 17. 554 00:24:59,640 --> 00:25:00,398 Да? 555 00:25:00,398 --> 00:25:02,639 >> АУДИТОРИЯ: [недоловим] 556 00:25:02,639 --> 00:25:03,930 DAVID J. Malan: Кажи, че отново. 557 00:25:03,930 --> 00:25:05,150 АУДИТОРИЯ: [недоловим] 558 00:25:05,150 --> 00:25:07,835 DAVID J. Malan: Върнете се step-- 559 00:25:07,835 --> 00:25:10,110 АУДИТОРИЯ: [недоловим] 560 00:25:10,110 --> 00:25:13,760 DAVID J. Malan: Отстранете капачка от фъстъчено масло. 561 00:25:13,760 --> 00:25:14,492 Да? 562 00:25:14,492 --> 00:25:16,430 >> АУДИТОРИЯ: Капка всички желе на хляба. 563 00:25:16,430 --> 00:25:19,040 >> DAVID J. Malan: Отстранете всички желе на хляба. 564 00:25:19,040 --> 00:25:25,372 565 00:25:25,372 --> 00:25:26,830 DAVID J. Malan: Ние сме почти там. 566 00:25:26,830 --> 00:25:27,800 Стъпка 19. 567 00:25:27,800 --> 00:25:30,250 >> АУДИТОРИЯ: Отстранете излишния желе. 568 00:25:30,250 --> 00:25:31,720 >> DAVID J. Malan: Haha, желе. 569 00:25:31,720 --> 00:25:36,615 >> [APPLAUSE] 570 00:25:36,615 --> 00:25:39,240 DAVID J. Malan: Защо не ние-- още една стъпка, за да се възползвам от тази у дома. 571 00:25:39,240 --> 00:25:41,720 Още една стъпка и след това ние ще служи сандвичи. 572 00:25:41,720 --> 00:25:42,900 Да? 573 00:25:42,900 --> 00:25:45,570 >> АУДИТОРИЯ: [недоловим] 574 00:25:45,570 --> 00:25:50,704 >> DAVID J. Malan: Докато всеки сандвич тире remains-- Нека това-- ядат. 575 00:25:50,704 --> 00:25:56,400 >> [АУДИТОРИЯ СМЯХ] 576 00:25:56,400 --> 00:26:00,395 >> DAVID J. Malan: Добре, благодаря можете да ни доброволци тук. 577 00:26:00,395 --> 00:26:06,150 >> [APPLAUSE} 578 00:26:06,150 --> 00:26:08,940 >> DAVID J. Malan: Имаме някой хубав раздялата подаръци за всеки от вас. 579 00:26:08,940 --> 00:26:14,350 Вашият собствен фъстъчено масло, желе, и хляб, за да върне у дома. 580 00:26:14,350 --> 00:26:15,774 Благодаря ви. 581 00:26:15,774 --> 00:26:17,118 >> KIERSTEN: Благодаря ви. 582 00:26:17,118 --> 00:26:18,618 DAVID J. Malan: [недоловим] добре дошли. 583 00:26:18,618 --> 00:26:21,849 [APPLAUSE] 584 00:26:21,849 --> 00:26:24,390 DAVID J. Malan: Така че, това е, Разбира се, нелепо например. 585 00:26:24,390 --> 00:26:24,890 Така ли е? 586 00:26:24,890 --> 00:26:28,890 Но тя не вид разкрие как можем хората просто да вземат по-голяма яснота за даденост. 587 00:26:28,890 --> 00:26:30,890 А фактът, че съм бил говори с друг човек, 588 00:26:30,890 --> 00:26:33,300 той или тя просто не знае какво да кажеш. 589 00:26:33,300 --> 00:26:35,220 >> Компютри не вървят да знам какво искаш да кажеш, 590 00:26:35,220 --> 00:26:37,430 дори когато се използва, както ние сме на път да направим днес, 591 00:26:37,430 --> 00:26:42,300 програмиране нещо в Scratch, а драг и капка, език пъзел стил парче. 592 00:26:42,300 --> 00:26:44,310 Дори и предназначена за млади деца, вие трябва 593 00:26:44,310 --> 00:26:48,726 да бъде толкова изрично и така буквално с какво искате вашата програма да се направи. 594 00:26:48,726 --> 00:26:50,600 Сега в крайна сметка, ние сме ще бъде програмиране 595 00:26:50,600 --> 00:26:53,550 не в pseudocode код, English като синтаксис, 596 00:26:53,550 --> 00:26:56,370 но код, или по-правилно, изходен код. 597 00:26:56,370 --> 00:26:59,260 Изходния код е само фантазия начин за описване на код, който всъщност 598 00:26:59,260 --> 00:27:01,730 пиша с клавиатура, която е не на английски на себе си. 599 00:27:01,730 --> 00:27:06,480 Това е в C или Java или C ++ или нещо така, както скоро ще видим. 600 00:27:06,480 --> 00:27:09,510 >> И в действителност, само за да изплаши Някои от вас, на пръв поглед, 601 00:27:09,510 --> 00:27:13,769 това е една програма, написана на език, наречен C. Но за да не-изплаши някои от вас, 602 00:27:13,769 --> 00:27:15,560 щете напълно разберем какво става 603 00:27:15,560 --> 00:27:18,980 върху дойде следващия понеделник, когато го въпрос за нещо подобно. 604 00:27:18,980 --> 00:27:20,510 Честно казано, това е по-стар език. 605 00:27:20,510 --> 00:27:22,430 Това е доста тайнствена, но това е представител 606 00:27:22,430 --> 00:27:26,120 на много езици тези дни, че имате много скоби и къдрава 607 00:27:26,120 --> 00:27:28,630 скоби и кавички и запетаи. 608 00:27:28,630 --> 00:27:30,780 И много от това синтактична неща, които не е 609 00:27:30,780 --> 00:27:32,450 изобщо интелектуално интересно. 610 00:27:32,450 --> 00:27:35,790 В действителност, това е пълна разсейване от много прости идеи 611 00:27:35,790 --> 00:27:37,370 , които са ни се взираше в лицето. 612 00:27:37,370 --> 00:27:41,760 Тази програма, както може би просто предполагам, отпечатъци на екрана на компютъра на някой 613 00:27:41,760 --> 00:27:44,070 думите "Hello запетая света." 614 00:27:44,070 --> 00:27:44,860 Това е всичко. 615 00:27:44,860 --> 00:27:46,580 Затова е ясно, че има много неща, които е 616 00:27:46,580 --> 00:27:48,970 Първи в начина на някои очевидност там, 617 00:27:48,970 --> 00:27:52,490 но това се случва много бързо да се измъкне далеч и да бъде напълно интуитивно. 618 00:27:52,490 --> 00:27:55,617 >> Всъщност, това, което ние ще направим днес се дестилират тази доста сложна 619 00:27:55,617 --> 00:27:58,950 Търся програма, която отново ще дойде да се разбере бързо, но до нещо 620 00:27:58,950 --> 00:27:59,710 много по-прости. 621 00:27:59,710 --> 00:28:01,640 Нека просто кажем, че това, което имаме предвид. 622 00:28:01,640 --> 00:28:05,590 Нека да се направи снимка на това, което имаме предвид, с помощта на тези парчета от пъзел тук. 623 00:28:05,590 --> 00:28:09,110 >> Така че това е програмиране език, известен като Scratch. 624 00:28:09,110 --> 00:28:11,080 Тя е разработена от Media Lab на Масачузетския технологичен институт. 625 00:28:11,080 --> 00:28:14,830 И това, което ще видите в проблем зададете нула, която ще бъде пусната по-късно тази вечер, 626 00:28:14,830 --> 00:28:18,980 ние ще трябва да отидете до този URL тук scratch.mit.edu. 627 00:28:18,980 --> 00:28:20,940 И те имат уеб базиран интерфейс, чрез който 628 00:28:20,940 --> 00:28:22,540 вие ще напишете първата си програма. 629 00:28:22,540 --> 00:28:25,330 Или тези от вас, с предварителното опит, вашите втората програми, 630 00:28:25,330 --> 00:28:28,090 но в една среда, която е Вероятно малко непозната и че 631 00:28:28,090 --> 00:28:32,930 ще те бутна да се създаде нещо използването на този много визуална среда. 632 00:28:32,930 --> 00:28:35,940 >> Сега, това, което аз ще направя тук е отваряне на самата програма. 633 00:28:35,940 --> 00:28:41,911 Тя съществува не само като уеб браузър, но също така и като възможност за сваляне програма 634 00:28:41,911 --> 00:28:44,660 така че всъщност можете да го използвате Ако нямате достъп до интернет. 635 00:28:44,660 --> 00:28:46,743 И аз ще го направя тук, в Sanders, просто 636 00:28:46,743 --> 00:28:49,580 в случай, че Wi-Fi не сътрудничат супер добре. 637 00:28:49,580 --> 00:28:52,640 И това, което аз ще направя, е точка от няколко характеристики на тази програма. 638 00:28:52,640 --> 00:28:55,720 Така че, за да е ясно, че има само два пъти кликнали върху иконата на работния плот, 639 00:28:55,720 --> 00:28:59,830 или еквивалентно отишъл да scratch.mit.edu, и го спря този прозорец. 640 00:28:59,830 --> 00:29:01,650 Това е среда за програмиране. 641 00:29:01,650 --> 00:29:04,110 Това е парче от софтуер, който някои от нашите приятели от MIT 642 00:29:04,110 --> 00:29:08,850 пише, че е да споделите с нас и ще ви пиша програми на език, наречени Scratch. 643 00:29:08,850 --> 00:29:12,010 >> Сега това се случва да бъде котка, която също е наречена Scratch 644 00:29:12,010 --> 00:29:13,890 и това е неговият свят, в който той живее. 645 00:29:13,890 --> 00:29:17,175 Това е сцената, така да се каже, че правоъгълник в горния ляв ъгъл. 646 00:29:17,175 --> 00:29:18,800 И той не трябва да прилича на котка. 647 00:29:18,800 --> 00:29:20,591 Можете да го карат да изглежда като нищо и ще ви 648 00:29:20,591 --> 00:29:23,700 може да има много подобни спрайтове, или символи, в една програма. 649 00:29:23,700 --> 00:29:27,450 В същото време, тук в далечната Добре, е голям празен лист. 650 00:29:27,450 --> 00:29:30,260 И това е мястото, където, в един миг, ние ще започнем програмиране 651 00:29:30,260 --> 00:29:32,750 чрез плъзгане и пускане тези графичен пъзел 652 00:29:32,750 --> 00:29:35,300 парчета, които са точно тук в средата. 653 00:29:35,300 --> 00:29:38,140 И там е начин повече от тях, отколкото ние ще прекарват времето си тук в клас 654 00:29:38,140 --> 00:29:40,080 защото вие ще откриете, че всички те са доста интуитивен. 655 00:29:40,080 --> 00:29:41,788 Отново, той е проектиран за децата, но ние 656 00:29:41,788 --> 00:29:45,759 го използвате, за да дразни с изключение на някои от тези основните идеи на променливи, шлейфове, 657 00:29:45,759 --> 00:29:48,050 условия, а скоро и неща като функции и събития 658 00:29:48,050 --> 00:29:51,810 и конци и други модни неща, които ще стигнете до преди дълго, за да се създаде действително 659 00:29:51,810 --> 00:29:53,840 нещо от нулата. 660 00:29:53,840 --> 00:29:54,810 Игра на думи предназначени. 661 00:29:54,810 --> 00:29:58,740 >> Сега, това, което аз ще направя тук, е кликнете върху не движение, но контрол. 662 00:29:58,740 --> 00:30:01,400 И това е само една категоризация на тук-- 663 00:30:01,400 --> 00:30:03,150 и виждам различен Задаване на цвят на блокове. 664 00:30:03,150 --> 00:30:05,030 Но забележете няколко познати думи. 665 00:30:05,030 --> 00:30:07,830 "Ако" и "друго, ако" и "повторение". 666 00:30:07,830 --> 00:30:10,440 И най-вероятно да се досетите това е напомнящ на клона, 667 00:30:10,440 --> 00:30:12,870 или условията, които видяхме, и дори конструкцията примка. 668 00:30:12,870 --> 00:30:14,760 Така че ние имаме подобни блокове тук. 669 00:30:14,760 --> 00:30:16,720 Но най-интересното един е този тук. 670 00:30:16,720 --> 00:30:20,690 Когато този зелен флаг се натисне, това, за тези с предварително програмиране 671 00:30:20,690 --> 00:30:23,110 опит, е еквивалентен на основната функция. 672 00:30:23,110 --> 00:30:25,300 Но за тези, непознати, това е парче пъзел 673 00:30:25,300 --> 00:30:27,320 която ще започне използването на цялата ни програма. 674 00:30:27,320 --> 00:30:31,350 Това буквално означава, че когато и да отида, в това програма, и кликнете зелена flag-- 675 00:30:31,350 --> 00:30:35,560 , които можете да видите тук в горния ляв ъгъл на потребителския интерфейс, 676 00:30:35,560 --> 00:30:38,570 така видя зеленото знаме до червения знак стоп? 677 00:30:38,570 --> 00:30:41,475 Когато кликна, че ми програма ще се изпълнява. 678 00:30:41,475 --> 00:30:43,850 Сега, аз отивам да направя нещо супер проста с Scratch. 679 00:30:43,850 --> 00:30:46,640 Отивам да вървим напред и отидете на външен панел 680 00:30:46,640 --> 00:30:50,010 тук, където имам един куп на лилави парчета от пъзел, 681 00:30:50,010 --> 00:30:53,887 и аз отивам да вървим напред и да направим нещо супер просто като, да речем. 682 00:30:53,887 --> 00:30:55,720 И тогава-- известие този текст в бялото поле 683 00:30:55,720 --> 00:30:59,290 е editable-- Отивам да се каже, "Здравей, свят", просто ни харесва 684 00:30:59,290 --> 00:31:01,470 направи в тази текстова версия преди малко. 685 00:31:01,470 --> 00:31:05,920 И сега, ако отида и кликнете върху тази зелен флаг, аз вече са програмирани. 686 00:31:05,920 --> 00:31:07,810 Това не е особено интересна програма, 687 00:31:07,810 --> 00:31:09,760 но направих на компютъра да направи нещо. 688 00:31:09,760 --> 00:31:13,120 Започнах програма и я Направих това, което ми каза, че това да се направи. 689 00:31:13,120 --> 00:31:16,170 Сега, аз може да продължи, за да влачите и пускате все повече и повече от тези парчета от пъзел 690 00:31:16,170 --> 00:31:19,220 и те ще блокировка, но нека шамар някои терминология тук 691 00:31:19,220 --> 00:31:21,680 че ще видим повтарящи по време на курса, 692 00:31:21,680 --> 00:31:24,610 и наистина в цялата компютърни науки и програмирането като цяло. 693 00:31:24,610 --> 00:31:27,990 >> Това "казват" блок, в лилаво, нека просто започнете да се обадите изявление. 694 00:31:27,990 --> 00:31:29,240 Това е като констатация на факт. 695 00:31:29,240 --> 00:31:30,380 Направи това. 696 00:31:30,380 --> 00:31:32,590 Така че, това е една категория инструкции, които ви 697 00:31:32,590 --> 00:31:36,760 могат да се хранят един компютър, като част на програма или алгоритъм. 698 00:31:36,760 --> 00:31:39,270 И за да бъде ясно, вие сте вероятно се приема за даденост 699 00:31:39,270 --> 00:31:41,930 че имате програми на вашия компютър. 700 00:31:41,930 --> 00:31:45,850 И те са вид алгоритми, но програма е наистина един куп алгоритми 701 00:31:45,850 --> 00:31:47,160 че някои хора са писали. 702 00:31:47,160 --> 00:31:49,040 Те го опакова и те го продават, така че, 703 00:31:49,040 --> 00:31:51,330 или те е публикувал на интернет страница за да можете да изтеглите. 704 00:31:51,330 --> 00:31:54,930 Така, че програмата е само един цял куп от нули и единици 705 00:31:54,930 --> 00:31:56,970 че, някак си, хората създали. 706 00:31:56,970 --> 00:32:00,080 И тези модели на нули и такива представляват неща, в крайна сметка, 707 00:32:00,080 --> 00:32:04,030 като "кажа здравей свят" или "игра тази музика "или" да играе този клип " 708 00:32:04,030 --> 00:32:05,129 или "изпрати съобщение". 709 00:32:05,129 --> 00:32:06,920 Но ние ще се върнем в начин по-подробно какво 710 00:32:06,920 --> 00:32:08,780 програма е, когато, себе си, да ги пиша. 711 00:32:08,780 --> 00:32:11,320 >> Ето още един statement-- "Изчакайте за една секунда." 712 00:32:11,320 --> 00:32:14,330 Аз не се е възползвал от това все още, но ако искам моята програма, за да спрем за момент 713 00:32:14,330 --> 00:32:16,540 да се направи нещо, мога да го кажа, да го направят. 714 00:32:16,540 --> 00:32:18,450 Изчакайте секунда. 715 00:32:18,450 --> 00:32:20,150 Сега още един може да бъде "да играе звук." 716 00:32:20,150 --> 00:32:23,270 Така че, това е уникален за нулата, тя има способността да възпроизвежда звуци. 717 00:32:23,270 --> 00:32:26,130 Така че, изявление бих могъл използване е, тук, "играе звук." 718 00:32:26,130 --> 00:32:29,530 Междувременно, Boolean израз, така че това е любител дума 719 00:32:29,530 --> 00:32:34,490 кръстен просто човек на име г-н Bool, и това е всичко за един въпрос. 720 00:32:34,490 --> 00:32:37,470 Вярно или false-- е на мишката надолу? 721 00:32:37,470 --> 00:32:41,100 A Булев израз е просто някои изразяване на английски език 722 00:32:41,100 --> 00:32:42,860 който е или вярно или невярно. 723 00:32:42,860 --> 00:32:44,140 Или включен или изключен. 724 00:32:44,140 --> 00:32:45,130 Или един или нула. 725 00:32:45,130 --> 00:32:46,960 Можете да мислите за него в произволен брой начини, 726 00:32:46,960 --> 00:32:49,220 но това е било вярно или тази фалшива, в крайна сметка. 727 00:32:49,220 --> 00:32:52,540 Така че "мишката надолу въпросителен знак", че ще бъде булева изразяване. 728 00:32:52,540 --> 00:32:54,300 И вие може да се мисли за другите, може би. 729 00:32:54,300 --> 00:32:57,510 Например, "е отляво броя по-малко от правилния брой? " 730 00:32:57,510 --> 00:32:59,410 Това също би било булев израз. 731 00:32:59,410 --> 00:33:01,540 "По-малко от" е булев израз. 732 00:33:01,540 --> 00:33:03,280 >> Това едно, също ", трогателна показалеца на мишката." 733 00:33:03,280 --> 00:33:05,196 Аз не съм сигурен защо те го нарече показалеца на мишката. 734 00:33:05,196 --> 00:33:08,430 Това просто означава, е курсора, е стрелка на екрана, докосване на котката, 735 00:33:08,430 --> 00:33:09,022 например. 736 00:33:09,022 --> 00:33:10,480 Или някакъв друг аспект на екрана. 737 00:33:10,480 --> 00:33:13,710 И това е въпрос, отново, и това означава Булев израз. 738 00:33:13,710 --> 00:33:17,130 Нещо, което може да се искате да използвате в състояние. 739 00:33:17,130 --> 00:33:19,100 Така че ние ще се стигне до това само в един миг. 740 00:33:19,100 --> 00:33:20,350 Можете да "и" неща заедно. 741 00:33:20,350 --> 00:33:23,099 Така че, ако искате да проверите дали този е така и това е така, 742 00:33:23,099 --> 00:33:25,580 можете да използвате "и" блок като този. 743 00:33:25,580 --> 00:33:26,850 И тук е това състояние. 744 00:33:26,850 --> 00:33:31,290 Обърнете внимание на формата на малък отвор в горната част на този жълт пъзела, 745 00:33:31,290 --> 00:33:34,480 това е напомня на формата че току-що видяхме преди малко. 746 00:33:34,480 --> 00:33:37,920 Всеки един от тези булеви изрази имаме тези посочиха ръбове 747 00:33:37,920 --> 00:33:39,030 отляво и отдясно. 748 00:33:39,030 --> 00:33:43,140 И това е така, защото MIT хора решиха че визуално пренасящи форми, 749 00:33:43,140 --> 00:33:45,780 можете да вид се помогне на хората, студенти и деца, така, 750 00:33:45,780 --> 00:33:47,650 някак да попълнят празните места буквално. 751 00:33:47,650 --> 00:33:49,780 >> Сега, puzzle-- че отвор е малко по-малък, 752 00:33:49,780 --> 00:33:52,750 и както ще видим в програмата, в Scratch, то ще расте за да се побере. 753 00:33:52,750 --> 00:33:54,830 Това ще запази формата си, в крайна сметка. 754 00:33:54,830 --> 00:33:58,350 Така състояние, нека да решите "Трябва да се направи нещо или не?" 755 00:33:58,350 --> 00:34:00,470 A Булев израз е действителната въпрос 756 00:34:00,470 --> 00:34:04,100 който използвате, за да реши да отиде в наляво или мога да отида в дясно 757 00:34:04,100 --> 00:34:06,710 когато се сблъскате с този така нареченото разклонение на пътя? 758 00:34:06,710 --> 00:34:07,980 Можете да имате два клона. 759 00:34:07,980 --> 00:34:10,909 Ако нещо е вярно, направете това, в противен случай отидете по този начин, 760 00:34:10,909 --> 00:34:14,590 или просто да не се прави нищо в всички, като този блок мълчалив. 761 00:34:14,590 --> 00:34:16,360 По същия начин, ние можем да гнездят тези неща. 762 00:34:16,360 --> 00:34:20,204 Така че, ако искате да се утрои вилица в път, или да направите това или това или онова, 763 00:34:20,204 --> 00:34:21,870 можете просто да гнездят тези неща заедно. 764 00:34:21,870 --> 00:34:24,520 И тя започва да се получи малко грозен, в крайна сметка, със сигурност, 765 00:34:24,520 --> 00:34:26,120 но логиката е същата. 766 00:34:26,120 --> 00:34:28,000 Можете да буквално се чете това отгоре до долу 767 00:34:28,000 --> 00:34:33,290 и то се казва какво трябва-- ако това Вярно е, да направите това, иначе ако друго. 768 00:34:33,290 --> 00:34:36,179 >> Цикълът не получи по-просто в Scratch. 769 00:34:36,179 --> 00:34:37,422 Forever направете следното. 770 00:34:37,422 --> 00:34:39,880 Сега не може да си мислиш, може да направи много, защото там не е 771 00:34:39,880 --> 00:34:42,839 много пространство между горната и долната част на този отвор пъзел парче. 772 00:34:42,839 --> 00:34:45,671 Но вие ще видите Scratch ще растат да се поберат най-много парчета от пъзел 773 00:34:45,671 --> 00:34:47,060 като искате да се тъпча в там. 774 00:34:47,060 --> 00:34:48,960 Друга линия може да бъде изразени с повторения. 775 00:34:48,960 --> 00:34:51,590 Ако знаете предварително, "I Искам да направя нещо 10 пъти " 776 00:34:51,590 --> 00:34:54,010 можете просто да кажете Scratch да направя нещо 10 пъти. 777 00:34:54,010 --> 00:34:57,260 А междувременно, ние можем да имаме променливи. 778 00:34:57,260 --> 00:34:59,572 Така че тук е произволно едно, това е оранжево в този случай, 779 00:34:59,572 --> 00:35:00,780 и това е една вихрушка турне. 780 00:35:00,780 --> 00:35:04,540 Отново, вие ще намерите този много достъпен след като започнете да отворите и кликнете. 781 00:35:04,540 --> 00:35:07,930 Аз съм именувана променлива ми н, но аз можеше да го нарича всичко, което искате, 782 00:35:07,930 --> 00:35:11,280 и аз съм я оставяте тук, в това произволно например до нула. 783 00:35:11,280 --> 00:35:14,250 >> Сега виждаме програма като здравей свят не е всичко, което непреодолими, 784 00:35:14,250 --> 00:35:17,900 така че нека действително се отвори нещо че бивш студент прави. 785 00:35:17,900 --> 00:35:23,100 Нека да вървим напред и да се отворят, например, този тук, 786 00:35:23,100 --> 00:35:26,780 , за които бих се радвал да има доброволец. 787 00:35:26,780 --> 00:35:28,450 Добре, как about-- да вървим по-нататък. 788 00:35:28,450 --> 00:35:29,240 Да, хайде нагоре. 789 00:35:29,240 --> 00:35:30,056 Как ти е името? 790 00:35:30,056 --> 00:35:30,635 >> ABBY: Аби. 791 00:35:30,635 --> 00:35:32,010 DAVID J. Malan: Аби, хайде нагоре. 792 00:35:32,010 --> 00:35:35,930 Така Играли ли сте някога тази игра преди? 793 00:35:35,930 --> 00:35:36,430 ABBY: Не 794 00:35:36,430 --> 00:35:37,370 DAVID J. Malan: Добре. 795 00:35:37,370 --> 00:35:38,380 David, хубаво е да се запознаем. 796 00:35:38,380 --> 00:35:39,620 Ела. 797 00:35:39,620 --> 00:35:42,300 И какво е вашето програмиране фон, ако има такива. 798 00:35:42,300 --> 00:35:43,914 >> ABBY: Научих някои C ++. 799 00:35:43,914 --> 00:35:45,580 DAVID J. Malan: Вие сте научили някои C ++. 800 00:35:45,580 --> 00:35:48,382 И каква е вашата игра играе фон? 801 00:35:48,382 --> 00:35:49,505 >> ABBY: Не много. 802 00:35:49,505 --> 00:35:51,130 DAVID J. Malan: ОК, така че ние ще го взема. 803 00:35:51,130 --> 00:35:52,700 Така че тук е как играта ще работи. 804 00:35:52,700 --> 00:35:54,510 Отивам да вървим напред и кликнете зеленото знаме, което 805 00:35:54,510 --> 00:35:55,830 е тук, в горния десен ъгъл. 806 00:35:55,830 --> 00:35:59,710 Сега вашият предшественик в класа ти е дал някои инструкции тук. 807 00:35:59,710 --> 00:36:02,306 И в един момент тя, казва: "пространство, за да започне." 808 00:36:02,306 --> 00:36:03,680 Така че продължавайте напред и натиснете клавиша за интервал. 809 00:36:03,680 --> 00:36:05,507 >> КОМПЮТЪРНА ИГРА: Pikachu. 810 00:36:05,507 --> 00:36:08,340 DAVID J. Malan: А целта е да се хванеш храната, както е показано там 811 00:36:08,340 --> 00:36:09,320 в ляво. 812 00:36:09,320 --> 00:36:11,388 И за да [недоловим] 813 00:36:11,388 --> 00:36:15,356 >> [GAME възпроизвеждане на музика] 814 00:36:15,356 --> 00:36:27,280 815 00:36:27,280 --> 00:36:29,610 >> DAVID J. Malan: Ооо, добре, благодаря ти за игра. 816 00:36:29,610 --> 00:36:32,800 Ние имаме тук малко прощален подарък за вас. 817 00:36:32,800 --> 00:36:35,574 Имаме CS50 стрес топка, ако искате да изберете. 818 00:36:35,574 --> 00:36:36,820 Добре, радвам се да се запознаем. 819 00:36:36,820 --> 00:36:39,680 Благодаря ви, че дойдохте и предизвикателни. 820 00:36:39,680 --> 00:36:42,410 821 00:36:42,410 --> 00:36:46,910 Така че ние имаме повече стрес топки, така че нека да направим още един пример, за да се мотивират. 822 00:36:46,910 --> 00:36:48,150 A доброволец? 823 00:36:48,150 --> 00:36:50,510 Добре, какво ще кажеш за точно тук в предната част. 824 00:36:50,510 --> 00:36:51,250 Как ти е името? 825 00:36:51,250 --> 00:36:51,660 >> ФИЛИП: Phillip. 826 00:36:51,660 --> 00:36:52,660 >> DAVID J. Malan: Phillip. 827 00:36:52,660 --> 00:36:54,530 Ела, Филип. 828 00:36:54,530 --> 00:36:57,340 Така че, Филип ще бъде оспорва с друга игра 829 00:36:57,340 --> 00:37:00,840 че един от вашите предшественици пише като част от проблема зададете нула, 830 00:37:00,840 --> 00:37:03,510 наречен Hardest Game Айви. 831 00:37:03,510 --> 00:37:05,980 И ние ще видим само за момент какво се разбира под това. 832 00:37:05,980 --> 00:37:07,400 Филип, хубаво е да се запознаем. 833 00:37:07,400 --> 00:37:09,060 Какъв е вашият опит? 834 00:37:09,060 --> 00:37:10,310 ФИЛИП: Съставено много кодиране. 835 00:37:10,310 --> 00:37:11,110 Съставено малко игри, също. 836 00:37:11,110 --> 00:37:11,570 >> DAVID J. Malan: OK. 837 00:37:11,570 --> 00:37:12,620 Има много игри, също. 838 00:37:12,620 --> 00:37:14,230 И сте играли тази игра преди? 839 00:37:14,230 --> 00:37:14,730 >> ФИЛИП: Не 840 00:37:14,730 --> 00:37:16,438 DAVID J. Malan: All Добре, така че тук ние тръгваме. 841 00:37:16,438 --> 00:37:18,434 Отивам да вървим напред и кликнете на зеления флаг. 842 00:37:18,434 --> 00:37:24,160 >> [GAME MUSIC] 843 00:37:24,160 --> 00:37:27,770 >> [MUSIC MC HAMMER, "U МОЖЕ ДА НЕ Докоснете този"] 844 00:37:27,770 --> 00:38:39,790 845 00:38:39,790 --> 00:38:41,635 >> ФИЛИП: [недоловим] 846 00:38:41,635 --> 00:38:42,760 DAVID J. Malan: [недоловим] 847 00:38:42,760 --> 00:38:44,740 ФИЛИП: [недоловим] 848 00:38:44,740 --> 00:38:49,056 [Сайта] 849 00:38:49,056 --> 00:38:50,680 [MUSIC MC HAMMER, "U МОЖЕ ДА НЕ Докоснете този"] 850 00:38:50,680 --> 00:38:52,660 DAVID J. Malan: [недоловим] Прочитам това. 851 00:38:52,660 --> 00:38:54,094 ФИЛИП: [недоловим] 852 00:38:54,094 --> 00:38:55,135 DAVID J. Malan: Върви напред. 853 00:38:55,135 --> 00:39:01,570 [MUSIC MC HAMMER, "U МОЖЕ ДА НЕ Докоснете този"] 854 00:39:01,570 --> 00:39:15,832 855 00:39:15,832 --> 00:39:16,915 DAVID J. Malan: Добре. 856 00:39:16,915 --> 00:39:18,400 Поздравления. 857 00:39:18,400 --> 00:39:25,150 >> [APPLAUSE] 858 00:39:25,150 --> 00:39:27,330 >> DAVID J. Malan: Ние ще мнение, че онлайн-късно, така че 859 00:39:27,330 --> 00:39:29,820 , които можете да отлагате с него, както и. 860 00:39:29,820 --> 00:39:32,550 Princeton идва следващия, след това. 861 00:39:32,550 --> 00:39:35,470 >> Така че сега нека всъщност се процедира да се започне от нулата, 862 00:39:35,470 --> 00:39:39,310 така да се каже, и действително да се изгради до можем да дразни с изключение на някои от тези идеи 863 00:39:39,310 --> 00:39:41,970 и да стигнем до нещо още по-сложни от края. 864 00:39:41,970 --> 00:39:45,240 Отивам да отидете тук и аз отивам да вървим напред и да се създаде нов файл. 865 00:39:45,240 --> 00:39:47,460 Така че отново, комплектът проблем ще ходи вас чрез някои от тези стъпки. 866 00:39:47,460 --> 00:39:49,300 Но всичко, което направих беше Go към менюто File и аз 867 00:39:49,300 --> 00:39:52,760 каза: "ново", толкова много като Microsoft Word, или всяка програма, като това. 868 00:39:52,760 --> 00:39:56,630 >> И да вървим напред сега-- и ние изпълнени "Здравей, свят" преди малко, 869 00:39:56,630 --> 00:39:58,410 но нека да направим нещо малко по-сладък. 870 00:39:58,410 --> 00:40:00,150 Отивам да отида до събития. 871 00:40:00,150 --> 00:40:02,350 И аз отивам да правя ", когато зелен флаг кликнали. " 872 00:40:02,350 --> 00:40:05,830 И тогава аз отивам да се използва, да кажем, клон. 873 00:40:05,830 --> 00:40:07,610 Така че аз отивам да се използва ", ако" състояние. 874 00:40:07,610 --> 00:40:10,940 И забележете как веднага след като се доближи към нея, тя иска да щракне заедно. 875 00:40:10,940 --> 00:40:13,020 Така че нека да отида и да го щракне заедно. 876 00:40:13,020 --> 00:40:15,150 И сега не мога да направя нещо интересно. 877 00:40:15,150 --> 00:40:19,150 Ако преминете през тук, аз отивам , за да видите един куп блокове. 878 00:40:19,150 --> 00:40:22,620 Ако отида в "данни" - нека да го увеличите в-- има нещо за променливи. 879 00:40:22,620 --> 00:40:26,160 Ако отида в "движение", можете да очевидно се обърнат развоя на мача. 880 00:40:26,160 --> 00:40:28,760 Ако отида в "оператори" - О, това е интересно, 881 00:40:28,760 --> 00:40:31,000 Мога да вземете случаен номер. 882 00:40:31,000 --> 00:40:34,119 Така че нека да направим нещо само с някаква вероятност, просто защото. 883 00:40:34,119 --> 00:40:36,160 Отивам да вървим напред и плъзнете този пъзел парче, 884 00:40:36,160 --> 00:40:37,910 това е, че по-малко от блок, така че това е просто 885 00:40:37,910 --> 00:40:39,480 "Е това число по-малко от това?" 886 00:40:39,480 --> 00:40:42,438 Но аз не искам твърд код редица защото това е доста безсмислено. 887 00:40:42,438 --> 00:40:46,270 Така че аз отивам да плъзнете това парче тук, и да забележите как щракне в, 888 00:40:46,270 --> 00:40:49,480 а сега нека да вървим напред и да кажа ", ако номера, който е качват на случаен принцип 889 00:40:49,480 --> 00:40:51,820 е по-малко от шест, направете следното. " 890 00:40:51,820 --> 00:40:52,790 А защо по-малко от шест? 891 00:40:52,790 --> 00:40:56,400 Какво вероятност е това ефективно ще ми даде, просто интуитивно? 892 00:40:56,400 --> 00:40:57,440 Около 50%, нали? 893 00:40:57,440 --> 00:41:01,190 Ако числото, което е предполагам случайно между 1 и 10 е по-малко от шест 894 00:41:01,190 --> 00:41:03,480 ясно е едно, две, три, четири или пет. 895 00:41:03,480 --> 00:41:06,740 И така, това ще ми даде 50% вероятност на какво става? 896 00:41:06,740 --> 00:41:09,890 >> Ами нека да направим нещо подобно това ", играе звук мяу". 897 00:41:09,890 --> 00:41:11,750 И забележете, отново, на парче пъзел расте 898 00:41:11,750 --> 00:41:13,700 да се поберат, доколкото съответстват на формите. 899 00:41:13,700 --> 00:41:14,910 Това е, което е важно. 900 00:41:14,910 --> 00:41:18,000 Нека да преминем към Scratch тук и натиснете "игра". 901 00:41:18,000 --> 00:41:19,300 Нищо не се случва. 902 00:41:19,300 --> 00:41:21,160 Това бъг ли е? 903 00:41:21,160 --> 00:41:21,999 Не, не е необходимо. 904 00:41:21,999 --> 00:41:24,040 Тя може да бъде само, че по-голям брой е бил избран. 905 00:41:24,040 --> 00:41:25,762 Така че нека да го направим отново. 906 00:41:25,762 --> 00:41:27,550 Нищо. 907 00:41:27,550 --> 00:41:28,344 >> [Мяу] 908 00:41:28,344 --> 00:41:29,510 DAVID J. Malan: Ето го. 909 00:41:29,510 --> 00:41:30,280 [Мяу] 910 00:41:30,280 --> 00:41:31,690 DAVID J. Malan: Again. 911 00:41:31,690 --> 00:41:32,300 No. 912 00:41:32,300 --> 00:41:32,922 >> [Мяукане] 913 00:41:32,922 --> 00:41:35,380 DAVID J. Malan: така че ако сте някога е играл игра, разбира се, 914 00:41:35,380 --> 00:41:38,500 където нещата се случва на случаен принцип, като лошите идват или не 915 00:41:38,500 --> 00:41:41,350 идва към екрана, или неща падат или не падат, 916 00:41:41,350 --> 00:41:43,610 това е само защото нещо супер просто като това се случва. 917 00:41:43,610 --> 00:41:46,010 Избор на случайни числа, и ако това е по-малко от някаква стойност, 918 00:41:46,010 --> 00:41:49,100 Може да направите това, или може би да направя това. 919 00:41:49,100 --> 00:41:51,340 Ние може да приеме че в състояние. 920 00:41:51,340 --> 00:41:52,600 Нека да направим нещо по-различно. 921 00:41:52,600 --> 00:41:53,559 >> Позволете ми да се хвърлят, че далеч. 922 00:41:53,559 --> 00:41:56,058 Можете да се отървете от неща, от просто го плъзнете разстояние вляво 923 00:41:56,058 --> 00:41:56,810 и отдалечаване. 924 00:41:56,810 --> 00:42:00,310 Нека да вървим напред и да направи завинаги блок и много бързо да се направи нещо досадно. 925 00:42:00,310 --> 00:42:03,010 Нека да вървим напред и да каже "да играе звук мяу". 926 00:42:03,010 --> 00:42:06,620 Но аз не искам това да бъде прекалено досадно, така че позволете ми да вземете този блок, 927 00:42:06,620 --> 00:42:09,090 "Изчакайте една секунда" и обявление че няма повече място за него. 928 00:42:09,090 --> 00:42:11,310 Но ако отидете достатъчно близо, тя иска да отиде там. 929 00:42:11,310 --> 00:42:14,100 Така че нека отиде и тя ще нарасне до запълване на блока. 930 00:42:14,100 --> 00:42:15,932 Така че сега, че това е една линия. 931 00:42:15,932 --> 00:42:16,432 [Мяукане] 932 00:42:16,432 --> 00:42:18,473 DAVID J. Malan: Аз съм буквално прави това завинаги. 933 00:42:18,473 --> 00:42:19,360 Отново и отново. 934 00:42:19,360 --> 00:42:21,510 Това не е просто естествено звучене. 935 00:42:21,510 --> 00:42:24,800 Нека да вървим напред и да се промени това за нито една секунда, за две секунди 936 00:42:24,800 --> 00:42:25,854 и натиснете Enter. 937 00:42:25,854 --> 00:42:28,770 И това, което е хубаво за Scratch е , които можете да програмирате интерактивно. 938 00:42:28,770 --> 00:42:32,450 Направете промяна, може би удари Въведете или Играйте отново, и то просто ще продължим. 939 00:42:32,450 --> 00:42:34,962 Е, сега защо не правим нещо малко по-сладък? 940 00:42:34,962 --> 00:42:39,680 Вместо да правим всичко от нулата, позволете ми да отида напред и да се отворят аванс 941 00:42:39,680 --> 00:42:43,180 направи едно, че аз предварително печени, наречен "Pet котката." 942 00:42:43,180 --> 00:42:44,920 И ние ще публикуваме всички тези файлове онлайн, 943 00:42:44,920 --> 00:42:48,464 и проблем зададете нула, ще ви кажа, как да има достъп до тях и да ги отворят. 944 00:42:48,464 --> 00:42:49,880 И забележете, това е доста проста. 945 00:42:49,880 --> 00:42:53,860 Но по-рано, аз изглежда да са сграбчи на "завинаги" блок, така че аз имам една линия. 946 00:42:53,860 --> 00:42:55,500 И тогава аз имам един "ако" състояние. 947 00:42:55,500 --> 00:42:57,410 Имам Булев израз. 948 00:42:57,410 --> 00:43:00,100 >> Така че, на английски език, само погледна към това, особено ако никога не сте 949 00:43:00,100 --> 00:43:04,278 програмиран и преди, просто интуитивно, Какво е това ще направим, тази програма? 950 00:43:04,278 --> 00:43:06,910 >> [АУДИТОРИЯ бърборене] 951 00:43:06,910 --> 00:43:09,960 >> DAVID J. Malan: Ако погаля котката, котката ще мяу, нали? 952 00:43:09,960 --> 00:43:14,560 Защото "завинаги махнете отметката" се показалеца на мишката да докосва котката. 953 00:43:14,560 --> 00:43:17,630 Така че, за да бъде ясно, а аз не съм казал, това и преди, всички тези пъзел 954 00:43:17,630 --> 00:43:20,750 парчета и скрипт, който сме ги комбинират в, 955 00:43:20,750 --> 00:43:25,510 така да се каже, скрипт е синоним програма, наистина, принадлежи към тази котка. 956 00:43:25,510 --> 00:43:30,110 И причината е-- защото известие как същата тази котка тук, се освети, 957 00:43:30,110 --> 00:43:32,710 тук можете да създадете втора котка или куче или наистина 958 00:43:32,710 --> 00:43:33,970 всичко, което искате графично. 959 00:43:33,970 --> 00:43:35,900 Можете да импортирате нещо от Photoshop, или други подобни, 960 00:43:35,900 --> 00:43:38,300 и интегриране на нещо, ако искам да го направя за един проект. 961 00:43:38,300 --> 00:43:40,174 И това, което ще откриете, в крайна сметка, е, че 962 00:43:40,174 --> 00:43:44,800 могат да добавят скриптове, добавете пъзел парчета, на отделни знаци. 963 00:43:44,800 --> 00:43:47,210 Така че всички те принадлежат към тази котка. 964 00:43:47,210 --> 00:43:51,770 Така че сега, ако отида напред и да играе тази програма, нищо не се случва. 965 00:43:51,770 --> 00:43:52,970 Но тя се изпълнява. 966 00:43:52,970 --> 00:43:56,364 Програмата е в това завинаги контур, вид на изчакване за това, което се случи? 967 00:43:56,364 --> 00:43:57,230 >> [АУДИТОРИЯ бърборене] 968 00:43:57,230 --> 00:43:58,130 >> DAVID J. Malan: За да погаля котката. 969 00:43:58,130 --> 00:43:59,800 Така че, ако се движат мишката ми към him-- 970 00:43:59,800 --> 00:44:02,420 >> [Мяукане] 971 00:44:02,420 --> 00:44:04,450 >> DAVID J. Malan: Така че сега Аз съм зоологическа котката. 972 00:44:04,450 --> 00:44:07,330 В същото време, ние може да има двойна клон. 973 00:44:07,330 --> 00:44:10,370 Нека да вървим напред и да се отвори нагоре не погаля котката. 974 00:44:10,370 --> 00:44:12,160 Ние ще публикуваме това, както и онлайн. 975 00:44:12,160 --> 00:44:16,760 Това е малко повече комплекс, но се разбира 976 00:44:16,760 --> 00:44:18,780 можете да се досетите може би какво ще се случи. 977 00:44:18,780 --> 00:44:20,160 >> [Мяукане] 978 00:44:20,160 --> 00:44:23,900 >> DAVID J. Malan: Cat е мяукане, Гранд старо време. 979 00:44:23,900 --> 00:44:26,690 Но тази програма е разбира наречена "Не домашни любимци Котката" 980 00:44:26,690 --> 00:44:29,350 толкова ясно, искам да погаля котката. 981 00:44:29,350 --> 00:44:30,490 >> [Ревящи] 982 00:44:30,490 --> 00:44:31,940 >> DAVID J. Malan: Не погаля котката. 983 00:44:31,940 --> 00:44:34,230 Сега, нека да разгледаме още един пример тук. 984 00:44:34,230 --> 00:44:38,035 Това ще се нарича "Hi, Hi, Hi," от съображения за 985 00:44:38,035 --> 00:44:40,410 че ще бъде ясно, защото веднага след като стартирате тази thing-- 986 00:44:40,410 --> 00:44:41,401 >> [SEAL лай] 987 00:44:41,401 --> 00:44:43,942 DAVID J. Malan: Много лесен за напиши досадни програми нулата. 988 00:44:43,942 --> 00:44:45,300 [SEAL лай] 989 00:44:45,300 --> 00:44:48,540 DAVID J. Malan: Сега ние няма да отидат в големи подробности с всички от тях, 990 00:44:48,540 --> 00:44:51,150 но забележете има няколко нови функции тук. 991 00:44:51,150 --> 00:44:55,540 Има една променлива, наречена "заглушава" и след това има един куп условия. 992 00:44:55,540 --> 00:44:57,900 И за сега, нека просто ви дразни с думите 993 00:44:57,900 --> 00:45:03,170 че ако този човек стане твърде досадно, Мога да се удари в интервала, и той спира. 994 00:45:03,170 --> 00:45:05,880 Тъй като ролята се играе от тези две скриптове е както следва. 995 00:45:05,880 --> 00:45:08,510 Един от тях се правят лай на всеки няколко секунди. 996 00:45:08,510 --> 00:45:11,305 Другият е само чакат за мен, за да удари интервал. 997 00:45:11,305 --> 00:45:14,780 И ако го направя, се удари в интервала, тя няма да се промени 998 00:45:14,780 --> 00:45:18,096 състоянието на тази променлива, стойността на тази променлива, това е очевидно 999 00:45:18,096 --> 00:45:20,470 наречен "заглушава" Аз не се обади това нещо скучно като N, 1000 00:45:20,470 --> 00:45:22,370 Аз го нарича английска дума, "изключен." 1001 00:45:22,370 --> 00:45:24,740 От 1 до 0 или от 0 до 1. 1002 00:45:24,740 --> 00:45:26,830 От верен на невярна или фалшива да е вярно. 1003 00:45:26,830 --> 00:45:28,930 И така, всъщност можете да виж сега, че сте 1004 00:45:28,930 --> 00:45:31,720 може да има две скриптове, две програмите, които работят едновременно, 1005 00:45:31,720 --> 00:45:34,360 и двете от тях може да се седи в цикъл прави нещо. 1006 00:45:34,360 --> 00:45:38,067 В очакване на човека, за да се направи нещо като удари интервал. 1007 00:45:38,067 --> 00:45:38,650 [SEAL лай] 1008 00:45:38,650 --> 00:45:40,566 DAVID J. Malan: И сега той е на път отново. 1009 00:45:40,566 --> 00:45:41,640 [SEAL лай] 1010 00:45:41,640 --> 00:45:45,220 DAVID J. Malan: Така че какво друго може да правим с тези примери? 1011 00:45:45,220 --> 00:45:50,920 Е, да вървим напред и да направя Например с броите овце. 1012 00:45:50,920 --> 00:45:59,210 Ще продължим по линиите тук на-- нека отворим примера овце. 1013 00:45:59,210 --> 00:46:02,460 И забележете, подобно преди, този път, за щастие, е малко по-малко досадно. 1014 00:46:02,460 --> 00:46:06,940 След като ударих играе тук-- О, не, това е досадно. 1015 00:46:06,940 --> 00:46:10,130 Той ще BAA с някои вероятност. 1016 00:46:10,130 --> 00:46:11,050 Да играем отново. 1017 00:46:11,050 --> 00:46:15,221 >> [SHEEP BLEETING] 1018 00:46:15,221 --> 00:46:18,470 DAVID J. Malan: Единствената разлика е, ние променихме костюма, така да се каже, 1019 00:46:18,470 --> 00:46:21,710 и ние сме се намали наполовина и да кажа, това, което е, че реалното число. 1020 00:46:21,710 --> 00:46:24,680 Ами да вървим напред и да вземе това една стъпка по-нататък. 1021 00:46:24,680 --> 00:46:28,190 И позволете ми да ви дразни с една друга особеност тук. 1022 00:46:28,190 --> 00:46:31,800 Да вървим напред и да се отворят програма, наречена Threads. 1023 00:46:31,800 --> 00:46:36,620 Толкова много, така че може да има един спрайт, има множество скриптове, 1024 00:46:36,620 --> 00:46:41,250 можете да имате два спрайтове, птица в котка, всяка от които има свои собствени скрипт. 1025 00:46:41,250 --> 00:46:43,976 И всеки от тях може да работят едновременно. 1026 00:46:43,976 --> 00:46:45,980 Ако някога сте чули Думата "многонишковост" 1027 00:46:45,980 --> 00:46:49,240 компютър е "многонишкови" означава той може да направи много неща наведнъж, 1028 00:46:49,240 --> 00:46:50,880 и, разбира се, така че могат да надраскат. 1029 00:46:50,880 --> 00:46:52,690 >> И сега забележи птицата е вид ням. 1030 00:46:52,690 --> 00:46:55,100 Тя просто си върши неща случайно, подскачащи на разстояние от екрана. 1031 00:46:55,100 --> 00:46:59,460 Ясно е, че котката е била програмирана някак да има търсещи възможности 1032 00:46:59,460 --> 00:47:02,680 до дома си в върху птицата, защото той винаги сочи към него. 1033 00:47:02,680 --> 00:47:06,176 Докато накрая, той хваща застроена птицата. 1034 00:47:06,176 --> 00:47:08,550 Така че аз няма да се спирам на подробностите тук, но можете да вид 1035 00:47:08,550 --> 00:47:12,160 зърнат същите фигури, някои "Ако" условия, някои променливи, 1036 00:47:12,160 --> 00:47:15,740 може би някои вериги, са в крайна сметка прави същото нещо. 1037 00:47:15,740 --> 00:47:18,400 >> Сега нека да вървим напред и да се отвори нещо съвсем друго, 1038 00:47:18,400 --> 00:47:20,920 да дразни някои от вас, по-специално тези, по-удобно, 1039 00:47:20,920 --> 00:47:22,760 какво всъщност може да се направи с това. 1040 00:47:22,760 --> 00:47:26,080 Отивам да вървим напред и да се отворят Button тук. 1041 00:47:26,080 --> 00:47:28,740 И това е супер прост-привидната програма, 1042 00:47:28,740 --> 00:47:34,190 но внимавайте какво ще се случи когато Аз-- Внимавай какво 1043 00:47:34,190 --> 00:47:39,860 се случва, когато отворя тази версия от него, тук в браузъра, scratch.mit.edu. 1044 00:47:39,860 --> 00:47:43,460 И когато кликнете върху този голям червен бутон, забележете какво се случва. 1045 00:47:43,460 --> 00:47:46,110 1046 00:47:46,110 --> 00:47:47,647 И така, какво става тук? 1047 00:47:47,647 --> 00:47:50,480 Има действително много по-голяма сложност става под капака, 1048 00:47:50,480 --> 00:47:52,896 въпреки че аз съм изпълнена това, или откровено, Дан Брадли 1049 00:47:52,896 --> 00:47:54,660 е въвела тази толкова просто. 1050 00:47:54,660 --> 00:47:59,540 Той е разработен по поръчка Scratch пъзел парче, известно като удължаване на надраскване, 1051 00:47:59,540 --> 00:48:01,300 той го нарече Toggle. 1052 00:48:01,300 --> 00:48:06,332 >> И това, което прави, е да Toggle го изпраща съобщение по интернет. 1053 00:48:06,332 --> 00:48:08,290 И че самото съобщение изглежда малко загадъчен. 1054 00:48:08,290 --> 00:48:10,248 Но това също, ще разбере до края на термина. 1055 00:48:10,248 --> 00:48:14,930 Посланието той всъщност изпращане изглежда малко нещо като това. 1056 00:48:14,930 --> 00:48:15,921 Това е просто текст. 1057 00:48:15,921 --> 00:48:16,420 Cryptic. 1058 00:48:16,420 --> 00:48:19,130 Ще го разберем с времето можем да се справим определя седем. 1059 00:48:19,130 --> 00:48:22,180 Това е просто изпращане на текстово съобщение през интернет към сървър. 1060 00:48:22,180 --> 00:48:24,330 И този сървър е, в крайна сметка, Говорим за тази крушка, която 1061 00:48:24,330 --> 00:48:27,240 има един от тези фантазия крушки в това, че сама по себе си говори 1062 00:48:27,240 --> 00:48:30,760 до Wi-Fi интернет в мрежата тук, където местен устройство надолу тук-- 1063 00:48:30,760 --> 00:48:34,400 и, в крайна сметка, това е всъщност завъртане, че светлината и изключване. 1064 00:48:34,400 --> 00:48:36,240 Но ние можем да направим повече интересни неща на едно място. 1065 00:48:36,240 --> 00:48:38,270 Забележете какво Dan също е направил за нас. 1066 00:48:38,270 --> 00:48:42,210 Той направи няколко спрайтове, всеки от който има скрипт чакат за едно кликване. 1067 00:48:42,210 --> 00:48:44,030 И ако аз кликнете червено, тя отива в червено. 1068 00:48:44,030 --> 00:48:46,780 Ако получа син, тя отива синкава. 1069 00:48:46,780 --> 00:48:49,854 Зелено, жълто, оранжево. 1070 00:48:49,854 --> 00:48:52,520 И всичко това се случва по Ще изход в интернет, 1071 00:48:52,520 --> 00:48:54,690 отстъпи тук до крушка, и изключване. 1072 00:48:54,690 --> 00:48:57,981 >> И ако можете да it-- вярваме и това е може би един от най-сложните Scratch 1073 00:48:57,981 --> 00:49:00,930 проекти някой има implemented-- той го е направил, в справедливостта, в един ден. 1074 00:49:00,930 --> 00:49:04,180 И това беше предизвикателство, пред което хвърли Дан, когато видяхме има двоични крушки, 1075 00:49:04,180 --> 00:49:05,810 имаме Scratch, как можем да ги комбинираме? 1076 00:49:05,810 --> 00:49:08,410 И наистина, това е абсолютно нещо, някой в ​​тази стая 1077 00:49:08,410 --> 00:49:14,250 може да направи от end-- семестър е той пренаписани двоични крушки, използващи 1078 00:49:14,250 --> 00:49:18,310 същия интерфейс, който беше на нашата IPAD в сряда. 1079 00:49:18,310 --> 00:49:22,000 Така че сега, ако аз действително кликнете плюса тук, 1080 00:49:22,000 --> 00:49:25,250 ние имаме една, две, три. 1081 00:49:25,250 --> 00:49:27,550 I може да удари 16 и се обърнат, че един на. 1082 00:49:27,550 --> 00:49:29,440 128, и така нататък. 1083 00:49:29,440 --> 00:49:31,250 >> Сега, ако само това има издухано ума си, 1084 00:49:31,250 --> 00:49:35,680 бихте могли да направите неща, далеч по-достъпни, която не включва всеки хардуер сигурност. 1085 00:49:35,680 --> 00:49:38,320 Само неща по себе си екран. 1086 00:49:38,320 --> 00:49:41,110 И наистина, това, което повечето студенти свърши това е някаква игра, 1087 00:49:41,110 --> 00:49:44,600 някаква част от художествено произведение, или някакъв вид интерактивна анимация. 1088 00:49:44,600 --> 00:49:47,352 И аз ще кажа, един от нашите любими е бил този. 1089 00:49:47,352 --> 00:49:49,060 А аз си мислех, ако ние може да намаляване на осветлението, 1090 00:49:49,060 --> 00:49:52,960 ние ще се поглед към този последен Scratch проект в заключение. 1091 00:49:52,960 --> 00:49:57,460 Но това, което ще трябва да имате предвид, като Мога да ви дразни с един последен детайл, 1092 00:49:57,460 --> 00:49:59,140 секциониране ще започне следващата седмица. 1093 00:49:59,140 --> 00:50:00,830 Работно време ще започнат следващата седмица. 1094 00:50:00,830 --> 00:50:04,410 Проблем зададете нула, ще бъде публикуван Късно CS50.harvard.edu днес. 1095 00:50:04,410 --> 00:50:06,430 И вие ще бъдете посрещнати в проблем зададете нула 1096 00:50:06,430 --> 00:50:10,070 към собствената Zamyla Chan CS50, който ръководи повечето от нашите реални тестове. 1097 00:50:10,070 --> 00:50:11,952 Те са вградени видео в сетовете проблемните 1098 00:50:11,952 --> 00:50:15,160 че ще държа ръката ти през много на първоначалния набор нагоре и през много 1099 00:50:15,160 --> 00:50:16,570 от възможните решения дизайн. 1100 00:50:16,570 --> 00:50:19,570 Така че, ако някога сте имали тази емоция когато бране на домашна работа 1101 00:50:19,570 --> 00:50:21,030 и се чудех, къде да започнем? 1102 00:50:21,030 --> 00:50:23,510 Тя ще има този отговор за вас. 1103 00:50:23,510 --> 00:50:27,720 И сега, окончателно програма от един от вашите предшественици 1104 00:50:27,720 --> 00:50:30,659 в отговор на въпроса "Какво прави лисицата кажа?" 1105 00:50:30,659 --> 00:50:32,242 [MUSIC YLVIS, "Какво прави FOX кажа?] 1106 00:50:32,242 --> 00:50:40,178 1107 00:50:40,178 --> 00:50:41,666 >> YLVIS: (ПЕЕ) Dog отива вътък. 1108 00:50:41,666 --> 00:50:43,650 Cat отива мяу. 1109 00:50:43,650 --> 00:50:47,520 Bird отива чуруликане и мишка отива скърцат. 1110 00:50:47,520 --> 00:50:49,240 Крава отива Moo. 1111 00:50:49,240 --> 00:50:51,690 Frog отива грачене. 1112 00:50:51,690 --> 00:50:54,630 И слонът отива изсвирване с клаксон. 1113 00:50:54,630 --> 00:50:59,040 Ducks казват, шарлатанин и риба отиват Blub. 1114 00:50:59,040 --> 00:51:07,370 И печатът отива ак ак ак, но има един звук, който никой не знае, 1115 00:51:07,370 --> 00:51:10,330 какво прави лисицата кажа? 1116 00:51:10,330 --> 00:51:11,020 И 1117 00:51:11,020 --> 00:51:12,478 >> DAVID J. Malan: Това е за CS50. 1118 00:51:12,478 --> 00:51:15,436 Ние ще се видим в Пъзел ден и в понеделник. 1119 00:51:15,436 --> 00:51:16,424 >> [APPLAUSE] 1120 00:51:16,424 --> 00:51:19,882 >> [MUSIC YLVIS, "Какво прави FOX кажа?"] 1121 00:51:19,882 --> 00:51:24,840 1122 00:51:24,840 --> 00:51:28,820 >> Разказвач: И сега дълбоко мисли, по Дейвън Farnham. 1123 00:51:28,820 --> 00:51:31,770 1124 00:51:31,770 --> 00:51:34,570 Днес аз се удари в лице с телефонния указател. 1125 00:51:34,570 --> 00:51:38,160 Объркването, тъй като аз съм в вкъщи, гледат онлайн. 1126 00:51:38,160 --> 00:51:42,528