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