1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Música tocando] 3 00:00:10,830 --> 00:00:12,080 [Music - Rossini, "RANZ DES Vaches "do Guillerme Tell] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [Music - The Beat INGLÉS, "MARZO Dos xefes xiratoria "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Aplausos e aclamacións] 8 00:02:31,510 --> 00:02:33,520 >> DAVID Malan: Entón iso é CS50. 9 00:02:33,520 --> 00:02:34,730 O meu nome é David Malan. 10 00:02:34,730 --> 00:02:39,250 E o 73% de vostedes non teñen experiencia previa coa ciencia da computación, 11 00:02:39,250 --> 00:02:41,300 ao contrario do que se podería pensar. 12 00:02:41,300 --> 00:02:45,290 Entón, hoxe, penso que sería desbastar na que a falta de familiaridade, pero tamén 13 00:02:45,290 --> 00:02:48,970 darlle un sentido de, para aqueles de vostedes con máis comodidade, que as direccións 14 00:02:48,970 --> 00:02:50,550 pode ir neste semestre. 15 00:02:50,550 --> 00:02:51,890 >> Entón, imos comezar con isto. 16 00:02:51,890 --> 00:02:55,490 Realmente non teño idea do que está dentro un ordenador, aínda que, coma ti, eu 17 00:02:55,490 --> 00:02:56,780 usalo todos os días. 18 00:02:56,780 --> 00:03:00,000 Pero é unha especie de caixa, e non hai non hai moitas entradas para el. 19 00:03:00,000 --> 00:03:01,350 Como mínimo, hai, o que? 20 00:03:01,350 --> 00:03:03,120 Probablemente un cable de alimentación. 21 00:03:03,120 --> 00:03:06,640 >> E, de feito, con este ingrediente, electricidade, parece que estamos a ser capaces de 22 00:03:06,640 --> 00:03:09,490 facendo un pouco nestes días. 23 00:03:09,490 --> 00:03:12,130 Con todo, ao final do día, ten que representar as cousas 24 00:03:12,130 --> 00:03:12,860 que nos preocupa. 25 00:03:12,860 --> 00:03:15,240 Temos que representan información de algunha maneira. 26 00:03:15,240 --> 00:03:18,365 E probablemente polo menos vagamente familiarizado coa idea de binario ou 27 00:03:18,365 --> 00:03:21,370 anacos de algunha maneira ou doutra, os ordenadores reducida a ceros e uns. 28 00:03:21,370 --> 00:03:26,320 Pero podemos abrazar iso e, polo menos, poñer un pouco de luz para iso? 29 00:03:26,320 --> 00:03:28,880 >> Entón, eu teño eses pequenos lámpadas de mesa aquí. 30 00:03:28,880 --> 00:03:30,450 Eu teño unha toma eléctrica aquí. 31 00:03:30,450 --> 00:03:33,930 E eu vou propoñer que dentro informático é, polo menos, unha das 32 00:03:33,930 --> 00:03:37,300 estas cousas, algo capaz de ser activado ou desactivado. 33 00:03:37,300 --> 00:03:40,200 Neste caso, é en realidade unha lámpada de mesa, pero no nivel máis baixo, é algo 34 00:03:40,200 --> 00:03:41,500 chamado un transistor. 35 00:03:41,500 --> 00:03:44,730 >> Pero, no noso mundo, é unha lámpada de mesa, de xeito Eu estou indo a ir adiante e chamar este 36 00:03:44,730 --> 00:03:47,990 no meu electricidade aquí. 37 00:03:47,990 --> 00:03:52,970 E eu afirmo que o uso deste sinxelo, dispositivo simple, este interruptor simple, eu 38 00:03:52,970 --> 00:03:54,850 pode representar información. 39 00:03:54,850 --> 00:03:58,090 Por exemplo, agora, eu son representa nada, non? 40 00:03:58,090 --> 00:04:01,820 Estou representando o que eu vou chamar 0 ou falso, o contrario de algo 41 00:04:01,820 --> 00:04:03,130 realmente estar presente. 42 00:04:03,130 --> 00:04:07,050 Pero se eu simplemente conectar esta opción, agora eu teño representado a 1. 43 00:04:07,050 --> 00:04:10,720 Entón, usando este sinxelo anaco de memoria, se queres, podo representar 44 00:04:10,720 --> 00:04:11,450 información. 45 00:04:11,450 --> 00:04:14,350 >> Agora, por desgraza, o meu ordenador non pode facer moito. 46 00:04:14,350 --> 00:04:17,430 El só pode representar dous valores en todo o mundo - 47 00:04:17,430 --> 00:04:18,620 0 ou 1. 48 00:04:18,620 --> 00:04:21,839 Pero o que é unha solución obvia, agora, se queremos ampliar o noso ordenador de 49 00:04:21,839 --> 00:04:25,120 memoria e representan máis que 0 e 1? 50 00:04:25,120 --> 00:04:27,060 >> Ben, imos incorporarse outro exemplo bit. 51 00:04:27,060 --> 00:04:30,260 Imos ir a outro interruptor, outro Transistor, pero desexa 52 00:04:30,260 --> 00:04:31,130 pense nisto. 53 00:04:31,130 --> 00:04:34,170 Déixeme ir adiante e chamar este no meu ordenador tamén. 54 00:04:34,170 --> 00:04:38,270 E eu vou afirmar, agora, que por usando un pouco máis de enerxía eléctrica e 55 00:04:38,270 --> 00:04:42,290 facendo máis destas opcións e en fóra, podo representar máis como 56 00:04:42,290 --> 00:04:43,020 información. 57 00:04:43,020 --> 00:04:44,660 >> Entón, agora, este é un. 58 00:04:44,660 --> 00:04:48,120 Se eu queira representar agora 2, eu podería facelo. 59 00:04:48,120 --> 00:04:51,510 Pero, normalmente, convención, como veremos finalmente ver, vai que eu faga iso. 60 00:04:51,510 --> 00:04:55,260 Polo tanto, este é 0, esta é unha. 61 00:04:55,260 --> 00:04:56,720 Este sería 2. 62 00:04:56,720 --> 00:04:59,920 E non sorprendente, iso sería 3. 63 00:04:59,920 --> 00:05:02,610 >> Así, deste xeito, aínda así, pode contamos-se aínda máis? 64 00:05:02,610 --> 00:05:06,500 Se eu conseguir un terceiro bit, un terceiro de rede, cal é o maior número que poida agora 65 00:05:06,500 --> 00:05:09,720 contarse a partir de 0? 66 00:05:09,720 --> 00:05:12,020 Entón 7 Se eu estou empezando a 0, non? 67 00:05:12,020 --> 00:05:15,980 Porque se eu transformar esa luz e realmente activar esta terceira e última 68 00:05:15,980 --> 00:05:20,090 luz na miña toma eléctrica aquí, entón eu teño a capacidade de representar 69 00:05:20,090 --> 00:05:24,930 ningún dos dous valores aquí, dous valores aquí, dous valores aquí - 70 00:05:24,930 --> 00:05:32,610 e para que eu poida representar 2 veces 2 veces Dous, ou oito valores posibles. 71 00:05:32,610 --> 00:05:36,340 E se eu comezar a contabilidade en 0, así que é 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Polo tanto, este binario. 73 00:05:37,480 --> 00:05:39,420 É realmente tan sinxelo coma iso. 74 00:05:39,420 --> 00:05:41,930 E eu diría que este é realmente moi familiar para a maioría 75 00:05:41,930 --> 00:05:43,180 todos nesta sala. 76 00:05:43,180 --> 00:05:45,710 Déixeme ir adiante e abrir unha editor de textos pouco aquí. 77 00:05:45,710 --> 00:05:49,040 >> E pode lembrar de escola primaria que tiñamos cousas como os centos 78 00:05:49,040 --> 00:05:51,970 lugar, o lugar de decenas, e aqueles lugar. 79 00:05:51,970 --> 00:05:55,040 E lembrar que, se tivo algún decimal número, como algo aleatorio 80 00:05:55,040 --> 00:05:59,470 como 123, faría esencialmente escribir isto na forma 81 00:05:59,470 --> 00:06:00,450 destes tres columnas. 82 00:06:00,450 --> 00:06:04,070 E por que é 1, 2, 3 que sabemos como 123? 83 00:06:04,070 --> 00:06:11,220 Ben, na columna máis á esquerda, temos unha 100, dous 10s, de xeito que é 120, 84 00:06:11,220 --> 00:06:14,250 tres 1s, de xeito que é 123. 85 00:06:14,250 --> 00:06:17,990 >> Agora, este mundo que nós só iluminada é exactamente o mesmo que 86 00:06:17,990 --> 00:06:21,150 xa estivo familiarizado con por anos, Só que agora, as nosas columnas 87 00:06:21,150 --> 00:06:22,060 non son potencias de 10. 88 00:06:22,060 --> 00:06:23,780 Son só potencias de 2. 89 00:06:23,780 --> 00:06:27,830 Así, mentres que o lugar querido, este será o lugar dobres, este é 90 00:06:27,830 --> 00:06:29,540 será o lugar de catro. 91 00:06:29,540 --> 00:06:33,260 >> E por que eu estou usando só a máis simple de mecanismos para converter as cousas 92 00:06:33,260 --> 00:06:37,100 on e off - electricidade está fluíndo ou electricidade non está fluíndo - 93 00:06:37,100 --> 00:06:40,880 Non pode ter a mesma expresión gama de 0 a nove. 94 00:06:40,880 --> 00:06:43,270 Estamos indo para mantelo super sinxelo neste mundo dos ordenadores. 95 00:06:43,270 --> 00:06:45,060 Teño só 0 ou 1 - 96 00:06:45,060 --> 00:06:47,890 off ou on, falso ou verdadeiro. 97 00:06:47,890 --> 00:06:52,610 >> E entón o que eu estou representando agora é 1, 1, 1, xa que cada unha destas 98 00:06:52,610 --> 00:06:54,000 luces é iluminada. 99 00:06:54,000 --> 00:06:59,600 Ben, iso dáme un 4, máis un 2, entón que é 6, máis un 1, e iso é 7. 100 00:06:59,600 --> 00:07:03,450 E ergo fai esa secuencia de tres bits representar o número 7. 101 00:07:03,450 --> 00:07:06,330 >> Entón todo este tempo, dentro do seu ordenador, ser calquera número de 102 00:07:06,330 --> 00:07:08,090 transistores, calquera número de bits. 103 00:07:08,090 --> 00:07:10,380 Con todo, ao final do día, pode representar información 104 00:07:10,380 --> 00:07:12,560 tan sinxelo que iso. 105 00:07:12,560 --> 00:07:16,770 Agora, por desgraza, só contaba ata 7 na, ata agora, CS50, pero 106 00:07:16,770 --> 00:07:18,550 espero que poidamos facer algo mellor que iso. 107 00:07:18,550 --> 00:07:19,550 E, de feito podemos. 108 00:07:19,550 --> 00:07:23,570 >> Supoña que nós, como seres humanos só decidiu arbitrariamente que imos 109 00:07:23,570 --> 00:07:28,750 para asociar números como 1, e 2, 3, 4, 5, 6, 7, coas letras específicas 110 00:07:28,750 --> 00:07:29,410 alfabeto. 111 00:07:29,410 --> 00:07:32,350 E por razóns históricas, vou iniciar un tanto arbitraria, pero estou 112 00:07:32,350 --> 00:07:36,880 vai dicir, os seres humanos, nós estamos indo decidir como un estándar, a nivel mundial, que 113 00:07:36,880 --> 00:07:43,200 65 representa o número da letra A. 66 representará B. Dot, punto, punto. 114 00:07:43,200 --> 00:07:45,140 90 representará letra Z. 115 00:07:45,140 --> 00:07:48,000 >> E imos supor que, se realmente poñer algúns penso niso, poderiamos chegar 116 00:07:48,000 --> 00:07:50,860 cos números de puntos de exclamación e letras minúsculas, e de feito, 117 00:07:50,860 --> 00:07:52,710 outras persoas teñen feito isto por nós. 118 00:07:52,710 --> 00:07:56,410 Entón, agora nós tiña anacos cos que podemos representar números, números cos que 119 00:07:56,410 --> 00:08:00,130 podemos representar letras, e con cartas agora podemos comezar a compoñer 120 00:08:00,130 --> 00:08:02,650 correos electrónicos e personaxes impresión na pantalla. 121 00:08:02,650 --> 00:08:05,850 >> Entón deixe-me invitar, se eu puidese, oito voluntarios bravos - 122 00:08:05,850 --> 00:08:09,200 que non lle importa que aparece non só na cámara, pero en Internet - 123 00:08:09,200 --> 00:08:13,130 para vir aquí e representar oito tales bits, en vez de tres. 124 00:08:13,130 --> 00:08:14,380 Así como sobre un, dous? 125 00:08:14,380 --> 00:08:16,290 Como preto de tres? 126 00:08:16,290 --> 00:08:20,230 Como preto de catro horas de luz azul, cinco á final? 127 00:08:20,230 --> 00:08:21,250 Sobre alguén aquí? 128 00:08:21,250 --> 00:08:25,320 Seis diante, sete por diante, e oito fronte, así como. 129 00:08:25,320 --> 00:08:29,050 >> Entón, eu só pasou para chegar preparado con unha morea de anacos de papel. 130 00:08:29,050 --> 00:08:34,150 E, estas pezas de papel son números que representan as columnas 131 00:08:34,150 --> 00:08:35,809 vostedes van representar. 132 00:08:35,809 --> 00:08:36,740 Entón vai ser - Cal é o seu nome? 133 00:08:36,740 --> 00:08:37,570 >> ALUMNO: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID Malan: Anna Leah, ten será a columna 128s. 135 00:08:40,370 --> 00:08:41,059 Está? 136 00:08:41,059 --> 00:08:41,510 >> ALUMNO: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID Malan: Chris vontade ser a columna de 64s. 138 00:08:43,620 --> 00:08:44,070 Está? 139 00:08:44,070 --> 00:08:44,540 >> ALUMNO: Dan 140 00:08:44,540 --> 00:08:46,970 >> DAVID Malan: Dan ganas ser a columna de 32s. 141 00:08:46,970 --> 00:08:47,470 >> ALUMNO: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID Malan: Pramit vontade ser a columna de 16s. 143 00:08:49,430 --> 00:08:50,290 >> ALUMNO: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID Malan: Lillian será a 8s. 145 00:08:51,904 --> 00:08:52,768 >> ALUMNO: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID Malan: Jill vontade ser a columna de 4s. 147 00:08:55,025 --> 00:08:55,400 >> ALUMNO: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID Malan: Mary será o 2s, e? 149 00:08:57,000 --> 00:08:57,470 >> ALUMNO: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID Malan: David vontade ser a columna de 1s. 151 00:08:59,220 --> 00:09:02,030 Entón, se vostedes poderían pisar un pouco cara diante para que todos poidan ver. 152 00:09:02,030 --> 00:09:05,370 O que vostedes non ven é que no redor deses anacos de papel é unha 153 00:09:05,370 --> 00:09:09,760 pouco cheat sheet que está a piques de instruír os oito bits para cada 154 00:09:09,760 --> 00:09:12,380 levantar a man ou non levantar a man. 155 00:09:12,380 --> 00:09:14,100 Se a súa man sobe, son representando un 1. 156 00:09:14,100 --> 00:09:17,120 Se a súa man queda para abaixo, son representa un 0. 157 00:09:17,120 --> 00:09:21,410 >> Mentres tanto, o público debe ser capaz de descubrir, derivada 158 00:09:21,410 --> 00:09:26,490 cartografía, o que a palabra de tres letras estes persoas están a piques de deletrear. 159 00:09:26,490 --> 00:09:29,700 Así, en só un momento, que vai ler a primeira liña fóra da parte traseira 160 00:09:29,700 --> 00:09:32,880 súa folla de fraude, e é ou aumentará ou non levantar a man. 161 00:09:32,880 --> 00:09:35,710 Se vostede é un, vostede plantexa, se es 0, está alí 162 00:09:35,710 --> 00:09:38,594 torpes, só como aquel. 163 00:09:38,594 --> 00:09:40,386 Ir 164 00:09:40,386 --> 00:09:43,945 O número, en primeiro lugar, estes faces están representando? 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, non? 168 00:09:49,560 --> 00:09:52,400 Temos un 1 na columna 64s, un 1 na columna 2s. 169 00:09:52,400 --> 00:09:56,340 Tanto me dá 66, de xeito que parece estar representando B. Entón, 170 00:09:56,340 --> 00:09:57,075 vostedes teñen escrito - 171 00:09:57,075 --> 00:09:58,300 OK, iso é o suficiente. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Entón agora imos pasar para nosa segunda carta. 174 00:10:01,610 --> 00:10:03,530 Ir 175 00:10:03,530 --> 00:10:06,860 Quen é o máis rápido en matemáticas aquí? 176 00:10:06,860 --> 00:10:07,750 Así, 79. 177 00:10:07,750 --> 00:10:11,840 Unha vez máis, se sumarmos todas as columnas no que hai a 1, na actualidade, só 178 00:10:11,840 --> 00:10:14,840 como fixemos antes co máis simple de exemplos de 7, agora 179 00:10:14,840 --> 00:10:16,140 obter o número 79. 180 00:10:16,140 --> 00:10:19,910 Que segundo a nosa cartografía é o letra O. Entón, estamos case alí. 181 00:10:19,910 --> 00:10:22,590 B, O. E, finalmente, ir. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> O que están representando agora? 184 00:10:30,120 --> 00:10:31,370 Menos consenso. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Isto é só un murmurio absoluta. 187 00:10:36,460 --> 00:10:40,090 Si, é de feito 87. 188 00:10:40,090 --> 00:10:40,490 Bo 189 00:10:40,490 --> 00:10:44,480 >> Entón, se nós agora mapear esa volta a - imos comezar a chamar á nosa táboa ASCII, 190 00:10:44,480 --> 00:10:46,450 American Standard Code para Intercambio de información. 191 00:10:46,450 --> 00:10:47,700 Isto nos dá a letra - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 non "bo", pero "arco". E iso é un perfecto suxestión para vostedes para ter un tiro 194 00:10:54,810 --> 00:10:56,100 ea cabeza nas costas. 195 00:10:56,100 --> 00:10:56,980 Moitas grazas. 196 00:10:56,980 --> 00:10:57,886 >> [Aplausos] 197 00:10:57,886 --> 00:10:59,136 >> DAVID Malan: pode mantelos. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Aínda que, en realidade, alguén como unha lámpada de mesa, tamén? 200 00:11:05,942 --> 00:11:07,300 >> [Buzina de audiencia] 201 00:11:07,300 --> 00:11:08,390 >> DAVID Malan: Lámpada de mesa? 202 00:11:08,390 --> 00:11:10,850 >> [Risas] 203 00:11:10,850 --> 00:11:11,860 >> DAVID Malan: Serio? 204 00:11:11,860 --> 00:11:13,230 Lámpadas de mesa para todos? 205 00:11:13,230 --> 00:11:14,310 Todo ben. 206 00:11:14,310 --> 00:11:20,990 Así, comezando co máis sinxelo de principios, temos agora non só contaba 207 00:11:20,990 --> 00:11:24,750 por riba de 0 todo o camiño ata a 7, temos asumido que só xogando 208 00:11:24,750 --> 00:11:28,080 bits ou máis luces ou máis transistores a este problema, podemos 209 00:11:28,080 --> 00:11:32,680 representar números cada vez maiores, e Logo, pistas cada vez maiores de 210 00:11:32,680 --> 00:11:33,780 alfabetos, como o inglés. 211 00:11:33,780 --> 00:11:37,770 E só imos na fe para hoxe Do mesmo xeito que podemos comezar a 212 00:11:37,770 --> 00:11:42,220 representar gráficas e de vídeo e calquera número de outros medios de comunicación cos que estamos 213 00:11:42,220 --> 00:11:43,610 familiarizados hoxe. 214 00:11:43,610 --> 00:11:49,240 >> Polo tanto, este é CS50, e nesta clase xunto a vostedes, unha vez máis, moitos aínda 215 00:11:49,240 --> 00:11:53,050 compañeiros que teñen tan pouco experiencia como. 216 00:11:53,050 --> 00:11:57,730 E digo isto só porque moi miúdo, incluíndo como recentemente como unha das 217 00:11:57,730 --> 00:12:01,860 o calouro asesoramento de eventos e en segundo ano de primavera pasada aconsellando 218 00:12:01,860 --> 00:12:06,420 evento, moitas veces escoitamos estudantes isentam cando chegar á mesa de CS, ben, 219 00:12:06,420 --> 00:12:10,070 Eu estiven a pensar en facelo clase intro, pero eu non son realmente un 220 00:12:10,070 --> 00:12:11,120 persoa ordenador. 221 00:12:11,120 --> 00:12:13,220 Ou, pero todos sen dúbida sabe máis que eu. 222 00:12:13,220 --> 00:12:17,340 E eu coloque iso na maior fonte posible, para transmitir esa mensaxe de que 223 00:12:17,340 --> 00:12:18,730 iso non é de feito o caso. 224 00:12:18,730 --> 00:12:21,100 >> E se está a se pregunta si I, en realidade, estar aquí? 225 00:12:21,100 --> 00:12:25,950 Entenda que non só é deste curso Título Introdución á computación 226 00:12:25,950 --> 00:12:31,740 Ciencia, é Introdución á computación Ciencia I. Polo tanto, non é de feito 227 00:12:31,740 --> 00:12:33,170 un segundo esta introdución. 228 00:12:33,170 --> 00:12:35,390 Polo que non é, de feito, no lugar incorrecto. 229 00:12:35,390 --> 00:12:39,000 E entre os obxectivos que teño para hoxe son para amenizar-lle os problemas 230 00:12:39,000 --> 00:12:42,430 pode ter, pero tamén para pintar unha imaxe do que está na tenda para 231 00:12:42,430 --> 00:12:45,720 estudantes menos e máis cómodo tanto neste curso. 232 00:12:45,720 --> 00:12:49,320 >> Pero en primeiro lugar, unha palabra nunha das apostilas ten hoxe, entre os que 233 00:12:49,320 --> 00:12:50,780 hai unha serie de preguntas frecuentes. 234 00:12:50,780 --> 00:12:54,290 Foi unha visión do noso hai tempo agora introducir unha nova clasificación 235 00:12:54,290 --> 00:12:57,010 opción para este curso - ou sexa, SAT / unsat. 236 00:12:57,010 --> 00:13:01,930 Filosóficamente para min, é moi, moi, moito máis importante que o 237 00:13:01,930 --> 00:13:05,050 alumnos nesta clase involucrarse co material, ser contestada polo 238 00:13:05,050 --> 00:13:09,800 material, e se preocupe moito, moito menos sobre a mecánica de puntuación reais 239 00:13:09,800 --> 00:13:12,590 e notas de letra no semestre de final, pero realmente abrazar a 240 00:13:12,590 --> 00:13:13,970 curso e seu material. 241 00:13:13,970 --> 00:13:18,140 E realmente iso se sente, máis xeralmente, para o que é interesante para eles, a 242 00:13:18,140 --> 00:13:21,390 senten reto e recompensados, senón sen medo ao fracaso. 243 00:13:21,390 --> 00:13:25,030 >> E, de feito, esta é tamén unha recorrente tema este e outros introdutorio 244 00:13:25,030 --> 00:13:28,680 cursos noutros campos, que ten este medo cando se trata de 245 00:13:28,680 --> 00:13:31,040 poñendo os dedos da persoa en augas descoñecidas. 246 00:13:31,040 --> 00:13:34,880 Eu mesmo, en 1995, era un calouro. 247 00:13:34,880 --> 00:13:37,990 Eu estaba moi centrada en ser un concentrador Gov aquí. 248 00:13:37,990 --> 00:13:41,060 E aínda que eu sempre medrou cun pouco dun interese en ciencia da computación. 249 00:13:41,060 --> 00:13:42,180 Eu sempre fun curioso. 250 00:13:42,180 --> 00:13:47,610 >> Pero naquela época, aínda, eu tiña ese medo de mesmo de pisar o CS50, tanto 251 00:13:47,610 --> 00:13:49,420 de xeito que eu nin sequera facer a compra que o primeiro ano. 252 00:13:49,420 --> 00:13:53,460 E a única razón de eu poñer un pé na porto segundo ano foi porque eu 253 00:13:53,460 --> 00:13:55,340 foi autorizada a levalo de aprobación / reprovação. 254 00:13:55,340 --> 00:13:58,920 Pero aínda pasa / falla esixiu que eu recibín coraxe para facer unha consulta 255 00:13:58,920 --> 00:14:01,970 co Profesor Kernehan na época, traer esta gran folla de papel, e pedir 256 00:14:01,970 --> 00:14:04,470 el para a súa sinatura ea súa permiso para explorar 257 00:14:04,470 --> 00:14:05,700 estas augas descoñecidas. 258 00:14:05,700 --> 00:14:09,030 >> E iso non axudou nos últimos anos que ao facer isto na CS50, cando 259 00:14:09,030 --> 00:14:12,500 utilizado para ser aprobado / reprobado, sería semellantemente decenas ou centenares dos seus compañeiros 260 00:14:12,500 --> 00:14:15,970 ten que vir cara arriba, Deus me libre, o cabeza de Sanders con este formulario, que 261 00:14:15,970 --> 00:14:19,520 nalgunhas mentes representa unha incapacidade, Atrévome a dicir que, para levar a cabo 262 00:14:19,520 --> 00:14:20,800 é o nivel dos seus compañeiros. 263 00:14:20,800 --> 00:14:23,410 Que é ridículo, pero eu creo que hai esa mentalidade. 264 00:14:23,410 --> 00:14:27,210 E nunca houbo nesta cultura do SAT / unsat, ou de aprobación / reprovação máis 265 00:14:27,210 --> 00:14:30,610 Normalmente, neste curso, ou realmente neste campus. 266 00:14:30,610 --> 00:14:32,310 >> Polo tanto, este ano nós cambiamos iso. 267 00:14:32,310 --> 00:14:35,630 Eu sería a metade de éxtase de esta clase ou máis rematou 268 00:14:35,630 --> 00:14:38,700 levando CS50 SAT / unsat. 269 00:14:38,700 --> 00:14:42,130 No período de un ano, sería marabilloso Case todo o mundo é. 270 00:14:42,130 --> 00:14:44,410 A partir de aí, talvez, nós imos traballar en notas de letras na Universidade de Harvard 271 00:14:44,410 --> 00:14:45,480 Facultade en xeral. 272 00:14:45,480 --> 00:14:48,900 Pero, por agora, imos facelo dentro da nosa propia esfera, e gustaríame corazón 273 00:14:48,900 --> 00:14:53,400 incentivos-lo a revisar os FAQs e facer preguntas, como ve o axuste, de xeito que 274 00:14:53,400 --> 00:14:58,000 espera que, a diferenza de min, non é ben ter o mesmo factor de medo cando 275 00:14:58,000 --> 00:15:01,040 explorar o que é, probablemente, un lugar descoñecido. 276 00:15:01,040 --> 00:15:02,786 >> Entón, cal é CS50? 277 00:15:02,786 --> 00:15:06,150 É unha introdución ao empresas intelectuais de ordenador 278 00:15:06,150 --> 00:15:07,700 ciencia e da arte da programación. 279 00:15:07,700 --> 00:15:08,770 Pero o que iso realmente significa? 280 00:15:08,770 --> 00:15:12,510 >> Ben, ata agora, nós falamos moi brevemente sobre a representación da información. 281 00:15:12,510 --> 00:15:15,070 Pero supoña que nós realmente queremos de facer algo con el. 282 00:15:15,070 --> 00:15:17,890 Necesitamos introducir a noción de o que imos chamar de un algoritmo. 283 00:15:17,890 --> 00:15:21,540 Un algoritmo é un proceso, un proceso, un conxunto de instrucións para 284 00:15:21,540 --> 00:15:22,780 facendo algo. 285 00:15:22,780 --> 00:15:25,620 >> E un algoritmo pode ser algo super sinxelo. 286 00:15:25,620 --> 00:15:28,660 Por exemplo, un exemplo co que algúns de que pode estar familiarizado é este 287 00:15:28,660 --> 00:15:29,350 cousa aquí. 288 00:15:29,350 --> 00:15:32,510 Polo tanto, este libro aquí é cada vez máis datados, pero era unha vez, 289 00:15:32,510 --> 00:15:34,720 contiña unha gran cantidade de nomes e os números de teléfono. 290 00:15:34,720 --> 00:15:37,710 E, de feito, se eu quería atopar alguén desta lista telefónica - 291 00:15:37,710 --> 00:15:39,800 dicir, alguén chamado Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Podería atopar Mike Smith en calquera número de xeitos moi sinxelo. 293 00:15:43,810 --> 00:15:47,700 Podería comezar no inicio e ir a páxina 1, non está alí. 294 00:15:47,700 --> 00:15:49,240 Page 2, non existe. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 É que o algoritmo, é que proceso, correcto? 297 00:15:53,430 --> 00:15:54,620 >> Por iso, é correcto, non? 298 00:15:54,620 --> 00:15:58,070 Eu son o tipo de idiota por facelo na desa forma, pero, finalmente, eu vou 299 00:15:58,070 --> 00:16:02,670 atopar o apelido S, e espera que Mike É nesa sección, e eu me volverei 300 00:16:02,670 --> 00:16:04,100 feito co meu algoritmo. 301 00:16:04,100 --> 00:16:05,440 Pero certamente non é intuitivo. 302 00:16:05,440 --> 00:16:08,020 Máis cada ser humano razoable neste cuarto non faría iso. 303 00:16:08,020 --> 00:16:10,180 O que faría? 304 00:16:10,180 --> 00:16:11,480 >> Vostede iría directo para o medio, non? 305 00:16:11,480 --> 00:16:12,000 Aproximadamente ao medio. 306 00:16:12,000 --> 00:16:16,310 E vostede entende, oh, estes son os Ms Entón, Mike Smith, último nome a ser Smith, 307 00:16:16,310 --> 00:16:19,050 non é, claramente, a continuación, na metade esquerda do libro. 308 00:16:19,050 --> 00:16:21,040 Debe ser cara ó S está na dereita. 309 00:16:21,040 --> 00:16:24,090 E neste punto, aínda que a maioría de nós non fagas iso, en realidade, podemos 310 00:16:24,090 --> 00:16:27,125 literalmente rasgar este problema á metade. 311 00:16:27,125 --> 00:16:27,640 >> [Aclamacións e aplausos] 312 00:16:27,640 --> 00:16:28,950 >> DAVID Malan: Grazas. 313 00:16:28,950 --> 00:16:30,150 >> [Aclamacións e aplausos] 314 00:16:30,150 --> 00:16:34,660 >> DAVID Malan: Pode literalmente destruír o problema á metade, deixándome con, 315 00:16:34,660 --> 00:16:36,120 literalmente, un problema de metade do tamaño. 316 00:16:36,120 --> 00:16:39,750 Entón, se este libro teléfono era - e é probablemente foi - preto de 1.000 páxinas, agora 317 00:16:39,750 --> 00:16:40,840 é só 500. 318 00:16:40,840 --> 00:16:44,710 Se eu fai iso de novo e eu entendo, oh, caramba, eu fun lonxe de máis, eu estou no Ts 319 00:16:44,710 --> 00:16:46,480 sección, podo semellante - 320 00:16:46,480 --> 00:16:48,030 figurativa ou literalmente - 321 00:16:48,030 --> 00:16:50,260 rasgar o libro de teléfono - era, en realidade, moito máis fácil do que o tempo. 322 00:16:50,260 --> 00:16:53,610 Podo literalmente rasgar o libro de teléfono ao medio, deixándome agora con 323 00:16:53,610 --> 00:16:55,186 Non 1000, non 500 - 324 00:16:55,186 --> 00:16:56,680 250 páxinas. 325 00:16:56,680 --> 00:17:00,210 E podo ir 125, e metade diso, e metade diso, e metade diso, 326 00:17:00,210 --> 00:17:04,760 ata que, finalmente, eu vou ir con só unha única páxina. 327 00:17:04,760 --> 00:17:06,430 >> [Risas] 328 00:17:06,430 --> 00:17:07,589 >> DAVID Malan: Ese é o parte eu falla diante. 329 00:17:07,589 --> 00:17:10,400 Único no que Mike espero é. 330 00:17:10,400 --> 00:17:14,630 Agora, estes algoritmos diferentes poden ser tipo de ou avaliadas en 331 00:17:14,630 --> 00:17:15,270 formas diferentes. 332 00:17:15,270 --> 00:17:17,300 A primeira foi moi lineal, non? 333 00:17:17,300 --> 00:17:18,500 Pasar páxina, mirar para Mike. 334 00:17:18,500 --> 00:17:19,630 Pasar páxina, mirar para Mike. 335 00:17:19,630 --> 00:17:20,560 É moi lineal. 336 00:17:20,560 --> 00:17:23,339 Se hai máis dunha páxina no teléfono libro, el probabelmente vai me levar 337 00:17:23,339 --> 00:17:27,380 máis un segundo, máis unha unidade de tempo, con todo estamos computando tempo. 338 00:17:27,380 --> 00:17:32,470 >> Entón, eu podería chamar así esta liña aquí, en que medida que o tamaño do 339 00:17:32,470 --> 00:17:34,700 problema aumenta de esquerda a dereita - 340 00:17:34,700 --> 00:17:37,480 libro de teléfono queda menor ao maior - 341 00:17:37,480 --> 00:17:41,080 eo tempo vai aumentar en no eixe vertical, a maior 342 00:17:41,080 --> 00:17:42,030 o libro de teléfono. 343 00:17:42,030 --> 00:17:46,180 Entón n é só unha variable xeral que científicos da computación utilizan para representar 344 00:17:46,180 --> 00:17:48,210 algún valor, algún número. 345 00:17:48,210 --> 00:17:50,740 Así, n aumentará linearmente. 346 00:17:50,740 --> 00:17:53,040 O dobre do tamaño da súa lista telefónica, é me vai levar dúas veces máis 347 00:17:53,040 --> 00:17:54,780 tempo, moi probablemente, para atopar o Mike. 348 00:17:54,780 --> 00:17:56,390 >> Agora, eu podería ser intelixente sobre isto, certo? 349 00:17:56,390 --> 00:17:57,800 Eu estaba quedando aburrido rapidamente. 350 00:17:57,800 --> 00:17:58,910 Podería ter feito isto por dous. 351 00:17:58,910 --> 00:18:01,870 Así, dúas páxinas, a continuación, catro, despois seis, tras oito. 352 00:18:01,870 --> 00:18:05,220 E eu podería comezar a voar a través dunha pouco máis rápido, aínda que en menor risco de 353 00:18:05,220 --> 00:18:09,210 superación Mike, pero que non é curva será moi diferente. 354 00:18:09,210 --> 00:18:12,550 El aínda vai ser unha recta liña, pero un pouco máis rápido. 355 00:18:12,550 --> 00:18:13,710 >> Pero o que foi que eu fixen? 356 00:18:13,710 --> 00:18:15,845 En realidade, eu fixen unha cousa fundamentalmente mellor. 357 00:18:15,845 --> 00:18:21,990 Eu puiden o que imos chamar logarítmica tempo, o rexistro de n, en que este verde 358 00:18:21,990 --> 00:18:27,730 liña ten un moi, moi, moi borde menos directo a el. 359 00:18:27,730 --> 00:18:33,050 E en vez diso, el suxire, como especie de se achega do infinito sempre de forma gradual, 360 00:18:33,050 --> 00:18:36,700 que eu podería realmente ter unha páxina 1000 libro de teléfono, o dobre do seu tamaño 361 00:18:36,700 --> 00:18:39,610 o próximo ano - porque creo moi máis persoas se mudan para a cidade. 362 00:18:39,610 --> 00:18:43,250 >> Entón agora eu teño 2.000 páxinas, pero como moitos máis pasos é que máis intelixente 363 00:18:43,250 --> 00:18:45,200 algoritmo vai levar? 364 00:18:45,200 --> 00:18:46,060 Só un. 365 00:18:46,060 --> 00:18:48,060 Quero dicir, isto é unha cousa poderosa. 366 00:18:48,060 --> 00:18:51,400 Ou tamén para 4.000 páxinas o próximo ano, que me vai levar 367 00:18:51,400 --> 00:18:53,020 só dúas etapas. 368 00:18:53,020 --> 00:18:56,500 Entón pode xogar cada vez maior problemas en me, non moi distinta da web é 369 00:18:56,500 --> 00:18:59,560 xogando problemas cada vez maiores todos os días no Google e Facebooks da 370 00:18:59,560 --> 00:19:01,590 do mundo, e non é unha empresa tan grande. 371 00:19:01,590 --> 00:19:05,840 Porque eu coloque máis atención e coidados en meu algoritmo co que debe resolver 372 00:19:05,840 --> 00:19:07,020 problemas de forma eficiente. 373 00:19:07,020 --> 00:19:09,260 >> E, de feito, que será un dos os obxectivos deste curso. 374 00:19:09,260 --> 00:19:11,230 Vai, ao longo do camiño, aprender a programar. 375 00:19:11,230 --> 00:19:13,360 Vai aprender a programar en calquera número de idiomas. 376 00:19:13,360 --> 00:19:16,670 Con todo, ao final do día, o curso sobre a resolución de problemas e obtendo 377 00:19:16,670 --> 00:19:20,490 mellor en resolver problemas - e, como en casos como este, resolución de problemas 378 00:19:20,490 --> 00:19:22,030 máis eficiente. 379 00:19:22,030 --> 00:19:23,990 >> Agora, ata o momento, fixemos esta moi intuitiva. 380 00:19:23,990 --> 00:19:27,420 Imos introducir algo bastante xenérica chamada pseudocódigo. 381 00:19:27,420 --> 00:19:29,150 Entón, imos finalmente chegar, neste curso, para 382 00:19:29,150 --> 00:19:30,570 varias linguaxes de programación. 383 00:19:30,570 --> 00:19:34,280 Pero hoxe imos facelo en inglés-like sintaxe, onde só unha especie de, digamos, 384 00:19:34,280 --> 00:19:37,330 o que quere dicir, pero é sempre tan sucinta e non preocuparse 385 00:19:37,330 --> 00:19:38,960 gramática e frases completas. 386 00:19:38,960 --> 00:19:41,600 Acaba de se expresar como concisa posible. 387 00:19:41,600 --> 00:19:45,400 >> Entón pseudocódigo é o inglés-like que representa a sintaxe 388 00:19:45,400 --> 00:19:46,750 unha linguaxe de programación. 389 00:19:46,750 --> 00:19:51,170 E para iso, déixeme propoñer que agora modelar o proceso que acabamos de 390 00:19:51,170 --> 00:19:54,990 descrito de contar algo un pouco a diferenza, esta vez tendo un 391 00:19:54,990 --> 00:19:59,040 mira este video de cinco minutos producido polos nosos amigos na TED que 392 00:19:59,040 --> 00:20:03,170 define o pseudocódigo dicir, define o que pensamento algorítmico é, e mesmo 393 00:20:03,170 --> 00:20:07,030 aínda que o exemplo que está a piques de ver é, en si mesmo, super sinxelo, é 394 00:20:07,030 --> 00:20:09,820 comezará a darnos o mental modelo, o vocabulario, coa cal 395 00:20:09,820 --> 00:20:14,588 facer moito, moito máis complexo algoritmos moi rapidamente. 396 00:20:14,588 --> 00:20:15,576 >> [BEGIN reprodución de vídeo] 397 00:20:15,576 --> 00:20:29,920 >> [Música tocando] 398 00:20:29,920 --> 00:20:31,100 >> Narrador: O que é un algoritmo? 399 00:20:31,100 --> 00:20:34,730 Na ciencia da computación, un algoritmo é unha conxunto de instrucións para resolver algúns 400 00:20:34,730 --> 00:20:36,620 problema paso a paso. 401 00:20:36,620 --> 00:20:39,650 Xeralmente, os algoritmos son executados por computadores, pero nós seres humanos temos 402 00:20:39,650 --> 00:20:41,230 algoritmos, así. 403 00:20:41,230 --> 00:20:43,290 Por exemplo, como ía sobre a conta do número 404 00:20:43,290 --> 00:20:44,750 de persoas nunha sala? 405 00:20:44,750 --> 00:20:47,980 Ben, se vostede é como eu, probablemente punto en cada persoa, nun 406 00:20:47,980 --> 00:20:50,120 un tempo, e contar a partir de 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, e así por diante. 408 00:20:52,970 --> 00:20:54,140 >> Ben, iso é un algoritmo. 409 00:20:54,140 --> 00:20:57,600 De feito, imos tratar de expresar-lo un pouco máis formalmente en pseudocódigo - 410 00:20:57,600 --> 00:21:00,700 Inglés-como sintaxe que se asemella unha linguaxe de programación. 411 00:21:00,700 --> 00:21:02,580 Deixe-N igual a 0. 412 00:21:02,580 --> 00:21:06,970 Para cada persoa en cuarto, establecer N igual a n + 1. 413 00:21:06,970 --> 00:21:08,400 >> Como interpretar este pseudocódigo? 414 00:21:08,400 --> 00:21:12,840 Ben, unha liña declara, por así dicir, unha variable chamada N e arrinque 415 00:21:12,840 --> 00:21:14,250 o seu valor a 0. 416 00:21:14,250 --> 00:21:17,550 Isto significa que só o inicio do noso algoritmo, o único coa cal 417 00:21:17,550 --> 00:21:19,650 estamos contando ten un valor de 0. 418 00:21:19,650 --> 00:21:22,620 Ao final, antes de comezar a contar, non contar nada aínda. 419 00:21:22,620 --> 00:21:25,340 Chamar esa variable N é só unha convención. 420 00:21:25,340 --> 00:21:26,890 Podería telo chamado máis nada. 421 00:21:26,890 --> 00:21:30,560 >> Agora a liña de dous demarks o inicio dunha loop, unha secuencia de pasos que 422 00:21:30,560 --> 00:21:32,310 repetir un determinado número de veces. 423 00:21:32,310 --> 00:21:35,910 Así, no noso exemplo, o paso que estamos tomando está contando a xente na sala. 424 00:21:35,910 --> 00:21:38,730 Baixo a liña dous é a liña de tres, que describe exactamente como 425 00:21:38,730 --> 00:21:40,160 imos sobre a conta. 426 00:21:40,160 --> 00:21:43,440 A retirada implica que se tres liñas que se repiten. 427 00:21:43,440 --> 00:21:47,380 >> Entón, o que o pseudocódigo está dicindo é que, despois de a partir de 0, para cada 428 00:21:47,380 --> 00:21:50,690 persoa na sala, nós imos aumentar N en 1. 429 00:21:50,690 --> 00:21:53,050 Agora é este algoritmo correcto? 430 00:21:53,050 --> 00:21:54,580 Ben, imos bater nel un pouco. 431 00:21:54,580 --> 00:21:57,270 Isto funciona se hai dúas persoas na sala? 432 00:21:57,270 --> 00:21:58,170 Imos ver. 433 00:21:58,170 --> 00:22:00,260 >> Na liña un, que arrincar N 0. 434 00:22:00,260 --> 00:22:03,660 Para cada unha destas dúas persoas, Logo incrementar N en 1. 435 00:22:03,660 --> 00:22:07,310 Así, na primeira viaxe a través do lacete, actualizamos n de 0 a 1. 436 00:22:07,310 --> 00:22:11,070 Na segunda viaxe a través dese mesmo lacete, actualizamos N 1-2. 437 00:22:11,070 --> 00:22:15,780 E así ata finais deste algoritmo, n é 2, que de feito corresponde ao número de 438 00:22:15,780 --> 00:22:16,700 persoas na sala. 439 00:22:16,700 --> 00:22:17,760 >> Tan lonxe, tan bo. 440 00:22:17,760 --> 00:22:19,610 Como preto de un caso de canto, aínda que? 441 00:22:19,610 --> 00:22:22,590 Supoña que hai 0 persoas no salón - alén de min, 442 00:22:22,590 --> 00:22:24,170 quen está facendo a conta. 443 00:22:24,170 --> 00:22:27,150 Na liña un, que arrincar N 0. 444 00:22:27,150 --> 00:22:30,280 Esta vez, porén, a liña de tres non realizar en todo sempre que non haxa unha 445 00:22:30,280 --> 00:22:31,370 persoa na sala. 446 00:22:31,370 --> 00:22:35,260 E así segue sendo N, 0, o que corresponde a número de persoas na sala. 447 00:22:35,260 --> 00:22:36,420 Moi sinxelo, non? 448 00:22:36,420 --> 00:22:39,630 >> Pero a conta de persoas, unha de cada vez é moi ineficiente, tamén, non? 449 00:22:39,630 --> 00:22:40,920 Seguro que podemos facer mellor. 450 00:22:40,920 --> 00:22:43,120 Por que non contar con dúas persoas á vez? 451 00:22:43,120 --> 00:22:49,300 En vez de contar 1, 2, 3, 4, 5, 6, 7, 8, e así por diante, por que non contar, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, e así por diante? 453 00:22:51,460 --> 00:22:53,700 Inda parece máis rápido, e é sen dúbida. 454 00:22:53,700 --> 00:22:56,240 >> Imos expresar esa optimización en pseudocódigo. 455 00:22:56,240 --> 00:22:57,800 Deixe-N igual a 0. 456 00:22:57,800 --> 00:23:02,450 Para cada par de persoas na sala, definir N igual a N 2. 457 00:23:02,450 --> 00:23:04,120 Cambio moi sinxelo, non? 458 00:23:04,120 --> 00:23:06,750 Ao contrario de un contador de persoas de cada vez, que, no canto contar 459 00:23:06,750 --> 00:23:08,300 eles dous á vez. 460 00:23:08,300 --> 00:23:10,980 Este algoritmo é, por tanto, dúas veces tan rápido como o último. 461 00:23:10,980 --> 00:23:12,180 >> Pero será que é correcto? 462 00:23:12,180 --> 00:23:12,920 Imos ver. 463 00:23:12,920 --> 00:23:15,330 Isto funciona se hai dúas persoas na sala? 464 00:23:15,330 --> 00:23:17,550 Na liña un, que arrincar N 0. 465 00:23:17,550 --> 00:23:20,920 Para que un par de persoas, Logo incrementar n por dous. 466 00:23:20,920 --> 00:23:24,860 E así ata finais deste algoritmo, N é 2, que de feito corresponde ao número de 467 00:23:24,860 --> 00:23:25,650 persoas na sala. 468 00:23:25,650 --> 00:23:28,250 >> Supoñamos que hai seguinte 0 persoas na sala. 469 00:23:28,250 --> 00:23:30,840 Na liña un, que arrincar N 0. 470 00:23:30,840 --> 00:23:34,330 Como antes, a liña de tres non executa en todo, xa que non existen os pares 471 00:23:34,330 --> 00:23:35,380 de persoas na sala. 472 00:23:35,380 --> 00:23:38,350 E así segue sendo N, 0, o que de feito corresponde ao número de 473 00:23:38,350 --> 00:23:39,570 persoas na sala. 474 00:23:39,570 --> 00:23:42,280 >> Pero o que se hai tres persoas na sala? 475 00:23:42,280 --> 00:23:44,130 Como é que esta tarifa algoritmo? 476 00:23:44,130 --> 00:23:44,990 Imos ver. 477 00:23:44,990 --> 00:23:47,460 Na liña un, que arrincar N 0. 478 00:23:47,460 --> 00:23:50,870 Para un par desas persoas, Logo incrementar n por 2. 479 00:23:50,870 --> 00:23:51,800 Pero e logo? 480 00:23:51,800 --> 00:23:54,960 Non hai outro par cheo de persoas na sala, polo que a liña dous non 481 00:23:54,960 --> 00:23:56,180 é aplicable máis. 482 00:23:56,180 --> 00:24:00,530 E así ata finais deste algoritmo, N aínda é 2, o que non é correcto. 483 00:24:00,530 --> 00:24:03,810 >> De feito, este algoritmo dise ser cesta, porque ten un erro. 484 00:24:03,810 --> 00:24:05,820 Permite resolver con algunha nova pseudocódigo. 485 00:24:05,820 --> 00:24:09,670 Imos n igual a 0 para cada par de persoas na sala. 486 00:24:09,670 --> 00:24:12,550 Conxunto N igual a N 2. 487 00:24:12,550 --> 00:24:17,140 Se unha persoa permanece non pareado, definir N igual a n + 1. 488 00:24:17,140 --> 00:24:20,140 Para solucionar este problema particular, temos introducidos, en liña de catro, unha 489 00:24:20,140 --> 00:24:24,520 condición, tamén coñecido como un sector que executa só se hai unha 490 00:24:24,520 --> 00:24:26,640 persoa que non poderiamos par co outro. 491 00:24:26,640 --> 00:24:30,440 E agora, se hai un ou tres ou calquera número impar de persoas en 492 00:24:30,440 --> 00:24:33,290 o cuarto, este algoritmo agora contalos. 493 00:24:33,290 --> 00:24:34,560 >> Podemos facer aínda mellor? 494 00:24:34,560 --> 00:24:38,820 Ben, poderíamos contar en 3s ou 4s ou mesmo 5s e 10s, pero, ademais, é 495 00:24:38,820 --> 00:24:41,360 se ve algo difícil a punto. 496 00:24:41,360 --> 00:24:44,660 Ao final do día, se realizada por ordenadores ou de seres humanos, 497 00:24:44,660 --> 00:24:46,750 algoritmos son só un conxunto de instrucións con 498 00:24:46,750 --> 00:24:48,290 que para resolver os problemas. 499 00:24:48,290 --> 00:24:49,792 Estes foron só tres. 500 00:24:49,792 --> 00:24:52,404 O problema que resolve cun algoritmo? 501 00:24:52,404 --> 00:24:52,901 >> [FIN reprodución de vídeo] 502 00:24:52,901 --> 00:24:55,883 >> DAVID Malan: Ese é o único momento Vou aparecer en forma de debuxos animados. 503 00:24:55,883 --> 00:25:01,050 Pero onde esta historia deixa de fóra, agora, é como podemos facer mellor? 504 00:25:01,050 --> 00:25:04,680 Tres e catro, reivindicamos, podemos contar persoas moito máis rápido, pero podemos 505 00:25:04,680 --> 00:25:06,290 fundamentalmente facer mellor que iso? 506 00:25:06,290 --> 00:25:07,540 E eu aposto que podemos. 507 00:25:07,540 --> 00:25:11,980 >> Se introducirmos un pouco da nosa propia pseudocódigo aquí, vou propoñer 508 00:25:11,980 --> 00:25:14,550 que podemos alcanzar unha liña como esta. 509 00:25:14,550 --> 00:25:17,280 Non imos contar as persoas un, dous, tres, catro. 510 00:25:17,280 --> 00:25:19,470 Non estamos indo a dous, catro, seis, oito. 511 00:25:19,470 --> 00:25:23,390 Nós imos facer fundamentalmente mellor por repensar o problema, e neste 512 00:25:23,390 --> 00:25:27,080 caso, aproveitando outra forma subutilizados recurso. 513 00:25:27,080 --> 00:25:31,460 >> En só un momento, eu espero que perdoe E o humor nos por de pé 514 00:25:31,460 --> 00:25:34,470 lugar, en que punto estamos indo pedir a cada un de vós para asumir no seu 515 00:25:34,470 --> 00:25:36,400 mente o número 1. 516 00:25:36,400 --> 00:25:39,560 Vostede, entón, vai cada vez máis torpes, como o tempo pasa, atopar 517 00:25:39,560 --> 00:25:42,740 alguén que está de pé, combinar seus números xuntos 518 00:25:42,740 --> 00:25:43,720 engadindo-up. 519 00:25:43,720 --> 00:25:47,490 Un de vós é, entón, vai executar para sentar abaixo en primeiro lugar, e a outra persoa 520 00:25:47,490 --> 00:25:48,880 vai repetir. 521 00:25:48,880 --> 00:25:53,090 >> Así, noutras palabras, por sementeira de todas vostede co número 1, e, a continuación, 522 00:25:53,090 --> 00:25:57,800 combinar aqueles en 1s 2s e os 2s en 4s, con todo cada vez máis 523 00:25:57,800 --> 00:26:02,740 sentado, hai, ao final do este algoritmo, ten só un préstamo 524 00:26:02,740 --> 00:26:07,570 alma que non se sentou rápido abondo, pero que ten toda a conta de audiencias 525 00:26:07,570 --> 00:26:09,180 na súa mente. 526 00:26:09,180 --> 00:26:13,730 >> Entón, se, imos adiante e - Primeiro Paso - erguer-se no lugar. 527 00:26:13,730 --> 00:26:15,600 E realizar. 528 00:26:15,600 --> 00:26:36,580 >> [Multitude murmurando] 529 00:26:36,580 --> 00:26:38,820 >> DAVID Malan: Vostede sabe onde Lauren é? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Multitude murmurando] 532 00:27:23,350 --> 00:27:24,340 >> DAVID Malan: Todo ben? 533 00:27:24,340 --> 00:27:39,110 >> [Multitude murmurando] 534 00:27:39,110 --> 00:27:41,365 >> DAVID Malan: Todo ben, temos que estar achegando do fin. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Vemos un compañeiro aquí de pé aínda. 537 00:27:47,670 --> 00:27:48,770 Quen precisa de máis para vinculación? 538 00:27:48,770 --> 00:27:50,020 Se vostedes queren vincular. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Alguén alí enriba. 541 00:27:56,520 --> 00:27:58,150 Por que non dar unha man aquí. 542 00:27:58,150 --> 00:28:01,370 Para as poucas persoas que aínda están de pé, o que as cifras que 543 00:28:01,370 --> 00:28:02,790 ten na súa mente? 544 00:28:02,790 --> 00:28:04,020 >> ALUMNO: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID Malan: 78 plus - 546 00:28:06,010 --> 00:28:07,840 que está de pé aquí abaixo? 547 00:28:07,840 --> 00:28:08,370 >> ALUMNO: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID Malan: Máis 39. 549 00:28:09,590 --> 00:28:12,310 Por outra banda, quen máis aínda está de pé? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, quen máis? 552 00:28:15,960 --> 00:28:17,200 Outro 81? 553 00:28:17,200 --> 00:28:17,860 Guau. 554 00:28:17,860 --> 00:28:19,210 E entón o que está arredor? 555 00:28:19,210 --> 00:28:20,360 >> ALUMNO: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID Malan: 49, ademais de? 557 00:28:21,812 --> 00:28:22,950 >> ALUMNO: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID Malan: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Será que alguén máis? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Bo traballo. 562 00:28:30,460 --> 00:28:33,610 >> [Risas] 563 00:28:33,610 --> 00:28:34,690 >> DAVID Malan: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Bo traballo! 566 00:28:36,220 --> 00:28:38,660 >> [Risas] 567 00:28:38,660 --> 00:28:42,570 >> [Aplausos] 568 00:28:42,570 --> 00:28:43,820 >> DAVID Malan: Calquera persoa aínda está de pé? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Sentímolo? 571 00:28:47,260 --> 00:28:48,110 >> ALUMNO: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID Malan: 99. 573 00:28:49,810 --> 00:28:52,620 Calquera outra persoa aínda está de pé? 574 00:28:52,620 --> 00:28:57,290 E o número total de alumnos aquí é, en realidade, segundo a - 575 00:28:57,290 --> 00:28:59,400 ten un número? 576 00:28:59,400 --> 00:29:03,170 Oh, o número real de persoas no cuarto, de acordo co que conta 577 00:29:03,170 --> 00:29:07,660 os bolseiros de ensino estaban facendo no camiño de todo, foi 729. 578 00:29:07,660 --> 00:29:11,070 Así, a partir dunha sala chea de estudantes de Harvard que se contaron, o 579 00:29:11,070 --> 00:29:14,126 resposta é 637. 580 00:29:14,126 --> 00:29:15,480 >> [Risas] 581 00:29:15,480 --> 00:29:16,350 >> DAVID Malan: Tan preto. 582 00:29:16,350 --> 00:29:17,360 Pero aínda así. 583 00:29:17,360 --> 00:29:22,110 OK, entón iso é un ensino momento, non? 584 00:29:22,110 --> 00:29:24,120 Este momento é o que nós describimos como un erro. 585 00:29:24,120 --> 00:29:28,120 Nalgún lugar ao longo do camiño, fixemos algúns aritmética mal, ou alguén se sentou, 586 00:29:28,120 --> 00:29:29,930 ou á esquerda, ou algo deu errado. 587 00:29:29,930 --> 00:29:30,930 Pero iso é bo. 588 00:29:30,930 --> 00:29:33,390 Porque aínda así, nos quedou moi preto. 589 00:29:33,390 --> 00:29:37,480 E eu diría que temos para o mal responder moito máis rápido do que eu tería 590 00:29:37,480 --> 00:29:39,770 usando a miña visión máis lineal. 591 00:29:39,770 --> 00:29:42,630 >> Entón, imos supor que teña de feito obter este corrixir, pero creo que agora sobre o que 592 00:29:42,630 --> 00:29:46,870 estaba a ocorrer cada vez, contra a miña propio algoritmo apuntando inxenuo. 593 00:29:46,870 --> 00:29:48,420 Un, dous, tres. 594 00:29:48,420 --> 00:29:53,010 Se hai de feito 729 ou 637 persoas aquí, que tería me levado 595 00:29:53,010 --> 00:29:57,720 Literalmente 637 ou 729 pointings do dedo e 596 00:29:57,720 --> 00:29:59,490 incrementando a miña conta total. 597 00:29:59,490 --> 00:30:01,910 E eu podería facer un pouco mellor, vai dous, catro, seis, oito, e 598 00:30:01,910 --> 00:30:05,660 dobrar esa velocidade, quizais ata triplicar ou quádrupla, dependendo; ben podo 599 00:30:05,660 --> 00:30:07,110 facelo contando na miña cabeza. 600 00:30:07,110 --> 00:30:10,720 >> Pero esta visión que vostedes tomaron era fundamentalmente diferente. 601 00:30:10,720 --> 00:30:12,770 Debido, en principio, todos vostedes se levantou. 602 00:30:12,770 --> 00:30:14,620 Entón, todo 729. 603 00:30:14,620 --> 00:30:17,370 E entón, literalmente, a metade de se sentou. 604 00:30:17,370 --> 00:30:19,720 E, despois disto, outra metade do que sentou. 605 00:30:19,720 --> 00:30:22,650 E, despois disto, outra metade do que sentou. 606 00:30:22,650 --> 00:30:27,470 >> E o número de veces que se vostedes poderían sentado é máis ou menos 607 00:30:27,470 --> 00:30:31,740 oito ou nove ou dez veces o total, dependendo do que a nosa conta total é. 608 00:30:31,740 --> 00:30:33,300 E podemos clasificar de facer Este é o outro lado. 609 00:30:33,300 --> 00:30:37,740 Se tivésemos 1.024 persoas na sala, o número total de veces que podería 610 00:30:37,740 --> 00:30:41,870 reducir á metade a 1024 é de 10 persoas. 611 00:30:41,870 --> 00:30:43,370 >> Agora pense sobre iso en noutra dirección. 612 00:30:43,370 --> 00:30:49,170 Supoñamos que, ridiculamente, que tivemos, digamos catro millóns de persoas nesta sala, 613 00:30:49,170 --> 00:30:50,860 ou unha sala un pouco maior. 614 00:30:50,860 --> 00:30:54,550 Cantas veces teríamos ido por este algoritmo, tal que a metade 615 00:30:54,550 --> 00:30:58,110 desta clase se sent? 616 00:30:58,110 --> 00:31:03,050 El só vai ter 32 como operacións, mesmo nunha clase de tamaño 617 00:31:03,050 --> 00:31:03,770 catro millóns. 618 00:31:03,770 --> 00:31:04,055 Por que? 619 00:31:04,055 --> 00:31:06,980 Debido catro mil millóns vai para dous millóns, vai a un millón, vai a 620 00:31:06,980 --> 00:31:09,925 500 millóns, vai a 250 millóns, punto, punto, punto. 621 00:31:09,925 --> 00:31:14,940 Só podo facer esa división preto de 32 veces, ao momento en que, todos, agás 622 00:31:14,940 --> 00:31:17,820 unha persoa estaría de pé esquerdo. 623 00:31:17,820 --> 00:31:21,590 >> E que, ademais, é unha especie de poderoso idea de que cada vez máis imos tratar 624 00:31:21,590 --> 00:31:24,690 alavancagem neste curso, e en programación e ciencia da computación máis 625 00:31:24,690 --> 00:31:29,400 Xeralmente, estes xermes dunha idea con que pode entón resolver problemas moi, 626 00:31:29,400 --> 00:31:31,130 moito máis poderosa. 627 00:31:31,130 --> 00:31:34,610 Entón comezamos moi sinxelo que pseudocódigo e un cara nunha sala, pero 628 00:31:34,610 --> 00:31:38,205 agora con unha sala chea de persoas fixemos fundamentalmente mellor. 629 00:31:38,205 --> 00:31:41,460 >> Ben, imos agora transición pseudocódigo para algún código real. 630 00:31:41,460 --> 00:31:44,200 Esta linguaxe que está a piques de ver pasar para ser chamado Javascript, e 631 00:31:44,200 --> 00:31:46,190 imos voltar a esta dirección final do semestre. 632 00:31:46,190 --> 00:31:49,960 É unha linguaxe de programación que usar para facer sitios web e outros tales 633 00:31:49,960 --> 00:31:51,360 programa nos días de hoxe. 634 00:31:51,360 --> 00:31:54,890 E nós telo usado, grazas a un amigo dos nosos en Stanford, para codificar 635 00:31:54,890 --> 00:31:56,630 información agochada aquí. 636 00:31:56,630 --> 00:31:59,500 Esta é a arte de esteganografia, por así dicir, onde pode agocharse 637 00:31:59,500 --> 00:32:03,990 información que por outra banda parece ser ruído ou un completamente diferente 638 00:32:03,990 --> 00:32:05,220 imaxe completamente. 639 00:32:05,220 --> 00:32:10,120 Pero incorporado nesta imaxe en particular é realmente unha mensaxe secreta das sortes. 640 00:32:10,120 --> 00:32:12,950 >> Entón deixe-me ir adiante e puxe para arriba a mesma imaxe aquí, este 641 00:32:12,950 --> 00:32:14,270 tempo nun navegador web. 642 00:32:14,270 --> 00:32:17,710 E eu vou acenar a man nalgúns dos os detalles para hoxe, particularmente 643 00:32:17,710 --> 00:32:21,780 para aqueles de vostedes que isto parece non só JavaScript, pero grego, como un 644 00:32:21,780 --> 00:32:23,930 linguaxe totalmente estraña. 645 00:32:23,930 --> 00:32:26,190 Pero esta é unha lista de unha linguaxe de programación. 646 00:32:26,190 --> 00:32:30,660 >> E, polo de agora, asumir a fe que esta primeira liña de código - 647 00:32:30,660 --> 00:32:32,470 e por código, eu só quero dicir o texto. 648 00:32:32,470 --> 00:32:35,660 O texto que eu podería ter literalmente ingresaran en Microsoft Word, se eu tivese a 649 00:32:35,660 --> 00:32:37,630 software dereito para, a continuación, facer algo con el. 650 00:32:37,630 --> 00:32:42,120 Código de programación, programación código, é realmente só texto, e 651 00:32:42,120 --> 00:32:45,420 parece diferente en base a que lingua está a usar, e non ao contrario inglés e 652 00:32:45,420 --> 00:32:49,200 Español e ruso todos ollar diferente cando escribe no seu teclado. 653 00:32:49,200 --> 00:32:53,520 >> Polo tanto, esta primeira liña, para agora asumir fe, simplemente abre un gráfico da 654 00:32:53,520 --> 00:32:56,160 Internet, ese gráfico barulhento acabamos de ver. 655 00:32:56,160 --> 00:32:59,900 Esta seguinte liña aquí é un exemplo dunha loop, e que se viu o mesmo 656 00:32:59,900 --> 00:33:01,130 xerga no video TED. 657 00:33:01,130 --> 00:33:03,750 Un ciclo é algo que acontece unha vez máis e de novo, e aínda que iso 658 00:33:03,750 --> 00:33:08,440 parece absolutamente enigmático, co contrasinal, e algúns parénteses, e 659 00:33:08,440 --> 00:33:09,510 algúns puntos e comas. 660 00:33:09,510 --> 00:33:13,070 Volveremos a iso en pouco tempo, pero que non hai esencialmente lacete 661 00:33:13,070 --> 00:33:17,310 dicindo ao programa, iterado sobre todos destes puntos ruidosos, de esquerda a 662 00:33:17,310 --> 00:33:18,980 dereita, de arriba abaixo. 663 00:33:18,980 --> 00:33:21,260 >> Porque, ao final do día, a imaxe como este - e realmente pode 664 00:33:21,260 --> 00:33:22,860 tipo de velo no proxector - 665 00:33:22,860 --> 00:33:25,280 é realmente só unha reixa de puntos. 666 00:33:25,280 --> 00:33:29,730 Así, podemos identificar cada un destes puntos por un sistema de coordenadas, X, Y, e con esta 667 00:33:29,730 --> 00:33:33,890 programa, agora podemos comezar a facer algo para estes puntos. 668 00:33:33,890 --> 00:33:37,540 >> Entón o que eu estou indo a ir adiante aquí e non é que eu vou facer algúns cambios. 669 00:33:37,540 --> 00:33:41,000 En primeiro lugar, eu estou indo a ir adiante e librarse de todo isto verde e azul 670 00:33:41,000 --> 00:33:43,520 ruído, e eu estou indo a ir adiante e escriba o seguinte 671 00:33:43,520 --> 00:33:45,710 reconhecidamente sintaxe enigmática. 672 00:33:45,710 --> 00:33:48,020 im por imaxe. 673 00:33:48,020 --> 00:33:53,380 definir azul no lugar x, coma, Lugar de y, 0. 674 00:33:53,380 --> 00:33:55,610 Noutras palabras, quero só apagar toda azul 675 00:33:55,610 --> 00:33:56,920 puntos en que a imaxe. 676 00:33:56,920 --> 00:33:59,800 >> Eu estou indo a ir adiante agora e prema este botón run / Garda, e vai 677 00:33:59,800 --> 00:34:02,850 observar na parte dereita, a imaxe resultante aparece. 678 00:34:02,850 --> 00:34:06,120 Agora o seu super verde, pero iso non é sorprendente, porque literalmente virou 679 00:34:06,120 --> 00:34:11,070 fóra, facendo o 1 a 0, todos o azul na imaxe. 680 00:34:11,070 --> 00:34:12,540 >> Ben, agora imos facelo un pouco máis. 681 00:34:12,540 --> 00:34:16,989 im para a imaxe, punto setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 E iso significa só iterate da esquerda a dereita e de arriba a abaixo. 683 00:34:20,659 --> 00:34:23,520 Desactivar isto cun valor de 0, ben. 684 00:34:23,520 --> 00:34:24,750 Gardar. 685 00:34:24,750 --> 00:34:28,100 E o proxector, non pode realmente realmente ver nada. 686 00:34:28,100 --> 00:34:31,380 >> Na pantalla do meu portátil, se eu espreitar en só o camiño certo, podo ver un pouco de un 687 00:34:31,380 --> 00:34:33,300 imaxe, porque aínda están algún vermello alí dentro. 688 00:34:33,300 --> 00:34:35,540 Se vostede xa escoitou a sigla RGB - 689 00:34:35,540 --> 00:34:36,830 vermello, verde, azul - 690 00:34:36,830 --> 00:34:39,110 está referíndose a esta composición dunha imaxe empregando 691 00:34:39,110 --> 00:34:40,230 só estas tres cores. 692 00:34:40,230 --> 00:34:43,159 E agora temos xogado fóra todo verde, todo azul, pero 693 00:34:43,159 --> 00:34:44,500 non hai moito vermello. 694 00:34:44,500 --> 00:34:45,920 >> Entón deixe-me poñer en marcha por riba o vermello. 695 00:34:45,920 --> 00:34:47,070 Como podo facelo? 696 00:34:47,070 --> 00:34:49,300 Ben, primeiro, eu vou pedir este programa unha pregunta. 697 00:34:49,300 --> 00:34:52,030 Eu estou indo a ir adiante e imos chamalo unha variable, como na álxebra. 698 00:34:52,030 --> 00:34:54,060 Pode que x ou y ou z. 699 00:34:54,060 --> 00:34:57,230 Eu estou indo a declarar unha variable e dicir: poñer nesta variable, 700 00:34:57,230 --> 00:35:02,790 temporalmente, o valor da imaxes getRed valor de x, y. 701 00:35:02,790 --> 00:35:05,870 >> E, de novo, imos voltar a todos deste detalle no futuro. 702 00:35:05,870 --> 00:35:10,630 Pero, por agora, só tes que ter fe en que esta liña está pedindo o programa, o que 703 00:35:10,630 --> 00:35:12,740 é o valor de vermello en x, y? 704 00:35:12,740 --> 00:35:14,450 Nese punto en particular? 705 00:35:14,450 --> 00:35:15,710 >> Entón eu vou facer algo para el. 706 00:35:15,710 --> 00:35:21,100 Entón eu vou facer image dot set vermello en x, y, y, pero esta vez eu vou 707 00:35:21,100 --> 00:35:24,760 impulsar-lo, facendo veces vermello, digamos, 10. 708 00:35:24,760 --> 00:35:26,870 Entón, aumenta-lo por un factor de 10. 709 00:35:26,870 --> 00:35:29,880 Déixeme afastar agora e clic podería Run / Gardar. 710 00:35:29,880 --> 00:35:36,430 E listo, que estaba alí todo o tempo, aínda que os nosos ollos humanos 711 00:35:36,430 --> 00:35:37,900 non podía velo. 712 00:35:37,900 --> 00:35:41,470 >> Entón, de novo, este momento é o código real, unha exemplo dunha lingua que nós viremos 713 00:35:41,470 --> 00:35:42,770 de volta para antes de tempo. 714 00:35:42,770 --> 00:35:46,670 Pero entenda, particularmente aqueles de vostedes sen esa experiencia, é moi 715 00:35:46,670 --> 00:35:50,280 logo que nos será escribir código coma este aí. 716 00:35:50,280 --> 00:35:54,520 De feito, unha ferramenta coa que é todo algo familiar, quizais, é CS50 da 717 00:35:54,520 --> 00:35:57,330 propia ferramenta claro-centro comercial, que era realmente reiniciar este verán por uns 718 00:35:57,330 --> 00:36:01,070 dos propios ex-alumnos do CS50, agora volver TFS. 719 00:36:01,070 --> 00:36:04,740 >> Polo tanto, este pasa a ser un sitio construído nunha linguaxe chamada PHP. 720 00:36:04,740 --> 00:36:08,510 Usa unha base de datos chamado MySQL, as cousas coa que nós imos chegar nas nosas mans 721 00:36:08,510 --> 00:36:10,190 porco ao final do semestre. 722 00:36:10,190 --> 00:36:14,140 Pero, cren ou non, incluso algo como esta última análise, reduce a 723 00:36:14,140 --> 00:36:19,480 simple de ciclos e as condicións e ramas, como os que vimos só un 724 00:36:19,480 --> 00:36:21,530 hai pouco no video TED. 725 00:36:21,530 --> 00:36:25,180 >> O que eu penso que eu ía facer agora é compartir non só algo que o equipo ten feito 726 00:36:25,180 --> 00:36:28,010 ao campus, senón algo un ex-alumno - tres 727 00:36:28,010 --> 00:36:29,080 os alumnos, de feito - 728 00:36:29,080 --> 00:36:33,950 fixo o ano pasado, Serra, Daniel e Sam, o último dos cales non tiña antes 729 00:36:33,950 --> 00:36:36,370 experiencia de programación cando asumiu o CS50. 730 00:36:36,370 --> 00:36:39,950 E para o seu proxecto final, que exhibiu, na Feira do CS50, unha 731 00:36:39,950 --> 00:36:43,720 wrdly aplicación chamada, que é un programa baseado na web para que fixeron 732 00:36:43,720 --> 00:36:47,670 este vídeo que eu penso que eu ía compartir a darlle un sentido de que é 733 00:36:47,670 --> 00:36:49,280 posible ata o final do prazo. 734 00:36:49,280 --> 00:37:57,170 >> [Música tocando] 735 00:37:57,170 --> 00:38:00,570 >> DAVID Malan: Isto é da Semana Cero Semana de 12 o ano pasado. 736 00:38:00,570 --> 00:38:05,470 >> [Aplausos] 737 00:38:05,470 --> 00:38:09,520 >> DAVID Malan: Como unha provocación, moi, moi para aguçar o apetito é o que se 738 00:38:09,520 --> 00:38:14,580 posible, xa debe ter visto, ou pode ver en breve, market.cs50.net, un 739 00:38:14,580 --> 00:38:17,710 nova ferramenta que o equipo do curso está a traballar, esta vez en 740 00:38:17,710 --> 00:38:21,530 colaboración con Harvard Estudante Axencias, de tal forma que a partir deste ano 741 00:38:21,530 --> 00:38:24,980 e continuando esperanza neste próximo verán vai ter un patrón 742 00:38:24,980 --> 00:38:27,890 oportunidade no campus para mercar e vender as cousas do seu interese. 743 00:38:27,890 --> 00:38:32,220 E coa colaboración por medio de HSA, vai tamén ser capaz de soltar elementos off 744 00:38:32,220 --> 00:38:35,950 nunha das tendas físicas da HSA nalgún momento no futuro, co fin de 745 00:38:35,950 --> 00:38:39,150 cousas proxy, especialmente como posgrao e non necesariamente quere 746 00:38:39,150 --> 00:38:44,110 descartar as cousas, pero en realidade pagalo encamiñar a xente que pode seguir 747 00:38:44,110 --> 00:38:45,270 aquí no campus. 748 00:38:45,270 --> 00:38:46,740 Entón, máis sobre iso máis para vir. 749 00:38:46,740 --> 00:38:49,830 >> Pero un pouco máis concretamente, unha ferramenta que veu de CS50 en recente 750 00:38:49,830 --> 00:38:52,760 anos, co que algúns de vostedes poden estar familiares e outras persoas de que se pode 751 00:38:52,760 --> 00:38:57,940 buscando agora, polo CS50.net/2x, vai atopar unha ligazón a unha extensión de Chrome 752 00:38:57,940 --> 00:39:01,250 o que é demostrativo de como pode usar JavaScript, que mesmo idioma que nos 753 00:39:01,250 --> 00:39:06,660 usado coa torre Eiffel un momento atrás, para aplicar a velocidade de reprodución 2x 754 00:39:06,660 --> 00:39:09,000 para todos os videos de Harvard Genwi. 755 00:39:09,000 --> 00:39:11,880 Isto é algo que está construído no propio reprodutor de vídeo do CS50. 756 00:39:11,880 --> 00:39:14,870 Pero iso, tamén, se comezar a cavar o código fonte, o que imos 757 00:39:14,870 --> 00:39:18,840 sorte facilitar, vai ver como pode incluso resolver problemas como este, 758 00:39:18,840 --> 00:39:23,180 acelerando widgets en sitios con que xa está ben familiarizado. 759 00:39:23,180 --> 00:39:26,630 >> Así, unha palabra de momento o curso e expectativas e que está á fronte. 760 00:39:26,630 --> 00:39:29,445 En xeral, nós imos de feito se reúne aquí os luns e mércores - aínda 761 00:39:29,445 --> 00:39:31,490 este venres, imos reunir por do Centro Comercial Semana - 762 00:39:31,490 --> 00:39:34,640 01:00 - 14:00, aínda que ás veces ata 2:30. 763 00:39:34,640 --> 00:39:38,700 Dado que podería, por tanto, quere ou Ten que tomar algunha clase en 02:00 764 00:39:38,700 --> 00:39:42,480 en diante, ou mesmo antes, perciben a curso é de soporte do que se chama 765 00:39:42,480 --> 00:39:45,900 inscrición simultánea, en que imos apoiar unha petición ao Consello Anuncio e 766 00:39:45,900 --> 00:39:49,400 o residente reitores no seu nome se ten un conflito nalgún lugar deste 767 00:39:49,400 --> 00:39:50,790 01:00 - 02:30 intervalo. 768 00:39:50,790 --> 00:39:54,110 Cabeza para que URL en liña para detalles adicionais. 769 00:39:54,110 --> 00:39:57,750 >> Pero, en termos da estrutura de soporte que caracteriza CS50, para estudantes 770 00:39:57,750 --> 00:40:01,750 máis e menos cómodo iguais, nos ofrecer pistas distintas de seccións. 771 00:40:01,750 --> 00:40:04,730 E este é un par de semanas de descanso, pero en pouco tempo, lle será solicitada a 772 00:40:04,730 --> 00:40:05,770 seu nivel de confort. 773 00:40:05,770 --> 00:40:08,590 Está entre os menos cómodos, máis cómodo, ou 774 00:40:08,590 --> 00:40:10,520 algures no medio? 775 00:40:10,520 --> 00:40:13,150 >> E nós imos ter tres distintas temas que atenden a 776 00:40:13,150 --> 00:40:14,470 precisamente aquelas audiencias. 777 00:40:14,470 --> 00:40:17,900 Así, en ningún punto o termo que debería ata se sentir como está a competencia 778 00:40:17,900 --> 00:40:21,390 contra calquera alumno con máis ou menos fondo do que. 779 00:40:21,390 --> 00:40:24,160 De feito, o curso está destinado a ser moito máis colaborativa e moito máis 780 00:40:24,160 --> 00:40:25,650 máis aberto do que iso. 781 00:40:25,650 --> 00:40:29,030 >> En termos de conxuntos de problemas, vai atopa-se tamén que ademais da 782 00:40:29,030 --> 00:40:32,130 edición estándar do problema de cada semana establecido, a miúdo hai un "hacker 783 00:40:32,130 --> 00:40:37,010 edición ", que está destinado a ser albo ó 5% a 10% ou máis do 784 00:40:37,010 --> 00:40:40,270 demográfico que está de feito entre os máis cómodo e quere máis 785 00:40:40,270 --> 00:40:43,960 un reto que o estándar edición que pset espera. 786 00:40:43,960 --> 00:40:46,390 Máis detalles sobre os que se atopar no programa. 787 00:40:46,390 --> 00:40:49,430 >> Pero tamén poden atopar-se detalles sobre os cursos de días de atraso. 788 00:40:49,430 --> 00:40:51,570 Normalmente problema define son debido ás xoves. 789 00:40:51,570 --> 00:40:55,550 Con todo, pode estender a moitos dos seus prazos esta caída de quinta a 790 00:40:55,550 --> 00:41:00,010 Venres simplemente por atoparnos a medio camiño, por así dicir, respondendo a algunhas warm-up 791 00:41:00,010 --> 00:41:03,370 preguntas en algúns dos problemas da semana actuacións, que ha automaticamente 792 00:41:03,370 --> 00:41:05,710 a continuación, dar-lle un extra de 24 horas. 793 00:41:05,710 --> 00:41:09,120 Tamén vai caer seu menor puntuación, segundo o contido programático. 794 00:41:09,120 --> 00:41:12,170 >> Para lle dar unha sensación de que o problema conxuntos son - porque é de feito 795 00:41:12,170 --> 00:41:15,120 o problema do curso define que en definitiva, establecer case todos os 796 00:41:15,120 --> 00:41:18,760 experiencia do alumno, máis do que conferencias, máis que seccións, máis 797 00:41:18,760 --> 00:41:21,230 de xeito que a maioría de calquera outra aspecto do curso. 798 00:41:21,230 --> 00:41:25,140 O ano pasado, por exemplo, que comezou, como imos comezar este ano, co scratch. 799 00:41:25,140 --> 00:41:29,150 Particularmente este venres, imos utilizar, por só o tempo de un día, unha gráfica 800 00:41:29,150 --> 00:41:32,260 linguaxe de programación, co que imos comezar a programación, arrastrando e 801 00:41:32,260 --> 00:41:37,580 soltando pezas do puzzle que só montar fisicamente se ten sentido 802 00:41:37,580 --> 00:41:38,990 a facelo loxicamente. 803 00:41:38,990 --> 00:41:43,460 >> A próxima semana, imos axiña a transición cara C, un moi antigo, pero moi pequeno e 804 00:41:43,460 --> 00:41:48,510 linguaxe sinxela que nos permitirá realmente ir de 0 a 60 no transcurso 805 00:41:48,510 --> 00:41:52,290 de só unhas semanas, e despois apostar esas mesmas habilidades e coñecementos de 806 00:41:52,290 --> 00:41:56,160 construcións básicas de programación en linguaxes de alto nivel, como PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, e aínda outros aínda. 808 00:41:58,240 --> 00:42:02,560 >> O ano pasado, o terceiro pset no curso foi a de criptografía, un 809 00:42:02,560 --> 00:42:06,380 aplicación específica do dominio polo cal estudantes desafiados a aplicar calquera 810 00:42:06,380 --> 00:42:11,140 número de cifras, programas cos que para codificar ou decodificar información, 811 00:42:11,140 --> 00:42:11,880 a criptografía-lo. 812 00:42:11,880 --> 00:42:16,300 Para a edición hackers, en contraste, demos aos estudantes de hackers un ficheiro 813 00:42:16,300 --> 00:42:19,900 dende un ordenador estándar Unix que conteñen nomes de usuario e contrasinais, 814 00:42:19,900 --> 00:42:22,740 o último dos cales foi codificado, e desafiou os hackers 815 00:42:22,740 --> 00:42:26,850 alumnos para descifrar, o mellor que podían, estas claves, aínda que en 816 00:42:26,850 --> 00:42:27,770 mesmo dominio. 817 00:42:27,770 --> 00:42:30,580 >> Scramble, un xogo co que algúns vostedes son quizais familiar. 818 00:42:30,580 --> 00:42:34,410 A peza forense, onde pedimos aos alumnos para recuperar datos que foran 819 00:42:34,410 --> 00:42:38,530 se non eliminado do meu propio dixitais tarxeta compact flash da cámara, por 820 00:42:38,530 --> 00:42:42,740 realmente escribir software para descubrir, onde estaban os ceros e uns en 821 00:42:42,740 --> 00:42:46,850 que a cámara dixital que anteriormente compuxo un gráfico JPEG? 822 00:42:46,850 --> 00:42:49,710 >> Un reto de sorte o ano pasado que inclúen a escribir o máis rápido 823 00:42:49,710 --> 00:42:53,160 corrector ortográfico posible, competindo contra amigos e compañeiros se 824 00:42:53,160 --> 00:42:53,860 eles lles gustaría. 825 00:42:53,860 --> 00:42:56,330 Despregar n Huff Puff ', un programa de compresión. 826 00:42:56,330 --> 00:43:01,930 E, a continuación, terminando o semestre coa CS50 Finanzas, unha aplicación baseada na web con 827 00:43:01,930 --> 00:43:06,570 cal se crea un sitio eTrade-like para mercar e vender accións, co fin de 828 00:43:06,570 --> 00:43:09,860 falar, por realmente tirando case presupostos en tempo real Yahoo! 829 00:43:09,860 --> 00:43:10,450 Financiamento. 830 00:43:10,450 --> 00:43:13,590 >> O que non fixemos o ano pasado foi un conxunto de problemas, que permanece 831 00:43:13,590 --> 00:43:14,810 deixa de ser un favorito. 832 00:43:14,810 --> 00:43:18,400 Se nunca foi a shuttle.cs50.net, verás un usuario 833 00:43:18,400 --> 00:43:19,670 interactuar algo con iso. 834 00:43:19,670 --> 00:43:23,530 Pero hai dous anos, a clase aplicado, usando Google Maps eo 835 00:43:23,530 --> 00:43:28,570 Google Earth plugin e algo de habilidade con a condución en torno ao campus, 836 00:43:28,570 --> 00:43:33,290 de xeito que o obxectivo deste xogo era, como podes ver algúns dos rostros, 837 00:43:33,290 --> 00:43:37,530 é a unidade en torno campus buscando funcionarios, compañeiros de ensino e CAs, e 838 00:43:37,530 --> 00:43:40,080 cando, poñendo-os no seu bus. 839 00:43:40,080 --> 00:43:44,035 Ningún deles realmente parecen estar aquí, entón imos entrar nun código da fraude. 840 00:43:44,035 --> 00:43:47,150 >> [Risas] 841 00:43:47,150 --> 00:43:48,430 >> DAVID Malan: Alí imos nós. 842 00:43:48,430 --> 00:43:49,240 Todo ben. 843 00:43:49,240 --> 00:43:51,750 E aquí é o persoal atado en todo campus. 844 00:43:51,750 --> 00:43:54,530 E, como se pode ver, na parte dereita lado da pantalla, o autobús 845 00:43:54,530 --> 00:43:55,510 ten asentos baleiros. 846 00:43:55,510 --> 00:43:59,000 E o obxectivo foi o de escribir o código co que simular este 847 00:43:59,000 --> 00:44:01,790 condución e pegando e largando fóra de pasaxeiros. 848 00:44:01,790 --> 00:44:04,960 Este, tamén, mediante unha linguaxe chamado Javascript. 849 00:44:04,960 --> 00:44:10,030 Entón entendemos que programas como o que vai estar na nosa mesma traxectoria deste 850 00:44:10,030 --> 00:44:10,910 ano, tamén. 851 00:44:10,910 --> 00:44:13,640 >> En termos, agora, dun apoio adicional, temos o horario de oficina. 852 00:44:13,640 --> 00:44:16,520 Como se pode ver na súa propia casa comedor ou na Annenberg, 853 00:44:16,520 --> 00:44:19,280 estar na casa de xantar salóns de catro noites por semana - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot e Annenberg este ano, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 E o que pensamos en facer este ano é algo un pouco diferente. 856 00:44:26,830 --> 00:44:29,650 >> Se escoitou rumores o ano pasado que era un pouco estresante, este 857 00:44:29,650 --> 00:44:32,800 o horario de expediente do ano, como imos describir a próxima semana, será máis orgánica, 858 00:44:32,800 --> 00:44:36,900 en que, á chegada, será despachado para unha mesa especial 859 00:44:36,900 --> 00:44:39,860 onde varios membros do equipo esperan, e imos facer as cousas moito máis 860 00:44:39,860 --> 00:44:40,440 organismos. 861 00:44:40,440 --> 00:44:43,740 Non hai máis cola, non máis do iPad, pero Prefiro ter máis íntima 862 00:44:43,740 --> 00:44:47,300 conversas en torno a unha mesa de só oito ou para que os alumnos, de xeito que 863 00:44:47,300 --> 00:44:50,880 aproximado a sensación de que en caso contrario Sería unha clase moi pequena. 864 00:44:50,880 --> 00:44:54,120 >> Ofrece, así, esas cousas que chamado orientacións, vídeos filmados en 865 00:44:54,120 --> 00:44:57,330 avanzar por unha das ensinanzas do curso compañeiros, Zamyla, no cal ela 866 00:44:57,330 --> 00:45:00,690 percorre problema da semana conxuntos, ofrecendo consellos e trucos para o 867 00:45:00,690 --> 00:45:02,640 retos que se poñen. 868 00:45:02,640 --> 00:45:06,230 E, inversamente, tras conxuntos de problemas son debido, este ano, imos tamén publicar 869 00:45:06,230 --> 00:45:09,100 pequenos clips chamar post-mortem que realmente levalo a través 870 00:45:09,100 --> 00:45:13,630 solucións representativas, tanto o ben como malo, a través do cal pódese inferir como 871 00:45:13,630 --> 00:45:17,550 podería ter ou debería aplicou a súa propia solución. 872 00:45:17,550 --> 00:45:20,500 >> E o que nós imos ofrecer por primeira vez este ano, así como, en particular 873 00:45:20,500 --> 00:45:23,420 para os alumnos que fagan uso do curso da outra 874 00:45:23,420 --> 00:45:28,580 recursos, pero aínda así están loitando todo moi, o curso 875 00:45:28,580 --> 00:45:33,030 si vai vincular os alumnos, como os recursos permitan, cos titores para que 876 00:45:33,030 --> 00:45:35,840 tes moito máis íntimo oportunidade de casa comedores 877 00:45:35,840 --> 00:45:38,700 permitir one-on-one asistencia. 878 00:45:38,700 --> 00:45:42,780 >> Agora, un reflexo final nalgúns dos xogos fin á vista. 879 00:45:42,780 --> 00:45:44,580 Podes estar familiarizado coa o CS50 hackathon. 880 00:45:44,580 --> 00:45:48,120 Ben, chegando en decembro, desde 08:00 PM ás 07h00, no inicio 881 00:45:48,120 --> 00:45:51,410 Período de lectura, será unha oportunidade para reunirse cos compañeiros - 882 00:45:51,410 --> 00:45:53,130 esta sería en torno a 9:00 AM - 883 00:45:53,130 --> 00:45:56,550 durante o cal mergulla na súa última implantación do proxecto xunto con 884 00:45:56,550 --> 00:45:59,910 compañeiros, amigos, e alimentos. 885 00:45:59,910 --> 00:46:03,680 Iso sería en torno a 01h00, cando o primeiro lote de comida chegou. 886 00:46:03,680 --> 00:46:08,470 E iso é que preto de 4h00 determinado ano no CS50 hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Pero o certo clímax do curso é destínase a Feira do CS50, un campus-wide 888 00:46:12,000 --> 00:46:15,790 exposición de seus propios proxectos finais, para que a familia e os amigos son todo 889 00:46:15,790 --> 00:46:18,730 invitado, como os nosos recrutados e os nosos amigos da industria. 890 00:46:18,730 --> 00:46:22,170 Este, por exemplo, é un reflexo do 2.000 persoas-ademais de que xa participei 891 00:46:22,170 --> 00:46:23,160 últimos anos. 892 00:46:23,160 --> 00:46:27,180 Expresións como esta non son pouco comúns, e do mesmo xeito facer o 893 00:46:27,180 --> 00:46:29,660 compañeiros Deliciosos-se coas cousas vostede realizou. 894 00:46:29,660 --> 00:46:33,170 >> E de feito, nese sentido, temos un evento de inicio de mandato, tamén. 895 00:46:33,170 --> 00:46:37,400 Se as cousas como este chamamento a vostede, ou está, como mínimo, curioso para saber o que 896 00:46:37,400 --> 00:46:41,590 tanto, saber que unha nova tradición do curso chámase CS50 enigma día. 897 00:46:41,590 --> 00:46:45,710 E iso foi instituído un par de anos para realmente sinalizar a campus 898 00:46:45,710 --> 00:46:48,930 que a informática non é sobre programación, e non é certamente 899 00:46:48,930 --> 00:46:51,960 preto de abrazar só os estudantes que teñen experiencia previa. 900 00:46:51,960 --> 00:46:54,200 É realmente sobre a resolución de problemas máis xeral. 901 00:46:54,200 --> 00:46:57,360 >> E así Enigma Día, ao longo dos últimos anos, evolucionou para un bo 902 00:46:57,360 --> 00:47:00,500 colaboración cos nosos amigos da Facebook, a través do cal haberá fabuloso 903 00:47:00,500 --> 00:47:04,830 premios e pizza outro lado do río en o i-lab o próximo sábado. 904 00:47:04,830 --> 00:47:09,180 Deica a URL con dous ou tres amigos, se desexa participar 905 00:47:09,180 --> 00:47:10,830 nesta nova tradición. 906 00:47:10,830 --> 00:47:14,180 >> Entón gustaríame pedir que manteña un cousa en mente, e nós temos só un 907 00:47:14,180 --> 00:47:17,070 dous minutos clip no que para pechar hoxe. 908 00:47:17,070 --> 00:47:19,640 73% é o número de lembrar. 909 00:47:19,640 --> 00:47:23,900 Cake, tamén, esperan por ti fóra desa transepto como retrasar en só un 910 00:47:23,900 --> 00:47:26,710 pouco tempo, o que é unha tradición do curso, así. 911 00:47:26,710 --> 00:47:29,860 Pero esta é a cita clave do Syllabus do curso para manter presente. 912 00:47:29,860 --> 00:47:32,820 O importante, en definitiva, este curso non é tanto onde acaba 913 00:47:32,820 --> 00:47:36,580 con respecto aos seus compañeiros de clase, pero onde ti, a Semana de 12, acaban en relación ao 914 00:47:36,580 --> 00:47:37,960 se a semana 0. 915 00:47:37,960 --> 00:47:43,670 >> Pero a visión de que imos deixalo con aquí, hoxe, é esta última aquí 916 00:47:43,670 --> 00:47:47,580 polo noso mesmo Daniel, que fixo o video wrdly só un momento atrás. 917 00:47:47,580 --> 00:47:50,000 Déixovos con este reflexo do que está por vir. 918 00:47:50,000 --> 00:47:53,360 E como facemos iso, se puidésemos ter CS50 persoal desde a fronte da sala 919 00:47:53,360 --> 00:47:57,280 para vir ata a fase de pintar todo a máis dunha imaxe visual 920 00:47:57,280 --> 00:47:59,100 o que o espera vai de ano - 921 00:47:59,100 --> 00:48:00,350 quedando estraño. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Imos concluír con este aquí na pantalla. 924 00:48:05,188 --> 00:48:18,634 >> [Música tocando] 925 00:48:18,634 --> 00:48:21,124 >> DAVID Malan: Este é CS50. 926 00:48:21,124 --> 00:50:00,226 >> [Music - Matt & Kim, "Está todo ben"] 927 00:50:00,226 --> 00:50:03,245 >> COLUMNA 1: Eu amo CS50 máis que gatos. 928 00:50:03,245 --> 00:50:06,030 >> COLUMNA 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Risas] 930 00:50:06,990 --> 00:50:08,140 >> DAVID Malan: Este é, entón, CS50. 931 00:50:08,140 --> 00:50:10,050 Imos velo na venres. 932 00:50:10,050 --> 00:50:13,370 >> [Aplausos e aclamacións] 933 00:50:13,370 --> 00:50:17,540 >> Narrador: Na seguinte CS50, un escenario demo non saen como planificado. 934 00:50:17,540 --> 00:50:19,080 >> DAVID Malan: Queremos atopar Mike Smith no libro de teléfono. 935 00:50:19,080 --> 00:50:20,380 Así, cales son os seus instintos? 936 00:50:20,380 --> 00:50:23,750 Podería ir aproximadamente para o medio o libro de teléfono, ollar para abaixo, ver que 937 00:50:23,750 --> 00:50:26,830 Estou en M, e agora sei que Mike Smith non é a esquerda. 938 00:50:26,830 --> 00:50:27,840 Debe ser para a dereita. 939 00:50:27,840 --> 00:50:30,515 E así, neste momento, nós Pode literalmente rasgar - 940 00:50:30,515 --> 00:50:33,300 Neste punto, podemos literalmente rasgar - 941 00:50:33,300 --> 00:50:36,490 Neste punto, podemos figurativamente rasgar o libro de teléfono pola metade. 942 00:50:36,490 --> 00:50:38,954 >> [Dedilhando UKELELE]