1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [За възпроизвеждане на музика] 3 00:00:10,830 --> 00:00:12,080 [MUSIC - ROSSINI, "RANZ DES Vaches "от Вилхелм Тел] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIC - на английски BEAT "МАРТ На въртящия глави "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Аплодисменти и аплодисменти] 8 00:02:31,510 --> 00:02:33,520 >> DAVID Malan: Значи това е CS50. 9 00:02:33,520 --> 00:02:34,730 Моето име е Дейвид Malan. 10 00:02:34,730 --> 00:02:39,250 И 73% от вас са без предварителен опит с компютърни науки, 11 00:02:39,250 --> 00:02:41,300 противно на това, което може би си мислите. 12 00:02:41,300 --> 00:02:45,290 Така че днес ние решихме, че ще чип далеч по това непознаване, но и 13 00:02:45,290 --> 00:02:48,970 ще ви даде усещане за това, за тези от вас, с повече комфорт, който посоки 14 00:02:48,970 --> 00:02:50,550 можете да отидете този семестър. 15 00:02:50,550 --> 00:02:51,890 >> Така че нека да започнем с това. 16 00:02:51,890 --> 00:02:55,490 Аз наистина нямам идея какво е вътре в компютър, въпреки че, като теб, I 17 00:02:55,490 --> 00:02:56,780 го използвате всеки ден. 18 00:02:56,780 --> 00:03:00,000 Но това е някаква кутия, а има и не са толкова много входове в него. 19 00:03:00,000 --> 00:03:01,350 Минимално, има, какво? 20 00:03:01,350 --> 00:03:03,120 Вероятно захранващ кабел. 21 00:03:03,120 --> 00:03:06,640 >> И наистина с тази съставка, електроенергия, като че ли е в състояние да 22 00:03:06,640 --> 00:03:09,490 прави доста малко тези дни. 23 00:03:09,490 --> 00:03:12,130 Но в края на деня, ние трябва да представят нещата 24 00:03:12,130 --> 00:03:12,860 че ни е грижа за. 25 00:03:12,860 --> 00:03:15,240 Ние трябва да представят информация в някаква форма. 26 00:03:15,240 --> 00:03:18,365 И вие вероятно сте поне смътно запознати с идеята от двоичен или 27 00:03:18,365 --> 00:03:21,370 бита един или друг начин, компютри намалява до нули и единици. 28 00:03:21,370 --> 00:03:26,320 Но можем да прегърне, че и най-малко сложи малко светлина за това? 29 00:03:26,320 --> 00:03:28,880 >> Така че аз имам тези малки настолни лампи тук. 30 00:03:28,880 --> 00:03:30,450 Имам електрически контакт тук. 31 00:03:30,450 --> 00:03:33,930 И аз ще предложа вътре на компютъра е най-малко една от 32 00:03:33,930 --> 00:03:37,300 тези неща, нещо, което може да да бъде включена или изключена. 33 00:03:37,300 --> 00:03:40,200 В този случай, това е наистина една настолна лампа, но в по-ниско ниво, това е нещо, 34 00:03:40,200 --> 00:03:41,500 нарича транзистор. 35 00:03:41,500 --> 00:03:44,730 >> Но в нашия свят, това е една настолна лампа, така че Аз ще отида напред и да включите тази 36 00:03:44,730 --> 00:03:47,990 в моя електроенергия тук. 37 00:03:47,990 --> 00:03:52,970 И аз твърдя, че използването на този прост, просто устройство, този прост ключ, I 38 00:03:52,970 --> 00:03:54,850 могат да представят информация. 39 00:03:54,850 --> 00:03:58,090 Например, точно сега, аз съм представлява нищо, нали? 40 00:03:58,090 --> 00:04:01,820 Аз съм представлява това, което аз ще се обадя на 0 или неверни, обратното на нещо 41 00:04:01,820 --> 00:04:03,130 действително присъства. 42 00:04:03,130 --> 00:04:07,050 Но ако просто завъртете този ключ, сега вече представляваше едно. 43 00:04:07,050 --> 00:04:10,720 Така че използването на този много просто парче памет, ако щете, аз може да представлява 44 00:04:10,720 --> 00:04:11,450 информация. 45 00:04:11,450 --> 00:04:14,350 >> Сега за съжаление, моя компютър Не мога да направя всичко, което много. 46 00:04:14,350 --> 00:04:17,430 Тя може да бъде само две стойности в целия свят - 47 00:04:17,430 --> 00:04:18,620 0 или 1. 48 00:04:18,620 --> 00:04:21,839 Но това, което е очевидно решение, сега, ако искаме да разширим нашата компютър 49 00:04:21,839 --> 00:04:25,120 памет и представлява повече не е само 0 и 1? 50 00:04:25,120 --> 00:04:27,060 >> Ами, нека да вземеш друг такъв битов. 51 00:04:27,060 --> 00:04:30,260 Да вземеш друг ключ, друг транзистор, обаче искате да 52 00:04:30,260 --> 00:04:31,130 мисля за това. 53 00:04:31,130 --> 00:04:34,170 Нека да вървим напред и включете тази в моя компютър, както добре. 54 00:04:34,170 --> 00:04:38,270 И аз ще твърдят, сега, че от с помощта на малко повече електроенергия и 55 00:04:38,270 --> 00:04:42,290 обръщат все повече от тези ключове на и разстояние, аз може да представлява повече такива 56 00:04:42,290 --> 00:04:43,020 информация. 57 00:04:43,020 --> 00:04:44,660 >> Така че точно сега, това е едно. 58 00:04:44,660 --> 00:04:48,120 Ако искам да сега представляват 2, което можех да направя това. 59 00:04:48,120 --> 00:04:51,510 Но обикновено, конвенция, както ще в крайна сметка виждам, ще трябва да го направя. 60 00:04:51,510 --> 00:04:55,260 Така че това е 0, това е едно. 61 00:04:55,260 --> 00:04:56,720 Това ще бъде 2. 62 00:04:56,720 --> 00:04:59,920 И не е изненадващо, че това ще бъде 3. 63 00:04:59,920 --> 00:05:02,610 >> Така че по този начин, все пак, може да ние разчитаме на още по-далеч? 64 00:05:02,610 --> 00:05:06,500 Ако получа трета малко, трета превключвател, това, което е най-голям брой мога сега 65 00:05:06,500 --> 00:05:09,720 брои до от 0? 66 00:05:09,720 --> 00:05:12,020 Така 7, ако аз съм се започне на 0, нали? 67 00:05:12,020 --> 00:05:15,980 Защото, ако изключите тази светлина и всъщност включите тази трета и последна 68 00:05:15,980 --> 00:05:20,090 светлина в електрически контакта си тук, тогава имам възможността да представляват 69 00:05:20,090 --> 00:05:24,930 всички от следните две стойности тук, две стойности тук, тук две стойности - 70 00:05:24,930 --> 00:05:32,610 и за да мога да представляват два пъти 2 пъти 2, или осем възможни стойности. 71 00:05:32,610 --> 00:05:36,340 И ако започна отчитане на 0, така че това е 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Така че тази бинарна. 73 00:05:37,480 --> 00:05:39,420 Това наистина е толкова просто като това. 74 00:05:39,420 --> 00:05:41,930 И щях да твърдят, че това всъщност е доста запознат с най- 75 00:05:41,930 --> 00:05:43,180 всички в тази стая. 76 00:05:43,180 --> 00:05:45,710 Нека да вървим напред и да отворите малък текстов редактор тук. 77 00:05:45,710 --> 00:05:49,040 >> И вие да си спомните, от началното училище че имаме неща като стотици 78 00:05:49,040 --> 00:05:51,970 място, десетки място, и тези, място. 79 00:05:51,970 --> 00:05:55,040 И припомни, че ако сте имали някои десетичната номер, като нещо произволно 80 00:05:55,040 --> 00:05:59,470 като 123, може да бъде възприета пишат, че под формата 81 00:05:59,470 --> 00:06:00,450 от тези три колони. 82 00:06:00,450 --> 00:06:04,070 И защо е 1, 2, 3, какво ние знаем като 123? 83 00:06:04,070 --> 00:06:11,220 Е, в най-лявата колона, ние имаме един 100 плюс два 10s, така че това е 120, 84 00:06:11,220 --> 00:06:14,250 плюс три 1-ци, така че това е 123. 85 00:06:14,250 --> 00:06:17,990 >> Сега този свят, че ние просто свети е точно същата, както 86 00:06:17,990 --> 00:06:21,150 сте били запознати с продължение на години, с изключение на сега, нашите колони 87 00:06:21,150 --> 00:06:22,060 не са сили на 10. 88 00:06:22,060 --> 00:06:23,780 Те са просто степени на 2. 89 00:06:23,780 --> 00:06:27,830 Така че, като има предвид, че е от тях място, това ще бъде на двойки място, това е 90 00:06:27,830 --> 00:06:29,540 ще бъде на четири крака място. 91 00:06:29,540 --> 00:06:33,260 >> И тъй като аз съм само с помощта на най-простите на механизми, които да обърне нещата 92 00:06:33,260 --> 00:06:37,100 и изключване - ток тече или електроенергия, която не тече - 93 00:06:37,100 --> 00:06:40,880 Аз съвсем не притежава същите изразителни диапазон, от 0 до девет. 94 00:06:40,880 --> 00:06:43,270 Ние ще продължим да го супер проста в този свят на компютри. 95 00:06:43,270 --> 00:06:45,060 Аз имам само 0 или 1 - 96 00:06:45,060 --> 00:06:47,890 и изключване на фалшиви или истински. 97 00:06:47,890 --> 00:06:52,610 >> И така, какво представлява точно сега 1, 1, 1, тъй като всеки от тях 98 00:06:52,610 --> 00:06:54,000 светлини свети. 99 00:06:54,000 --> 00:06:59,600 Е, това ми дава една 4 плюс един два, така че това е 6, плюс един милион, и това е 7. 100 00:06:59,600 --> 00:07:03,450 И значи ли това, поредица от три бита представлява броят 7. 101 00:07:03,450 --> 00:07:06,330 >> Така че през цялото това време, вътрешната страна на компютър, са произволен брой 102 00:07:06,330 --> 00:07:08,090 транзистори произволен брой битове. 103 00:07:08,090 --> 00:07:10,380 Но в края на деня, ние може да представлява информация 104 00:07:10,380 --> 00:07:12,560 най-просто, че. 105 00:07:12,560 --> 00:07:16,770 Сега за съжаление, ние сме Брой до 7 в CS50 до този момент, но 106 00:07:16,770 --> 00:07:18,550 се надяваме, ние можем да направим малко по-добре. 107 00:07:18,550 --> 00:07:19,550 И наистина можем. 108 00:07:19,550 --> 00:07:23,570 >> Да предположим, че ние като хора само произволно реши, че ще 109 00:07:23,570 --> 00:07:28,750 да свържа числа като 1 и 2, 3, 4, 5, 6, 7, с конкретни букви на 110 00:07:28,750 --> 00:07:29,410 азбуката. 111 00:07:29,410 --> 00:07:32,350 И по исторически причини, аз ще начало донякъде произволно, но аз съм 112 00:07:32,350 --> 00:07:36,880 щях да кажа, хората, ние ще реши като стандарт, в световен мащаб, че 113 00:07:36,880 --> 00:07:43,200 65 е броят на буквата A. 66 ще представлява B. Dot, точка, точка. 114 00:07:43,200 --> 00:07:45,140 90 ще представлява Z. писмо 115 00:07:45,140 --> 00:07:48,000 >> И нека предположим, ако наистина се въведе някакъв мисъл в нея, ние може да излезе 116 00:07:48,000 --> 00:07:50,860 с номера за удивителни знаци и малки букви, и наистина, 117 00:07:50,860 --> 00:07:52,710 други хора са направили, че за нас. 118 00:07:52,710 --> 00:07:56,410 Така че сега имахме бита с които можем да представляват числа, числа, с които 119 00:07:56,410 --> 00:08:00,130 можем да представляват букви, и с писма може да започне да композира 120 00:08:00,130 --> 00:08:02,650 имейли и печатни знаци на екрана. 121 00:08:02,650 --> 00:08:05,850 >> Така че нека ме покани, ако можех, осем смели доброволци - 122 00:08:05,850 --> 00:08:09,200 които не се интересуваме се появяват не само пред камерата, но в интернет - 123 00:08:09,200 --> 00:08:13,130 да дойде тук и да представляват осем такива бита, а не тези тримата. 124 00:08:13,130 --> 00:08:14,380 Така че какво ще кажеш за един, два? 125 00:08:14,380 --> 00:08:16,290 Какво ще кажеш за три? 126 00:08:16,290 --> 00:08:20,230 Какво ще кажете за четирима в светлина синьо, пет на края? 127 00:08:20,230 --> 00:08:21,250 За някой тук? 128 00:08:21,250 --> 00:08:25,320 Six отпред, седем пред, и осем отпред, както добре. 129 00:08:25,320 --> 00:08:29,050 >> Така че аз просто така се случи, за да са подготвени с един куп листчета. 130 00:08:29,050 --> 00:08:34,150 И на тези хартийки са числа които представят какво колони 131 00:08:34,150 --> 00:08:35,809 вие ще представлявате. 132 00:08:35,809 --> 00:08:36,740 Така ще бъде - как ти е името? 133 00:08:36,740 --> 00:08:37,570 >> Студентът: Anna Лия. 134 00:08:37,570 --> 00:08:40,370 >> DAVID Malan: Анна Лия, ти ще бъде 128s колона. 135 00:08:40,370 --> 00:08:41,059 Вие сте? 136 00:08:41,059 --> 00:08:41,510 >> Студентът: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID Malan: Chris ще е 64s колона. 138 00:08:43,620 --> 00:08:44,070 Вие сте? 139 00:08:44,070 --> 00:08:44,540 >> Студентът: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID Malan: Dan ще бъде 32s колона. 141 00:08:46,970 --> 00:08:47,470 >> Студентът: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID Malan: Pramit ще е 16S колона. 143 00:08:49,430 --> 00:08:50,290 >> Студентът: Лилиан. 144 00:08:50,290 --> 00:08:51,904 >> DAVID Malan: Лилиан ще бъде 8s. 145 00:08:51,904 --> 00:08:52,768 >> Студентът: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID Malan: Jill ще е 4S колона. 147 00:08:55,025 --> 00:08:55,400 >> Студентът: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID Malan: Мария ще бъде 2S, и? 149 00:08:57,000 --> 00:08:57,470 >> Студентът: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID Malan: Давид е 1S колона. 151 00:08:59,220 --> 00:09:02,030 Така че, ако вие може да засили малко напред, така че всеки може да види. 152 00:09:02,030 --> 00:09:05,370 Какво вие не виждате, е, че на гърба на тези листчета е 153 00:09:05,370 --> 00:09:09,760 малко мамят лист, че е на път да инструктира тези осем бита или 154 00:09:09,760 --> 00:09:12,380 вдигне ръка или не вдигне ръка. 155 00:09:12,380 --> 00:09:14,100 Ако ръката им върви нагоре, те са представлява 1. 156 00:09:14,100 --> 00:09:17,120 Ако ръката им остава надолу, те са представлява 0. 157 00:09:17,120 --> 00:09:21,410 >> В същото време, ние публиката трябва да бъде в състояние да разбера, на базата на тази 158 00:09:21,410 --> 00:09:26,490 картографиране, какво трибуквени думи тези хора са на път да се посочат. 159 00:09:26,490 --> 00:09:29,700 Така че в един момент, ти започваш да се прочетете на първа линия на гърба на 160 00:09:29,700 --> 00:09:32,880 ви мамят лист, а вие сте или ще се повиши или не вдигнете ръката си. 161 00:09:32,880 --> 00:09:35,710 Ако сте един, вие се повиши, ако ти си 0, стоиш там 162 00:09:35,710 --> 00:09:38,594 опасно, просто ей така. 163 00:09:38,594 --> 00:09:40,386 Go. 164 00:09:40,386 --> 00:09:43,945 Какъв номер, на първо място, са тези момчета представлява? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, нали? 168 00:09:49,560 --> 00:09:52,400 Имаме един в 64s колона, за 1 в 2s колона. 169 00:09:52,400 --> 00:09:56,340 Това ми дава 66, така че се появява да се представлява B. Така че 170 00:09:56,340 --> 00:09:57,075 момчета са написани - 171 00:09:57,075 --> 00:09:58,300 OK, това е достатъчно. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Така че сега нека преминем към нашето второ писмо. 174 00:10:01,610 --> 00:10:03,530 Go. 175 00:10:03,530 --> 00:10:06,860 Кой е най-бързият в математиката тук? 176 00:10:06,860 --> 00:10:07,750 Така 79. 177 00:10:07,750 --> 00:10:11,840 Отново, ако съберем всички колони , в която има един, в момента, просто 178 00:10:11,840 --> 00:10:14,840 както направихме преди с най-простата примери на 7, сега 179 00:10:14,840 --> 00:10:16,140 Номерът се получава 79. 180 00:10:16,140 --> 00:10:19,910 Кои според нашите карти е писмо O. Така че ние сме почти там. 181 00:10:19,910 --> 00:10:22,590 B, O. И накрая, проверете. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Какво те представлява в момента? 184 00:10:30,120 --> 00:10:31,370 По-малко консенсус. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Това е просто абсолютно шепот. 187 00:10:36,460 --> 00:10:40,090 Да, това е в действителност 87. 188 00:10:40,090 --> 00:10:40,490 Добре. 189 00:10:40,490 --> 00:10:44,480 >> Така че, ако ние сега карта, която се обратно горе - нека почнат да ни ASCII таблица, 190 00:10:44,480 --> 00:10:46,450 American Standard Code за Обмен на информация. 191 00:10:46,450 --> 00:10:47,700 Това ни дава писмото - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 не "бо", но "лък". И това е перфектно тъкмо навреме за вас, момчета да се поклони 194 00:10:54,810 --> 00:10:56,100 и главата на гърба. 195 00:10:56,100 --> 00:10:56,980 Благодаря Ви много. 196 00:10:56,980 --> 00:10:57,886 >> [APPLAUSE] 197 00:10:57,886 --> 00:10:59,136 >> DAVID Malan: Можете да ги запазите. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Въпреки, че всъщност, някой ще като настолна лампа, също? 200 00:11:05,942 --> 00:11:07,300 >> [HOOT ОТ ПУБЛИКАТА] 201 00:11:07,300 --> 00:11:08,390 >> DAVID Malan: Настолна лампа? 202 00:11:08,390 --> 00:11:10,850 >> [СМЯХ] 203 00:11:10,850 --> 00:11:11,860 >> DAVID Malan: Наистина ли? 204 00:11:11,860 --> 00:11:13,230 Настолни лампи за всички? 205 00:11:13,230 --> 00:11:14,310 Добре. 206 00:11:14,310 --> 00:11:20,990 Така че, като се започне с най-простите принципи, а сега сме не само брои 207 00:11:20,990 --> 00:11:24,750 от 0 нагоре по целия път до 7, ние сме Предполага се, че само с хвърляне повече 208 00:11:24,750 --> 00:11:28,080 бита или повече светлини или повече транзистори на този проблем, ние можем 209 00:11:28,080 --> 00:11:32,680 представляват по-големи и по-големи номера, и ергономични, по-големи и по-големи диапазони на 210 00:11:32,680 --> 00:11:33,780 азбуки, като английски. 211 00:11:33,780 --> 00:11:37,770 И само да вземем на доверие за днес По същия начин, че може да започнем да 212 00:11:37,770 --> 00:11:42,220 представляват графични и видео и всяко редица други медии, с които ние сме 213 00:11:42,220 --> 00:11:43,610 запознати днес. 214 00:11:43,610 --> 00:11:49,240 >> Така че това е CS50, и в този клас заедно от вас са, отново, много 215 00:11:49,240 --> 00:11:53,050 съученици, които имат най-малко преживяваме като вас. 216 00:11:53,050 --> 00:11:57,730 И Споменавам това само защото доста често, включително наскоро, един от 217 00:11:57,730 --> 00:12:01,860 първокурсник съветва събития и най- второкурсник миналата пролет консултиране 218 00:12:01,860 --> 00:12:06,420 събитие, често чуваме учениците отказват когато идва до масата CS, добре, 219 00:12:06,420 --> 00:12:10,070 Мислех си за да приемате това интро клас, но аз не съм истински 220 00:12:10,070 --> 00:12:11,120 компютър човек. 221 00:12:11,120 --> 00:12:13,220 Или, но всеки със сигурност знае повече от мен. 222 00:12:13,220 --> 00:12:17,340 И го сложа в най-големия шрифт възможно, за да предадат това послание, че 223 00:12:17,340 --> 00:12:18,730 това не е в действителност случай. 224 00:12:18,730 --> 00:12:21,100 >> И ако се чудите, трябва Аз, всъщност, да си тук? 225 00:12:21,100 --> 00:12:25,950 Осъзнайте, че не само, че това разбира се е заглавие Въведение в Computer 226 00:12:25,950 --> 00:12:31,740 Science, е Въведение в Computer Science I. Така че има наистина 227 00:12:31,740 --> 00:12:33,170 второ такова въвеждане. 228 00:12:33,170 --> 00:12:35,390 Значи не си в действителност, на грешното място. 229 00:12:35,390 --> 00:12:39,000 И сред целите, които имам за днес са да успокои такива притеснения 230 00:12:39,000 --> 00:12:42,430 може да има, но и да нарисува картина на това, което е в магазина за 231 00:12:42,430 --> 00:12:45,720 ученици по-малко и по-удобни така в този курс. 232 00:12:45,720 --> 00:12:49,320 >> Но първо, няколко думи за една от подаяния имате днес, сред които 233 00:12:49,320 --> 00:12:50,780 редица често задавани въпроси. 234 00:12:50,780 --> 00:12:54,290 Той е бил визията на нашите за известно време сега, за да се въведе нова класификация 235 00:12:54,290 --> 00:12:57,010 опция в този курс - а именно, сателитна / Ненасит. 236 00:12:57,010 --> 00:13:01,930 Философски погледнато, за мен това е много по-голяма, Много по-важно, че 237 00:13:01,930 --> 00:13:05,050 учениците от този клас се ангажират с материал, се оспорва от 238 00:13:05,050 --> 00:13:09,800 материал, и се тревожи много, много по-малко за механиката на действителните резултати 239 00:13:09,800 --> 00:13:12,590 и писмо оценки в семестър края, но наистина прегърнат 240 00:13:12,590 --> 00:13:13,970 курс и на неговия материал. 241 00:13:13,970 --> 00:13:18,140 И наистина това се чувства по-общо, за това, което е интересно за тях, за да 242 00:13:18,140 --> 00:13:21,390 чувстват оспорени и възнаградени, но без страх от провал. 243 00:13:21,390 --> 00:13:25,030 >> И наистина, това също е повтарящ се Темата в този и други встъпителна 244 00:13:25,030 --> 00:13:28,680 курсове в други области, които трябва този трепет, когато става въпрос за 245 00:13:28,680 --> 00:13:31,040 пускането пръстите един в непознати води. 246 00:13:31,040 --> 00:13:34,880 Самият аз, през 1995 г., е първокурсник. 247 00:13:34,880 --> 00:13:37,990 Бях много фокусирана върху е концентратор пра тук. 248 00:13:37,990 --> 00:13:41,060 И все пак винаги съм израснал с малко на интерес към компютърните науки. 249 00:13:41,060 --> 00:13:42,180 Винаги съм бил любопитен. 250 00:13:42,180 --> 00:13:47,610 >> Но тогава, дори, имах този страх от дори да е стъпвал в CS50, толкова много 251 00:13:47,610 --> 00:13:49,420 така че аз дори не пазаруват то първата година. 252 00:13:49,420 --> 00:13:53,460 И единствената причина да сложи крак в година вратата второкурсник е, защото аз 253 00:13:53,460 --> 00:13:55,340 е позволено да вземат да го давате / провалят. 254 00:13:55,340 --> 00:13:58,920 Но дори Успешно / неуспешно изисква да получа смелост да си запиша час 255 00:13:58,920 --> 00:14:01,970 с проф. Kernehan по това време, донесе този голям лист хартия, и да поиска 256 00:14:01,970 --> 00:14:04,470 му за неговия подпис и му разрешение да проучи 257 00:14:04,470 --> 00:14:05,700 тези непознати води. 258 00:14:05,700 --> 00:14:09,030 >> И това не е помогнал през последните години че когато правите това в CS50, когато 259 00:14:09,030 --> 00:14:12,500 използвани за да бъде Успешно / неуспешно, подобно би десетки или стотици съучениците си 260 00:14:12,500 --> 00:14:15,970 трябва да излезе, не дай Боже, в пред Sanders с тази форма, че 261 00:14:15,970 --> 00:14:19,520 в някои съзнанието представлява неспособност, Смея да твърдя, да изпълнява 262 00:14:19,520 --> 00:14:20,800 са на едно ниво вашите колеги. 263 00:14:20,800 --> 00:14:23,410 Което е смешно, но аз мисля, там е, че манталитета. 264 00:14:23,410 --> 00:14:27,210 И никога не е имало в тази култура на SAT / Ненасит или Успешно / неуспешно повече 265 00:14:27,210 --> 00:14:30,610 Като цяло, в този курс или наистина по този кампус. 266 00:14:30,610 --> 00:14:32,310 >> Така че тази година ние променихме това. 267 00:14:32,310 --> 00:14:35,630 Бих бил възторжен половина на този клас или повече приключи 268 00:14:35,630 --> 00:14:38,700 нагоре като CS50 сб / Ненасит. 269 00:14:38,700 --> 00:14:42,130 В срок от една година, би било чудесно ако почти всички са. 270 00:14:42,130 --> 00:14:44,410 След това може би ще работим на Буквите в Харвард 271 00:14:44,410 --> 00:14:45,480 Колеж по-общо. 272 00:14:45,480 --> 00:14:48,900 Но за сега, ще направим това в рамките на нашата собствена сфера и бих сърце 273 00:14:48,900 --> 00:14:53,400 съветваме ви да прегледате тези често задаваните въпроси и задават въпроси, както намерите за добре, така че 274 00:14:53,400 --> 00:14:58,000 се надяваме, че, за разлика от мен, ще не съвсем имат същия фактор страх, когато 275 00:14:58,000 --> 00:15:01,040 проучване на това, което е вероятно на непознато място. 276 00:15:01,040 --> 00:15:02,786 >> Така че това, което е CS50? 277 00:15:02,786 --> 00:15:06,150 Това е въведение към интелектуална предприятия на компютъра 278 00:15:06,150 --> 00:15:07,700 науката и изкуството на програмирането. 279 00:15:07,700 --> 00:15:08,770 Но какво всъщност означава това? 280 00:15:08,770 --> 00:15:12,510 >> Е, този момент, ние говорихме много за кратко за представяне на информацията. 281 00:15:12,510 --> 00:15:15,070 Но да предположим, че ние всъщност искат да се направи нещо с нея. 282 00:15:15,070 --> 00:15:17,890 Трябва да въведем понятието това, което ние ще се обадя на един алгоритъм. 283 00:15:17,890 --> 00:15:21,540 Един алгоритъм е процедура, процес, набор от инструкции за 284 00:15:21,540 --> 00:15:22,780 прави нещо. 285 00:15:22,780 --> 00:15:25,620 >> И един алгоритъм може да бъде нещо супер проста. 286 00:15:25,620 --> 00:15:28,660 Например, един пример, с които някои от вас може би са запознати е това 287 00:15:28,660 --> 00:15:29,350 нещо тук. 288 00:15:29,350 --> 00:15:32,510 Така че тази книга тук е все по- дата, но едно време, тя 289 00:15:32,510 --> 00:15:34,720 съдържа един куп имена и телефонни номера. 290 00:15:34,720 --> 00:15:37,710 И наистина, ако исках да се намери някой в ​​този телефонния указател - 291 00:15:37,710 --> 00:15:39,800 да речем, някой си Майк Смит - 292 00:15:39,800 --> 00:15:43,810 Мога да намеря Mike Smith във всеки брой на сравнително прости начини. 293 00:15:43,810 --> 00:15:47,700 Аз може да започне в началото и преминете към стр. 1, не съществува. 294 00:15:47,700 --> 00:15:49,240 Page 2, не е там. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 Това алгоритъм, е, че процес, нали? 297 00:15:53,430 --> 00:15:54,620 >> Така че това е правилно, нали? 298 00:15:54,620 --> 00:15:58,070 Малко съм идиот, за да го прави в този начин, но в крайна сметка ще го направя 299 00:15:58,070 --> 00:16:02,670 намерите фамилия S, и да се надяваме Mike е в този раздел, и ще стане 300 00:16:02,670 --> 00:16:04,100 направи с моя алгоритъм. 301 00:16:04,100 --> 00:16:05,440 Но със сигурност това не е интуитивен. 302 00:16:05,440 --> 00:16:08,020 Най-всеки разумен човек в тази стая не би направил това. 303 00:16:08,020 --> 00:16:10,180 Какво щеше да направиш? 304 00:16:10,180 --> 00:16:11,480 >> Щеше да отида право в средата, нали? 305 00:16:11,480 --> 00:16:12,000 Приблизително в средата. 306 00:16:12,000 --> 00:16:16,310 И разбираш, о, това са г-жа Така Mike Smith, фамилно име е Смит, 307 00:16:16,310 --> 00:16:19,050 не е ясно, след това в лявата половина на книгата. 308 00:16:19,050 --> 00:16:21,040 Той трябва да бъде към S е в правото. 309 00:16:21,040 --> 00:16:24,090 И в този момент, въпреки че повечето от нас не го прави в действителност, ние можем да 310 00:16:24,090 --> 00:16:27,125 буквално разкъса този проблем на половина. 311 00:16:27,125 --> 00:16:27,640 >> [Аплодисменти и аплодисменти] 312 00:16:27,640 --> 00:16:28,950 >> DAVID Malan: Благодаря ви. 313 00:16:28,950 --> 00:16:30,150 >> [Аплодисменти и аплодисменти] 314 00:16:30,150 --> 00:16:34,660 >> DAVID Malan: Можете да буквално да разкъса тази Проблемът на половина, оставяйки ме с, 315 00:16:34,660 --> 00:16:36,120 буквално, един проблем два пъти по-голям. 316 00:16:36,120 --> 00:16:39,750 Така че, ако този телефон книга е - и да го вероятно е - около 1000 страници, сега 317 00:16:39,750 --> 00:16:40,840 това е само 500. 318 00:16:40,840 --> 00:16:44,710 Ако аз направя това отново и осъзнавам, о, По дяволите, аз отидох твърде далеч, аз съм в Ts 319 00:16:44,710 --> 00:16:46,480 раздел, мога също - 320 00:16:46,480 --> 00:16:48,030 образно или буквално - 321 00:16:48,030 --> 00:16:50,260 откъснете в телефонния указател - това е всъщност много по-лесно това време. 322 00:16:50,260 --> 00:16:53,610 Аз буквално може да се откъснете от телефонния указател на две, оставяйки ме сега с 323 00:16:53,610 --> 00:16:55,186 1000 не не, 500 - 324 00:16:55,186 --> 00:16:56,680 250 страници. 325 00:16:56,680 --> 00:17:00,210 И аз мога да отида 125, и половината от това, и половината от това, и половината от това, 326 00:17:00,210 --> 00:17:04,760 докато най-накрая ще бъдат оставени с само една единствена страница. 327 00:17:04,760 --> 00:17:06,430 >> [СМЯХ] 328 00:17:06,430 --> 00:17:07,589 >> DAVID Malan: Това е най- част I успявало. 329 00:17:07,589 --> 00:17:10,400 Една-единствена страница, на която Майк се надяваме е. 330 00:17:10,400 --> 00:17:14,630 Сега тези различни алгоритми могат да бъдат сортиране на определени или оценени в 331 00:17:14,630 --> 00:17:15,270 различни начини. 332 00:17:15,270 --> 00:17:17,300 Първият от тях беше много линейна, нали? 333 00:17:17,300 --> 00:17:18,500 Обърни страницата, потърсете Mike. 334 00:17:18,500 --> 00:17:19,630 Обърни страницата, потърсете Mike. 335 00:17:19,630 --> 00:17:20,560 Това е много линейна. 336 00:17:20,560 --> 00:17:23,339 Ако има още една страница в телефона книга, тя вероятно ще ми отнеме 337 00:17:23,339 --> 00:17:27,380 още една секунда, още една единица от време, Въпреки това ние сме изчисляване време. 338 00:17:27,380 --> 00:17:32,470 >> Така че може да изготвя така тази линия тук, при което като размера на 339 00:17:32,470 --> 00:17:34,700 проблемни увеличава от ляво на дясно - 340 00:17:34,700 --> 00:17:37,480 телефонния указател става по-малък към по-голям - 341 00:17:37,480 --> 00:17:41,080 и времето ще се увеличава на вертикалната ос, по-голям 342 00:17:41,080 --> 00:17:42,030 телефонния указател е. 343 00:17:42,030 --> 00:17:46,180 Така че п е само обща променлива, която компютърни учени използват, за да представляват 344 00:17:46,180 --> 00:17:48,210 някаква стойност, някои номер. 345 00:17:48,210 --> 00:17:50,740 Така че п ще се повишават линейно. 346 00:17:50,740 --> 00:17:53,040 Два пъти размера на телефонния указател, това е Ще ми отнеме два пъти повече 347 00:17:53,040 --> 00:17:54,780 време, най-вероятно, за да намерите Mike. 348 00:17:54,780 --> 00:17:56,390 >> Сега можех да бъда умен за това, нали? 349 00:17:56,390 --> 00:17:57,800 Бях отегчен бързо. 350 00:17:57,800 --> 00:17:58,910 Би могъл да направи това, като двойки. 351 00:17:58,910 --> 00:18:01,870 Така че две страници, а след това четири, след шест, след това осем. 352 00:18:01,870 --> 00:18:05,220 И мога да започват да летят през него на малко по-бързо, макар и с незначителни риск от 353 00:18:05,220 --> 00:18:09,210 Превишение Mike, но това не е крива ще бъде по-различна. 354 00:18:09,210 --> 00:18:12,550 Тя все още продължава да бъде с права линия, но малко по-бързо. 355 00:18:12,550 --> 00:18:13,710 >> Но какво да направя? 356 00:18:13,710 --> 00:18:15,845 Аз всъщност направих нещо фундаментално по-добре. 357 00:18:15,845 --> 00:18:21,990 I постига това, което ние ще се обадя логаритмична времето, дневника на N, като тази зелена 358 00:18:21,990 --> 00:18:27,730 линия има много, много, много по права линия към него. 359 00:18:27,730 --> 00:18:33,050 И скоро, това предполага, тъй като някак подходи безкрайност все така постепенно, 360 00:18:33,050 --> 00:18:36,700 че в действителност може да вземе 1000 страници телефонен указател, удвои размера си 361 00:18:36,700 --> 00:18:39,610 следващата година - защото предполагам много повече хора се движат в града. 362 00:18:39,610 --> 00:18:43,250 >> Така че сега имам две хиляди страници, но как много повече стъпки е, че умни 363 00:18:43,250 --> 00:18:45,200 алгоритъм ще отнеме? 364 00:18:45,200 --> 00:18:46,060 Само един. 365 00:18:46,060 --> 00:18:48,060 Искам да кажа, че е нещо доста силно. 366 00:18:48,060 --> 00:18:51,400 Ако се върнем към 4000 страници следващата година, че ще ме вземат 367 00:18:51,400 --> 00:18:53,020 само още две стъпки. 368 00:18:53,020 --> 00:18:56,500 Така че можете да хвърлят по-голяма и по-голяма проблеми на мен, а не за разлика от Мрежата е 369 00:18:56,500 --> 00:18:59,560 хвърлят все по-големи проблеми всеки ден в Googles и Facebooks на 370 00:18:59,560 --> 00:19:01,590 света, и то не е толкова голям проблем. 371 00:19:01,590 --> 00:19:05,840 Защото аз слагам повече мисъл и грижи в ми алгоритъм, с която да се реши 372 00:19:05,840 --> 00:19:07,020 проблеми ефективно. 373 00:19:07,020 --> 00:19:09,260 >> И наистина, че ще бъде един от целите на този курс. 374 00:19:09,260 --> 00:19:11,230 Ще разбереш, по протежение на пътя, научите как да програмирате. 375 00:19:11,230 --> 00:19:13,360 Ще научите как да програмирате в произволен брой езици. 376 00:19:13,360 --> 00:19:16,670 Но в края на деня, време е за решаване на проблеми и получаване на 377 00:19:16,670 --> 00:19:20,490 по-добри в решаването на проблемите - и, както и в случаи като този, при решаването на проблеми 378 00:19:20,490 --> 00:19:22,030 по-ефективно. 379 00:19:22,030 --> 00:19:23,990 >> Сега този момент, ние сме направили това доста интуитивно. 380 00:19:23,990 --> 00:19:27,420 Да се ​​въведе нещо доста родово нарича pseudocode. 381 00:19:27,420 --> 00:19:29,150 Така че в крайна сметка ще получи, В този курс, за да 382 00:19:29,150 --> 00:19:30,570 различни езици за програмиране. 383 00:19:30,570 --> 00:19:34,280 Но днес ние ще го направя на английски език-като синтаксис, където можете просто вид казват 384 00:19:34,280 --> 00:19:37,330 какво искаш да кажеш, но ти си все така кратка и не се тревожи за 385 00:19:37,330 --> 00:19:38,960 граматика и цели изречения. 386 00:19:38,960 --> 00:19:41,600 Ти просто изразяват себе си като накратко е възможно. 387 00:19:41,600 --> 00:19:45,400 >> Така че pseudocode е английски като синтаксис, който представлява 388 00:19:45,400 --> 00:19:46,750 език за програмиране. 389 00:19:46,750 --> 00:19:51,170 И към тази цел, позволете ми да предложа ние сега се модел на процеса ние просто 390 00:19:51,170 --> 00:19:54,990 описано за преброяване нещо малко по различен начин, но този път да вземе 391 00:19:54,990 --> 00:19:59,040 виж това пет минути произведени видео от нашите приятели в TED, че 392 00:19:59,040 --> 00:20:03,170 определя какво pseudocode е, определя какво алгоритмично мислене е, и дори 393 00:20:03,170 --> 00:20:07,030 че например вие сте на път да се види е, в по себе си, супер проста, тя е 394 00:20:07,030 --> 00:20:09,820 ще започне да ни даде на психичното модел, лексиката, с която да 395 00:20:09,820 --> 00:20:14,588 направи много, много по-сложни алгоритми доста бързо. 396 00:20:14,588 --> 00:20:15,576 >> [Отваря файла VIDEO] 397 00:20:15,576 --> 00:20:29,920 >> [За възпроизвеждане на музика] 398 00:20:29,920 --> 00:20:31,100 >> Разказвач: Какъв е алгоритъмът? 399 00:20:31,100 --> 00:20:34,730 В компютърните науки, алгоритъм е набор от инструкции за решаване на някои 400 00:20:34,730 --> 00:20:36,620 проблем стъпка по стъпка. 401 00:20:36,620 --> 00:20:39,650 Обикновено алгоритми се изпълняват от компютри, но ние, хората имат 402 00:20:39,650 --> 00:20:41,230 алгоритми, както и. 403 00:20:41,230 --> 00:20:43,290 Например, как ще го за преброяване на броя 404 00:20:43,290 --> 00:20:44,750 на хора в една стая? 405 00:20:44,750 --> 00:20:47,980 Е, ако сте като мен, може би ще точка на всеки човек, един по 406 00:20:47,980 --> 00:20:50,120 време, и брои до от 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, и така нататък. 408 00:20:52,970 --> 00:20:54,140 >> Е, това е един алгоритъм. 409 00:20:54,140 --> 00:20:57,600 Всъщност, нека се опитаме да го изразят малко по-официално в pseudocode - 410 00:20:57,600 --> 00:21:00,700 English-подобен синтаксис, който прилича език за програмиране. 411 00:21:00,700 --> 00:21:02,580 Нека N равни 0. 412 00:21:02,580 --> 00:21:06,970 За всеки човек в стаята, задайте N равна на N плюс 1. 413 00:21:06,970 --> 00:21:08,400 >> Как да тълкуваме това pseudocode? 414 00:21:08,400 --> 00:21:12,840 Е, първа линия декларира, така да се каже, променлива наречена N и инициализира 415 00:21:12,840 --> 00:21:14,250 стойността си до 0. 416 00:21:14,250 --> 00:21:17,550 Това просто означава, че в началото на нашия алгоритъм, нещото, с което 417 00:21:17,550 --> 00:21:19,650 Разчитаме има стойност 0. 418 00:21:19,650 --> 00:21:22,620 В крайна сметка, преди да започнем да броим, ние не са преброили нищо все още. 419 00:21:22,620 --> 00:21:25,340 Извикването променлива N е просто допълнение. 420 00:21:25,340 --> 00:21:26,890 Бих могъл да я нарече най-нищо. 421 00:21:26,890 --> 00:21:30,560 >> Сега на втора линия demarks началото на линия, поредица от стъпки, които ще 422 00:21:30,560 --> 00:21:32,310 повторили някои брой пъти. 423 00:21:32,310 --> 00:21:35,910 Така че в нашия пример, стъпка взимаме разчита хората в стаята. 424 00:21:35,910 --> 00:21:38,730 Beneath втора линия е линия три, който описва как точно 425 00:21:38,730 --> 00:21:40,160 ние ще отидем за преброяване. 426 00:21:40,160 --> 00:21:43,440 Вдлъбнатината предполага, че това е трета линия, която ще се повтаря. 427 00:21:43,440 --> 00:21:47,380 >> Така че това, което казва, е, pseudocode че след като се започне от 0 за всеки 428 00:21:47,380 --> 00:21:50,690 човек в стаята, ще увеличаване на N от 1. 429 00:21:50,690 --> 00:21:53,050 Сега е този алгоритъм е правилно? 430 00:21:53,050 --> 00:21:54,580 Е, нека взрив върху него малко. 431 00:21:54,580 --> 00:21:57,270 Има ли работа, ако има двама души в стаята? 432 00:21:57,270 --> 00:21:58,170 Нека да видим. 433 00:21:58,170 --> 00:22:00,260 >> В съответствие едно, ние инициализира N на 0. 434 00:22:00,260 --> 00:22:03,660 За всеки от тези двама души, След това ние увеличаваме N от 1. 435 00:22:03,660 --> 00:22:07,310 Така че на първо пътуване през линия, ние актуализираме N от 0 до 1. 436 00:22:07,310 --> 00:22:11,070 На второ пътуване през същата линия, ние актуализираме N от 1 до 2. 437 00:22:11,070 --> 00:22:15,780 И така до края на този алгоритъм е, п е 2, които наистина съответства на броя на 438 00:22:15,780 --> 00:22:16,700 хора в стаята. 439 00:22:16,700 --> 00:22:17,760 >> Дотук добре. 440 00:22:17,760 --> 00:22:19,610 Какво ще кажете за един ъгъл случай, все пак? 441 00:22:19,610 --> 00:22:22,590 Предполагам има 0 души в стаята - освен мен, 442 00:22:22,590 --> 00:22:24,170 кой какво прави на отчитане. 443 00:22:24,170 --> 00:22:27,150 В съответствие едно, ние инициализира N на 0. 444 00:22:27,150 --> 00:22:30,280 Този път, обаче, трета линия не изпълнение на всички, тъй като не съществува 445 00:22:30,280 --> 00:22:31,370 човек в стаята. 446 00:22:31,370 --> 00:22:35,260 И така остава N 0, което съответства на Броят на хората в стаята. 447 00:22:35,260 --> 00:22:36,420 Много просто, нали? 448 00:22:36,420 --> 00:22:39,630 >> Но преброяване на хората един по един е доста неефективно, също, нали? 449 00:22:39,630 --> 00:22:40,920 Със сигурност можем да направим по-добре. 450 00:22:40,920 --> 00:22:43,120 Защо не се броят двама души наведнъж? 451 00:22:43,120 --> 00:22:49,300 Вместо броене 1, 2, 3, 4, 5, 6, 7, 8, и така нататък, защо не се брои, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, и така нататък? 453 00:22:51,460 --> 00:22:53,700 Той дори звучи по-бързо, и то със сигурност е така. 454 00:22:53,700 --> 00:22:56,240 >> Да изрази тази оптимизация в pseudocode. 455 00:22:56,240 --> 00:22:57,800 Нека N равни 0. 456 00:22:57,800 --> 00:23:02,450 За всяка двойка на хората в стаята, настроите N равна на N плюс 2. 457 00:23:02,450 --> 00:23:04,120 Много проста промяна, нали? 458 00:23:04,120 --> 00:23:06,750 Вместо да се брой хора, един в даден момент, вместо това разчита 459 00:23:06,750 --> 00:23:08,300 ги две в даден момент. 460 00:23:08,300 --> 00:23:10,980 Този алгоритъм е по този начин два пъти по-бързо от миналата. 461 00:23:10,980 --> 00:23:12,180 >> Но дали е вярно? 462 00:23:12,180 --> 00:23:12,920 Нека да видим. 463 00:23:12,920 --> 00:23:15,330 Има ли работа, ако има двама души в стаята? 464 00:23:15,330 --> 00:23:17,550 В съответствие едно, ние инициализира N на 0. 465 00:23:17,550 --> 00:23:20,920 За тази една двойка хора, След това ние увеличаваме N по две. 466 00:23:20,920 --> 00:23:24,860 И така до края на този алгоритъм е, N е 2, които наистина съответства на броя на 467 00:23:24,860 --> 00:23:25,650 хора в стаята. 468 00:23:25,650 --> 00:23:28,250 >> Да предположим, че има следваща 0 души в залата. 469 00:23:28,250 --> 00:23:30,840 В съответствие едно, ние инициализира N на 0. 470 00:23:30,840 --> 00:23:34,330 Както и преди, трета линия не изпълнява най-малко, тъй като няма никакви двойки 471 00:23:34,330 --> 00:23:35,380 на хората в залата. 472 00:23:35,380 --> 00:23:38,350 И така остава N 0, което наистина отговаря на броя на 473 00:23:38,350 --> 00:23:39,570 хора в стаята. 474 00:23:39,570 --> 00:23:42,280 >> Но какво, ако има три хора в стаята? 475 00:23:42,280 --> 00:23:44,130 Как работи този алгоритъм тарифа? 476 00:23:44,130 --> 00:23:44,990 Нека да видим. 477 00:23:44,990 --> 00:23:47,460 В съответствие едно, ние инициализира N на 0. 478 00:23:47,460 --> 00:23:50,870 За чифт от тези хора, След това ние увеличаваме N от 2. 479 00:23:50,870 --> 00:23:51,800 Но после какво? 480 00:23:51,800 --> 00:23:54,960 Там не е друг пълен чифт хора в стаята, така че втора линия не 481 00:23:54,960 --> 00:23:56,180 вече не се прилага. 482 00:23:56,180 --> 00:24:00,530 И така до края на този алгоритъм е, N все още е 2, което не е вярно. 483 00:24:00,530 --> 00:24:03,810 >> В действителност, този алгоритъм се казва, че е бъги, защото има грешка. 484 00:24:03,810 --> 00:24:05,820 Позволява обезщетение с някои нови pseudocode. 485 00:24:05,820 --> 00:24:09,670 Нека п равно 0 за всяка двойка на хората в стаята. 486 00:24:09,670 --> 00:24:12,550 Определете N равна на N плюс 2. 487 00:24:12,550 --> 00:24:17,140 Ако един човек остава несдвоен, настроите N равна на N + 1. 488 00:24:17,140 --> 00:24:20,140 За решаването на този конкретен проблем, ние сме въведени в съответствие с четири, а 489 00:24:20,140 --> 00:24:24,520 състояние, иначе известни като клон че тя изпълнява само ако има един 490 00:24:24,520 --> 00:24:26,640 лице, че не можем да двойка с друг. 491 00:24:26,640 --> 00:24:30,440 И така, сега, дали има едно или три или нечетен брой хора в 492 00:24:30,440 --> 00:24:33,290 стаята, този алгоритъм сега ще ги изброя. 493 00:24:33,290 --> 00:24:34,560 >> Можем ли да направим още по-добре? 494 00:24:34,560 --> 00:24:38,820 Е, ние може да разчита в 3s или 4s или дори 5s и 10s, но освен това, че е 495 00:24:38,820 --> 00:24:41,360 ще получите малко трудно да се посочи. 496 00:24:41,360 --> 00:24:44,660 В края на деня, независимо дали се извършва от компютри или хора, 497 00:24:44,660 --> 00:24:46,750 алгоритми са само набор на инструкции, 498 00:24:46,750 --> 00:24:48,290 които да решават проблеми. 499 00:24:48,290 --> 00:24:49,792 Това са само три. 500 00:24:49,792 --> 00:24:52,404 Какъв проблем бихте решили с алгоритъм? 501 00:24:52,404 --> 00:24:52,901 >> [END възпроизвеждане на видео] 502 00:24:52,901 --> 00:24:55,883 >> DAVID Malan: Това е единственият път, Аз ще се явявам в карикатура форма. 503 00:24:55,883 --> 00:25:01,050 Но къде, че историята свършва, сега, е как можем да се справим по-добре? 504 00:25:01,050 --> 00:25:04,680 Тройки и четворки, твърдим, че можем да разчитаме хора, много по-бързо, но можем ли да 505 00:25:04,680 --> 00:25:06,290 направи фундаментално по-добре от това? 506 00:25:06,290 --> 00:25:07,540 И аз залог можем. 507 00:25:07,540 --> 00:25:11,980 >> Ако въведем малко от нашата собствена pseudocode тук, аз отивам да предложи 508 00:25:11,980 --> 00:25:14,550 че можем да постигнем ред като този. 509 00:25:14,550 --> 00:25:17,280 Ние няма да се брои хора един, два, три, четири. 510 00:25:17,280 --> 00:25:19,470 Ние няма да отидем два, четири, шест, осем. 511 00:25:19,470 --> 00:25:23,390 Ние ще направим фундаментално по-добре от преосмисляне на проблема и в тази 512 00:25:23,390 --> 00:25:27,080 случай, деблокирането на иначе неизползван ресурс. 513 00:25:27,080 --> 00:25:31,460 >> В един момент, аз се надявам, че ще простя и ни настроение, изправяне в 514 00:25:31,460 --> 00:25:34,470 място, като в този момент, че ще изискват от всеки един от вас да поеме в 515 00:25:34,470 --> 00:25:36,400 умове на номер 1. 516 00:25:36,400 --> 00:25:39,560 Вие тогава ще все опасно, с течение на времето, да намерите 517 00:25:39,560 --> 00:25:42,740 някой друг, който стои, комбинирайте си номера заедно 518 00:25:42,740 --> 00:25:43,720 чрез добавянето им нагоре. 519 00:25:43,720 --> 00:25:47,490 Един от вас след това ще се състезаваш да седи надолу първа, и на другия човек 520 00:25:47,490 --> 00:25:48,880 ще се повтори. 521 00:25:48,880 --> 00:25:53,090 >> С други думи, чрез посяване на всички ти с номер 1, а след това 522 00:25:53,090 --> 00:25:57,800 комбиниране на тези 1s в 2s и тези 2s в 4s, с всички, все 523 00:25:57,800 --> 00:26:02,740 в седнало положение, трябва, в края на този алгоритъм, имате само един кредит 524 00:26:02,740 --> 00:26:07,570 душа, която не седна достатъчно бързо, но който има целия брой публика 525 00:26:07,570 --> 00:26:09,180 в ума си. 526 00:26:09,180 --> 00:26:13,730 >> Така че, ако ще, да вървим напред и - стъпка едно - се изправи на мястото си. 527 00:26:13,730 --> 00:26:15,600 И изпълни. 528 00:26:15,600 --> 00:26:36,580 >> [CROWD мърморене] 529 00:26:36,580 --> 00:26:38,820 >> DAVID Malan: Знаете ли където Lauren е? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [CROWD мърморене] 532 00:27:23,350 --> 00:27:24,340 >> DAVID Malan: Добре? 533 00:27:24,340 --> 00:27:39,110 >> [CROWD мърморене] 534 00:27:39,110 --> 00:27:41,365 >> DAVID Malan: Добре, ние трябва да се към края. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Ние виждаме един човек стои тук още. 537 00:27:47,670 --> 00:27:48,770 Кой друг трябва да се свърже? 538 00:27:48,770 --> 00:27:50,020 Ако вие искате да оформите двойка. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Някой отгоре. 541 00:27:56,520 --> 00:27:58,150 Защо да не подадат ръка тук. 542 00:27:58,150 --> 00:28:01,370 За много малко хора, които все още стои, какво ли номера 543 00:28:01,370 --> 00:28:02,790 имат в ума си? 544 00:28:02,790 --> 00:28:04,020 >> Студентът: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID Malan: 78 плюс - 546 00:28:06,010 --> 00:28:07,840 който стои тук? 547 00:28:07,840 --> 00:28:08,370 >> Студентът: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID Malan: Plus 39. 549 00:28:09,590 --> 00:28:12,310 Plus кой друг още стои? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 Добре, кой друг? 552 00:28:15,960 --> 00:28:17,200 Друг 81? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 И тогава какво има в гърба? 555 00:28:19,210 --> 00:28:20,360 >> Студентът: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID Malan: 49, плюс? 557 00:28:21,812 --> 00:28:22,950 >> Студентът: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID Malan: 98 плюс? 559 00:28:24,980 --> 00:28:28,190 Това ли е някой друг? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Добра работа. 562 00:28:30,460 --> 00:28:33,610 >> [СМЯХ] 563 00:28:33,610 --> 00:28:34,690 >> DAVID Malan: О, 112 - 564 00:28:34,690 --> 00:28:35,410 о. 565 00:28:35,410 --> 00:28:36,220 Добра работа! 566 00:28:36,220 --> 00:28:38,660 >> [СМЯХ] 567 00:28:38,660 --> 00:28:42,570 >> [APPLAUSE] 568 00:28:42,570 --> 00:28:43,820 >> DAVID Malan: Някой друг още стои? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Съжаляваме? 571 00:28:47,260 --> 00:28:48,110 >> Студентът: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID Malan: 99. 573 00:28:49,810 --> 00:28:52,620 Някой друг още стои? 574 00:28:52,620 --> 00:28:57,290 А общият брой на учениците тук всъщност, по - 575 00:28:57,290 --> 00:28:59,400 имате ли номер? 576 00:28:59,400 --> 00:29:03,170 О, реалният брой на хората в стая, според предвид, че 577 00:29:03,170 --> 00:29:07,660 учебните събратя правят по пътя на всеки един, е 729. 578 00:29:07,660 --> 00:29:11,070 Тоест, от групичката студенти от Харвард , които се броят на 579 00:29:11,070 --> 00:29:14,126 Отговорът е 637. 580 00:29:14,126 --> 00:29:15,480 >> [СМЯХ] 581 00:29:15,480 --> 00:29:16,350 >> DAVID Malan: Толкова близо. 582 00:29:16,350 --> 00:29:17,360 Но все още. 583 00:29:17,360 --> 00:29:22,110 ОК, така че това е учение момент, нали? 584 00:29:22,110 --> 00:29:24,120 Това в момента е това, което описват като грешка. 585 00:29:24,120 --> 00:29:28,120 Някъде по пътя, ние направихме някои аритметична погрешно, или някой, седна, 586 00:29:28,120 --> 00:29:29,930 или наляво, или нещо се е объркало. 587 00:29:29,930 --> 00:29:30,930 Но това е добре. 588 00:29:30,930 --> 00:29:33,390 Защото дори все още, ние имам доста близо. 589 00:29:33,390 --> 00:29:37,480 И бих твърдят, че стигнахме до погрешно отговори на много по-бързо, отколкото си 590 00:29:37,480 --> 00:29:39,770 с моя по-линейна подход. 591 00:29:39,770 --> 00:29:42,630 >> Така че нека да приемем, че е в действителност се получи, че правилно, но мисля сега за това, което 592 00:29:42,630 --> 00:29:46,870 се случва всеки път, срещу моя собствена наивна посочи алгоритъм. 593 00:29:46,870 --> 00:29:48,420 Едно, две, три. 594 00:29:48,420 --> 00:29:53,010 Ако наистина е имало 729 или 637 души тук, че щеше да ми отнеме 595 00:29:53,010 --> 00:29:57,720 буквално 637 или 729 соченето с пръст и 596 00:29:57,720 --> 00:29:59,490 увеличаване моя общ брой. 597 00:29:59,490 --> 00:30:01,910 И мога да го направя малко по-добре от става две, четири, шест, осем, и 598 00:30:01,910 --> 00:30:05,660 удвои тази скорост, може би дори тройно или четворни, в зависимост колко добре мога 599 00:30:05,660 --> 00:30:07,110 направи това преброяване в главата ми. 600 00:30:07,110 --> 00:30:10,720 >> Но този подход, че вие ​​се е коренно различна. 601 00:30:10,720 --> 00:30:12,770 Защото в началото, всички от вас се изправи. 602 00:30:12,770 --> 00:30:14,620 Така че всичко 729. 603 00:30:14,620 --> 00:30:17,370 И тогава буквално половината от вас седна. 604 00:30:17,370 --> 00:30:19,720 И след това, друга половината от вас седна. 605 00:30:19,720 --> 00:30:22,650 И след това, друга половината от вас седна. 606 00:30:22,650 --> 00:30:27,470 >> И общият брой пъти, че момчета можеше да седна е приблизително 607 00:30:27,470 --> 00:30:31,740 осем или девет или десет пъти общо, в зависимост от това, което нашият общ брой е. 608 00:30:31,740 --> 00:30:33,300 И ние можем някак да направя това в обратна посока. 609 00:30:33,300 --> 00:30:37,740 Ако имахме 1024 души в залата, на Общият брой пъти, които могат да 610 00:30:37,740 --> 00:30:41,870 намаляване наполовина на 1024 души е 10. 611 00:30:41,870 --> 00:30:43,370 >> Сега мисля за това в другата посока. 612 00:30:43,370 --> 00:30:49,170 Да предположим, абсурдно, че сме имали, да речем четири милиарда хора в тази зала, 613 00:30:49,170 --> 00:30:50,860 или малко по-голяма стая. 614 00:30:50,860 --> 00:30:54,550 Колко пъти ще сме отишли чрез този алгоритъм, така че половината 615 00:30:54,550 --> 00:30:58,110 от този клас сяда? 616 00:30:58,110 --> 00:31:03,050 Той само ще вземе 32 такива операции, дори и в класа на размера 617 00:31:03,050 --> 00:31:03,770 четири милиарда. 618 00:31:03,770 --> 00:31:04,055 Защо? 619 00:31:04,055 --> 00:31:06,980 Тъй четири милиарда отива в две млрд., отива до един милион, отива в 620 00:31:06,980 --> 00:31:09,925 500 млн., отива на 250 милиона, точка, точка, точка. 621 00:31:09,925 --> 00:31:14,940 Мога само да направя това разделение около 32 пъти, като в този момент, всички, с изключение 622 00:31:14,940 --> 00:31:17,820 един човек ще се оставя да престои. 623 00:31:17,820 --> 00:31:21,590 >> И това също е нещо мощно Идеята, че все по-често ще се опитаме да 624 00:31:21,590 --> 00:31:24,690 ливъридж в този курс, и по- програмиране и компютърни науки повече 625 00:31:24,690 --> 00:31:29,400 Като цяло, тези микроби на идеята с които след това могат да решават проблеми много, 626 00:31:29,400 --> 00:31:31,130 много по-силно. 627 00:31:31,130 --> 00:31:34,610 Така че започнахме доста прости с тази pseudocode и момче в една стая, но 628 00:31:34,610 --> 00:31:38,205 сега с цяла стая пълна с хора направихме фундаментално по-добре. 629 00:31:38,205 --> 00:31:41,460 >> Е, нека сега прехода от pseudocode до известна действителният код. 630 00:31:41,460 --> 00:31:44,200 Този език вие сте на път да се види случи да се нарича JavaScript, и 631 00:31:44,200 --> 00:31:46,190 ще се върнем към този към семестър в края. 632 00:31:46,190 --> 00:31:49,960 Това е език за програмиране, който използвате, за да направите уеб сайтове и други такива 633 00:31:49,960 --> 00:31:51,360 софтуер в наши дни. 634 00:31:51,360 --> 00:31:54,890 И ние сме го използвали, благодарение на приятел наш в Станфорд, за да кодира 635 00:31:54,890 --> 00:31:56,630 някаква скрита информация тук. 636 00:31:56,630 --> 00:31:59,500 Това е изкуството на стеганография, така да се каже, където можете да се скриете 637 00:31:59,500 --> 00:32:03,990 Информацията в това, което иначе изглежда е шум или напълно различна 638 00:32:03,990 --> 00:32:05,220 изображение напълно. 639 00:32:05,220 --> 00:32:10,120 Но вградени в този конкретен образ наистина е тайното послание на видове. 640 00:32:10,120 --> 00:32:12,950 >> Така че нека да вървим напред и издърпайте нагоре едно и също изображение тук, това 641 00:32:12,950 --> 00:32:14,270 време в уеб браузър. 642 00:32:14,270 --> 00:32:17,710 И аз ще махна с ръка на някои от подробностите за днес, по-специално 643 00:32:17,710 --> 00:32:21,780 За тези от вас, които това изглежда не само JavaScript, но гръцката, като 644 00:32:21,780 --> 00:32:23,930 напълно непознат език. 645 00:32:23,930 --> 00:32:26,190 Но това е пример за език за програмиране. 646 00:32:26,190 --> 00:32:30,660 >> И за сега, вземат на вярата, че този първи ред с код - 647 00:32:30,660 --> 00:32:32,470 и с код, аз просто означава текст. 648 00:32:32,470 --> 00:32:35,660 Текст, който бих могъл да буквално написали в Microsoft Word, ако имах 649 00:32:35,660 --> 00:32:37,630 правото софтуер, за да след това направи нещо с него. 650 00:32:37,630 --> 00:32:42,120 Програмиране сорс код, програмиране код, е наистина само текста и да го 651 00:32:42,120 --> 00:32:45,420 изглежда по различен начин въз основа на какъв език , който използвате, не за разлика от английски и 652 00:32:45,420 --> 00:32:49,200 Испански и руски всичко изглежда различно когато ги въведете на клавиатурата. 653 00:32:49,200 --> 00:32:53,520 >> Така че този първи ред, за сега поемат вяра, просто се отваря графика от 654 00:32:53,520 --> 00:32:56,160 интернет, че шумна графичен току-що видяхме. 655 00:32:56,160 --> 00:32:59,900 Това следващия ред тук е един пример за линия, а ние всъщност видях, че едно и също 656 00:32:59,900 --> 00:33:01,130 жаргон във видеото TED. 657 00:33:01,130 --> 00:33:03,750 A контур е нещо, което се случва отново и отново, и въпреки че това 658 00:33:03,750 --> 00:33:08,440 абсолютно изглежда загадъчен, с дума за, както и някои скоби, и 659 00:33:08,440 --> 00:33:09,510 някои точка и запетая. 660 00:33:09,510 --> 00:33:13,070 Ще се върна на това след дълго, но това линия има по същество е 661 00:33:13,070 --> 00:33:17,310 казва програмата, обхождане на всички на тези шумни точки, от ляво на 662 00:33:17,310 --> 00:33:18,980 надясно, отгоре до долу. 663 00:33:18,980 --> 00:33:21,260 >> Защото в края на деня, един образ харесва - и ще можете действително 664 00:33:21,260 --> 00:33:22,860 вид я видите на този проектор - 665 00:33:22,860 --> 00:33:25,280 наистина е само една мрежа от точки. 666 00:33:25,280 --> 00:33:29,730 Така че можем да идентифицираме всяка от тези точки от координатната, X, Y, и с този 667 00:33:29,730 --> 00:33:33,890 програма, сега можем да започнем да направи нещо с тези точки. 668 00:33:33,890 --> 00:33:37,540 >> Така че това, което аз ще отида напред и тук да е аз отивам да се направят някои промени. 669 00:33:37,540 --> 00:33:41,000 Първо аз ще отида напред и да се отървете на всичко това зеленикаво и синкаво 670 00:33:41,000 --> 00:33:43,520 шум, и аз отивам да вървим напред и въведете следната 671 00:33:43,520 --> 00:33:45,710 несъмнено загадъчен синтаксис. 672 00:33:45,710 --> 00:33:48,020 IM за изображение. 673 00:33:48,020 --> 00:33:53,380 настроите синьото от адрес Х, запетая, населено място Y, на 0. 674 00:33:53,380 --> 00:33:55,610 С други думи, аз искам просто да изключете всички на син 675 00:33:55,610 --> 00:33:56,920 точки в тази снимка. 676 00:33:56,920 --> 00:33:59,800 >> Отивам да се продължи напред сега и кликнете това Run / Save бутона, и ще 677 00:33:59,800 --> 00:34:02,850 забележите на дясната страна, полученото изображение се появява. 678 00:34:02,850 --> 00:34:06,120 Сега си супер зелено, но това не е изненадващо, защото аз буквално се обърна 679 00:34:06,120 --> 00:34:11,070 разстояние, като се прави 1 на 0, всички синьото на тази снимка. 680 00:34:11,070 --> 00:34:12,540 >> Е, сега да го направим малко повече. 681 00:34:12,540 --> 00:34:16,989 IM за изображението, точка setGreen, X, Y. 682 00:34:16,989 --> 00:34:20,659 А това означава само обхождане от ляво на дясно и след това горе до долу. 683 00:34:20,659 --> 00:34:23,520 Изключи го със стойност 0, както и. 684 00:34:23,520 --> 00:34:24,750 Запиши. 685 00:34:24,750 --> 00:34:28,100 И на проектора, можете да всъщност не наистина да видя нищо. 686 00:34:28,100 --> 00:34:31,380 >> На моя лаптоп екран, ако надникне в точно по правилния начин, мога да видя малко на 687 00:34:31,380 --> 00:34:33,300 образ, защото те са все още някои червено там. 688 00:34:33,300 --> 00:34:35,540 Ако някога сте чували съкращението RGB - 689 00:34:35,540 --> 00:34:36,830 червено, зелено, синьо - 690 00:34:36,830 --> 00:34:39,110 тя се позовава на този състав на изображението, използвайки 691 00:34:39,110 --> 00:34:40,230 само на тези три цвята. 692 00:34:40,230 --> 00:34:43,159 И точно сега, ние сме изхвърля всичко зелено, синьо всичко, но 693 00:34:43,159 --> 00:34:44,500 там не е много червено. 694 00:34:44,500 --> 00:34:45,920 >> Така че позволете ми коляно на червено. 695 00:34:45,920 --> 00:34:47,070 Как мога да направя това? 696 00:34:47,070 --> 00:34:49,300 Ами, първо, аз ще попитам тази програма въпрос. 697 00:34:49,300 --> 00:34:52,030 Аз ще отида напред и нека го наречем променлива, както по алгебра. 698 00:34:52,030 --> 00:34:54,060 Можете да имате X или Y или Z. 699 00:34:54,060 --> 00:34:57,230 Отивам да се декларира променлива и да кажа, поставени в тази променлива, 700 00:34:57,230 --> 00:35:02,790 временно, стойността на снимки getRed стойност на х, у. 701 00:35:02,790 --> 00:35:05,870 >> И пак ще се върнем към всички на този детайл в бъдеще. 702 00:35:05,870 --> 00:35:10,630 Но за сега, просто приемете на доверие, че този ред иска програмата, какво 703 00:35:10,630 --> 00:35:12,740 е червен стойност на х, у? 704 00:35:12,740 --> 00:35:14,450 В тази конкретна точка? 705 00:35:14,450 --> 00:35:15,710 >> Тогава аз ще направя нещо за него. 706 00:35:15,710 --> 00:35:21,100 Тогава аз ще направя снимката точка набор червено в X, Y, Y, но този път аз ще 707 00:35:21,100 --> 00:35:24,760 засили това, като направите червени пъти, да речем, 10. 708 00:35:24,760 --> 00:35:26,870 Така че това се увеличи с фактор 10. 709 00:35:26,870 --> 00:35:29,880 Позволете ми да намалите сега и кликване може Run / Save. 710 00:35:29,880 --> 00:35:36,430 И готово, че е бил там цялата време, въпреки че нашите човешки очи 711 00:35:36,430 --> 00:35:37,900 не можеше да го види. 712 00:35:37,900 --> 00:35:41,470 >> И отново, това сега е реално код, за пример за език, който ние ще дойдем 713 00:35:41,470 --> 00:35:42,770 Върнете се в скоро. 714 00:35:42,770 --> 00:35:46,670 Но осъзнавам, особено тези от вас, без такъв опит, това е доста 715 00:35:46,670 --> 00:35:50,280 скоро, че ние самите ще бъдат писане на код като че има. 716 00:35:50,280 --> 00:35:54,520 В действителност, един инструмент, с който ти си всичко донякъде познато, може би, е CS50 е 717 00:35:54,520 --> 00:35:57,330 собствен път-търговски инструмент, който е всъщност рестартира това лято от някои 718 00:35:57,330 --> 00:36:01,070 на собствените си бивши ученици CS50 е, сега се обръщат TFS. 719 00:36:01,070 --> 00:36:04,740 >> Така че това се случва да бъде построен сайт на език, наречен PHP. 720 00:36:04,740 --> 00:36:08,510 Той използва база данни, наречена MySQL, неща с които ние ще се докопаме 721 00:36:08,510 --> 00:36:10,190 мръсни късно през семестъра. 722 00:36:10,190 --> 00:36:14,140 Но вярвате или не, дори нещо като това в крайна сметка се свежда до 723 00:36:14,140 --> 00:36:19,480 простите линии и условията и отрасли, като тези, видяхме само 724 00:36:19,480 --> 00:36:21,530 Преди малко в клипа TED. 725 00:36:21,530 --> 00:36:25,180 >> Това, което аз мислех, че ще направя сега е да не акции Просто нещо, което служителите са направили 726 00:36:25,180 --> 00:36:28,010 за колежа, а по-скоро нещо бивш ученик - три 727 00:36:28,010 --> 00:36:29,080 студенти, в действителност - 728 00:36:29,080 --> 00:36:33,950 направени през изминалата година, Sierra, Даниил и Сам, последната от които не са имали предхождаща 729 00:36:33,950 --> 00:36:36,370 програмиране опит когато се CS50. 730 00:36:36,370 --> 00:36:39,950 Както и за тяхното окончателен проект, те изложен на показ, в Fair CS50, на 731 00:36:39,950 --> 00:36:43,720 приложение, наречено wrdly, което е уеб-базирана програма, за която те направиха 732 00:36:43,720 --> 00:36:47,670 това видео, че реших да споделя с ще ви даде усещане за точно това, което е 733 00:36:47,670 --> 00:36:49,280 е възможно до края на термина. 734 00:36:49,280 --> 00:37:57,170 >> [За възпроизвеждане на музика] 735 00:37:57,170 --> 00:38:00,570 >> DAVID Malan: Това е от седмица Нула до седмица 12 през изминалата година. 736 00:38:00,570 --> 00:38:05,470 >> [APPLAUSE] 737 00:38:05,470 --> 00:38:09,520 >> DAVID Malan: Като закачка, твърде, наистина за загрявка е това, което е 738 00:38:09,520 --> 00:38:14,580 възможно, трябва да сте видели вече, или може скоро да видите, market.cs50.net, а 739 00:38:14,580 --> 00:38:17,710 нов инструмент, който екип на курса има работи по, този път в 740 00:38:17,710 --> 00:38:21,530 сътрудничество с харвардски студент Агенции, така че в началото на този година 741 00:38:21,530 --> 00:38:24,980 и продължаване надяваме в този идващото лято ще имат стандартен 742 00:38:24,980 --> 00:38:27,890 възможност на територията на колежа да се купуват и продават неща, които ви интересуват. 743 00:38:27,890 --> 00:38:32,220 И с партньорството чрез HSA, ще също така да бъде в състояние да се откажа елементи отстъпка 744 00:38:32,220 --> 00:38:35,950 в една от физически магазини HSA е в някакъв точка в бъдеще, така че да се 745 00:38:35,950 --> 00:38:39,150 прокси неща, особено ти като завърша и не е задължително да 746 00:38:39,150 --> 00:38:44,110 изхвърлете неща, но всъщност го плащат изпраща хора, които могат да ви следват 747 00:38:44,110 --> 00:38:45,270 тук на територията на колежа. 748 00:38:45,270 --> 00:38:46,740 Така че повече за това да дойде. 749 00:38:46,740 --> 00:38:49,830 >> Но малко по-конкретно, инструмент , че е дошъл от CS50 през последните 750 00:38:49,830 --> 00:38:52,760 година, с което някои от вас може да бъде запознати и други от вас може да бъде 751 00:38:52,760 --> 00:38:57,940 Гугъл сега, в CS50.net/2x, ще намерите линк към разширяване Chrome 752 00:38:57,940 --> 00:39:01,250 което е демонстративен това как можете да използвате JavaScript, че един и същ език ние 753 00:39:01,250 --> 00:39:06,660 използва с Айфеловата кула преди малко, за изпълнение на 2x скорост на възпроизвеждане 754 00:39:06,660 --> 00:39:09,000 за всички Харвард клипове iSites. 755 00:39:09,000 --> 00:39:11,880 Това е нещо, което е вградено в собствена видео плейър CS50 е. 756 00:39:11,880 --> 00:39:14,870 Но това също, ако започнете да се копае в изходния код, които ние ще 757 00:39:14,870 --> 00:39:18,840 щастливо предоставят, ще видите как можете дори да решават проблеми като този, 758 00:39:18,840 --> 00:39:23,180 ускоряване джаджи в уеб сайтове с които вече сте добре запознати. 759 00:39:23,180 --> 00:39:26,630 >> Така че една дума сега на курса и очаквания и това, което предстои. 760 00:39:26,630 --> 00:39:29,445 Като цяло, ние ще наистина се събират тук в понеделник и сряда - макар 761 00:39:29,445 --> 00:39:31,490 този петък, ще се съберат, защото Пазаруване на седмица - 762 00:39:31,490 --> 00:39:34,640 1:00-14:00, макар че понякога до 02:30 часа. 763 00:39:34,640 --> 00:39:38,700 Като се има предвид, че те биха могли да искат или трябва да се вземат някои клас в 14:00 764 00:39:38,700 --> 00:39:42,480 нататък, или дори преди това, осъзнават Курсът е в подкрепа на това, което се нарича 765 00:39:42,480 --> 00:39:45,900 едновременно записване, при което ние ще подкрепи петиция до Ad съвет и 766 00:39:45,900 --> 00:39:49,400 си пребиваващ декани от ваше име, ако имате конфликт някъде в тази 767 00:39:49,400 --> 00:39:50,790 1:00-2:30 диапазон. 768 00:39:50,790 --> 00:39:54,110 Ръководителят на този URL онлайн допълнителни подробности. 769 00:39:54,110 --> 00:39:57,750 >> Но от гледна точка на структурата за подкрепа която характеризира CS50, за студенти 770 00:39:57,750 --> 00:40:01,750 повече и по-малко удобни, така, ние Предлагаме различни песни на раздели. 771 00:40:01,750 --> 00:40:04,730 И това е след няколко седмици почивка, но Не след дълго ще бъдете помолени да 772 00:40:04,730 --> 00:40:05,770 вашия комфорт ниво. 773 00:40:05,770 --> 00:40:08,590 Вие сте сред тези, които по-малко удобни, по-удобно, или 774 00:40:08,590 --> 00:40:10,520 някъде по средата? 775 00:40:10,520 --> 00:40:13,150 >> И ще имаме три различни песни, които да се погрижат за 776 00:40:13,150 --> 00:40:14,470 точно в тези аудитории. 777 00:40:14,470 --> 00:40:17,900 Така че в нито един момент в срока трябва да дори се чувствате сякаш сте конкурентни 778 00:40:17,900 --> 00:40:21,390 срещу всеки студент с повече или по-малко опит от теб. 779 00:40:21,390 --> 00:40:24,160 Всъщност, разбира се е трябвало да бъде много по-голямо сътрудничество и много 780 00:40:24,160 --> 00:40:25,650 по-отворена от това. 781 00:40:25,650 --> 00:40:29,030 >> По отношение на проблема комплекти, ще че също така, че в допълнение към 782 00:40:29,030 --> 00:40:32,130 Стандартното издание на проблема всяка седмица настроен, че често се "хакер 783 00:40:32,130 --> 00:40:37,010 издание ", че е писано да бъдат насочени при 5% до 10%, или на 784 00:40:37,010 --> 00:40:40,270 демографски, който е наистина сред тези, по-удобно и бих желал повече 785 00:40:40,270 --> 00:40:43,960 на оспорване от стандартната издание на тази PSET очаква. 786 00:40:43,960 --> 00:40:46,390 Повече подробности за тези, които се намерено в учебната програма. 787 00:40:46,390 --> 00:40:49,430 >> Но и там може да се намери информация за курсовете края на ден. 788 00:40:49,430 --> 00:40:51,570 Обикновено проблемът определя се дължат в четвъртък. 789 00:40:51,570 --> 00:40:55,550 Въпреки това, можете да разширите много от вашите срокове тази есен от четвъртък до 790 00:40:55,550 --> 00:41:00,010 Петък просто по срещнем по средата, така да се каже, да отговорите на няколко загряване 791 00:41:00,010 --> 00:41:03,370 въпроси в някои от проблема на седмица комплекти, който автоматично ще 792 00:41:03,370 --> 00:41:05,710 След това ви даде допълнително 24 часа. 793 00:41:05,710 --> 00:41:09,120 Ние също ще падне най-ниската си оценка, съгласно учебната програма. 794 00:41:09,120 --> 00:41:12,170 >> За да ви дам представа за това какво на проблема комплекти са - защото това е наистина 795 00:41:12,170 --> 00:41:15,120 Проблемът на курса определя, че в крайна сметка определят почти всеки 796 00:41:15,120 --> 00:41:18,760 студента опит, още повече, че от лекции, повече, отколкото секции, повече 797 00:41:18,760 --> 00:41:21,230 така, отколкото повечето други аспект на курса. 798 00:41:21,230 --> 00:41:25,140 Миналата година, например, ние започнахме, като ще започне тази година, с нулата. 799 00:41:25,140 --> 00:41:29,150 Особено този петък, ще използваме, за само за един ден е време, графичен 800 00:41:29,150 --> 00:41:32,260 език за програмиране, с които ние ще начало програмиране чрез плъзгане и 801 00:41:32,260 --> 00:41:37,580 отпадане пъзел парчета, че само съберат физически дали има смисъл 802 00:41:37,580 --> 00:41:38,990 да го направят логично. 803 00:41:38,990 --> 00:41:43,460 >> Следващата седмица, ще бързо преминаване към C, доста стар, но много малък и 804 00:41:43,460 --> 00:41:48,510 прост език, който ще ни позволи да наистина отиде от 0 до 60 в течение 805 00:41:48,510 --> 00:41:52,290 Само за няколко седмици, след залог същите тези знания и умения на 806 00:41:52,290 --> 00:41:56,160 основни програмиране изгражда в по-високо ниво езици като PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, а трети все още. 808 00:41:58,240 --> 00:42:02,560 >> Миналата година, на третия PSET в хода е, че на криптографията, а 809 00:42:02,560 --> 00:42:06,380 домейн-конкретно приложение, чрез което оспорени учениците относно осъществяване на 810 00:42:06,380 --> 00:42:11,140 броят на цифрите, програми, с които да катеря или разяснявам информация, 811 00:42:11,140 --> 00:42:11,880 да го криптиране. 812 00:42:11,880 --> 00:42:16,300 За хакер издание, от друга страна, дадохме на хакерски студенти файл 813 00:42:16,300 --> 00:42:19,900 от стандартен компютър Unix, съдържащ потребителски имена и пароли, 814 00:42:19,900 --> 00:42:22,740 последната от които са криптирани, и ние с опонентите, хакер 815 00:42:22,740 --> 00:42:26,850 учениците да разшифровате, доколкото могат, тези пароли, все още, че 816 00:42:26,850 --> 00:42:27,770 същия домейн. 817 00:42:27,770 --> 00:42:30,580 >> Катеря, една игра, с които някои от вас може би са запознати. 818 00:42:30,580 --> 00:42:34,410 A криминалистите парче, където искаме студенти за възстановяване на данни, които са били 819 00:42:34,410 --> 00:42:38,530 иначе заличава от моя собствен цифров компактна светкавица на фотоапарата карта, от 820 00:42:38,530 --> 00:42:42,740 пишейки софтуер, за да разбера, Къде бяха нули и единици в 821 00:42:42,740 --> 00:42:46,850 че цифров фотоапарат, който по-рано съставен на JPEG графичен? 822 00:42:46,850 --> 00:42:49,710 >> Предизвикателство на видове през миналата година включва най-бързо писане 823 00:42:49,710 --> 00:42:53,160 за проверка на правописа възможно, като се конкурира срещу приятели и съученици, ако 824 00:42:53,160 --> 00:42:53,860 те биха искали. 825 00:42:53,860 --> 00:42:56,330 Изпълнение Huff "N Puff, за компресиране програма. 826 00:42:56,330 --> 00:43:01,930 И след това се сложи край на семестър с CS50 Финанси, уеб-базирано приложение с 827 00:43:01,930 --> 00:43:06,570 които създавате ETrade-подобен сайт да купуват и продават акции, така че да 828 00:43:06,570 --> 00:43:09,860 говори, като всъщност дърпа почти Котировки в реално време Yahoo! 829 00:43:09,860 --> 00:43:10,450 Финансите. 830 00:43:10,450 --> 00:43:13,590 >> Това, което не съм направил миналата година е един проблем, който остава в стаята 831 00:43:13,590 --> 00:43:14,810 въпреки това любимо. 832 00:43:14,810 --> 00:43:18,400 Ако никога не сте отишли ​​в shuttle.cs50.net, ще видите на потребителя 833 00:43:18,400 --> 00:43:19,670 намесвам малко като този. 834 00:43:19,670 --> 00:43:23,530 Но преди две години, на класа прилага, като се използва Google Maps и 835 00:43:23,530 --> 00:43:28,570 Google Earth плъгин и малко на акъл с шофиране из университета, 836 00:43:28,570 --> 00:43:33,290 така че целта на тази игра е, както можете да видите някои от лицата, 837 00:43:33,290 --> 00:43:37,530 е да карам из университета търсите служители, приятели преподаване и КТД, както и 838 00:43:37,530 --> 00:43:40,080 Когато го направите, извеждайки на вашия автобус. 839 00:43:40,080 --> 00:43:44,035 Нито един от тях действително изглежда да е тук, така че ще да въведете мамят код. 840 00:43:44,035 --> 00:43:47,150 >> [СМЯХ] 841 00:43:47,150 --> 00:43:48,430 >> DAVID Malan: Ето. 842 00:43:48,430 --> 00:43:49,240 Добре. 843 00:43:49,240 --> 00:43:51,750 И тук вече е на персонала завързана целия кампус. 844 00:43:51,750 --> 00:43:54,530 И както можете да видите, от дясната страна страна на екрана, на автобус 845 00:43:54,530 --> 00:43:55,510 има празни места. 846 00:43:55,510 --> 00:43:59,000 И целта е да се напише код, с който да се симулира тази 847 00:43:59,000 --> 00:44:01,790 шофиране и бране и отпадане изключване на пътници. 848 00:44:01,790 --> 00:44:04,960 Това едно, също с помощта на език нарича JavaScript. 849 00:44:04,960 --> 00:44:10,030 Така че, да осъзнаят, че програми като, че ще бъде на същата нашата траектория тази 850 00:44:10,030 --> 00:44:10,910 година, както и. 851 00:44:10,910 --> 00:44:13,640 >> От гледна точка, сега, от допълнителна подкрепа, имаме работно време. 852 00:44:13,640 --> 00:44:16,520 Както може би сте виждали в собствения си дом трапезарията или в Annenberg, 853 00:44:16,520 --> 00:44:19,280 ние ще бъдем в къщата трапезария зали четири вечери в седмицата - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Елиът и Annenberg тази година, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 И това, което решихме да направим тази година е нещо по-различно. 856 00:44:26,830 --> 00:44:29,650 >> Ако сте чули тътен миналата година, че това е малко прекалено стресиращо, това 857 00:44:29,650 --> 00:44:32,800 година на работното време, както ще опишем следващата седмица, ще бъде по-органичен, 858 00:44:32,800 --> 00:44:36,900 при която при пристигане, ще бъде изпратени в една определена маса 859 00:44:36,900 --> 00:44:39,860 където няколко членове на персонала очакват, и ние ще направим нещата много по- 860 00:44:39,860 --> 00:44:40,440 органично. 861 00:44:40,440 --> 00:44:43,740 Няма повече опашката, не повече IPAD, но по-скоро имат по-интимно 862 00:44:43,740 --> 00:44:47,300 разговори около масата на само осем или повече човека, така че да 863 00:44:47,300 --> 00:44:50,880 приблизителна усещането за това, което иначе ще бъде много по-малък клас. 864 00:44:50,880 --> 00:44:54,120 >> Ние предлагаме, както и тези неща, които Запознай нарича, видео заснет в 865 00:44:54,120 --> 00:44:57,330 предварително по един от преподаването на курса събратя, Zamyla, в който тя 866 00:44:57,330 --> 00:45:00,690 ходи ли до проблема за седмица комплекти, предлагащи съвети и трикове за 867 00:45:00,690 --> 00:45:02,640 предизвикателства, пред които ще бъдат изправени. 868 00:45:02,640 --> 00:45:06,230 И обратно, след проблемни групи са дължи, тази година, ние също така ще освободи 869 00:45:06,230 --> 00:45:09,100 малки клипове наричат ​​следсмъртни че всъщност ви преведе през 870 00:45:09,100 --> 00:45:13,630 представителни решения, както добро, така и лошо, чрез които можете да се направи извод колко 871 00:45:13,630 --> 00:45:17,550 бихте могли да имат или трябва да имат изпълнява своето собствено решение. 872 00:45:17,550 --> 00:45:20,500 >> И това, което ние ще предложим за първи път тази година, както и, по-специално 873 00:45:20,500 --> 00:45:23,420 за студентите, които се ползват на курса на друг 874 00:45:23,420 --> 00:45:28,580 ресурси, но въпреки това се борят твърде много, време 875 00:45:28,580 --> 00:45:33,030 себе си ще сдвоите тези студенти, както ресурсите позволяват, с преподаватели, така че 876 00:45:33,030 --> 00:45:35,840 имате много по-интимно възможност от трапезарии къща 877 00:45:35,840 --> 00:45:38,700 позволи една по-една помощ. 878 00:45:38,700 --> 00:45:42,780 >> Сега окончателно поглед към някои на крайните игри в очите. 879 00:45:42,780 --> 00:45:44,580 Може да бъде запознат с на CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Е, идва през декември, от 08:00 часа Ч. до 7:00, в началото на 881 00:45:48,120 --> 00:45:51,410 Четене период, ще има възможност да се съберат със съученици - 882 00:45:51,410 --> 00:45:53,130 това ще бъде около 21:00 - 883 00:45:53,130 --> 00:45:56,550 по време на който да се потопите в своя окончателен проекта изпълнението заедно 884 00:45:56,550 --> 00:45:59,910 съученици, приятели и храна. 885 00:45:59,910 --> 00:46:03,680 Това ще бъде около 01:00 AM, когато първата партида от храната пристигнали. 886 00:46:03,680 --> 00:46:08,470 И това е около 4:00, че съответната година в CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Но истинската кулминация на курса е предназначени за Fair CS50, един корпус-широк 888 00:46:12,000 --> 00:46:15,790 изложба на свои собствени окончателните проекти, към която семейството и приятелите са 889 00:46:15,790 --> 00:46:18,730 поканен, тъй като нашите работодатели и нашите приятели от индустрията. 890 00:46:18,730 --> 00:46:22,170 Това, например, е един поглед на 2000-те души, които са присъствали 891 00:46:22,170 --> 00:46:23,160 последните години. 892 00:46:23,160 --> 00:46:27,180 Изрази като тази не са рядкост, и по същия начин да си 893 00:46:27,180 --> 00:46:29,660 съученици наслаждават на нещата сте постигнали. 894 00:46:29,660 --> 00:46:33,170 >> И действително, за тази цел, ние имаме начало на периода случай, както и. 895 00:46:33,170 --> 00:46:37,400 Ако подобни неща апел към вас, или ти си най-малко любопитни за това какво 896 00:46:37,400 --> 00:46:41,590 това, знаем, че една нова традиция на Разбира се нарича CS50 Puzzle Day. 897 00:46:41,590 --> 00:46:45,710 И това бе създаден след няколко години назад наистина да сигнализира на кампуса 898 00:46:45,710 --> 00:46:48,930 че компютърната наука не е за програмиране, и то със сигурност не е 899 00:46:48,930 --> 00:46:51,960 за възприемане само тези студенти , които имат предишен опит. 900 00:46:51,960 --> 00:46:54,200 Това наистина е много за решаване на проблеми по-общо. 901 00:46:54,200 --> 00:46:57,360 >> И така Пъзел ден, през последните няколко години, се превърна в приятно 902 00:46:57,360 --> 00:47:00,500 партньорство с нашите приятели в Facebook, която ще има страхотна 903 00:47:00,500 --> 00:47:04,830 награди и пица по реката към I-лабораторията идната събота. 904 00:47:04,830 --> 00:47:09,180 Насочете се, че URL с две или три приятели, ако искате да участвате 905 00:47:09,180 --> 00:47:10,830 в тази нова традиция. 906 00:47:10,830 --> 00:47:14,180 >> Така че бих искал да ви помоля да запази един нещо в ума, а ние имаме само 907 00:47:14,180 --> 00:47:17,070 двеминути клип, на която да затвори днес. 908 00:47:17,070 --> 00:47:19,640 73% е броят да запомните. 909 00:47:19,640 --> 00:47:23,900 Cake, също ще ви очакват извън това неф като ние отложи само с 910 00:47:23,900 --> 00:47:26,710 няколко минути, което е традиция на курса, както добре. 911 00:47:26,710 --> 00:47:29,860 Но това е ключът цитат от Разбира се на учебната програма да се има предвид. 912 00:47:29,860 --> 00:47:32,820 Какво в крайна сметка има значение в този курс не е толкова много, когато ти свърши 913 00:47:32,820 --> 00:47:36,580 спрямо съучениците си, но когато ви, в 12-та седмица, в крайна сметка по отношение на 914 00:47:36,580 --> 00:47:37,960 себе си в Седмица 0. 915 00:47:37,960 --> 00:47:43,670 >> Но поглед, че ще те оставя с тук днес, е този, последният тук 916 00:47:43,670 --> 00:47:47,580 от същия нашата Daniel, който направи wrdly видео само преди миг. 917 00:47:47,580 --> 00:47:50,000 Оставям ви с този поглед на това, което предстои. 918 00:47:50,000 --> 00:47:53,360 И тъй като ние направим това, ако бихме могли да имаме CS50 служители от предната част на стаята 919 00:47:53,360 --> 00:47:57,280 да дойде до етап, да нарисува всички на повече от визуално изображение за 920 00:47:57,280 --> 00:47:59,100 какво ви очаква тази година - 921 00:47:59,100 --> 00:48:00,350 се неловко. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Ще завърша с това тук на екрана. 924 00:48:05,188 --> 00:48:18,634 >> [За възпроизвеждане на музика] 925 00:48:18,634 --> 00:48:21,124 >> DAVID Malan: Това е CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIC - MATT & KIM, "Всичко е наред"] 927 00:50:00,226 --> 00:50:03,245 >> SPEAKER 1: Обичам CS50 повече от котки. 928 00:50:03,245 --> 00:50:06,030 >> SPEAKER 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [СМЯХ] 930 00:50:06,990 --> 00:50:08,140 >> DAVID Malan: Това, тогава, е CS50. 931 00:50:08,140 --> 00:50:10,050 Ние ще се видим в петък. 932 00:50:10,050 --> 00:50:13,370 >> [Аплодисменти и аплодисменти] 933 00:50:13,370 --> 00:50:17,540 >> Разказвач: На следващото CS50, на сцената Демото не върви по план. 934 00:50:17,540 --> 00:50:19,080 >> DAVID Malan: Искаме да се намери Mike Smith в този телефонния указател. 935 00:50:19,080 --> 00:50:20,380 Е, какви са вашите инстинкти? 936 00:50:20,380 --> 00:50:23,750 Мога да скочи около до средата на в телефонния указател, погледна надолу, видя, че 937 00:50:23,750 --> 00:50:26,830 Аз съм най-M, и аз знаем, че Mike Смит не е в ляво. 938 00:50:26,830 --> 00:50:27,840 Той трябва да е в дясно. 939 00:50:27,840 --> 00:50:30,515 И така, в този момент, ние може буквално да разкъса - 940 00:50:30,515 --> 00:50:33,300 В този момент, ние можем буквално разкъса - 941 00:50:33,300 --> 00:50:36,490 В този момент, ние можем образно разкъсване на телефонния указател на половина. 942 00:50:36,490 --> 00:50:38,954 >> [UKELELE дрънкане]