1 00:00:00,000 --> 00:00:03,440 >> [MÚSICA DE JOGO] 2 00:00:03,440 --> 00:01:57,217 3 00:01:57,217 --> 00:02:00,710 >> [Aplausos] 4 00:02:00,710 --> 00:02:05,700 5 00:02:05,700 --> 00:02:09,669 >> David J. MALAN: Este é CS50, Introdução da Universidade de Harvard 6 00:02:09,669 --> 00:02:12,370 ao intelectual empresas de informática 7 00:02:12,370 --> 00:02:14,180 ea arte da programação. 8 00:02:14,180 --> 00:02:17,530 Agora, se você está entre aqueles que a cada ano está sentado aqui 9 00:02:17,530 --> 00:02:21,450 com um pouco de nervosismo em sua mente, tais que você não acha que você é aqui, 10 00:02:21,450 --> 00:02:24,270 Você acha que a maioria alguém sentado ao seu redor 11 00:02:24,270 --> 00:02:27,730 sabe muito mais do que você, é de fato mais confortável do que no computador 12 00:02:27,730 --> 00:02:30,430 ciência ou computadores de modo mais geral, percebe 13 00:02:30,430 --> 00:02:36,140 que 78% dos alunos que agora tomar CS50 tem nenhuma experiência prévia. 14 00:02:36,140 --> 00:02:39,570 >> De fato, há 100 pontos lá no visor, 78 dos quais 15 00:02:39,570 --> 00:02:43,540 são verde contínuo, o que significa que, se você está entre esse grupo demográfico, 16 00:02:43,540 --> 00:02:46,420 estão em muito boa companhia daqui em diante. 17 00:02:46,420 --> 00:02:50,320 E se você estiver em vez entre os 22% dos estudantes que fazem de fato CS50 18 00:02:50,320 --> 00:02:53,920 ter experiência anterior, seja em ensino médio ou algum outro programa, 19 00:02:53,920 --> 00:02:56,430 perceber que você, também, vai ser contestada no curso. 20 00:02:56,430 --> 00:02:59,930 >> Não só temos diferentes faixas para os alunos menos confortável e mais 21 00:02:59,930 --> 00:03:03,789 confortável iguais em seções, também chamado edições de hackers 22 00:03:03,789 --> 00:03:06,080 de mais conjuntos de problemas que vai desafiar os alunos 23 00:03:06,080 --> 00:03:09,650 com essa experiência adicional para explorar material semelhante 24 00:03:09,650 --> 00:03:12,140 mas a partir de um mais perspectiva sofisticado. 25 00:03:12,140 --> 00:03:13,900 >> Mas o que é ciência da computação? 26 00:03:13,900 --> 00:03:17,750 Bem, em última análise, o que vai importa como você explorar este campo não é 27 00:03:17,750 --> 00:03:20,500 tanto que você acaba em relação a seus colegas de classe, 28 00:03:20,500 --> 00:03:25,350 mas onde você mesmo acabar em semana 12 versus onde você começa aqui 29 00:03:25,350 --> 00:03:26,720 na semana zero. 30 00:03:26,720 --> 00:03:31,850 Agora computador science-- bem, vamos chamam a ciência da computation-- 31 00:03:31,850 --> 00:03:35,910 onde a computação é realmente apenas uma maneira elegante de dizer, tendo alguma entrada, 32 00:03:35,910 --> 00:03:39,460 produzir alguma saída, e fazê-lo por meio de algoritmos que executam, 33 00:03:39,460 --> 00:03:43,700 conjuntos de instruções para resolver algum problema nesses inputs 34 00:03:43,700 --> 00:03:48,460 de forma a produzir cerca de saída ou solução na qual você está interessado. 35 00:03:48,460 --> 00:03:51,310 >> Então, recentemente, tivemos oportunidade de viajar para fora 36 00:03:51,310 --> 00:03:53,170 para a Califórnia para se encontrar com uma aluna. 37 00:03:53,170 --> 00:03:54,650 O nome dela é Susan Wojcicki. 38 00:03:54,650 --> 00:03:57,190 E ela gostaria de falar para você aqui em vídeo 39 00:03:57,190 --> 00:04:01,690 para testemunhar o quão aplicável mesmo apenas uma amostra do computador 40 00:04:01,690 --> 00:04:03,770 ciência no nível introdutório pode ser. 41 00:04:03,770 --> 00:04:06,870 Mesmo se você não ir para prosseguir ciência da computação como um campo, 42 00:04:06,870 --> 00:04:09,330 ou até mesmo a engenharia, ou STEM mais geral, 43 00:04:09,330 --> 00:04:12,360 você vai ver, na verdade, como um certo Claro que tanto influenciou sua vida. 44 00:04:12,360 --> 00:04:16,630 E ela apenas tomou quando ela estava no último ano aqui na faculdade de Harvard. 45 00:04:16,630 --> 00:04:19,482 >> Se pudéssemos diminuir as luzes para Susan. 46 00:04:19,482 --> 00:04:20,690 SUSAN Wojcicki: Olá, mundo. 47 00:04:20,690 --> 00:04:22,100 Estou Susan Wojcicki. 48 00:04:22,100 --> 00:04:24,110 Eu sou o CEO do YouTube. 49 00:04:24,110 --> 00:04:29,150 E tomei CS50 quando eu era um sénior na Universidade de Harvard em 1990. 50 00:04:29,150 --> 00:04:31,220 Eu era realmente uma história e grande literatura. 51 00:04:31,220 --> 00:04:36,760 >> E o meu verão júnior, Eu percebi que talvez eu 52 00:04:36,760 --> 00:04:39,060 queria aprender algo sobre computadores. 53 00:04:39,060 --> 00:04:40,930 E assim, eu voltei. 54 00:04:40,930 --> 00:04:42,500 Tomei CS50. 55 00:04:42,500 --> 00:04:46,940 Foi difícil, mas foi o mais classe incrível que eu tomei. 56 00:04:46,940 --> 00:04:49,630 >> Ele mudou a forma como eu penso sobre tudo. 57 00:04:49,630 --> 00:04:55,810 E quando eu me formei em Harvard em 1990, fui para o Vale do Silício. 58 00:04:55,810 --> 00:04:57,140 E eu tenho um emprego. 59 00:04:57,140 --> 00:05:00,150 E eu tenho trabalhado em tecnologia desde então. 60 00:05:00,150 --> 00:05:02,650 DAVID J. MALAN: Agora que Susan não mencionou neste vídeo, 61 00:05:02,650 --> 00:05:05,340 que era, na verdade, em sua garagem que o próprio Google foi 62 00:05:05,340 --> 00:05:07,420 fundada por Larry e Sergey. 63 00:05:07,420 --> 00:05:11,169 >> Agora também estendeu a mão para os nossos amigos em code.org, uma organização que 64 00:05:11,169 --> 00:05:13,460 em relação ao ano passado foi levar as pessoas particularmente 65 00:05:13,460 --> 00:05:16,520 animado sobre ciência da computação e de programação, em particular. 66 00:05:16,520 --> 00:05:20,590 Mas é importante notar que a programação não é ciência da computação per se. 67 00:05:20,590 --> 00:05:22,090 A ciência da computação não está programando. 68 00:05:22,090 --> 00:05:24,560 Em vez de programação é apenas uma tool-- com que todos vocês 69 00:05:24,560 --> 00:05:27,510 será muito bem familiarizado com end-- semestre 70 00:05:27,510 --> 00:05:30,650 de tal forma que você pode não se aplicar apenas para os futuros cursos de CS 71 00:05:30,650 --> 00:05:33,670 mas para o que quer que os campos de onde você está vindo, em humanidades, 72 00:05:33,670 --> 00:05:36,090 ciências sociais, natural ciência, ou semelhantes. 73 00:05:36,090 --> 00:05:39,740 >> De fato, permitir que alguns outros ex-alunos e seus colegas 74 00:05:39,740 --> 00:05:43,400 para falar com a aplicabilidade do campo que o espera. 75 00:05:43,400 --> 00:05:52,340 76 00:05:52,340 --> 00:05:57,350 >> BILL GATES: Eu tinha 13 anos quando eu primeiro tem acesso a um computador. 77 00:05:57,350 --> 00:06:00,485 >> Jack Dorsey: Meus pais me comprou um Macintosh em 1984 78 00:06:00,485 --> 00:06:01,640 quando eu tinha oito anos de idade. 79 00:06:01,640 --> 00:06:02,990 >> Mark Zuckerberg: Eu estava na sexta série. 80 00:06:02,990 --> 00:06:04,670 >> COLUNA 1: Eu aprendi a programar na faculdade. 81 00:06:04,670 --> 00:06:09,080 >> Ruchi Sanghvi: primeiro ano, primeiro semestre, Introdução à Ciência da Computação. 82 00:06:09,080 --> 00:06:11,850 >> BILL GATES: Eu escrevi um programa que jogou tic-tac-toe. 83 00:06:11,850 --> 00:06:14,100 >> DREW HOUSTON: Eu acho que foi começos muito humildes. 84 00:06:14,100 --> 00:06:16,370 Acho que o primeiro programa Escrevi perguntou coisas como: 85 00:06:16,370 --> 00:06:17,820 qual é a sua cor favorita? 86 00:06:17,820 --> 00:06:18,696 Ou quantos anos você tem? 87 00:06:18,696 --> 00:06:21,070 ELENA SILENOK: Eu aprendi primeiro como fazer um círculo verde 88 00:06:21,070 --> 00:06:23,670 e um quadrado vermelho aparecerá na tela. 89 00:06:23,670 --> 00:06:25,420 Gabe Newell: O primeiro vez que eu realmente tinha 90 00:06:25,420 --> 00:06:27,360 algo chegar e dizer: Olá, mundo. 91 00:06:27,360 --> 00:06:29,710 E eu fiz um computador fazer isso. 92 00:06:29,710 --> 00:06:30,850 Foi simplesmente incrível. 93 00:06:30,850 --> 00:06:33,224 >> Mark Zuckerberg: Aprender para o programa não começou 94 00:06:33,224 --> 00:06:35,450 como querendo aprender tudo de ciência da computação 95 00:06:35,450 --> 00:06:38,630 ou tentando dominar essa disciplina ou qualquer coisa assim. 96 00:06:38,630 --> 00:06:41,591 Ele só começou porque eu queria fazer uma coisa simples. 97 00:06:41,591 --> 00:06:44,340 Eu queria fazer algo que Foi divertido para mim e para minhas irmãs. 98 00:06:44,340 --> 00:06:46,399 >> E eu escrevi este pequeno programa. 99 00:06:46,399 --> 00:06:48,440 E então, basicamente, apenas adicionado um pouco a ele. 100 00:06:48,440 --> 00:06:49,930 E então, quando eu precisava para aprender algo novo, 101 00:06:49,930 --> 00:06:52,210 Eu olhei para cima, seja em um livro ou na internet, 102 00:06:52,210 --> 00:06:53,240 e, em seguida, adicionado um pouco a ele. 103 00:06:53,240 --> 00:06:56,300 >> DREW HOUSTON: Realmente não é diferente de tocar um instrumento ou algo 104 00:06:56,300 --> 00:07:00,007 ou praticar um esporte. 105 00:07:00,007 --> 00:07:01,090 DAVID J. MALAN: Tudo bem. 106 00:07:01,090 --> 00:07:04,120 Então, nós vamos agora, na verdade, mergulhar um pouco mais fundo. 107 00:07:04,120 --> 00:07:07,430 Quais são essas entradas e saídas que estamos falando aqui? 108 00:07:07,430 --> 00:07:09,110 >> Então, que tal algo simples? 109 00:07:09,110 --> 00:07:12,120 Você provavelmente sabe, mesmo se você tiver nenhuma familiaridade com a informática 110 00:07:12,120 --> 00:07:16,570 que seja, de que os computadores de alguma forma usar e compreende apenas zeros e uns. 111 00:07:16,570 --> 00:07:20,500 Mas como é que isso pode, eventualmente, ser dada como desktops quanto laptops de hoje e da mesma forma 112 00:07:20,500 --> 00:07:21,280 pode fazer? 113 00:07:21,280 --> 00:07:24,310 >> O DNA do dia, a única alfabeto que eles compreendam 114 00:07:24,310 --> 00:07:26,410 é um zero ou um um. 115 00:07:26,410 --> 00:07:27,470 Bem, considere isso. 116 00:07:27,470 --> 00:07:30,840 Nós, os seres humanos, tendem a utilizar a sistema decimal. "Dezembro", que significa 10. 117 00:07:30,840 --> 00:07:33,970 E isso é 10 porque temos 10 dígitos, de 0 a nove. 118 00:07:33,970 --> 00:07:36,180 >> Agora, os computadores, por contraste, tendem a utilizar binário. 119 00:07:36,180 --> 00:07:37,270 "Bi" significa dois. 120 00:07:37,270 --> 00:07:39,560 Assim, eles tendem apenas zero e um para usar. 121 00:07:39,560 --> 00:07:42,680 Mas acontece que, mesmo apenas com zeros e uns, que 122 00:07:42,680 --> 00:07:45,900 é suficientemente grande alfabeto com a qual a representar mais 123 00:07:45,900 --> 00:07:48,490 qualquer pedaço de dados que você quer, se é um número, 124 00:07:48,490 --> 00:07:52,100 se é uma carta, se é um gráfico ou de vídeo na tela. 125 00:07:52,100 --> 00:07:57,140 >> Considere, por exemplo, como nós, seres humanos normalmente interpretar esse número aqui. 126 00:07:57,140 --> 00:08:00,010 Este é apenas três dígitos, um, dois, três. 127 00:08:00,010 --> 00:08:04,570 Mas sabemos que este número innately agora como 123. 128 00:08:04,570 --> 00:08:05,510 Mas por que isso? 129 00:08:05,510 --> 00:08:07,570 >> Bem, se você acha que volta talvez para a escola primária, 130 00:08:07,570 --> 00:08:11,700 você provavelmente foi ensinado a pensar em estes números como sendo, em colunas 131 00:08:11,700 --> 00:08:14,700 onde um é na ordem das centenas lugar, a dois está na casa das dezenas, 132 00:08:14,700 --> 00:08:16,360 e os três está na casa das unidades. 133 00:08:16,360 --> 00:08:17,790 Por que isso é realmente útil? 134 00:08:17,790 --> 00:08:19,665 Bem, pense sobre o aritmética super simples 135 00:08:19,665 --> 00:08:22,219 que todos nós temos sido fazendo há anos. 136 00:08:22,219 --> 00:08:24,510 Efetivamente, se você tem um na casa das centenas, 137 00:08:24,510 --> 00:08:29,610 Você faz a matemática rápida 100 vezes 1 mais 10 vezes 2-- 138 00:08:29,610 --> 00:08:33,059 porque dois é na casa das dezenas lugar-- mais 1 vezes 3-- 139 00:08:33,059 --> 00:08:34,830 porque três é na casa das unidades. 140 00:08:34,830 --> 00:08:37,039 Assim, é claro que, se realmente multiplicar isso, 141 00:08:37,039 --> 00:08:39,600 o que nós realmente estamos representando com este pattern-- 142 00:08:39,600 --> 00:08:46,150 dois três-- é de 100 mais 20 mais 3, o que, naturalmente, é de 123. 143 00:08:46,150 --> 00:08:51,130 >> Agora binário, e os computadores realmente, fundamentalmente falam a mesma língua 144 00:08:51,130 --> 00:08:51,680 o que fazemos. 145 00:08:51,680 --> 00:08:53,400 Eles só têm um alfabeto menor. 146 00:08:53,400 --> 00:08:57,100 Assim, os computadores só tem zeros e aqueles à sua disposição. 147 00:08:57,100 --> 00:09:02,500 Assim, enquanto nós seres humanos temos essencialmente potências de 10 em cada uma dessas places-- 148 00:09:02,500 --> 00:09:06,810 10 para o zero, a 10 a um, dez para os dois, dando-lhe 110 e 100 149 00:09:06,810 --> 00:09:07,700 respectivamente. 150 00:09:07,700 --> 00:09:12,140 >> Como os computadores só tem dois valores que eles possam compreender, zero e um, 151 00:09:12,140 --> 00:09:16,600 eles têm que usar valores diferentes nessas colunas, um, dois, quatro. 152 00:09:16,600 --> 00:09:20,480 E se continuou, oito, 16, 32, 64, e assim por diante. 153 00:09:20,480 --> 00:09:24,220 Mas o padrão e o mentalidade é exatamente o mesmo. 154 00:09:24,220 --> 00:09:27,340 >> Então, por esta lógica, qualquer um, como seria Eu vou sobre o que representa o número 155 00:09:27,340 --> 00:09:28,530 um binário em? 156 00:09:28,530 --> 00:09:33,080 Se você nunca sequer pensou em isso antes, o que é seu intestino dizer? 157 00:09:33,080 --> 00:09:33,777 >> AUDIÊNCIA: One. 158 00:09:33,777 --> 00:09:34,610 DAVID J. MALAN: One. 159 00:09:34,610 --> 00:09:35,660 Exatamente. 160 00:09:35,660 --> 00:09:38,100 Só precisamos de um um no queridos lugar porque os zeros 161 00:09:38,100 --> 00:09:40,610 suficiente para nos dar nem um, nem um de quatro dois. 162 00:09:40,610 --> 00:09:42,440 Então, um vezes um é igual a um. 163 00:09:42,440 --> 00:09:43,940 Agora as coisas ficam um pouco interessante. 164 00:09:43,940 --> 00:09:46,830 Se eu quiser representar em binário o número dois-- mas, 165 00:09:46,830 --> 00:09:49,790 novamente, mesmo que você nunca fala essa linguagem, antes, 166 00:09:49,790 --> 00:09:54,680 como é que vamos representar em binário O valor que os humanos sabem como dois? 167 00:09:54,680 --> 00:09:55,570 Zero um zero. 168 00:09:55,570 --> 00:09:57,620 Basta colocar um no coluna que você quer. 169 00:09:57,620 --> 00:09:59,560 >> Agora está ficando muito fácil provavelmente agora. 170 00:09:59,560 --> 00:10:02,950 Então, se eu quiser representar três-- há nenhuma coluna três. 171 00:10:02,950 --> 00:10:06,770 Então, novamente, eu agora pode adicionar esses valores juntos, colocando um aqui. 172 00:10:06,770 --> 00:10:10,320 Portanto, 2 vezes 1 mais 1 vezes 1 é, evidentemente, 3. 173 00:10:10,320 --> 00:10:13,480 >> Agora as coisas ficam um pouco de diversão aqueles que agora se tornou zero. 174 00:10:13,480 --> 00:10:15,480 E para representar quatro, eu entendo isso. 175 00:10:15,480 --> 00:10:19,310 E se aumentar lentamente aqui-- que seria cinco. 176 00:10:19,310 --> 00:10:20,700 Este seria seis. 177 00:10:20,700 --> 00:10:22,100 Este seria sete. 178 00:10:22,100 --> 00:10:25,310 >> Mas agora me parece ter deparar com um problema. 179 00:10:25,310 --> 00:10:30,520 Como eu poderia ir sobre a representação eight-- seria o próximo valor. 180 00:10:30,520 --> 00:10:31,900 Sim, por isso precisamos de uma nova bits. 181 00:10:31,900 --> 00:10:33,899 E, de fato, se você tiver ouviu esta frase antes, 182 00:10:33,899 --> 00:10:37,380 pedaços, isso é apenas a abreviação de dígito binário, zero ou um. 183 00:10:37,380 --> 00:10:41,520 >> E assim acontece que eu estar representando apenas três desses pedaços aqui. 184 00:10:41,520 --> 00:10:44,900 Mas se eu tivesse uma maneira de não armazenar três diferentes bits, mas quatro, 185 00:10:44,900 --> 00:10:47,250 com certeza eu poderia representar oito, nove e depois, e depois 186 00:10:47,250 --> 00:10:49,400 10, e ainda mais e mais. 187 00:10:49,400 --> 00:10:52,140 >> Mas que chama então em causa como podemos 188 00:10:52,140 --> 00:10:54,540 ir sobre o que representa estes coisas em primeiro lugar. 189 00:10:54,540 --> 00:10:56,950 É uma coisa para desenhar los aqui em um slide, 190 00:10:56,950 --> 00:11:00,660 mas como você representá-los se você é um dispositivo mecânico? 191 00:11:00,660 --> 00:11:04,390 O que é um computador que faz a representam as entradas e saídas que 192 00:11:04,390 --> 00:11:09,020 fundamentalmente definir computação no fim do dia? 193 00:11:09,020 --> 00:11:12,090 >> Bem, o que dizer de algo super simples como este? 194 00:11:12,090 --> 00:11:13,200 É apenas uma lâmpada. 195 00:11:13,200 --> 00:11:15,460 E eu posso acionar essa lâmpada para ir em 196 00:11:15,460 --> 00:11:17,920 girando um pouco de eletricidade on e permitindo que os elétrons 197 00:11:17,920 --> 00:11:22,585 a fluir através de, que muda a sua estado ou o seu valor, por assim dizer. 198 00:11:22,585 --> 00:11:24,460 Por exemplo, esta é uma lâmpada de mesa velha escola 199 00:11:24,460 --> 00:11:27,250 aqui com um tal lâmpada dentro dele. 200 00:11:27,250 --> 00:11:29,940 E agora não é realmente fazendo algo útil. 201 00:11:29,940 --> 00:11:32,680 Mas assim que eu ligá-lo a uma tomada eléctrica 202 00:11:32,680 --> 00:11:36,390 e, em seguida, usar esse switch-- ou podemos até chamá-lo de um transistor 203 00:11:36,390 --> 00:11:39,970 ou pensar nele como such-- Agora eu posso representar tanto 204 00:11:39,970 --> 00:11:44,120 esse valor, caso a lâmpada do obviamente, fora, ou esse valor. 205 00:11:44,120 --> 00:11:46,060 Este valor ou esse valor. 206 00:11:46,060 --> 00:11:47,520 Este valor e assim por diante. 207 00:11:47,520 --> 00:11:51,220 >> Então, dentro de um computador, presumivelmente, são peças muito menores de hardware, 208 00:11:51,220 --> 00:11:52,970 mas que no final do dia simplesmente ter 209 00:11:52,970 --> 00:11:55,360 usar electricity-- talvez capturar ele-- 210 00:11:55,360 --> 00:11:59,730 e em seguida, manter algo ou manter algo fora. 211 00:11:59,730 --> 00:12:02,021 É claro, este não é particularmente interessante para fazer 212 00:12:02,021 --> 00:12:03,270 com apenas uma única lâmpada. 213 00:12:03,270 --> 00:12:06,726 >> Na verdade, o quão alto posso contar em binária com esta lâmpada de mesa aqui? 214 00:12:06,726 --> 00:12:07,420 >> AUDIÊNCIA: One. 215 00:12:07,420 --> 00:12:08,545 >> DAVID J. MALAN: um, certo? 216 00:12:08,545 --> 00:12:11,020 Preciso de mais lâmpadas de mesa se eu realmente quer contar superior. 217 00:12:11,020 --> 00:12:12,210 Mas podemos fazer melhor que isso. 218 00:12:12,210 --> 00:12:14,460 Porque as lâmpadas que nós colocamos nestas coisas 219 00:12:14,460 --> 00:12:17,730 são realmente extravagantes lâmpadas do que antigamente permitia. 220 00:12:17,730 --> 00:12:20,310 E eles são, na verdade, lâmpadas em rede. 221 00:12:20,310 --> 00:12:23,160 E grupos de empresas fazer essas coisas nos dias de hoje. 222 00:12:23,160 --> 00:12:25,190 >> Mas verifica-se que este em particular 223 00:12:25,190 --> 00:12:27,680 vem com um recurso através do qual você pode alterar suas cores. 224 00:12:27,680 --> 00:12:30,810 Assim, por exemplo, se adornada seu quarto do dormitório 225 00:12:30,810 --> 00:12:33,200 com alguns destes luz lâmpadas, dependendo do seu humor, 226 00:12:33,200 --> 00:12:35,366 dependendo de quem vem, , dependendo do tempo, 227 00:12:35,366 --> 00:12:37,360 dependendo o tempo do dia, você pode realmente 228 00:12:37,360 --> 00:12:40,300 mudar as cores as lâmpadas no seu quarto. 229 00:12:40,300 --> 00:12:43,740 E isso é porque estes luz lâmpadas e outros como ele tem o que é 230 00:12:43,740 --> 00:12:48,010 chamado de uma API, uma aplicação interface de programação, que 231 00:12:48,010 --> 00:12:50,920 é um tema com o qual você estará bem familiarizado com até o final do semestre. 232 00:12:50,920 --> 00:12:53,710 >> E esta é apenas uma fantasia, forma críptica de dizer: 233 00:12:53,710 --> 00:12:57,570 você pode programar estes luz lâmpadas para fazer o seu lance. 234 00:12:57,570 --> 00:13:00,360 Você pode enviar-lhes mensagens assim como você, um ser humano, 235 00:13:00,360 --> 00:13:03,640 pode enviar uma mensagem para um servidor web dizendo, dá-me a notícia de hoje 236 00:13:03,640 --> 00:13:05,110 ou dar-me o meu e-mail. 237 00:13:05,110 --> 00:13:08,010 >> Você pode enviar mais arcano mensagens para essas lâmpadas 238 00:13:08,010 --> 00:13:09,700 quer dizer, ligar e desligar. 239 00:13:09,700 --> 00:13:11,370 Mas isso não é tão interessante. 240 00:13:11,370 --> 00:13:14,280 Você pode dizer, ligue vermelho, ligar verde, ligue azul, 241 00:13:14,280 --> 00:13:15,990 todas com a mesma lâmpada. 242 00:13:15,990 --> 00:13:20,990 E você ainda pode, com um pouco mais savvy, dizem, vire-se para o azul 243 00:13:20,990 --> 00:13:24,710 quando é um dia sombrio fora, por exemplo. 244 00:13:24,710 --> 00:13:27,910 Ela pode realmente consertar em uma API tempo e descobrir 245 00:13:27,910 --> 00:13:32,260 que o tempo é, ou o tempo do dia, ou outros tais gatilhos. 246 00:13:32,260 --> 00:13:35,550 >> Assim, na verdade, dois Próprios membros da equipe do CS50, 247 00:13:35,550 --> 00:13:38,827 Dan Bradley e Ansel Duff aqui, por favor adquiridos 248 00:13:38,827 --> 00:13:40,410 nós um monte dessas lâmpadas. 249 00:13:40,410 --> 00:13:42,910 E eles construíram CS50 da primeiros bolbos já binários 250 00:13:42,910 --> 00:13:46,850 onde temos representado aqui-- com estes pequenos magnets-- brincalhão 251 00:13:46,850 --> 00:13:49,780 os vários espaços reservados nós aludido apenas um pouco atrás. 252 00:13:49,780 --> 00:13:52,572 >> Então até aqui é o queridos lugar, dois, quatro. 253 00:13:52,572 --> 00:13:54,030 E nós não vimos mais alto do que isso. 254 00:13:54,030 --> 00:13:55,613 Mas, é claro, eles são potências de dois. 255 00:13:55,613 --> 00:13:59,490 Oito, 16, 32, 64 e 128. 256 00:13:59,490 --> 00:14:03,320 Então, se eu agora quero ser um pouco amador que o uso dessa opção da velha escola, 257 00:14:03,320 --> 00:14:07,310 Eu tenho aqui neste iPad uma interface simples super 258 00:14:07,310 --> 00:14:10,440 que Dan Bradley, ex- estudante e agora ensinando companheiro, 259 00:14:10,440 --> 00:14:13,510 programado usando algum HTML e JavaScript, que 260 00:14:13,510 --> 00:14:15,685 são de marcação e programação idiomas respectivamente. 261 00:14:15,685 --> 00:14:17,560 E você pode provavelmente ver-- mesmo na traseira-- 262 00:14:17,560 --> 00:14:21,670 há uma grande vantagem e uma grande desvantagem, mais um botão para cada uma dessas lâmpadas. 263 00:14:21,670 --> 00:14:25,740 E o que isso vai me deixar não é, por exemplo, clique no sinal de mais 264 00:14:25,740 --> 00:14:28,250 e agora representam, de Naturalmente, o que número? 265 00:14:28,250 --> 00:14:28,750 Uma. 266 00:14:28,750 --> 00:14:30,220 E eu posso batê-lo novamente. 267 00:14:30,220 --> 00:14:31,480 Dois. 268 00:14:31,480 --> 00:14:32,800 Três. 269 00:14:32,800 --> 00:14:33,950 Quatro. 270 00:14:33,950 --> 00:14:35,200 Cinco. 271 00:14:35,200 --> 00:14:36,360 Six. 272 00:14:36,360 --> 00:14:36,880 Sete. 273 00:14:36,880 --> 00:14:40,740 >> E aqui agora temos que rollover, mas temos um quarto bit este tempo, 274 00:14:40,740 --> 00:14:42,180 então agora temos oito. 275 00:14:42,180 --> 00:14:44,000 Então, nós poderíamos fazer isso por algum tempo. 276 00:14:44,000 --> 00:14:46,530 De fato, como um aparte, quão alto poderíamos contar? 277 00:14:46,530 --> 00:14:48,318 Qualquer um? 278 00:14:48,318 --> 00:14:49,270 >> AUDIÊNCIA: 255. 279 00:14:49,270 --> 00:14:51,420 >> DAVID J. MALAN: 255, certo? 280 00:14:51,420 --> 00:14:54,900 Não se preocupe muito com a matemática para agora, mas que é um número bastante decente. 281 00:14:54,900 --> 00:14:59,140 Mas, na verdade, não vinculada apenas quantas peças de informação, 282 00:14:59,140 --> 00:15:01,760 como uma carta ou um gráfico que poderia representar. 283 00:15:01,760 --> 00:15:02,697 >> Mas não importa agora. 284 00:15:02,697 --> 00:15:04,530 Eu estou indo para ir em frente e transformá-los todos fora. 285 00:15:04,530 --> 00:15:09,670 E se eu pudesse, eu gostaria de pedir um voluntário, o nosso primeiro volunteer-- 286 00:15:09,670 --> 00:15:11,342 oh, hello-- no palco. 287 00:15:11,342 --> 00:15:14,050 O problema é que você tem que ser confortável aparecendo, como você claramente 288 00:15:14,050 --> 00:15:17,421 estão na frente de todos os seus colegas de classe, , assim como na internet. 289 00:15:17,421 --> 00:15:20,420 E deixe-me olhar um pouco além o-- E aqui na camisa branca? 290 00:15:20,420 --> 00:15:20,920 E entregar-se. 291 00:15:20,920 --> 00:15:22,071 Vamos lá para cima. 292 00:15:22,071 --> 00:15:22,820 Qual é o seu nome? 293 00:15:22,820 --> 00:15:23,760 >> AUDIÊNCIA: Jackie. 294 00:15:23,760 --> 00:15:24,718 >> DAVID J. MALAN: Jackie. 295 00:15:24,718 --> 00:15:25,820 Jackie, vamos lá para cima. 296 00:15:25,820 --> 00:15:29,820 Então, o que há é também neste iPad é um botão chamado Modo de Jogo. 297 00:15:29,820 --> 00:15:32,570 E este modo de jogo é vai me permitir a entrada 298 00:15:32,570 --> 00:15:35,780 antecipadamente um decimal especial número, os números que os seres humanos são 299 00:15:35,780 --> 00:15:36,760 familiarizado. 300 00:15:36,760 --> 00:15:39,820 E então você será desafiado aqui para usar os botões 301 00:15:39,820 --> 00:15:42,140 na para uma top-- cada um destes bulbs-- 302 00:15:42,140 --> 00:15:45,050 para realmente descobrir o padrão de lâmpadas 303 00:15:45,050 --> 00:15:46,970 que representa o número em questão. 304 00:15:46,970 --> 00:15:47,790 >> E eu sinto muito, o que era o seu nome? 305 00:15:47,790 --> 00:15:48,250 >> AUDIÊNCIA: Jackie. 306 00:15:48,250 --> 00:15:48,620 >> DAVID J. MALAN: Jackie. 307 00:15:48,620 --> 00:15:48,920 Tudo certo. 308 00:15:48,920 --> 00:15:49,740 Prazer em conhecê-lo. 309 00:15:49,740 --> 00:15:54,580 >> Então deixe-me ir em frente e no programa para que o mundo veja o número 15. 310 00:15:54,580 --> 00:15:56,360 Vamos mantê-lo pequeno a princípio aqui. 311 00:15:56,360 --> 00:15:58,240 E eu estou indo para entrar em Modo de Jogo. 312 00:15:58,240 --> 00:16:01,160 E eu vou especificar, dá-nos o número 15. 313 00:16:01,160 --> 00:16:01,900 >> Está bem. 314 00:16:01,900 --> 00:16:05,510 E agora, com todos watching-- se você quer se destacar, talvez desta maneira, 315 00:16:05,510 --> 00:16:09,970 porque ele vai alinhar up-- vá em frente e alternar entre os oito botões na parte superior 316 00:16:09,970 --> 00:16:12,530 para ligar as lâmpadas em ou fora como você vê o ajuste. 317 00:16:12,530 --> 00:16:13,530 >> AUDIÊNCIA: OK. 318 00:16:13,530 --> 00:16:17,720 >> DAVID J. MALAN: E sem batota por bater mais de 15 vezes. 319 00:16:17,720 --> 00:16:19,275 Oh, nós vamos fazer isso. 320 00:16:19,275 --> 00:16:20,069 >> AUDIÊNCIA: Oh, espere. 321 00:16:20,069 --> 00:16:20,610 Eu sinto muito. 322 00:16:20,610 --> 00:16:22,660 >> DAVID J. MALAN: Você também pode ativar as lâmpadas em individualmente 323 00:16:22,660 --> 00:16:24,076 com cada um desses botões na parte superior. 324 00:16:24,076 --> 00:16:24,844 AUDIÊNCIA: Oh, OK. 325 00:16:24,844 --> 00:16:27,429 Portanto, seria como-- 326 00:16:27,429 --> 00:16:28,220 DAVID J. MALAN: OK. 327 00:16:28,220 --> 00:16:29,100 Portanto, agora temos oito. 328 00:16:29,100 --> 00:16:31,280 Então, vamos fazer uma pausa para o público a participar aqui. 329 00:16:31,280 --> 00:16:34,300 O número é Jackie representando actualmente? 330 00:16:34,300 --> 00:16:34,800 11. 331 00:16:34,800 --> 00:16:35,730 Então, nós estamos quase lá. 332 00:16:35,730 --> 00:16:38,360 333 00:16:38,360 --> 00:16:39,630 E excelente. 334 00:16:39,630 --> 00:16:41,487 Portanto, temos o nosso primeiro vencedor. 335 00:16:41,487 --> 00:16:42,445 Parabéns. 336 00:16:42,445 --> 00:16:48,200 >> E nós pensamos que teríamos alguns brindes fabulosos. 337 00:16:48,200 --> 00:16:50,860 Se você gostaria de ser um desses dormitório quarto aqui no campus, 338 00:16:50,860 --> 00:16:56,126 pode-se ter um projeto final usando agora esta API, graças a Jackie. 339 00:16:56,126 --> 00:16:57,050 Então agora-- 340 00:16:57,050 --> 00:16:58,902 >> [Aplausos] 341 00:16:58,902 --> 00:17:01,690 342 00:17:01,690 --> 00:17:04,839 >> --if pudéssemos, mais uma tal em torno deste. 343 00:17:04,839 --> 00:17:07,690 Oh, agora todo mundo quer algumas lâmpadas. 344 00:17:07,690 --> 00:17:11,790 Para a chamada edição hacker vamos rampa-lo a-- oh, 345 00:17:11,790 --> 00:17:12,770 sim, evasiva. 346 00:17:12,770 --> 00:17:16,010 Acho que está chegando agora se sua mão está indo para baixo. 347 00:17:16,010 --> 00:17:16,800 Qual é o seu nome? 348 00:17:16,800 --> 00:17:17,424 >> AUDIÊNCIA: Alex. 349 00:17:17,424 --> 00:17:19,440 DAVID J. MALAN: Alex, venha aqui. 350 00:17:19,440 --> 00:17:26,190 Assim, para Alex, vamos programa de um número ligeiramente maior. 351 00:17:26,190 --> 00:17:27,790 Talvez em ordem. 352 00:17:27,790 --> 00:17:29,110 O número 50. 353 00:17:29,110 --> 00:17:29,744 >> AUDIÊNCIA: OK. 354 00:17:29,744 --> 00:17:31,660 DAVID J. MALAN: Mas, como Eu disse-- e que você pode 355 00:17:31,660 --> 00:17:33,580 quero ficar aqui para que que os botões se alinham 356 00:17:33,580 --> 00:17:37,115 como seria expect-- mas eu fiz chamar esta edição hacker. 357 00:17:37,115 --> 00:17:47,125 Assim-- boa sorte! 358 00:17:47,125 --> 00:17:48,416 >> [Risos] 359 00:17:48,416 --> 00:17:58,570 360 00:17:58,570 --> 00:18:02,050 >> Você vai ser capaz de transformar los se você-- OK. 361 00:18:02,050 --> 00:18:02,880 Excelente. 362 00:18:02,880 --> 00:18:03,675 Maravilhoso. 363 00:18:03,675 --> 00:18:04,341 Parabéns. 364 00:18:04,341 --> 00:18:08,730 >> [Aplausos] 365 00:18:08,730 --> 00:18:10,355 Acho que eu deveria pagar. 366 00:18:10,355 --> 00:18:11,830 Parabéns ao Alex também. 367 00:18:11,830 --> 00:18:12,330 Está bem. 368 00:18:12,330 --> 00:18:15,550 >> Assim, o takeaway final aqui está espero, sinceramente, 369 00:18:15,550 --> 00:18:18,109 o simplicity-- o simplicidade com que 370 00:18:18,109 --> 00:18:20,650 você pode obter alguma luz agradável lâmpadas, aparentemente em [inaudível]. 371 00:18:20,650 --> 00:18:23,000 Mas eles representam, em última análise, as mesmas idéias 372 00:18:23,000 --> 00:18:26,310 com o qual nós, seres humanos são já muito familiar. 373 00:18:26,310 --> 00:18:28,660 Então, o que pode próxima passo estar na progressão 374 00:18:28,660 --> 00:18:30,920 de tentar fazer alguma coisa interessante com dados 375 00:18:30,920 --> 00:18:34,950 e representando as entradas que não são apenas números, mas são talvez cartas ou mais? 376 00:18:34,950 --> 00:18:37,820 >> Bem, acontece que o mundo da informática, por muitos anos, 377 00:18:37,820 --> 00:18:43,300 simplesmente adoptou um arbitrário, mas um padrão consistente que mapeia números 378 00:18:43,300 --> 00:18:44,610 para as letras do alfabeto. 379 00:18:44,610 --> 00:18:47,120 Por exemplo, aqui está um trecho do mapeamento. 380 00:18:47,120 --> 00:18:48,350 É chamado Ascii. 381 00:18:48,350 --> 00:18:53,220 A-S-C-I-I. E isso é simplesmente uma tabela que mapeia letters-- maiúscula 382 00:18:53,220 --> 00:18:56,600 neste caso-- em números decimais. 383 00:18:56,600 --> 00:18:57,890 >> Mas qual é a implicação? 384 00:18:57,890 --> 00:19:01,090 Bem, se você realmente quer representar algo como um e-mail ou algum texto 385 00:19:01,090 --> 00:19:03,310 em uma página web, você obviamente quer mostrar 386 00:19:03,310 --> 00:19:06,100 as letras humanos da alfabeto, não números. 387 00:19:06,100 --> 00:19:09,140 Então, dependendo do contexto do programa 388 00:19:09,140 --> 00:19:12,600 que um usuário está usando, se é um navegador ou cliente de e-mail, 389 00:19:12,600 --> 00:19:16,090 números pode ser certamente interpretada como letras. 390 00:19:16,090 --> 00:19:20,290 Ou seja, os padrões de bits pode facilmente ser interpretada como letras. 391 00:19:20,290 --> 00:19:24,700 >> E então o que podemos ter é a letra A ser 392 00:19:24,700 --> 00:19:28,410 representada como 65, B sendo representado como 66. 393 00:19:28,410 --> 00:19:30,900 Então, se temos um super palavra curta, como oi, 394 00:19:30,900 --> 00:19:35,740 o que um computador faria em última instância loja em decimal, mas realmente em binário, 395 00:19:35,740 --> 00:19:40,070 usando uma sequência de bits, alavancando um pouco de eletricidade, de alguma forma, 396 00:19:40,070 --> 00:19:44,010 seriam os dois números 72 e 73. 397 00:19:44,010 --> 00:19:46,780 >> Mas o padrão de bits que representa os valores. 398 00:19:46,780 --> 00:19:49,820 Portanto, estas são, então, como podemos representam nossas entradas e saídas. 399 00:19:49,820 --> 00:19:52,630 E basta dizer, nós podemos fazer representações mais complexas 400 00:19:52,630 --> 00:19:56,450 em última análise, com coisas como gráficos, vídeos, música e muito mais 401 00:19:56,450 --> 00:19:58,190 como veremos no final deste prazo. 402 00:19:58,190 --> 00:20:00,630 >> Então, isso só deixa então algoritmos, esses conjuntos 403 00:20:00,630 --> 00:20:03,490 de instruções com o qual estamos resolvendo problemas reais. 404 00:20:03,490 --> 00:20:05,820 Estamos passando em insumos para algoritmos. 405 00:20:05,820 --> 00:20:09,630 E esses algoritmos estão produzindo saídas, saídas espero corretas 406 00:20:09,630 --> 00:20:14,160 e, esperamos, também, eficientemente reunidos saídas. 407 00:20:14,160 --> 00:20:16,890 Em outras palavras, é uma coisa implementar algo corretamente. 408 00:20:16,890 --> 00:20:20,790 É outra coisa para implementar algo bem ou eficiente. 409 00:20:20,790 --> 00:20:23,690 >> Por exemplo, uma demonstração que estamos Apaixonado por no curso 410 00:20:23,690 --> 00:20:24,460 é este. 411 00:20:24,460 --> 00:20:26,345 Mas essas coisas estão ficando cada vez mais difícil de encontrar. 412 00:20:26,345 --> 00:20:28,930 Mas esta é realmente uma velha escola livro de telefone, dentro do qual 413 00:20:28,930 --> 00:20:32,580 são 1.000 páginas, mais de nomes e números de telefone. 414 00:20:32,580 --> 00:20:34,830 E se eu quisesse olhar para cima alguém nesta lista telefónica, 415 00:20:34,830 --> 00:20:38,640 Eu poderia simplesmente fazer uma algoritmo muito ingênuo. 416 00:20:38,640 --> 00:20:42,150 Eu poderia abrir a primeira página, e Eu poderia começar a procurar, por exemplo, alguém 417 00:20:42,150 --> 00:20:43,130 chamado Mike Smith. 418 00:20:43,130 --> 00:20:46,160 E se ele não estiver na primeira página, que progride para o segundo, 419 00:20:46,160 --> 00:20:49,120 e, em seguida, para o terceiro, e depois para o quarto, e assim por diante, 420 00:20:49,120 --> 00:20:51,430 até que eu finalmente encontrar Mike Smith. 421 00:20:51,430 --> 00:20:53,010 >> Agora é que o algoritmo correto? 422 00:20:53,010 --> 00:20:53,896 >> AUDIÊNCIA: Sim. 423 00:20:53,896 --> 00:20:54,248 >> DAVID J. MALAN: Yeah. 424 00:20:54,248 --> 00:20:56,039 Se ele estiver lá, eu vou eventualmente encontrá-lo. 425 00:20:56,039 --> 00:20:58,820 Mas não é, sem dúvida, muito eficiente, certamente não é rápido, 426 00:20:58,820 --> 00:21:01,200 porque, meu Deus, por que eu sou desperdiçando meu tempo flipping 427 00:21:01,200 --> 00:21:04,500 através de todas essas páginas quando podia certamente fazer isso fisicamente mais rápido? 428 00:21:04,500 --> 00:21:08,210 >> Bem, uma pequena otimização, de modo a falar, pode não ser uma página de cada vez, 429 00:21:08,210 --> 00:21:11,610 mas dois, quatro, seis, oito, 10. 430 00:21:11,610 --> 00:21:12,725 Ainda correto? 431 00:21:12,725 --> 00:21:14,030 >> AUDIÊNCIA: Não 432 00:21:14,030 --> 00:21:17,040 >> DAVID J. MALAN: Portanto, não se eu para exemplo pular Mike Smith. 433 00:21:17,040 --> 00:21:20,530 Mas enquanto eu voltar pedal uma página, se eu ultrapassar ele, 434 00:21:20,530 --> 00:21:25,240 talvez pudéssemos corrigir o que poderiam ser uma pegadinha. 435 00:21:25,240 --> 00:21:26,020 >> Mas será que é melhor? 436 00:21:26,020 --> 00:21:27,469 É mais rápido? 437 00:21:27,469 --> 00:21:28,010 Quero dizer, sim. 438 00:21:28,010 --> 00:21:30,950 É, literalmente, duas vezes mais rápido se eu fazer duas páginas de cada vez. 439 00:21:30,950 --> 00:21:35,720 Então, se eu originalmente tinha 1.000 páginas, agora eu só tenho que virar 500 vezes, 440 00:21:35,720 --> 00:21:39,429 não é total de 1.000 páginas para obter potencialmente, no pior caso 441 00:21:39,429 --> 00:21:41,220 para o final do telefone livro, em que alguém 442 00:21:41,220 --> 00:21:44,380 como Mike Smith ou alguém com um nome mais tarde pode realmente ser. 443 00:21:44,380 --> 00:21:46,540 >> Mas, é claro, nós os seres humanos não são certamente 444 00:21:46,540 --> 00:21:49,250 vai estar fazendo isso, certamente não neste momento de nossas vidas. 445 00:21:49,250 --> 00:21:51,454 O que é um razoável humana provavelmente vai fazer? 446 00:21:51,454 --> 00:21:52,870 AUDIÊNCIA: Vá direto para The9 S de. 447 00:21:52,870 --> 00:21:53,860 DAVID J. MALAN: ir direto para o S do? 448 00:21:53,860 --> 00:21:55,563 Como faço para ir direto para o S do? 449 00:21:55,563 --> 00:21:57,342 >> AUDIÊNCIA: Rip-o ao meio. 450 00:21:57,342 --> 00:21:59,050 DAVID J. MALAN: Bem, não há nenhuma marcação. 451 00:21:59,050 --> 00:22:02,116 Então, sim, se houvesse de fato um rótulo ou uma guia pegajosa para S, 452 00:22:02,116 --> 00:22:03,240 devemos ir direto lá. 453 00:22:03,240 --> 00:22:05,420 Mas é bastante inócuo. 454 00:22:05,420 --> 00:22:08,480 Então, o melhor que posso fazer é mais ou menos para a seção S ou talvez mais ou menos 455 00:22:08,480 --> 00:22:09,650 para o meio. 456 00:22:09,650 --> 00:22:12,110 Mas o principal argumento agora-- ea intuição 457 00:22:12,110 --> 00:22:14,430 que você tomou para concedido por anos probably-- 458 00:22:14,430 --> 00:22:17,103 é que o que você faz agora sabe sobre este problema? 459 00:22:17,103 --> 00:22:19,320 >> AUDIÊNCIA: [inaudível] 460 00:22:19,320 --> 00:22:22,290 >> DAVID J. MALAN: Mike Smith é certamente não dessa metade do problema 461 00:22:22,290 --> 00:22:25,600 porque Smith vem depois do meio que é aproximadamente o ponto M, 462 00:22:25,600 --> 00:22:26,510 parece ser. 463 00:22:26,510 --> 00:22:30,340 Então, como você pode ter visto em Visitas, agora podemos literalmente 464 00:22:30,340 --> 00:22:31,737 rasgar este problema pela metade. 465 00:22:31,737 --> 00:22:32,320 AUDIÊNCIA: Woo! 466 00:22:32,320 --> 00:22:33,690 DAVID J. MALAN: É cada vez mais fácil. 467 00:22:33,690 --> 00:22:34,666 [Aplausos] 468 00:22:34,666 --> 00:22:36,618 Lá você vai. 469 00:22:36,618 --> 00:22:39,060 [Risos] 470 00:22:39,060 --> 00:22:41,870 E agora eu fundamentalmente têm o mesmo problema, 471 00:22:41,870 --> 00:22:43,866 mas é, literalmente, metade do tamanho. 472 00:22:43,866 --> 00:22:45,240 Eu ainda estou procurando por Mike Smith. 473 00:22:45,240 --> 00:22:47,950 E eu ouso dizer, eu ainda posso procurá-lo, da mesma forma, 474 00:22:47,950 --> 00:22:51,200 dividir o problema em metade novamente, rasgando o problema novamente 475 00:22:51,200 --> 00:22:54,140 ao meio, que agora deixa-me com um problema de um quarto do tamanho, 476 00:22:54,140 --> 00:22:58,710 jogar dramaticamente que meia de distância, e repita este processo uma e outra vez 477 00:22:58,710 --> 00:23:01,150 e de novo, olhando para baixo em cada ponto para ver 478 00:23:01,150 --> 00:23:03,400 se o Mike é em Smith a página em questão. 479 00:23:03,400 --> 00:23:06,190 >> Agora, se eu fizer isso direito, em última análise, eu vou encontrar-me 480 00:23:06,190 --> 00:23:11,085 com apenas uma página na qual Mike Smith é se ele está de fato no livro de telefone. 481 00:23:11,085 --> 00:23:13,510 Claro, eu poderia nunca chamar Mike novamente. 482 00:23:13,510 --> 00:23:18,800 Mas o ponto aqui é que se começou a com 1.000 páginas, meu primeiro algoritmo, 483 00:23:18,800 --> 00:23:21,620 virar a página, talvez 1.000 vezes-- definitivamente menos porque é 484 00:23:21,620 --> 00:23:26,430 um nome de S e não um nome de Z, mas como muitos como 1.000 páginas, potencialmente. 485 00:23:26,430 --> 00:23:27,590 >> Segundo algoritmo, melhor. 486 00:23:27,590 --> 00:23:28,480 500 páginas. 487 00:23:28,480 --> 00:23:31,230 Terceiro algoritmo, no entanto, quantos passos seria ele 488 00:23:31,230 --> 00:23:35,520 levar a dividir uma página 1000 lista telefônica ao meio assim? 489 00:23:35,520 --> 00:23:37,000 10, mais ou menos. 490 00:23:37,000 --> 00:23:40,770 Então, só por folhear que lista telefônica, mergulho e conquistando, 491 00:23:40,770 --> 00:23:46,130 por assim dizer, 10 vezes, farei meu caminho para baixo a apenas uma única página. 492 00:23:46,130 --> 00:23:48,880 >> E assim podemos capturar essa intuição agora um pouco graficamente 493 00:23:48,880 --> 00:23:51,320 se você considerar apenas Neste gráfico super simples. 494 00:23:51,320 --> 00:23:55,470 Estamos no eixo x, ou horizontal eixo, é o tamanho do meu problema, 495 00:23:55,470 --> 00:23:57,100 o número de páginas no livro de telefone. 496 00:23:57,100 --> 00:23:59,040 E cientistas da computação geralmente gostam de chamar 497 00:23:59,040 --> 00:24:02,180 o tamanho de um problema n, em que n é apenas uma variável que 498 00:24:02,180 --> 00:24:04,310 represents-- neste caso-- número de páginas. 499 00:24:04,310 --> 00:24:07,412 >> O eixo y vertical, ou, aqui está vai ser o tempo para resolver, 500 00:24:07,412 --> 00:24:09,870 talvez o número de viradas de página, talvez o número de segundos 501 00:24:09,870 --> 00:24:11,960 ou minutos, independentemente sua unidade de medida é. 502 00:24:11,960 --> 00:24:14,337 E assim esta linha vermelha representa o primeiro algoritmo, 503 00:24:14,337 --> 00:24:16,670 porque há um 1-1 relação entre o número 504 00:24:16,670 --> 00:24:18,880 de páginas e quantidade de tempo que leva. 505 00:24:18,880 --> 00:24:22,240 >> Se Verizon dobra o número de páginas da lista telefônica no ano que vem, 506 00:24:22,240 --> 00:24:24,590 minha corrida tempo-- o tempo necessário para executar 507 00:24:24,590 --> 00:24:27,610 aquele primeiro algorithm-- dobra na pior das hipóteses. 508 00:24:27,610 --> 00:24:30,690 Mas o segundo algoritmo, onde estou lançando a dois, 509 00:24:30,690 --> 00:24:33,650 requer menos tempo para um determinado problema de tamanho. 510 00:24:33,650 --> 00:24:36,090 Então, se eu tiver isso, muitos páginas aqui-- aviso 511 00:24:36,090 --> 00:24:38,870 que a linha amarela sugere menos tempo para resolver. 512 00:24:38,870 --> 00:24:42,490 E, de fato, representa, vamos dizer, n mais de dois. 513 00:24:42,490 --> 00:24:47,717 >> Mas o que é a forma da terceira e curva final, vai parecer? 514 00:24:47,717 --> 00:24:50,800 Sim, ele é, na verdade vai look-- I Não sei o que você ia dizer. 515 00:24:50,800 --> 00:24:52,300 Mas vamos ver o que você ia dizer. 516 00:24:52,300 --> 00:24:53,280 >> AUDIÊNCIA: Assim. 517 00:24:53,280 --> 00:24:57,060 >> DAVID J. MALAN: Vai parecer este, um exactly-- slope-- logarítmica 518 00:24:57,060 --> 00:24:59,770 em que você tem essa inclinação curiosa. 519 00:24:59,770 --> 00:25:01,235 Já não é uma linha reta. 520 00:25:01,235 --> 00:25:05,000 E o que é interessante sobre isso é que embora o gráfico está agora cortada, 521 00:25:05,000 --> 00:25:07,790 você pode extrapolar em sua importa que essa linha verde não é 522 00:25:07,790 --> 00:25:10,060 vai aumentar em altura tudo o que muito 523 00:25:10,060 --> 00:25:13,500 à medida que avançar ainda mais abaixo desse eixo horizontal. 524 00:25:13,500 --> 00:25:15,890 >> De fato, Verizon, por exemplo, pode dobrar 525 00:25:15,890 --> 00:25:19,100 o número de páginas no telefone livro entre este ano e no próximo ano 526 00:25:19,100 --> 00:25:22,140 a partir de 1000 a 2000 páginas, mas não é grande coisa. 527 00:25:22,140 --> 00:25:24,960 Com esta terceira e última, há um algoritmo intuitivo 528 00:25:24,960 --> 00:25:26,209 de dividir e conquistar. 529 00:25:26,209 --> 00:25:29,000 Vai me levar quantos mais as etapas no próximo ano para encontrar alguém 530 00:25:29,000 --> 00:25:29,700 como Mike Smith? 531 00:25:29,700 --> 00:25:30,560 >> AUDIÊNCIA: One. 532 00:25:30,560 --> 00:25:31,230 >> DAVID J. MALAN: Há apenas um. 533 00:25:31,230 --> 00:25:34,430 E eles podem quadruplicar isso, é vai me levar apenas mais dois passos 534 00:25:34,430 --> 00:25:35,210 e assim por diante. 535 00:25:35,210 --> 00:25:38,730 E por isso esta é uma prova apenas como algum projeto cuidadoso 536 00:25:38,730 --> 00:25:42,437 e alguns apreço por aquilo que suas entradas são pode fazer ainda melhor. 537 00:25:42,437 --> 00:25:44,270 Agora, estamos enganando a pouco no sentido 538 00:25:44,270 --> 00:25:46,350 que estamos alavancando uma suposição. 539 00:25:46,350 --> 00:25:48,500 Qual é a minha suposição sobre o nosso livro de telefone 540 00:25:48,500 --> 00:25:52,720 que me permitiu dividir e conquistar desta forma intuitiva e ainda correcta? 541 00:25:52,720 --> 00:25:53,705 >> AUDIÊNCIA: [inaudível] 542 00:25:53,705 --> 00:25:54,580 DAVID J. MALAN: Yeah. 543 00:25:54,580 --> 00:25:55,440 Por isso, foi encomendado. 544 00:25:55,440 --> 00:25:57,392 Foi classificada pelo a companhia telefônica. 545 00:25:57,392 --> 00:26:00,100 Se fosse em ordem aleatória, que seria um inferno de um catálogo telefônico, 546 00:26:00,100 --> 00:26:02,850 mas certamente não o faria prestar-se para o algoritmo 547 00:26:02,850 --> 00:26:05,950 Eu usei, porque você nunca faria só acontecerá através de Mike Smith 548 00:26:05,950 --> 00:26:09,210 se você manteve a divisão em metade dessa maneira por acaso. 549 00:26:09,210 --> 00:26:12,060 >> Então, vamos agora formalizar o que é claramente intuitiva. 550 00:26:12,060 --> 00:26:13,950 Então, uma coisa chamada pseudocódigo é onde vamos 551 00:26:13,950 --> 00:26:15,780 começar alguns de nossos problemas iniciais. 552 00:26:15,780 --> 00:26:20,410 E esta é uma forma genérica de descrever um algoritmo ou um programa de computador, 553 00:26:20,410 --> 00:26:24,150 não usar C ou C ++, ou Java, ou de alguma linguagem específica, 554 00:26:24,150 --> 00:26:27,430 mas apenas usando Inglês, com que qualquer ser humano pode ser familiar. 555 00:26:27,430 --> 00:26:31,220 >> E podemos escrever o pseudocódigo para este problema, como se segue. 556 00:26:31,220 --> 00:26:33,520 Passo um, pegar o livro de telefone. 557 00:26:33,520 --> 00:26:35,840 Passo dois, aberta a meio da lista telefônica. 558 00:26:35,840 --> 00:26:37,730 Passo três, olhar para os nomes. 559 00:26:37,730 --> 00:26:40,630 Passo Quatro, se Smith está entre names-- 560 00:26:40,630 --> 00:26:42,960 >> E agora esta é uma construto interessante. 561 00:26:42,960 --> 00:26:44,290 É um ponto de decisão. 562 00:26:44,290 --> 00:26:47,920 É uma bifurcação na estrada, se você vai, uma filial, por assim dizer. 563 00:26:47,920 --> 00:26:50,810 Então eu vou para recuar apenas por convenção step-- 564 00:26:50,810 --> 00:26:53,950 cinco-- que não é por exemplo, eu vou ligar para Mike. 565 00:26:53,950 --> 00:26:57,290 Portanto, este recuo, totalmente convenção humana arbitrária, mas é 566 00:26:57,290 --> 00:27:01,160 simplesmente a intenção de transmitir semanticamente que se Smith está entre nomes, 567 00:27:01,160 --> 00:27:03,310 então eu deveria chamar Mike. 568 00:27:03,310 --> 00:27:06,630 >> Enquanto isso, na etapa seis, aviso que o recuo foi embora. 569 00:27:06,630 --> 00:27:10,980 Então, outra coisa é outra bifurcação na estrada, o outro caminho que eu poderia viajar. 570 00:27:10,980 --> 00:27:14,130 Então else if Smith é no início do livro, o que é 571 00:27:14,130 --> 00:27:16,964 o meu próximo passo, provavelmente, vai estar aqui? 572 00:27:16,964 --> 00:27:18,380 AUDIÊNCIA: Você vai para o lado esquerdo. 573 00:27:18,380 --> 00:27:21,004 DAVID J. MALAN: Sim, então vá para a metade esquerda da lista telefônica. 574 00:27:21,004 --> 00:27:24,140 Jogue fora a metade direita se Smith está no início do livro. 575 00:27:24,140 --> 00:27:27,140 Então aberto até o meio da a metade da esquerda do livro. 576 00:27:27,140 --> 00:27:30,240 >> E depois passo oito, vá para a linha três. 577 00:27:30,240 --> 00:27:34,520 E este é um laço curioso eu sou indução, uma recursão por assim dizer. 578 00:27:34,520 --> 00:27:35,990 Mas mais sobre isso no futuro. 579 00:27:35,990 --> 00:27:39,590 >> Eu estou usando o meu mesmo algoritmo, minha mesmo pseudocódigo, 580 00:27:39,590 --> 00:27:43,020 para resolver o mesmo problema novamente porque a única coisa que mudou 581 00:27:43,020 --> 00:27:46,550 é o tamanho do problema, não meu objetivo, e não a pessoa 582 00:27:46,550 --> 00:27:47,340 Eu estou procurando. 583 00:27:47,340 --> 00:27:51,610 Para que eu possa reutilizar o algoritmo que eu já tenha definido. 584 00:27:51,610 --> 00:27:53,580 >> Else if Smith é mais tarde em book-- que você pode 585 00:27:53,580 --> 00:27:56,200 adivinhar aberta para o meio a metade direita do livro. 586 00:27:56,200 --> 00:27:58,350 E, novamente, vá para a linha três. 587 00:27:58,350 --> 00:28:01,480 Else-- qual é a linha final neste programa vai ser? 588 00:28:01,480 --> 00:28:03,580 Se ele não está entre os nomes na página Sou 589 00:28:03,580 --> 00:28:06,870 on, se ele não está no início o livro, e ele não é mais tarde 590 00:28:06,870 --> 00:28:09,899 no livro, o que eu sei é verdade sobre Mike Smith agora? 591 00:28:09,899 --> 00:28:11,190 AUDIÊNCIA: Ele não está no livro. 592 00:28:11,190 --> 00:28:12,731 DAVID J. MALAN: Ele não está no livro. 593 00:28:12,731 --> 00:28:16,040 Então, o melhor que posso fazer é apenas desistir e parar este programa. 594 00:28:16,040 --> 00:28:16,540 Tudo certo. 595 00:28:16,540 --> 00:28:20,350 Portanto, neste ponto, vamos dar uma rápido passeio um pouco do que espera. 596 00:28:20,350 --> 00:28:23,620 E, na verdade, eu estou juntou aqui por um número de funcionários CS50. 597 00:28:23,620 --> 00:28:26,940 Se essas pessoas poderiam tudo se juntar a mim aqui em cima no palco. 598 00:28:26,940 --> 00:28:28,900 >> [Aplausos] 599 00:28:28,900 --> 00:28:35,280 600 00:28:35,280 --> 00:28:38,170 >> Lembre-se, este é apenas um subconjunto da equipe CS50, 601 00:28:38,170 --> 00:28:42,380 uma vez que cada ano temos cerca de 100 funcionários membros em função de auxiliar do curso, 602 00:28:42,380 --> 00:28:44,410 Teaching Fellows e muito mais. 603 00:28:44,410 --> 00:28:45,700 Vamos lá para cima. 604 00:28:45,700 --> 00:28:48,820 Então, eles vão se juntar a nós aqui desajeitadamente por um momento 605 00:28:48,820 --> 00:28:54,230 como dar um rápido tour do que você deve esperar aqui no curso. 606 00:28:54,230 --> 00:28:59,640 >> Então, em primeiro lugar, temos SAT / UNS como a opção de classificação no curso. 607 00:28:59,640 --> 00:29:03,180 Este destina-se deliberadamente para ser uma opção em que 608 00:29:03,180 --> 00:29:05,570 se você é um pouco desconfortável a estar em curso, 609 00:29:05,570 --> 00:29:09,390 e você temer failure-- mesmo francamente falha significa ferir o seu GPA, 610 00:29:09,390 --> 00:29:13,180 a obtenção de um B e não um A-- que é precisamente o que, certamente, para uma porta de entrada 611 00:29:13,180 --> 00:29:15,750 Claro que como CS50 e outros cursos introdutórios, 612 00:29:15,750 --> 00:29:17,540 esta opção de classificação destina-se a permitir. 613 00:29:17,540 --> 00:29:19,930 >> Eu sinceramente encorajar students-- especialmente 614 00:29:19,930 --> 00:29:23,090 se no fence-- para iniciar o Claro SAT / UNS, ainda permanecem SAT / UNS. 615 00:29:23,090 --> 00:29:27,310 Mas certamente você pode mudar para uma carta grau na quinta-feira no termo. 616 00:29:27,310 --> 00:29:31,560 >> Francamente, quando eu era um calouro em 1995, 617 00:29:31,560 --> 00:29:34,630 Eu mesmo nem sequer ter CS50 porque eu não tive coragem 618 00:29:34,630 --> 00:29:36,540 para realmente pisar na sala de aula. 619 00:29:36,540 --> 00:29:40,020 Parecia um domínio demasiado desconhecido para mim e realmente só 620 00:29:40,020 --> 00:29:43,080 para os meus amigos, francamente, que tinha sido programação 621 00:29:43,080 --> 00:29:45,570 uma vez que eles eram seis ou talvez 10 anos de idade. 622 00:29:45,570 --> 00:29:48,640 E foi só porque eu era capaz de tomar CS50 no meu dia 623 00:29:48,640 --> 00:29:52,720 na versão equivalente SAT / pass UNS-- / reprovação de volta na dia-- 624 00:29:52,720 --> 00:29:53,850 que mesmo eu levei 50. 625 00:29:53,850 --> 00:29:57,440 E de alguma forma ou de outra, eu sou aqui novamente com vocês hoje. 626 00:29:57,440 --> 00:30:00,690 >> Agora, entretanto, o que mais você deve ter em mente cerca de 50 627 00:30:00,690 --> 00:30:01,910 é a inscrição simultânea. 628 00:30:01,910 --> 00:30:03,785 Contrariamente aos rumores que você pode ter ouvido, 629 00:30:03,785 --> 00:30:07,650 você pode, de fato, ao mesmo tempo inscrever no CS50 e outra classe que 630 00:30:07,650 --> 00:30:12,150 atende ao mesmo ou alguma sobreposição tempo, como palestras de CS50 aqui. 631 00:30:12,150 --> 00:30:16,420 Veja o currículo para as indicações da sua execução. 632 00:30:16,420 --> 00:30:19,540 >> Palestras, entretanto, ao contrário do o que está oficialmente no catálogo, 633 00:30:19,540 --> 00:30:22,060 geralmente só encontrar para apenas uma hora. 634 00:30:22,060 --> 00:30:24,240 Na ocasião, podemos correr um pouco longo. 635 00:30:24,240 --> 00:30:26,800 Mas tenha em mente que a objetivo em palestras de CS50 636 00:30:26,800 --> 00:30:28,980 é fornecer-lhe com uma visão geral conceitual, 637 00:30:28,980 --> 00:30:31,830 espero que algumas manifestações, talvez até mesmo alguns brindes, 638 00:30:31,830 --> 00:30:34,390 do que aguarda para a semana que se segue. 639 00:30:34,390 --> 00:30:37,730 >> E assim, em palestras, vamos explorar esses tópicos e exemplos juntos, 640 00:30:37,730 --> 00:30:41,420 trazendo os alunos para o palco, e pessoal em cima do palco o mais rápido que pudermos, 641 00:30:41,420 --> 00:30:43,740 para apenas um par de horas por semana. 642 00:30:43,740 --> 00:30:47,435 Seções, entretanto, será oferecidos por essas pessoas aqui-- muitos 643 00:30:47,435 --> 00:30:50,060 deles ensinando companheiros, alguns deles curso assistants-- vontade 644 00:30:50,060 --> 00:30:51,160 acontecer semanalmente. 645 00:30:51,160 --> 00:30:52,940 >> E o que é fundamental para manter em mente é que nós 646 00:30:52,940 --> 00:30:55,920 Não ao contrário do primeiro have-- Nights, a música class-- 647 00:30:55,920 --> 00:30:59,220 diferentes faixas de seções para alunos menos confortáveis, mais 648 00:30:59,220 --> 00:31:01,150 confortável, e em algum lugar no meio. 649 00:31:01,150 --> 00:31:03,559 E, francamente, você sabe se você é menos confortável. 650 00:31:03,559 --> 00:31:05,600 E você provavelmente sabe se você está mais confortável. 651 00:31:05,600 --> 00:31:09,920 E se você não está realmente certo, você é por definição, algures no meio. 652 00:31:09,920 --> 00:31:12,850 Então, quando chega a hora de secção em uma semana ou assim, por o plano de estudos, 653 00:31:12,850 --> 00:31:14,070 vamos pedir-lhe essa pergunta. 654 00:31:14,070 --> 00:31:16,890 E você pode auto-seleção com base em seu próprio nível de conforto 655 00:31:16,890 --> 00:31:22,220 e estar com students-- estar com verde dots-- similar em nível de conforto para você. 656 00:31:22,220 --> 00:31:25,710 >> Entretanto, temos problema define, o que acabará 657 00:31:25,710 --> 00:31:28,310 definir a sua experiência neste curso. 658 00:31:28,310 --> 00:31:30,370 Eles são oferecidos normalmente em várias edições. 659 00:31:30,370 --> 00:31:34,150 A edição padrão que esperamos mais cada aluno no curso de enfrentar 660 00:31:34,150 --> 00:31:37,900 mas também o chamado edição hackers que não oferece nenhuma forma de crédito extra 661 00:31:37,900 --> 00:31:41,980 de imediato, mas realmente os direitos de se gabar quer dizer que você tentou e abordou 662 00:31:41,980 --> 00:31:45,250 edições de hackers do curso que aproximamos do material semelhante 663 00:31:45,250 --> 00:31:47,370 mas a partir de um ângulo de mais sofisticado. 664 00:31:47,370 --> 00:31:49,480 >> O que oferecemos para o Standard Edition, para, 665 00:31:49,480 --> 00:31:51,420 novamente, um super maioria dos estudantes, não são 666 00:31:51,420 --> 00:31:54,060 apenas walk-through, que são videos liderados pela equipe do curso 667 00:31:54,060 --> 00:31:57,840 que realmente levá-lo através do problemas do curso e possível desenho 668 00:31:57,840 --> 00:31:58,910 implementações. 669 00:31:58,910 --> 00:32:01,434 E também, após o fato, oferecer autópsias, 670 00:32:01,434 --> 00:32:03,350 em que se você está pensando como você poderia ter 671 00:32:03,350 --> 00:32:05,930 ou deveria ter resolvido alguns problema, o corpo docente 672 00:32:05,930 --> 00:32:08,640 o guiará através de aqueles em vídeo também. 673 00:32:08,640 --> 00:32:14,350 >> Enquanto isso, o que espera também são cinco dias de atraso eo fato 674 00:32:14,350 --> 00:32:16,680 que vamos soltar o seu menor conjunto de problemas de pontuação. 675 00:32:16,680 --> 00:32:20,370 Nós certamente apreciar que em troca para a carga de trabalho que espera 50 676 00:32:20,370 --> 00:32:24,020 de você, a vida fica no caminho Às vezes, se não cinco vezes. 677 00:32:24,020 --> 00:32:26,150 E para que isso irá oferecer lhe um pouco de flexibilidade, 678 00:32:26,150 --> 00:32:29,400 estender o seu prazo de, digamos, um Quinta-feira ao meio-dia de sexta-feira ao meio-dia. 679 00:32:29,400 --> 00:32:33,150 Veja o currículo para o detalhes de implementação do mesmo. 680 00:32:33,150 --> 00:32:34,702 >> Agora, o que agora aguarda? 681 00:32:34,702 --> 00:32:36,660 E isso está ocorrendo apenas para mim agora quanto tempo 682 00:32:36,660 --> 00:32:38,333 Estou com vocês ficam aqui no palco. 683 00:32:38,333 --> 00:32:39,060 >> [Risos] 684 00:32:39,060 --> 00:32:41,867 >> DAVID J. MALAN: Mas nós vamos chegar a o acabamento clímax antes do tempo. 685 00:32:41,867 --> 00:32:43,700 Então, o que espera em termos dos conjuntos de problemas? 686 00:32:43,700 --> 00:32:47,099 Bem, talvez um teaser do que todos nós fez no ano passado com os seus antecessores. 687 00:32:47,099 --> 00:32:49,140 No primeiro conjunto de problemas no ano passado, introduzimos 688 00:32:49,140 --> 00:32:51,630 Zero, uma gráfica linguagem de programação que 689 00:32:51,630 --> 00:32:54,570 permite programar literalmente por arrastando e soltando peças do puzzle, 690 00:32:54,570 --> 00:32:57,220 como estes, que estão lembra as construções 691 00:32:57,220 --> 00:32:59,260 vai ver apenas uma semana Assim, quando trocamos 692 00:32:59,260 --> 00:33:01,870 de uma forma mais tradicional língua, conhecida como C. 693 00:33:01,870 --> 00:33:03,930 >> No ano passado, procedeu para este conjunto de problemas, 694 00:33:03,930 --> 00:33:06,720 envolvendo a criptografia, a codificação da informação 695 00:33:06,720 --> 00:33:10,410 para evitar que ela governamental ou amigos ' olhos que você não quer vê-lo. 696 00:33:10,410 --> 00:33:12,540 Codificado aqui é um mensagem de que em breve você 697 00:33:12,540 --> 00:33:15,740 será capaz de decifrar ou de-corrida. 698 00:33:15,740 --> 00:33:17,960 >> Breakout era um problema estabelecido no ano passado, no qual 699 00:33:17,960 --> 00:33:21,530 você usá-los nova programação encontrados habilidades para realmente implementar 700 00:33:21,530 --> 00:33:24,840 um jogo como wherein-- deve se lembrar de childhood-- 701 00:33:24,840 --> 00:33:28,040 o objetivo era bater o tijolos que estão no topo do ecrã 702 00:33:28,040 --> 00:33:30,190 aqui, acumulando marcar ao longo do caminho, 703 00:33:30,190 --> 00:33:35,460 e implementar seus próprios algoritmos com que esta solução, em última análise 704 00:33:35,460 --> 00:33:37,357 permite que você jogue o jogo. 705 00:33:37,357 --> 00:33:39,440 Entretanto, no final do semestre, vamos dar-lhe 706 00:33:39,440 --> 00:33:43,470 um dicionário de 143.091 palavras em inglês. 707 00:33:43,470 --> 00:33:46,300 E você será desafiado para escrever um programa que 708 00:33:46,300 --> 00:33:50,260 soletrar cheques, documentos, por carregamento que muitas palavras para a memória 709 00:33:50,260 --> 00:33:52,300 forma mais eficiente possível. 710 00:33:52,300 --> 00:33:54,240 Geralmente colocando você contra seus colegas de classe 711 00:33:54,240 --> 00:33:56,610 se você optar em um pouco de desafio no quadro de líderes 712 00:33:56,610 --> 00:34:00,090 para ver quem pode usar o menor número segundos de tempo de execução, 713 00:34:00,090 --> 00:34:03,550 e o número menor quantidade de megabytes de memória, 714 00:34:03,550 --> 00:34:08,659 e realmente afinar seus programas para ser incrivelmente eficiente de recursos não 715 00:34:08,659 --> 00:34:09,820 tempo apenas. 716 00:34:09,820 --> 00:34:13,239 >> No ano passado, também, olhamos para o final do semestre em programação web. 717 00:34:13,239 --> 00:34:16,230 E, de fato, nós vamos fazer isso de novo esta ano com vários conjuntos de problemas, 718 00:34:16,230 --> 00:34:20,290 introduzindo-lhe as técnicas e a mentalidade com a qual você pode aplicar 719 00:34:20,290 --> 00:34:23,489 essas habilidades de programação para sites, sites dinâmicos, 720 00:34:23,489 --> 00:34:26,639 sites que realmente resolver problemas e se comportam de forma diferente 721 00:34:26,639 --> 00:34:30,620 e simplesmente não são estáticos sites com informações estáticas. 722 00:34:30,620 --> 00:34:32,854 >> O projeto final, em última instância vai definir, porém, 723 00:34:32,854 --> 00:34:34,770 o clímax do curso para os alunos, que 724 00:34:34,770 --> 00:34:37,228 Você será desafiado a implementar mais qualquer coisa de interesse 725 00:34:37,228 --> 00:34:40,590 para você, desde que de alguma forma baseia-se em aulas do curso. 726 00:34:40,590 --> 00:34:42,930 >> E como você viu no vídeo no início, 727 00:34:42,930 --> 00:34:47,340 vamos concluir o semestre com o CS50 Hackathon, que se, não familiar, 728 00:34:47,340 --> 00:34:51,420 terá início às 07:00 uma noite e terminará às 07h00 do dia seguinte. 729 00:34:51,420 --> 00:34:53,614 Por volta de 09:00, vamos ordem no primeiro jantar. 730 00:34:53,614 --> 00:34:55,489 Por volta de 01h00, vamos ordem em segundo jantar. 731 00:34:55,489 --> 00:34:57,490 E se você ainda estiver situando-se em 5:00, nós 732 00:34:57,490 --> 00:35:00,320 vontade de traslado você para IHOP no café da manhã. 733 00:35:00,320 --> 00:35:04,980 >> O CS50 Fair, por sua vez, é um evento a que mais de 2.000 professores, alunos, 734 00:35:04,980 --> 00:35:07,850 e funcionários de todo campus vêm para ver as suas realizações 735 00:35:07,850 --> 00:35:10,150 no curso e na final projetos e criações 736 00:35:10,150 --> 00:35:14,960 que você cria em seus laptops, desktops, ou talvez até mesmo lâmpadas de luz. 737 00:35:14,960 --> 00:35:17,340 >> Enquanto isso, o horário de expediente e a estrutura de suporte. 738 00:35:17,340 --> 00:35:20,480 E agora ela já teria sido um melhor momento para trazer-lhe tudo. 739 00:35:20,480 --> 00:35:24,310 >> Horário de atendimento terá lugar quatro noites por semana durante várias horas por noite 740 00:35:24,310 --> 00:35:27,710 com geralmente 20 a 30 do Os funcionários do curso de serviço de uma só vez 741 00:35:27,710 --> 00:35:31,240 para fornecê-lo com íntimo one-on-one oportunidades de apoio 742 00:35:31,240 --> 00:35:33,790 com conjuntos de problemas do curso. 743 00:35:33,790 --> 00:35:36,120 Explicações também será disponíveis, em especial 744 00:35:36,120 --> 00:35:39,630 para os alunos menos comfortable-- ou ouso dizer menos comfortable-- para quem 745 00:35:39,630 --> 00:35:41,869 horário de expediente não o são mais ambiente acolhedor 746 00:35:41,869 --> 00:35:43,660 e, certamente, não são o mais livre de estresse. 747 00:35:43,660 --> 00:35:47,430 Especialmente quando os prazos estão pressionando, vamos proativamente emparelhar vocês mesmos 748 00:35:47,430 --> 00:35:51,440 com um membro do pessoal para trabalhar com em algum horário regular como suas necessidades 749 00:35:51,440 --> 00:35:53,850 e sua agenda permite. 750 00:35:53,850 --> 00:35:55,260 >> E a equipe. 751 00:35:55,260 --> 00:36:01,020 Permita-me apresentar Davon, Rob, e Gabriel, os chefes deste ano. 752 00:36:01,020 --> 00:36:02,370 Se você gosta de cada dizer-- 753 00:36:02,370 --> 00:36:03,349 >> [Aplausos] 754 00:36:03,349 --> 00:36:03,849 palavra --um. 755 00:36:03,849 --> 00:36:05,328 [Aplausos] 756 00:36:05,328 --> 00:36:10,270 757 00:36:10,270 --> 00:36:13,220 Davon aqui é o gerente do curso, que 758 00:36:13,220 --> 00:36:15,730 significa em seu papel em tempo integral ele contribui com a execução 759 00:36:15,730 --> 00:36:18,424 e logística de CS50. 760 00:36:18,424 --> 00:36:19,340 Davon: Sim, oi, pessoal. 761 00:36:19,340 --> 00:36:20,965 Você vai ver um monte para mim no horário de expediente. 762 00:36:20,965 --> 00:36:22,110 Eu vou estar ensinando seções. 763 00:36:22,110 --> 00:36:25,150 E se você atirar-mails à frente, Eu provavelmente vou estar respondendo. 764 00:36:25,150 --> 00:36:27,670 Então, eu vou ver muitos de vocês durante todo o semestre. 765 00:36:27,670 --> 00:36:29,890 E bem-vindo ao CS50. 766 00:36:29,890 --> 00:36:38,330 >> DAVID J. MALAN: E agora Gabriel, que se era apenas um calouro do ano passado, 767 00:36:38,330 --> 00:36:41,820 mas para os últimos dois anos tem vindo a operar sua própria versão do CS50 768 00:36:41,820 --> 00:36:44,660 no Brasil, em que ele baixou todos content-- do curso 769 00:36:44,660 --> 00:36:46,890 que está a ser claramente filmado e colocado online-- 770 00:36:46,890 --> 00:36:51,480 para que ele pudesse traduzi-lo para Português e, em seguida, ensinar mais de 100 771 00:36:51,480 --> 00:36:54,610 de seus colegas sobre o curso de um par de anos, 772 00:36:54,610 --> 00:36:57,650 ensino em sua língua nativa currículo do curso. 773 00:36:57,650 --> 00:36:58,964 >> GABRIEL: Olá. 774 00:36:58,964 --> 00:37:00,912 >> [Aplausos] 775 00:37:00,912 --> 00:37:06,669 776 00:37:06,669 --> 00:37:07,710 GABRIEL: Oi, eu sou Gabriel. 777 00:37:07,710 --> 00:37:09,340 Eu sou o TF cabeça do curso. 778 00:37:09,340 --> 00:37:10,780 E eu espero que você vai adorar CS50. 779 00:37:10,780 --> 00:37:12,830 Este é CS50. 780 00:37:12,830 --> 00:37:14,697 >> DAVID J. MALAN: Agora para Rob. 781 00:37:14,697 --> 00:37:15,780 Oh, você quer introdução? 782 00:37:15,780 --> 00:37:16,696 >> ROB: Não, eu não sei. 783 00:37:16,696 --> 00:37:18,225 [Risos] 784 00:37:18,225 --> 00:37:19,475 DAVID J. MALAN: E Rob Boden. 785 00:37:19,475 --> 00:37:22,300 [Risos] 786 00:37:22,300 --> 00:37:23,800 ROB: Oi, eu sou Rob. 787 00:37:23,800 --> 00:37:27,220 Este é o quinto ano envolvida com o curso. 788 00:37:27,220 --> 00:37:29,220 Todos os anos, é apenas um melhor e melhor classe, 789 00:37:29,220 --> 00:37:31,550 Então vocês são claramente Vai ser incrível. 790 00:37:31,550 --> 00:37:33,181 Espero que todos se divertir com ele. 791 00:37:33,181 --> 00:37:34,430 Eu estou indo para se divertir com ele. 792 00:37:34,430 --> 00:37:36,670 Então vê-lo ao redor. 793 00:37:36,670 --> 00:37:38,445 >> DAVID J. MALAN: E o tempo não vai permitir US-- 794 00:37:38,445 --> 00:37:39,670 >> [Aplausos] 795 00:37:39,670 --> 00:37:41,661 >> O tempo não permite-nos apresentar todos 796 00:37:41,661 --> 00:37:44,660 sobre o palco e todos os seus colegas que estão comprando aulas hoje. 797 00:37:44,660 --> 00:37:47,390 Mas permita-me apresentar Belinda e CS50 enigma 798 00:37:47,390 --> 00:37:49,550 Day, que aguarda esta próximo sábado, o que 799 00:37:49,550 --> 00:37:51,800 é a primeira da eventos de grande escala do curso. 800 00:37:51,800 --> 00:37:54,300 >> Este em particular significado para martelar a ponto 801 00:37:54,300 --> 00:37:57,580 que a informática é, em última análise não sobre a programação, mas sim 802 00:37:57,580 --> 00:37:59,280 sobre a resolução de problemas de forma mais geral. 803 00:37:59,280 --> 00:38:01,450 E Enigma do dia, como você vai ver, vai lhe trazer 804 00:38:01,450 --> 00:38:04,207 e seus colegas together-- esperamos que este sábado. 805 00:38:04,207 --> 00:38:04,961 >> BELINDA: OK. 806 00:38:04,961 --> 00:38:05,750 Oi, pessoal. 807 00:38:05,750 --> 00:38:06,740 Então, obrigado. 808 00:38:06,740 --> 00:38:10,120 Assim como o nosso ilustre capitão disse, Belinda do meu nome. 809 00:38:10,120 --> 00:38:12,100 Eu sou um estudante de segundo ano em Quincy House. 810 00:38:12,100 --> 00:38:15,730 >> Eu, assim como vocês, levou CS50 ano passado, realmente adorei. 811 00:38:15,730 --> 00:38:17,960 Eu tenho um fraquinho por vocês na terceira fila. 812 00:38:17,960 --> 00:38:21,384 E tenho orgulho de dizer, eu sou agora em um relacionamento sério 813 00:38:21,384 --> 00:38:22,300 com CS50 [inaudível]. 814 00:38:22,300 --> 00:38:22,799 Está bem. 815 00:38:22,799 --> 00:38:26,140 Essa foi a minha versão coxo de uma piada. 816 00:38:26,140 --> 00:38:28,320 >> De qualquer forma, assim que seguir em frente, só queria convidar 817 00:38:28,320 --> 00:38:31,439 vocês todos para o i-lab ou urticária HBS. 818 00:38:31,439 --> 00:38:33,730 Nós vamos ter Quebra-Day 12:00-03:00. 819 00:38:33,730 --> 00:38:37,680 E é uma grande oportunidade para você caras para conhecer seus colegas amigos CS, 820 00:38:37,680 --> 00:38:42,780 resolver alguns enigmas não-CS, como capitão mencionado, e também comer algum alimento livre, 821 00:38:42,780 --> 00:38:46,910 ganhar alguns prêmios incríveis, como cartões de presente, $ 75 por pessoa, 822 00:38:46,910 --> 00:38:48,400 e também-- o que era? 823 00:38:48,400 --> 00:38:49,540 Wii U ou algo assim? 824 00:38:49,540 --> 00:38:50,333 Wii U? 825 00:38:50,333 --> 00:38:51,040 Sim. 826 00:38:51,040 --> 00:38:52,330 Para o nosso sorteio. 827 00:38:52,330 --> 00:38:52,830 Incrível. 828 00:38:52,830 --> 00:38:54,310 Então, eu vou ficar por aqui depois da aula. 829 00:38:54,310 --> 00:38:56,770 E se vocês tem alguma perguntas, deixe-me saber. 830 00:38:56,770 --> 00:38:59,980 >> DAVID J. MALAN: E você vai ver, além isso não há nada para fazer hoje. 831 00:38:59,980 --> 00:39:01,920 O primeiro conjunto de problemas vai sair sexta-feira. 832 00:39:01,920 --> 00:39:05,420 Mas para nos trazer para casa hoje, eu gostaria de apresentar-lhe mais especificamente um 833 00:39:05,420 --> 00:39:09,080 membro da equipe, Colton Ogden aqui, cujas mãos estão agora 834 00:39:09,080 --> 00:39:12,250 protegido acima de você com este controlador MIDI 835 00:39:12,250 --> 00:39:15,170 para martelar o ponto mais que a informática, também, 836 00:39:15,170 --> 00:39:19,130 tem aplicabilidade muito além da engenharia e caule e ciência da computação em si, 837 00:39:19,130 --> 00:39:22,890 estendendo-se até mesmo a domínios como a música. 838 00:39:22,890 --> 00:39:30,590 >> Colton foi gentilmente offered-- Pensei um deles estava indo para fixar o foco. 839 00:39:30,590 --> 00:39:34,400 Andrew, se pudéssemos convocar foco aqui só por um momento. 840 00:39:34,400 --> 00:39:36,780 >> O Colton fez com antecedência é o programa 841 00:39:36,780 --> 00:39:40,345 este dispositivo, esta almofada de botões que você vê na foto aqui em cima, 842 00:39:40,345 --> 00:39:42,470 como um controlador MIDI, em que cada um desses botões 843 00:39:42,470 --> 00:39:47,080 é ligado a uma nota musical particular ou um som, mais geralmente uma gravação, 844 00:39:47,080 --> 00:39:50,445 de tal modo que ao jogar os padrões de estes botões, muito parecido com os padrões de bits, 845 00:39:50,445 --> 00:39:52,620 pode representar outro conceitos de nível superior. 846 00:39:52,620 --> 00:39:56,750 Será que ele vai ser capaz, em última instância para nos levar para casa hoje? 847 00:39:56,750 --> 00:39:59,540 Sem mais delongas, se poderíamos diminuir as luzes, 848 00:39:59,540 --> 00:40:03,145 e ligar a tela por trás Colton. 849 00:40:03,145 --> 00:40:03,865 >> AUDIÊNCIA: Woo! 850 00:40:03,865 --> 00:40:06,090 >> David J. MALAN: Este é CS50. 851 00:40:06,090 --> 00:40:10,518 >> [MÚSICA DE JOGO] 852 00:40:10,518 --> 00:42:46,018 853 00:42:46,018 --> 00:42:49,420 >> [Aplausos] 854 00:42:49,420 --> 00:42:54,766 855 00:42:54,766 --> 00:42:56,450 >> Isso é tudo para CS50. 856 00:42:56,450 --> 00:42:57,950 Vamos vê-lo sexta-feira. 857 00:42:57,950 --> 00:42:59,890 Alguns bolo espera por você no transepto. 858 00:42:59,890 --> 00:43:04,046 859 00:43:04,046 --> 00:43:08,850 >> [MÚSICA DE JOGO] 860 00:43:08,850 --> 00:45:49,227