1 00:00:00,000 --> 00:00:09,840 2 00:00:09,840 --> 00:00:10,824 >> [REPRODUÇÃO DE VÍDEO] 3 00:00:10,824 --> 00:00:13,284 >> [CAR PORTA fechando] 4 00:00:13,284 --> 00:00:15,744 >> [CAR MOTOR DE PARTIDA] 5 00:00:15,744 --> 00:00:19,188 >> [Música tocando] 6 00:00:19,188 --> 00:00:20,172 7 00:00:20,172 --> 00:00:24,516 >> -Mover Direita junto em busca de bons momentos e boas notícias. 8 00:00:24,516 --> 00:00:26,871 Com bons amigos que você não pode perder. 9 00:00:26,871 --> 00:00:28,755 >> -Este Poderia tornar-se um hábito. 10 00:00:28,755 --> 00:00:32,460 >> Vamos bate -Opportunity apenas estender a mão e agarrá-lo. 11 00:00:32,460 --> 00:00:32,960 -Sim! 12 00:00:32,960 --> 00:00:34,920 -junto Vamos nab-lo. 13 00:00:34,920 --> 00:00:37,370 -Vamos Caminhar engate, ônibus ou táxi amarelo-lo. 14 00:00:37,370 --> 00:00:38,840 -Dammit. 15 00:00:38,840 --> 00:00:40,800 -Estamos Em movimento o tempo todo. 16 00:00:40,800 --> 00:00:43,750 -Footloose E extravagante. 17 00:00:43,750 --> 00:00:45,960 -Getting Lá é metade da diversão. 18 00:00:45,960 --> 00:00:47,718 Venha compartilhar comigo. 19 00:00:47,718 --> 00:00:49,654 >> -Estamos Em movimento o tempo todo. 20 00:00:49,654 --> 00:00:52,558 >> -Estamos Indo para compartilhar a carga. 21 00:00:52,558 --> 00:00:57,604 >> -Nós Não precisa de um mapa para obter este show na estrada. 22 00:00:57,604 --> 00:01:00,520 Ei Fozzy, eu quero que você vire à esquerda se você chegar a uma bifurcação na estrada. 23 00:01:00,520 --> 00:01:01,020 -Sim senhor. 24 00:01:01,020 --> 00:01:03,334 Vire à esquerda na bifurcação na estrada. 25 00:01:03,334 --> 00:01:05,222 Vire à esquerda. 26 00:01:05,222 --> 00:01:07,582 >> -Eu Não acredito nisso. 27 00:01:07,582 --> 00:01:11,720 >> -Cruising Direita junto encontramos as luzes na estrada. 28 00:01:11,720 --> 00:01:13,664 >> -E O seu caminho ou o meu caminho. 29 00:01:13,664 --> 00:01:16,154 >> -Então Confiar na minha navegação. 30 00:01:16,154 --> 00:01:21,134 >> Estrelas -Movie com carros chamativos e da vida com a capota abaixada. 31 00:01:21,134 --> 00:01:23,126 >> -Estamos Atacando os grandes montes. 32 00:01:23,126 --> 00:01:24,122 >> -Sim, Tempestade está certo. 33 00:01:24,122 --> 00:01:25,160 Caso seja nevar? 34 00:01:25,160 --> 00:01:26,220 >> Não, eu não penso assim. 35 00:01:26,220 --> 00:01:28,505 >> -Mover Direita junto. 36 00:01:28,505 --> 00:01:30,980 >> -Footloose E extravagante. 37 00:01:30,980 --> 00:01:32,960 >> -Você É pronto para o grande momento. 38 00:01:32,960 --> 00:01:34,445 >> -É Pronto para mim? 39 00:01:34,445 --> 00:01:38,900 40 00:01:38,900 --> 00:01:42,860 >> -Mover Direita junto. 41 00:01:42,860 --> 00:01:47,315 Seguindo em frente. 42 00:01:47,315 --> 00:01:52,265 Seguindo em frente. 43 00:01:52,265 --> 00:01:56,131 Seguindo em frente. 44 00:01:56,131 --> 00:01:57,380 -Eu Acho que é melhor você encostar. 45 00:01:57,380 --> 00:01:58,020 -Sim senhor. 46 00:01:58,020 --> 00:02:02,475 47 00:02:02,475 --> 00:02:03,960 >> [FIM DE REPRODUÇÃO] 48 00:02:03,960 --> 00:02:07,425 >> [Aplausos] 49 00:02:07,425 --> 00:02:09,405 50 00:02:09,405 --> 00:02:11,930 >> David J. MALAN: Este é CS50. 51 00:02:11,930 --> 00:02:15,940 E este é o fim de semana 0, mas o início de uma bela amizade. 52 00:02:15,940 --> 00:02:18,250 Estamos tão animado para ser aqui na Universidade de Yale 53 00:02:18,250 --> 00:02:21,530 pela primeira vez com a nossa SCAZ amigo, e Jason e Andy. 54 00:02:21,530 --> 00:02:24,320 Todos os 40 do TF da do CS50 e CA está aqui em Yale. 55 00:02:24,320 --> 00:02:25,440 E todos vocês. 56 00:02:25,440 --> 00:02:28,470 E, na verdade, provavelmente é hora a-- 57 00:02:28,470 --> 00:02:31,914 >> [Aplausos] 58 00:02:31,914 --> 00:02:43,722 59 00:02:43,722 --> 00:02:47,920 >> Assim, mesmo que a maioria das palestras vai estar realmente em Cambridge deste ano, 60 00:02:47,920 --> 00:02:51,250 a realidade é que por design, e muito deliberadamente em CS50, 61 00:02:51,250 --> 00:02:54,740 Eu acho que estamos chegando ao ponto tecnologicamente, e pedagogicamente, 62 00:02:54,740 --> 00:02:57,930 onde ele pode ser um de Ensino Superior experiência de se envolver com alguma 63 00:02:57,930 --> 00:02:59,610 de material on-line do curso. 64 00:02:59,610 --> 00:03:02,862 Na verdade, o reality-- e se eu acredito este philosophically-- é que as palestras 65 00:03:02,862 --> 00:03:05,070 não são particularmente meios eficazes para a entrega 66 00:03:05,070 --> 00:03:06,900 informações relativamente complexo. 67 00:03:06,900 --> 00:03:09,219 Certamente mais de hora além de longos períodos de tempo. 68 00:03:09,219 --> 00:03:11,760 E, de fato cada poucos minutes-- Eu me lembro em college-- 69 00:03:11,760 --> 00:03:14,210 você zona fora por um momento, você perca algum tema complexo, 70 00:03:14,210 --> 00:03:16,540 e você se foi muito bonito para os próximos 45 minutos. 71 00:03:16,540 --> 00:03:19,414 E a realidade é que se você está aqui em New Haven ou Cambridge 72 00:03:19,414 --> 00:03:22,930 ou para além, a simplicidade de ter a capacidade de fazer uma pausa e avanço rápido, 73 00:03:22,930 --> 00:03:26,270 rebobinar, hiperlink para relacionado Recursos, transcrições de pesquisa de texto completo 74 00:03:26,270 --> 00:03:29,900 e similares é uma oportunidade que Atrevo-me a dizer para os nossos alunos on-line 75 00:03:29,900 --> 00:03:32,530 bem além de New Haven, oferece-lhes uma oportunidade 76 00:03:32,530 --> 00:03:34,700 para realmente compreender o Material conceptual que nós 77 00:03:34,700 --> 00:03:36,700 introduzir em palestras tanto melhor. 78 00:03:36,700 --> 00:03:39,415 >> Mas em última análise, CS50, é a experiência dos estudantes 79 00:03:39,415 --> 00:03:43,099 caracteriza-se por isso, muito mais por conjuntos de problemas do curso, 80 00:03:43,099 --> 00:03:46,140 ou projetos de programação semanais, o seções do curso liderado pelo ensino 81 00:03:46,140 --> 00:03:49,600 bolseiros, as horas de expediente noturno liderada por os assistentes do curso e do ensino 82 00:03:49,600 --> 00:03:52,330 bolseiros e, na verdade, tais eventos como CS50 enigma 83 00:03:52,330 --> 00:03:56,500 Dia, Hack-a-thon do CS50, CS50 o Fair, almoços semanais, e muito mais. 84 00:03:56,500 --> 00:03:59,580 E assim se você está aqui em Nova Haven, ou sintonizar de longe, 85 00:03:59,580 --> 00:04:02,270 hoje, em Cambridge, e vamos vê-lo novamente em breve, 86 00:04:02,270 --> 00:04:04,580 a realidade é que isto é uma e a mesma classe. 87 00:04:04,580 --> 00:04:07,990 E estamos tão animado para estar aqui todos juntos hoje. 88 00:04:07,990 --> 00:04:11,110 E assim, no final do semestre, seja aqui ou longe, bem 89 00:04:11,110 --> 00:04:14,910 espero que você vista orgulhosa, feliz, e talvez com um pouco de alívio, 90 00:04:14,910 --> 00:04:19,459 a camisa que dá testemunho para você ter tomado CS50. 91 00:04:19,459 --> 00:04:21,700 >> Então, de onde paramos na quarta-feira? 92 00:04:21,700 --> 00:04:24,410 Nós demos uma olhada pensamento computacional. 93 00:04:24,410 --> 00:04:27,830 E isso é o que nós em direção destilada ciência da computação até, pelo menos, 94 00:04:27,830 --> 00:04:28,800 para agora. 95 00:04:28,800 --> 00:04:31,990 Mas nós destilada que pouco mais na pelo menos três elementos componentes. 96 00:04:31,990 --> 00:04:34,570 >> Insumos, então o que é o problema que estamos tentando resolver? 97 00:04:34,570 --> 00:04:36,650 As saídas, o que é a responder estamos esperando para começar? 98 00:04:36,650 --> 00:04:38,210 E a representação de lá. 99 00:04:38,210 --> 00:04:41,870 E nós não vamos morar aqui em depois em binário, ou até mesmo ASCII, 100 00:04:41,870 --> 00:04:44,050 e similares tanto, mas sim levar para concedido 101 00:04:44,050 --> 00:04:47,520 que podemos representar esta informação, porque as partes mais interessante 102 00:04:47,520 --> 00:04:51,010 desses problemas não são apenas o entradas e saídas, mas os algoritmos 103 00:04:51,010 --> 00:04:53,020 que vão para resolver esses problemas. 104 00:04:53,020 --> 00:04:55,120 >> E você pode se lembrar de no outro dia que nós 105 00:04:55,120 --> 00:04:59,860 tomou um bastante tradicional conceito de olhar alguém 106 00:04:59,860 --> 00:05:03,240 em um bastante grande livro de telefone, ou mais geralmente digitalmente nos dias de hoje, 107 00:05:03,240 --> 00:05:04,420 apenas um conjunto muito grande de dados. 108 00:05:04,420 --> 00:05:07,840 A lista de contatos realmente grande, com muitos nomes por ordem alfabética. 109 00:05:07,840 --> 00:05:11,310 E percebemos que enquanto eu poderia abordar esse problema simplesmente 110 00:05:11,310 --> 00:05:14,520 usando um linear approach-- página por página, 111 00:05:14,520 --> 00:05:17,775 ou mesmo dois de em um tempo-- percebemos que o algorithm-- mais intuitiva 112 00:05:17,775 --> 00:05:20,840 apenas uma espécie de dividir e conquistar o problema de novo, e de novo, 113 00:05:20,840 --> 00:05:24,670 e reduzir para metade novamente---lo com cada tempo, nos deu este resultado verde. 114 00:05:24,670 --> 00:05:27,080 E é muito mais plana porque sugere 115 00:05:27,080 --> 00:05:29,160 que, mesmo que este problema fica cada vez maior, 116 00:05:29,160 --> 00:05:32,470 como é o caso nos dias de hoje com dados conjuntos e reality-- Facebook e Google 117 00:05:32,470 --> 00:05:34,630 resultados de pesquisa e como-- faz nosso algoritmo 118 00:05:34,630 --> 00:05:37,660 executar a mesma eficácia aqueles com maiores picadas 119 00:05:37,660 --> 00:05:40,310 como o fez, mesmo com as pequenas mordidas. 120 00:05:40,310 --> 00:05:45,330 >> Agora ele levanta a questão, o que podemos resolver efectivamente semelhante 121 00:05:45,330 --> 00:05:46,820 com este tipo de intuição? 122 00:05:46,820 --> 00:05:48,740 Este tipo de divisão e conquista? 123 00:05:48,740 --> 00:05:51,029 Bem, nós poderíamos fazer alguma coisa como este aqui hoje. 124 00:05:51,029 --> 00:05:52,070 Poderíamos ter atendimento. 125 00:05:52,070 --> 00:05:56,102 Então, talvez como 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- 126 00:05:56,102 --> 00:05:57,560 não vai ser tudo o que eficiente. 127 00:05:57,560 --> 00:05:58,990 Então, espere, escola primária. 128 00:05:58,990 --> 00:06:02,770 2, 4, 6, 8, 10, 12, 14, 16, 18 e assim por diante. 129 00:06:02,770 --> 00:06:04,140 Mas poderíamos fazer um pouco melhor? 130 00:06:04,140 --> 00:06:06,630 >> Eu tenho certeza que eu não posso fazer isso por mim mesmo. 131 00:06:06,630 --> 00:06:09,420 Então, se você vai humor nos para apenas um momento, trouxemos conosco 132 00:06:09,420 --> 00:06:11,640 um algoritmo que é só tenho três etapas, 133 00:06:11,640 --> 00:06:15,130 mas não se você require-- não mente-- todos nós levantar-se, 134 00:06:15,130 --> 00:06:15,690 se você o faria. 135 00:06:15,690 --> 00:06:23,901 136 00:06:23,901 --> 00:06:29,380 Assim, com tudo de nós agora de pé, passo um deste algoritmo é o seguinte. 137 00:06:29,380 --> 00:06:31,680 Levante-se e atribuir -se o número 1. 138 00:06:31,680 --> 00:06:34,180 Então, neste momento, literalmente todos nesta sala 139 00:06:34,180 --> 00:06:38,830 esperemos que está pensando em si mesmos, no entanto sem jeito, o número 1. 140 00:06:38,830 --> 00:06:42,020 >> Agora passo dois deste algoritmo é vai envolver o seguinte. 141 00:06:42,020 --> 00:06:44,680 Passo dois, emparelhar com alguém de pé, 142 00:06:44,680 --> 00:06:47,970 adicionar seus números juntos, e adotar a soma como o seu novo número. 143 00:06:47,970 --> 00:06:53,110 144 00:06:53,110 --> 00:06:55,620 Verificação de sanidade rápida. 145 00:06:55,620 --> 00:06:58,180 O número é todo mundo pensando agora? 146 00:06:58,180 --> 00:07:01,930 >> Então 2, exceto, talvez, por um lado, desajeitado pessoa, solitário. 147 00:07:01,930 --> 00:07:04,269 Se temos um número ímpar de pessoas na sala. 148 00:07:04,269 --> 00:07:06,560 Assim, uma pessoa pode ainda ser o número um, tudo bem. 149 00:07:06,560 --> 00:07:09,440 Mas o passo três aqui, um de que você deve sentar-se. 150 00:07:09,440 --> 00:07:13,620 O outro deve voltar para a etapa dois, e repetir, se você faria. 151 00:07:13,620 --> 00:07:54,430 152 00:07:54,430 --> 00:07:58,240 >> Então, se ainda de pé, você deve ser entre aqueles que voltar para a etapa dois. 153 00:07:58,240 --> 00:08:13,910 154 00:08:13,910 --> 00:08:14,574 Continue. 155 00:08:14,574 --> 00:08:20,790 156 00:08:20,790 --> 00:08:22,130 Algumas pessoas ainda de pé. 157 00:08:22,130 --> 00:08:33,590 158 00:08:33,590 --> 00:08:35,614 >> Então, se ainda de pé, emparelhar-se com alguém. 159 00:08:35,614 --> 00:08:53,710 160 00:08:53,710 --> 00:08:55,020 Tudo bem, diminuindo para baixo. 161 00:08:55,020 --> 00:09:06,394 162 00:09:06,394 --> 00:09:07,560 Algumas pessoas ainda de pé. 163 00:09:07,560 --> 00:09:08,600 Eu vou ajudar se necessário. 164 00:09:08,600 --> 00:09:11,855 Lembre-se do takeaway chave aqui, é como muito mais rapidamente do que este é me contagem. 165 00:09:11,855 --> 00:09:15,090 166 00:09:15,090 --> 00:09:16,200 >> Então vamos ver. 167 00:09:16,200 --> 00:09:16,900 Eu posso ajudar. 168 00:09:16,900 --> 00:09:19,425 Então, o número são você ainda está pensando? 169 00:09:19,425 --> 00:09:20,320 >> AUDIÊNCIA: Eu sou a 44. 170 00:09:20,320 --> 00:09:22,400 >> DAVID J. MALAN: 44, então vá em frente e se sentar. 171 00:09:22,400 --> 00:09:23,733 O número que você está pensando? 172 00:09:23,733 --> 00:09:24,840 AUDIÊNCIA: 74. 173 00:09:24,840 --> 00:09:27,006 >> DAVID J. MALAN: 74. 174 00:09:27,006 --> 00:09:28,380 Tudo bem, vá em frente e se sentar. 175 00:09:28,380 --> 00:09:30,390 Quem mais ainda está de pé? 176 00:09:30,390 --> 00:09:31,550 86. 177 00:09:31,550 --> 00:09:33,340 E é que ninguém ainda está de pé? 178 00:09:33,340 --> 00:09:34,976 >> Qual número? 179 00:09:34,976 --> 00:09:37,380 Ouvi 67. 180 00:09:37,380 --> 00:09:39,370 E, em seguida, no topo? 181 00:09:39,370 --> 00:09:40,900 32. 182 00:09:40,900 --> 00:09:44,230 Qualquer outra pessoa ainda está de pé e pensando em um número? 183 00:09:44,230 --> 00:09:44,730 >> Oh Oi. 184 00:09:44,730 --> 00:09:45,230 Desculpe. 185 00:09:45,230 --> 00:09:48,350 Volto logo. 186 00:09:48,350 --> 00:09:49,520 42. 187 00:09:49,520 --> 00:09:51,758 Alguém mais? 188 00:09:51,758 --> 00:09:52,610 >> AUDIÊNCIA: 47. 189 00:09:52,610 --> 00:09:54,930 >> DAVID J. MALAN: 47. 190 00:09:54,930 --> 00:09:57,980 Tem mais alguém ainda de pé que não foi contado? 191 00:09:57,980 --> 00:10:06,450 Assim, o número final de pessoas em uma sala que tem 497 assentos é-- todos os quais 192 00:10:06,450 --> 00:10:10,930 são filled-- é 390. 193 00:10:10,930 --> 00:10:12,230 Então, isso é ótimo. 194 00:10:12,230 --> 00:10:16,435 >> Em breve, discutir a noção de um bug em um programa de computador. 195 00:10:16,435 --> 00:10:19,660 Mas vamos voltar para que em pouco tempo. 196 00:10:19,660 --> 00:10:22,440 Mas, em teoria, o que pode ter acontecido apenas agora? 197 00:10:22,440 --> 00:10:25,930 Assim, mesmo que houvesse três grandes passos para este algoritmo, cada um daqueles 198 00:10:25,930 --> 00:10:27,510 era apenas uma espécie de uma grande operação. 199 00:10:27,510 --> 00:10:31,020 E havia esta ciclicidade a ele em que, se você ainda estavam de pé, 200 00:10:31,020 --> 00:10:34,870 Você manteve passando de etapa 3-2, passo 3-2, passo 3-2. 201 00:10:34,870 --> 00:10:37,330 >> Mas o que continuou acontecendo em cada iteração? 202 00:10:37,330 --> 00:10:39,440 Cada ciclo deste loop? 203 00:10:39,440 --> 00:10:41,940 O que aconteceu em outros lugares na sala? 204 00:10:41,940 --> 00:10:45,170 Não só a mesma coisa, mas o que estava acontecendo com metade de vocês? 205 00:10:45,170 --> 00:10:46,170 Sentando. 206 00:10:46,170 --> 00:10:49,710 E assim lá em mentiras esse insight, muito parecido com o exemplo do livro de telefone, 207 00:10:49,710 --> 00:10:52,050 em que, se metade de vocês são sentando-se a cada vez, 208 00:10:52,050 --> 00:10:54,560 o problema está começando com talvez 400 pessoas, 209 00:10:54,560 --> 00:10:57,780 em seguida, para 200 pessoas, de 100 pessoas, em seguida, 50 pessoas, e assim por diante. 210 00:10:57,780 --> 00:11:00,660 >> E, assim, reduzir gradualmente em teoria para apenas uma pessoa, 211 00:11:00,660 --> 00:11:02,830 pensando no valor total de todos. 212 00:11:02,830 --> 00:11:05,777 Agora a realidade, algumas dinâmicas sociais, e alguns erros aritméticos 213 00:11:05,777 --> 00:11:07,360 pode contribuir para esse bug final. 214 00:11:07,360 --> 00:11:10,300 Mas, em teoria, enquanto ainda estava contando distância, 215 00:11:10,300 --> 00:11:12,860 tendo várias dezenas passos, ou centenas de passos 216 00:11:12,860 --> 00:11:16,240 para contar-vos, para contar uma sala cheia de 500 ou mais pessoas 217 00:11:16,240 --> 00:11:20,560 deveria ter tido muito menos passos, porque você só pode dividir 500 e 1/2 218 00:11:20,560 --> 00:11:21,350 tantas vezes. 219 00:11:21,350 --> 00:11:24,120 E assim como com o telefone reservar exemplo no outro dia, 220 00:11:24,120 --> 00:11:26,740 se temos algo logarítmica por assim dizer, 221 00:11:26,740 --> 00:11:28,870 pelo qual se fôssemos todos operar em uníssono, 222 00:11:28,870 --> 00:11:32,000 e ignorando o erros de adição, que seria de nós 223 00:11:32,000 --> 00:11:34,140 ter alcançado exactamente esse tipo de tempo de execução? 224 00:11:34,140 --> 00:11:37,900 >> Agora, para ser justo, tipo de enganado, em que eu aproveitado outro recurso. 225 00:11:37,900 --> 00:11:40,320 Considerando que é apenas um de mim, I aproveitado centenas de você. 226 00:11:40,320 --> 00:11:43,340 Mas pode-se dizer que para ser um exemplo de processamento paralelo, 227 00:11:43,340 --> 00:11:46,400 ou um estado de arte muito em voga onde os computadores estes dias têm 228 00:11:46,400 --> 00:11:49,830 múltiplas CPUs, ou mais tecnicamente, mais múltiplos núcleos, 229 00:11:49,830 --> 00:11:52,550 e pode realmente fazer múltipla coisas ao mesmo tempo, muito parecido com você 230 00:11:52,550 --> 00:11:54,706 tudo o que estamos fazendo lá, em paralelo. 231 00:11:54,706 --> 00:11:56,580 Mas lembre-se que o que nós Também fez na quarta-feira 232 00:11:56,580 --> 00:12:02,640 foi tentar capturar essa intuição e formalizar-lo no código. 233 00:12:02,640 --> 00:12:04,165 Algo como pseudo-código. 234 00:12:04,165 --> 00:12:07,040 E, na verdade, e eu espero que você perdoar, é como 80 graus em aqui. 235 00:12:07,040 --> 00:12:09,420 Então eu vou levar este off para apenas um pouco. 236 00:12:09,420 --> 00:12:12,410 O que eu pensei que ia fazer é transição agora para uma aplicação em que 237 00:12:12,410 --> 00:12:16,300 voltamos a envolver o público, mas escrever um programa em Inglês 238 00:12:16,300 --> 00:12:19,537 como sintaxe, com a qual a resolver este problema aqui. 239 00:12:19,537 --> 00:12:20,203 [REPRODUÇÃO DE VÍDEO] 240 00:12:20,203 --> 00:12:22,266 Tempo da geléia da manteiga de amendoim -É. 241 00:12:22,266 --> 00:12:23,890 Hora da manteiga de amendoim e geleia. 242 00:12:23,890 --> 00:12:25,620 Hora da manteiga de amendoim e geleia. 243 00:12:25,620 --> 00:12:26,320 >> Way ya! 244 00:12:26,320 --> 00:12:26,927 Way ya! 245 00:12:26,927 --> 00:12:27,781 Way ya! 246 00:12:27,781 --> 00:12:28,350 Way ya! 247 00:12:28,350 --> 00:12:29,723 Agora há que você vá! 248 00:12:29,723 --> 00:12:30,264 Ai está! 249 00:12:30,264 --> 00:12:30,805 Ai está! 250 00:12:30,805 --> 00:12:31,710 Ai está! 251 00:12:31,710 --> 00:12:33,156 Manteiga de amendoim geléia! 252 00:12:33,156 --> 00:12:34,602 Manteiga de amendoim geléia! 253 00:12:34,602 --> 00:12:36,530 >> Manteiga de amendoim geléia! 254 00:12:36,530 --> 00:12:37,494 Manteiga de amendoim geléia! 255 00:12:37,494 --> 00:12:38,940 Amendoim, manteiga de amendoim geléia! 256 00:12:38,940 --> 00:12:39,904 Manteiga de amendoim geléia! 257 00:12:39,904 --> 00:12:41,840 Geléia de amendoim manteiga com um taco de beisebol. 258 00:12:41,840 --> 00:12:42,423 >> [FIM DE REPRODUÇÃO] 259 00:12:42,423 --> 00:12:45,510 DAVID J. MALAN: --que vídeo, mas é um pouco viciante, 260 00:12:45,510 --> 00:12:46,540 se não um pouco chato. 261 00:12:46,540 --> 00:12:49,623 Mas para fazer isso, eu pensei que estaríamos fazer é tentar escrever um programa em conjunto, 262 00:12:49,623 --> 00:12:51,870 para o qual precisamos de três voluntários. 263 00:12:51,870 --> 00:12:54,350 Tem que ser confortável na câmera e internet. 264 00:12:54,350 --> 00:12:57,820 Sam, vamos lá para cima. 265 00:12:57,820 --> 00:12:59,830 Camisa roxa, aqui, vamos lá para cima. 266 00:12:59,830 --> 00:13:03,470 >> E a partir de aqui, deixe-me ir um pouco mais para trás. 267 00:13:03,470 --> 00:13:05,280 Carmesim e camisas azuis, vamos lá para cima. 268 00:13:05,280 --> 00:13:06,980 Perfeito. 269 00:13:06,980 --> 00:13:09,790 Venha agora. 270 00:13:09,790 --> 00:13:12,490 Vamos lá para cima, vamos lá para cima. 271 00:13:12,490 --> 00:13:13,581 >> E qual é o seu nome? 272 00:13:13,581 --> 00:13:14,080 Erica. 273 00:13:14,080 --> 00:13:15,289 David, prazer em conhecê-lo. 274 00:13:15,289 --> 00:13:16,830 Se você gostaria de aproveitar esta sede aqui. 275 00:13:16,830 --> 00:13:17,900 Este é Sam. 276 00:13:17,900 --> 00:13:19,690 >> Qual o seu nome? 277 00:13:19,690 --> 00:13:20,260 Antonio. 278 00:13:20,260 --> 00:13:21,595 Antonio, prazer em conhecê-lo. 279 00:13:21,595 --> 00:13:23,790 Erica e Sam, se você gostaria de ter um assento aqui. 280 00:13:23,790 --> 00:13:26,700 O que nós viemos preparados com, como esses caras estão descobrindo, 281 00:13:26,700 --> 00:13:30,580 é os ingredientes com os quais fazer um sanduíche de manteiga de amendoim e geléia. 282 00:13:30,580 --> 00:13:33,520 >> Agora, isso pode ser algo que você toma muito para concedido. 283 00:13:33,520 --> 00:13:35,430 Mas demos a cada dos nossos três voluntários 284 00:13:35,430 --> 00:13:40,500 aqui-- dois voluntários e Sam aqui, um naco de pão cada, um prato, uma faca, 285 00:13:40,500 --> 00:13:43,740 um pote de geléia ou compota, e um pote de manteiga de amendoim. 286 00:13:43,740 --> 00:13:46,190 E o objetivo agora é na mão vai ser para estes três 287 00:13:46,190 --> 00:13:48,030 para fazer uma manteiga de amendoim e sanduíche de geléia. 288 00:13:48,030 --> 00:13:51,000 Mas o que vamos fazer é esperar o audience-- desde todos vocês 289 00:13:51,000 --> 00:13:53,710 certamente sabe como fazer este tão bem em reality-- 290 00:13:53,710 --> 00:13:56,380 vão nos fornecer a instruções passo a passo. 291 00:13:56,380 --> 00:13:57,970 O pseudo-código, se você quiser. 292 00:13:57,970 --> 00:13:59,922 >> Então, eu vou desempenhar o papel de escriba aqui. 293 00:13:59,922 --> 00:14:02,880 E eu tenho uma pequena lista de coisas a fazer, e assim como cada um, um de cada vez, 294 00:14:02,880 --> 00:14:04,588 chama um potencial instrucional, eu vou 295 00:14:04,588 --> 00:14:06,110 anotá-la, repeti-la quando necessário. 296 00:14:06,110 --> 00:14:09,650 E então vocês vão fazer a manteiga de amendoim e geléia sanduíche 297 00:14:09,650 --> 00:14:11,171 somente fazendo o que você é dito. 298 00:14:11,171 --> 00:14:12,670 Então, pense de si mesmos como computadores. 299 00:14:12,670 --> 00:14:13,740 >> Você só pode fazer o que você disse. 300 00:14:13,740 --> 00:14:14,948 Não suposições, não há dúvidas. 301 00:14:14,948 --> 00:14:16,660 Você só precisa fazer isso. 302 00:14:16,660 --> 00:14:20,460 Então, quem gostaria de arriscar a primeira instrução para fazer um sanduíche PBJ? 303 00:14:20,460 --> 00:14:21,460 Na varanda há. 304 00:14:21,460 --> 00:14:22,801 >> AUDIÊNCIA: Abra o saco de pão. 305 00:14:22,801 --> 00:14:26,430 >> DAVID J. MALAN: Abra a saco de pão, se você quiser. 306 00:14:26,430 --> 00:14:34,440 307 00:14:34,440 --> 00:14:35,230 Então vamos ver. 308 00:14:35,230 --> 00:14:37,910 Vamos fazer uma iteração, e obter um pouco mais precisa. 309 00:14:37,910 --> 00:14:39,040 >> Boa maneira de começar embora. 310 00:14:39,040 --> 00:14:42,340 Passo dois, outra pessoa. 311 00:14:42,340 --> 00:14:43,590 Agora ninguém quer ser voluntário. 312 00:14:43,590 --> 00:14:44,616 Passo dois, na frente. 313 00:14:44,616 --> 00:14:46,532 AUDIÊNCIA: Abra o interior saco de pão também. 314 00:14:46,532 --> 00:14:50,600 DAVID J. MALAN: Abra a saco interior do pão bem. 315 00:14:50,600 --> 00:14:51,880 Ótimo, estamos aprendendo. 316 00:14:51,880 --> 00:14:57,880 317 00:14:57,880 --> 00:14:59,090 Um pouco mais preciso. 318 00:14:59,090 --> 00:15:00,240 Vamos começar este trabalho. 319 00:15:00,240 --> 00:15:01,180 Sim, na camisa verde. 320 00:15:01,180 --> 00:15:04,608 >> AUDIÊNCIA: [inaudível] 321 00:15:04,608 --> 00:15:05,108 322 00:15:05,108 --> 00:15:09,040 DAVID J. MALAN: Fatias de pão. 323 00:15:09,040 --> 00:15:11,110 Remova cuidadosamente duas fatias de pão. 324 00:15:11,110 --> 00:15:20,350 325 00:15:20,350 --> 00:15:21,000 Isso é bom. 326 00:15:21,000 --> 00:15:24,300 Passo quatro, outra pessoa? 327 00:15:24,300 --> 00:15:25,170 Por aqui, sim? 328 00:15:25,170 --> 00:15:26,130 >> AUDIÊNCIA: [inaudível] 329 00:15:26,130 --> 00:15:28,810 >> DAVID J. MALAN: Coloque o pão no prato. 330 00:15:28,810 --> 00:15:33,490 331 00:15:33,490 --> 00:15:35,290 Passo Cinco? 332 00:15:35,290 --> 00:15:36,020 Passo cinco, sim? 333 00:15:36,020 --> 00:15:39,440 >> AUDIÊNCIA: [inaudível] 334 00:15:39,440 --> 00:15:39,940 335 00:15:39,940 --> 00:15:43,860 DAVID J. MALAN: No topo de-- oh, mão. 336 00:15:43,860 --> 00:15:46,967 Coloque a mão em cima da manteiga de amendoim. 337 00:15:46,967 --> 00:15:47,800 É isso que eu vou? 338 00:15:47,800 --> 00:15:49,160 >> AUDIÊNCIA: É, e desapertar. 339 00:15:49,160 --> 00:15:51,370 >> DAVID J. MALAN: e- dizê-lo novamente. 340 00:15:51,370 --> 00:15:52,696 >> AUDIÊNCIA: [inaudível] 341 00:15:52,696 --> 00:15:57,990 >> DAVID J. MALAN: E colocar o tampa ao lado da manteiga de amendoim. 342 00:15:57,990 --> 00:16:00,370 Levemente colocar a mão no topo de manteiga de amendoim, 343 00:16:00,370 --> 00:16:03,240 e desapertar, e colocar a tampa ao lado da manteiga de amendoim. 344 00:16:03,240 --> 00:16:14,760 345 00:16:14,760 --> 00:16:16,260 OK, etapa seis. 346 00:16:16,260 --> 00:16:17,520 Passo seis, outra pessoa. 347 00:16:17,520 --> 00:16:19,366 Sim? 348 00:16:19,366 --> 00:16:22,740 >> AUDIÊNCIA: [inaudível] 349 00:16:22,740 --> 00:16:29,197 350 00:16:29,197 --> 00:16:30,405 DAVID J. MALAN: Diga isso de novo. 351 00:16:30,405 --> 00:16:31,946 AUDIÊNCIA: Repita o passo cinco novamente. 352 00:16:31,946 --> 00:16:37,380 DAVID J. MALAN: E repita o passo cinco de novo, 353 00:16:37,380 --> 00:16:39,400 que vai criar um pouco de um problema 354 00:16:39,400 --> 00:16:42,600 Agora, se nós estamos fazendo isso passo a passo. 355 00:16:42,600 --> 00:16:44,640 Então agora vamos voltar para a etapa cinco. 356 00:16:44,640 --> 00:16:47,760 Levemente colocar a mão no topo de manteiga de amendoim e desapertar 357 00:16:47,760 --> 00:16:50,990 e coloque a tampa ao lado da manteiga de amendoim. 358 00:16:50,990 --> 00:16:55,340 Em seguida, segure a manteiga de amendoim e repita o passo cinco novamente. 359 00:16:55,340 --> 00:16:58,410 >> Então, vamos substituir essa loop infinito, se você quiser. 360 00:16:58,410 --> 00:17:00,400 Passo sete, outra pessoa. 361 00:17:00,400 --> 00:17:02,918 Sim, na parte de trás. 362 00:17:02,918 --> 00:17:06,397 >> AUDIÊNCIA: [inaudível] 363 00:17:06,397 --> 00:17:16,084 364 00:17:16,084 --> 00:17:17,769 >> DAVID J. MALAN: top --em de outro. 365 00:17:17,769 --> 00:17:20,529 >> AUDIÊNCIA: [inaudível] 366 00:17:20,529 --> 00:17:23,175 >> DAVID J. MALAN: No Por outro lado, por outro superior. 367 00:17:23,175 --> 00:17:28,880 368 00:17:28,880 --> 00:17:30,895 Você quer apenas chegar aqui? 369 00:17:30,895 --> 00:17:34,750 Como posso terminar a instrução? 370 00:17:34,750 --> 00:17:37,790 O que é o resto da instrução? 371 00:17:37,790 --> 00:17:39,140 >> AUDIÊNCIA: Ignorando essa parte. 372 00:17:39,140 --> 00:17:41,050 >> DAVID J. MALAN: Ignorando essa parte. 373 00:17:41,050 --> 00:17:44,192 374 00:17:44,192 --> 00:17:44,900 Vamos começar de novo. 375 00:17:44,900 --> 00:17:45,400 Passo sete. 376 00:17:45,400 --> 00:17:48,516 377 00:17:48,516 --> 00:17:51,883 >> AUDIÊNCIA: [inaudível] 378 00:17:51,883 --> 00:17:56,090 >> DAVID J. MALAN: Segure com opondo hand-- isso é bom. 379 00:17:56,090 --> 00:17:58,544 Este é realmente bom. 380 00:17:58,544 --> 00:18:01,750 >> AUDIÊNCIA: [inaudível] 381 00:18:01,750 --> 00:18:03,975 >> DAVID J. MALAN: E jar-- plástico 382 00:18:03,975 --> 00:18:06,675 >> AUDIÊNCIA: [inaudível] 383 00:18:06,675 --> 00:18:08,420 >> DAVID J. MALAN: E twist-- 384 00:18:08,420 --> 00:18:11,488 >> AUDIÊNCIA: [inaudível] 385 00:18:11,488 --> 00:18:13,730 >> DAVID J. MALAN: Por dois segundos. 386 00:18:13,730 --> 00:18:15,800 Basta abrir o pote de manteiga de amendoim. 387 00:18:15,800 --> 00:18:19,020 388 00:18:19,020 --> 00:18:20,632 Eu espero que você perdoar. 389 00:18:20,632 --> 00:18:21,840 Então vamos supor que chegamos lá. 390 00:18:21,840 --> 00:18:23,240 Abra o frasco de manteiga de amendoim. 391 00:18:23,240 --> 00:18:27,008 392 00:18:27,008 --> 00:18:32,570 >> [Aplausos] 393 00:18:32,570 --> 00:18:34,790 >> DAVID J. MALAN: Passo oito, vamos embora. 394 00:18:34,790 --> 00:18:37,510 Passo oito, sim, na parte de trás. 395 00:18:37,510 --> 00:18:38,470 >> AUDIÊNCIA: [inaudível] 396 00:18:38,470 --> 00:18:44,772 397 00:18:44,772 --> 00:18:45,700 >> DAVID J. MALAN: Good. 398 00:18:45,700 --> 00:18:47,040 Passo nove, sim? 399 00:18:47,040 --> 00:18:48,924 >> AUDIÊNCIA: [inaudível] 400 00:18:48,924 --> 00:18:51,567 >> DAVID J. MALAN: --out de o pote de manteiga de amendoim. 401 00:18:51,567 --> 00:18:53,830 E- eo que? 402 00:18:53,830 --> 00:18:54,729 >> AUDIÊNCIA: [inaudível] 403 00:18:54,729 --> 00:18:58,222 >> DAVID J. MALAN: E colocar faca de volta em manteiga de amendoim. 404 00:18:58,222 --> 00:19:11,130 405 00:19:11,130 --> 00:19:12,090 Passo dez. 406 00:19:12,090 --> 00:19:13,050 Passo dez. 407 00:19:13,050 --> 00:19:14,970 >> AUDIÊNCIA: [inaudível] 408 00:19:14,970 --> 00:19:20,710 >> DAVID J. MALAN: Coloque a faca para fora, e, em seguida, retire o selo. 409 00:19:20,710 --> 00:19:23,060 Agradável. 410 00:19:23,060 --> 00:19:24,400 Fora da manteiga de amendoim. 411 00:19:24,400 --> 00:19:34,490 412 00:19:34,490 --> 00:19:36,406 Tudo bem, passo 11. 413 00:19:36,406 --> 00:19:37,322 >> AUDIÊNCIA: [inaudível] 414 00:19:37,322 --> 00:19:42,520 415 00:19:42,520 --> 00:19:48,164 >> DAVID J. MALAN: OK, cinzento computador siga computador azul ou vermelho. 416 00:19:48,164 --> 00:19:49,631 Boa. 417 00:19:49,631 --> 00:19:53,054 >> [Aplausos] 418 00:19:53,054 --> 00:19:55,920 419 00:19:55,920 --> 00:19:57,170 DAVID J. MALAN: Traga-nos para casa. 420 00:19:57,170 --> 00:19:59,570 Mais algumas etapas. 421 00:19:59,570 --> 00:20:00,250 Qual é o próximo? 422 00:20:00,250 --> 00:20:02,590 As etapas 12. 423 00:20:02,590 --> 00:20:04,161 Passo 12. 424 00:20:04,161 --> 00:20:05,123 Sim? 425 00:20:05,123 --> 00:20:14,262 >> AUDIÊNCIA: Coloque uma das fatias de pão delicadamente em uma de suas mãos. 426 00:20:14,262 --> 00:20:17,550 >> DAVID J. MALAN: Uma das suas mãos. 427 00:20:17,550 --> 00:20:20,760 E então, o passo 13. 428 00:20:20,760 --> 00:20:21,260 Sim? 429 00:20:21,260 --> 00:20:22,220 >> AUDIÊNCIA: [inaudível] 430 00:20:22,220 --> 00:20:25,580 431 00:20:25,580 --> 00:20:27,150 >> DAVID J. MALAN: Fatia --em de pão. 432 00:20:27,150 --> 00:20:29,950 Boa. 433 00:20:29,950 --> 00:20:32,260 Muito bom. 434 00:20:32,260 --> 00:20:34,990 Passo 14, sim. 435 00:20:34,990 --> 00:20:38,126 >> AUDIÊNCIA: Desfazer a etapa 13. 436 00:20:38,126 --> 00:20:39,950 >> DAVID J. MALAN: Desfazer a etapa 13. 437 00:20:39,950 --> 00:20:42,690 438 00:20:42,690 --> 00:20:44,770 Vamos passar para a geléia. 439 00:20:44,770 --> 00:20:47,900 É um programa 100- passo, mas estamos estavam na etapa 15. 440 00:20:47,900 --> 00:20:49,210 Sim. 441 00:20:49,210 --> 00:20:50,170 >> AUDIÊNCIA: [inaudível] 442 00:20:50,170 --> 00:20:53,050 443 00:20:53,050 --> 00:20:59,570 >> DAVID J. MALAN: 7 a 13 utilizando a geléia, porque aqueles correu tão bem. 444 00:20:59,570 --> 00:21:02,530 Repita os passos 7 a 13, utilizando a geleia. 445 00:21:02,530 --> 00:21:07,940 Assim, compreender a metade inferior do frasco da geléia com uma mão em cima. 446 00:21:07,940 --> 00:21:11,970 Por outro lado do outro top, ignorando essa parte, 447 00:21:11,970 --> 00:21:15,430 agarrar com as mãos opostas, a tampa do frasco de plástico e 448 00:21:15,430 --> 00:21:18,300 na parte inferior, e torcer por dois segundos. 449 00:21:18,300 --> 00:21:19,940 Em seguida, abra o frasco da geléia. 450 00:21:19,940 --> 00:21:23,290 451 00:21:23,290 --> 00:21:26,580 E, finalmente, vamos tentar dar-nos algo comestível. 452 00:21:26,580 --> 00:21:27,270 Passo 16. 453 00:21:27,270 --> 00:21:35,820 454 00:21:35,820 --> 00:21:37,130 Então, por que não deixá-lo lá. 455 00:21:37,130 --> 00:21:38,879 Muito obrigado a nossos três voluntários. 456 00:21:38,879 --> 00:21:41,466 [Aplausos] 457 00:21:41,466 --> 00:21:45,920 458 00:21:45,920 --> 00:21:50,300 >> Nós temos um pouco CS50 bola de stress para você. 459 00:21:50,300 --> 00:21:54,540 Ele estava indo para ser um sanduíche mas-- então o que 460 00:21:54,540 --> 00:21:57,130 foi o ponto de, além de ter um pouco de diversão com o algoritmo? 461 00:21:57,130 --> 00:22:00,140 Mas a realidade é que, mesmo quando você está programando um computador, 462 00:22:00,140 --> 00:22:02,050 você precisa para ser super precisa. 463 00:22:02,050 --> 00:22:04,030 Tão complexa e intimidante como o seu próprio computador 464 00:22:04,030 --> 00:22:06,670 poderia muito bem ser para você, pelo menos quando algo dá errado, 465 00:22:06,670 --> 00:22:10,150 a realidade é que é um muito burro dispositivo que foi inventado por nós, seres humanos, 466 00:22:10,150 --> 00:22:13,267 e só pode fazer um subconjunto do que nós fazer-- às vezes certamente faster-- 467 00:22:13,267 --> 00:22:15,100 mas não sabe como fazer suposições. 468 00:22:15,100 --> 00:22:18,070 Ele não sabe como ser em o mesmo comprimento de onda, como você. 469 00:22:18,070 --> 00:22:20,280 >> Ele só vai fazer precisamente o que você diga a ele. 470 00:22:20,280 --> 00:22:22,070 E você vai ser atingido, talvez, como começamos 471 00:22:22,070 --> 00:22:24,770 escrever código real com o conjuntos de problemas primeiras e mais além, 472 00:22:24,770 --> 00:22:27,490 o quão fácil é fazer um pressuposto como um ser humano, 473 00:22:27,490 --> 00:22:31,880 e não antecipar eu preciso para lidar com Nesse caso, ou que caso de canto, 474 00:22:31,880 --> 00:22:34,900 por assim dizer, que poderia muito bem surgir se, por exemplo, Sam teve a única 475 00:22:34,900 --> 00:22:38,711 jar squeezable de geléia, enquanto toda a gente tinha alguns frascos de vidro como 476 00:22:38,711 --> 00:22:39,210 bem. 477 00:22:39,210 --> 00:22:42,170 Então, antes de voltar nossa a atenção para alguns código real, 478 00:22:42,170 --> 00:22:44,680 permita-me apresentar o cabeças de curso aqui em Yale. 479 00:22:44,680 --> 00:22:49,058 Nossos amigos SCAZ, Andy, e Jason para vir e dizer Olá. 480 00:22:49,058 --> 00:22:52,544 >> [Aplausos] 481 00:22:52,544 --> 00:22:58,022 482 00:22:58,022 --> 00:23:01,060 >> SCAZ: Nós perdemos Jason temporariamente. 483 00:23:01,060 --> 00:23:02,440 Oi novamente, todo mundo. 484 00:23:02,440 --> 00:23:03,610 Meu nome é SCAZ. 485 00:23:03,610 --> 00:23:06,860 Eu tenho ensinado na Universidade de Yale desde 2001. 486 00:23:06,860 --> 00:23:10,820 E quando eu não estou ensinando, minha pesquisa é na área da robótica 487 00:23:10,820 --> 00:23:12,620 e inteligência artificial. 488 00:23:12,620 --> 00:23:17,700 >> E o anúncio de que eu tenho hoje é que a partir de um par de semanas, 489 00:23:17,700 --> 00:23:22,170 vamos estar trazendo algum material suplementar para CS50 para falar 490 00:23:22,170 --> 00:23:24,510 sobre o software de inteligência. 491 00:23:24,510 --> 00:23:28,230 Nós vamos falar sobre como lugares como Netflix e Hulu 492 00:23:28,230 --> 00:23:31,780 pode recomendar filmes que você pode querer assistir. 493 00:23:31,780 --> 00:23:35,710 Onde nós vamos falar sobre como carros-motorista menos realmente funcionar. 494 00:23:35,710 --> 00:23:39,020 E nós vamos ser capazes de fundamentar essas coisas nos conceitos 495 00:23:39,020 --> 00:23:41,730 que você está aprendendo nesta classe de hoje. 496 00:23:41,730 --> 00:23:45,410 >> Porque todas estas coisas são construído sobre a mesma base. 497 00:23:45,410 --> 00:23:47,396 E é isso que este série vai explorar. 498 00:23:47,396 --> 00:23:49,520 Então, eu estou realmente olhando ansioso para ver mais de você 499 00:23:49,520 --> 00:23:53,260 tudo, e você vai chegar a ver mais a partir de todos nós muito em breve. 500 00:23:53,260 --> 00:23:56,500 Permitam-me, em seguida, introduzir Jason. 501 00:23:56,500 --> 00:23:57,950 >> JASON: Olá a todos. 502 00:23:57,950 --> 00:23:59,290 Meu nome é Jason. 503 00:23:59,290 --> 00:24:03,540 Eu, infelizmente, foi para Harvard como uma graduação. 504 00:24:03,540 --> 00:24:07,020 Isso vai se cortar fora do fluxo real. 505 00:24:07,020 --> 00:24:09,870 >> E agora eu estou aqui como professor de o departamento de ciência da computação. 506 00:24:09,870 --> 00:24:14,825 E eu estou ajudando funcionar o curso com SCAZ, David e Andy. 507 00:24:14,825 --> 00:24:17,140 >> ANDY: Hey guys. 508 00:24:17,140 --> 00:24:17,980 Andy do meu nome. 509 00:24:17,980 --> 00:24:21,992 Estou realmente a única Yale estudante no palco no momento. 510 00:24:21,992 --> 00:24:25,464 >> [Aplausos] 511 00:24:25,464 --> 00:24:29,440 512 00:24:29,440 --> 00:24:31,770 >> Estou em Berkeley College, originalmente de Solon, Ohio. 513 00:24:31,770 --> 00:24:35,240 514 00:24:35,240 --> 00:24:37,930 E eu era uma daquelas crianças onde, quando eu vim para Yale, 515 00:24:37,930 --> 00:24:42,030 Eu realmente pensei que eu nunca faria tem que olhar para um número cada vez mais. 516 00:24:42,030 --> 00:24:46,240 E então eu percebi que você precisava ciência e QR créditos para pós-graduação. 517 00:24:46,240 --> 00:24:51,340 E assim minha primavera calouro, eu tirei uma classe, um CS, introdução CS classe aqui 518 00:24:51,340 --> 00:24:52,230 em Yale. 519 00:24:52,230 --> 00:24:54,710 Eu era como, isto é como realmente muito legal. 520 00:24:54,710 --> 00:25:01,330 >> E enquanto eu realmente acabou declarando como um dos principais assuntos globais, as habilidades 521 00:25:01,330 --> 00:25:04,910 Eu aprendi no CS e programação são assim aplicáveis ​​a qualquer campo 522 00:25:04,910 --> 00:25:05,970 você escolhe fazer. 523 00:25:05,970 --> 00:25:09,770 Ea equipe aqui em Yale, temos sido tão duro no trabalho 524 00:25:09,770 --> 00:25:10,800 para se preparar para vocês. 525 00:25:10,800 --> 00:25:13,410 E estamos ansiosos para vê- tudo na seção e de escritório horas. 526 00:25:13,410 --> 00:25:14,874 Então sim. 527 00:25:14,874 --> 00:25:18,178 >> [Aplausos] 528 00:25:18,178 --> 00:25:19,297 529 00:25:19,297 --> 00:25:20,380 DAVID J. MALAN: Obrigado. 530 00:25:20,380 --> 00:25:22,940 Então, basta antes da aula começou, tivemos uma oportunidade 531 00:25:22,940 --> 00:25:25,660 para andar em torno do campus com um telemóvel e tomar 532 00:25:25,660 --> 00:25:30,530 alguns selfies em forma de vídeo de verdade minha primeira turnê do campus de Yale aqui. 533 00:25:30,530 --> 00:25:35,420 E então pensamos que iria partilhar um áspero corte de exatamente isso como SCAZ e Andy 534 00:25:35,420 --> 00:25:37,970 e Jason levou-me em torno do campus. 535 00:25:37,970 --> 00:25:43,662 536 00:25:43,662 --> 00:25:44,328 [REPRODUÇÃO DE VÍDEO] 537 00:25:44,328 --> 00:25:47,322 [SIRENS] 538 00:25:47,322 --> 00:25:49,318 -David. 539 00:25:49,318 --> 00:25:50,132 -Bem-Vindo a Yale. 540 00:25:50,132 --> 00:25:50,840 -Bom te ver. 541 00:25:50,840 --> 00:25:52,410 -É bom te ver. 542 00:25:52,410 --> 00:25:53,340 -Podemos Ir em uma turnê? 543 00:25:53,340 --> 00:25:56,845 -Vamos Fazer um passeio. 544 00:25:56,845 --> 00:25:57,523 -road Turnê. 545 00:25:57,523 --> 00:25:59,106 -Este Sinal tem sido há algum tempo. 546 00:25:59,106 --> 00:26:00,200 -Whah, CS50. 547 00:26:00,200 --> 00:26:02,978 548 00:26:02,978 --> 00:26:05,293 >> -Hurry! 549 00:26:05,293 --> 00:26:08,970 Vai Vai vai VAI. 550 00:26:08,970 --> 00:26:12,340 Você deve [inaudível] Harkness Tower. 551 00:26:12,340 --> 00:26:13,850 >> -E Vimos que algumas vezes. 552 00:26:13,850 --> 00:26:16,760 553 00:26:16,760 --> 00:26:20,155 >> [Aplausos] 554 00:26:20,155 --> 00:26:21,130 555 00:26:21,130 --> 00:26:22,890 >> -Olha Para fora para a bicicleta! 556 00:26:22,890 --> 00:26:24,500 Ahh! 557 00:26:24,500 --> 00:26:25,030 Oi Frank. 558 00:26:25,030 --> 00:26:26,314 >> -Qual É para cima, rapazes? 559 00:26:26,314 --> 00:26:26,855 -Como você está? 560 00:26:26,855 --> 00:26:28,474 -Bom te ver. 561 00:26:28,474 --> 00:26:29,390 -Welcome Para o vídeo. 562 00:26:29,390 --> 00:26:32,270 Não aja muito animado. 563 00:26:32,270 --> 00:26:34,502 >> -Eu Amo Silliman. 564 00:26:34,502 --> 00:26:36,430 Ahh! 565 00:26:36,430 --> 00:26:39,780 >> -Ele Tem sido cerca de três horas desde Jason tinha sorvete e Nutella. 566 00:26:39,780 --> 00:26:43,189 Então nós temos que parar de volta ao Silliman para um pouco. 567 00:26:43,189 --> 00:26:45,137 >> -Não É mesmo [inaudível] no entanto, apenas o fato de 568 00:26:45,137 --> 00:26:47,270 que eles têm aqui é tão incrível. 569 00:26:47,270 --> 00:26:49,830 Cara, não há Nutella em cada refeição. 570 00:26:49,830 --> 00:26:51,830 >> -Houve No ano passado também. 571 00:26:51,830 --> 00:26:54,220 >> -Sim. 572 00:26:54,220 --> 00:26:56,440 >> -Diga muito sobre Yale até agora. 573 00:26:56,440 --> 00:26:58,485 Mas eu agora que TD lá. 574 00:26:58,485 --> 00:26:59,860 E que é considerado fora do campus. 575 00:26:59,860 --> 00:27:03,659 >> -Aqui Temos arquitetura gótica. 576 00:27:03,659 --> 00:27:04,200 Famoso mundialmente. 577 00:27:04,200 --> 00:27:06,758 Temos uma arquitetura mais gótico. 578 00:27:06,758 --> 00:27:10,614 E construção, arquitetura mais gótico. 579 00:27:10,614 --> 00:27:11,114 Oi. 580 00:27:11,114 --> 00:27:15,470 Este é o lugar onde nós estamos tendo o horário de expediente Terça a quinta-feira em Hogwarts, 581 00:27:15,470 --> 00:27:16,922 como [inaudível]. 582 00:27:16,922 --> 00:27:20,620 583 00:27:20,620 --> 00:27:21,120 -Tudo certo. 584 00:27:21,120 --> 00:27:22,078 Isso é tudo para o passeio. 585 00:27:22,078 --> 00:27:24,030 Estamos em Yale University de Law School, onde 586 00:27:24,030 --> 00:27:25,870 A palestra de hoje está prestes a ter lugar. 587 00:27:25,870 --> 00:27:29,220 Vamos cabeça. 588 00:27:29,220 --> 00:27:30,375 >> [FIM DE REPRODUÇÃO] 589 00:27:30,375 --> 00:27:32,370 >> DAVID J. MALAN: E que nos traz aqui agora. 590 00:27:32,370 --> 00:27:38,040 591 00:27:38,040 --> 00:27:40,770 Então, até agora, temos sido concentrando-se em pseudo-código, 592 00:27:40,770 --> 00:27:42,430 o que é essa sintaxe Inglês-like. 593 00:27:42,430 --> 00:27:45,030 Não tem nenhuma especificação prescrita. 594 00:27:45,030 --> 00:27:47,030 É só você usar algum linguagem intuitiva se você 595 00:27:47,030 --> 00:27:48,950 quero explicar o que você quer fazer. 596 00:27:48,950 --> 00:27:52,270 >> Mas vamos começar agora a transição ao código, como a maioria das pessoas diria. 597 00:27:52,270 --> 00:27:54,880 Mas, mais precisamente, algo conhecido como código fonte. 598 00:27:54,880 --> 00:27:58,210 Esta é a linguagem que os humanos escrever que os computadores ultimately-- 599 00:27:58,210 --> 00:28:00,780 possivelmente depois de um certo número de steps-- em última análise, entende 600 00:28:00,780 --> 00:28:02,530 a fim de saber como fazer alguma coisa. 601 00:28:02,530 --> 00:28:05,120 Que você viu um vislumbre de este talvez na quarta-feira. 602 00:28:05,120 --> 00:28:07,780 >> Este é um exemplo que incrivelmente, underwhelming 603 00:28:07,780 --> 00:28:10,220 quando executado simplesmente diz "Olá mundo". 604 00:28:10,220 --> 00:28:13,510 E está escrito em uma linguagem chamada C, que é sintaticamente muito semelhante 605 00:28:13,510 --> 00:28:15,676 para um monte de outras línguas que você pode não saber, 606 00:28:15,676 --> 00:28:18,409 mas pode ter ouvido falar de como Java, e C ++ e Python e Ruby, 607 00:28:18,409 --> 00:28:21,200 e similares, e, na verdade, vamos gastar muito do semestre usando C, 608 00:28:21,200 --> 00:28:23,530 e, em seguida, perto do fim do semestre, construindo sobre ele, 609 00:28:23,530 --> 00:28:25,446 e introdução de qualquer número de outras línguas. 610 00:28:25,446 --> 00:28:28,810 Entre eles PHP e JavaScript, uma linguagem de banco de dados chamado SQL. 611 00:28:28,810 --> 00:28:31,526 Mas com C, o que nós vamos ter esse entendimento de baixo para cima 612 00:28:31,526 --> 00:28:33,900 exatamente como os computadores funcionam, o que você pode fazer com eles, 613 00:28:33,900 --> 00:28:37,252 e como você pode resolver problemas tudo o mais eficazmente por este 614 00:28:37,252 --> 00:28:39,460 estratificação que discutimos na quarta-feira, e em pé 615 00:28:39,460 --> 00:28:40,870 sobre os ombros dos outros. 616 00:28:40,870 --> 00:28:42,200 Mas mais sobre isso mais para vir. 617 00:28:42,200 --> 00:28:46,650 >> Hoje olhamos para um ambiente mais simples, mas uma fundamentalmente idêntico 618 00:28:46,650 --> 00:28:49,970 ambiente conhecido como Scratch, nossos amigos no MIT Media Lab. 619 00:28:49,970 --> 00:28:52,570 Este é um gráfico linguagem de programação, risco, 620 00:28:52,570 --> 00:28:54,330 através do qual você pode arrastar e soltar coisas que 621 00:28:54,330 --> 00:28:57,430 parecer peças do puzzle que única interlock se faz 622 00:28:57,430 --> 00:28:59,872 sentido lógico ou programática para o fazer. 623 00:28:59,872 --> 00:29:02,330 Mas ele vai nos permitir ter uma conversa sobre tudo 624 00:29:02,330 --> 00:29:04,604 da mesma programação fundamentos que alguns de vocês 625 00:29:04,604 --> 00:29:06,520 já deve saber, que muitos de vocês talvez não 626 00:29:06,520 --> 00:29:09,670 sabe alguma coisa sem ter de se atolar, francamente, 627 00:29:09,670 --> 00:29:13,150 no intelectualmente sintaxe desinteressante do ponto e vírgula, 628 00:29:13,150 --> 00:29:14,950 e parênteses, e cita, e semelhantes. 629 00:29:14,950 --> 00:29:16,910 Todos os quais, no início diante, são uma distração 630 00:29:16,910 --> 00:29:20,322 para o que são interessantes e idéias genuinamente úteis. 631 00:29:20,322 --> 00:29:22,280 Então, vamos dar uma rápida olhar para o ambiente 632 00:29:22,280 --> 00:29:24,180 aqui, para que você saiba o que o espera. 633 00:29:24,180 --> 00:29:28,060 E, de fato, entre os jogos que pode jogar são alguns programas escritos 634 00:29:28,060 --> 00:29:30,810 por próprios ex-alunos do CS50. 635 00:29:30,810 --> 00:29:36,200 Um deles, eu mesmo, eu vou ser um presente escrita na escola de pós-graduação para mim. 636 00:29:36,200 --> 00:29:39,030 >> Se eu pudesse tomar um voluntário que está disposto a jogar 637 00:29:39,030 --> 00:29:40,420 um jogo pela primeira vez. 638 00:29:40,420 --> 00:29:40,920 Certo. 639 00:29:40,920 --> 00:29:41,690 Vamos lá para cima. 640 00:29:41,690 --> 00:29:42,565 Qual o seu nome? 641 00:29:42,565 --> 00:29:43,372 >> AUDIÊNCIA: Angela. 642 00:29:43,372 --> 00:29:44,830 DAVID J. MALAN: Angela, vamos lá para cima. 643 00:29:44,830 --> 00:29:47,220 Então Raspadinha foi para fora por alguns anos. 644 00:29:47,220 --> 00:29:49,960 E quando eu estava na faculdade, Eu estava cruz registradas no MIT, 645 00:29:49,960 --> 00:29:53,392 tendo professor de Mitchel Resnick de curso sobre tecnologias educacionais. 646 00:29:53,392 --> 00:29:56,350 E nós estávamos entre os primeiros estudantes do mundo para realmente beta 647 00:29:56,350 --> 00:29:57,120 Risco de teste. 648 00:29:57,120 --> 00:30:00,090 E o meu projeto era o que Angela já ofereceu graciosamente 649 00:30:00,090 --> 00:30:02,060 a peça chamada Oscartime. 650 00:30:02,060 --> 00:30:04,507 >> Então, eu estou indo para ir em frente e duplo clique no ícone aqui. 651 00:30:04,507 --> 00:30:07,590 Vai abrir uma programação ambiente que logo vamos mergulhar. 652 00:30:07,590 --> 00:30:09,720 Eu estou indo para full-screen -lo para Angela, aqui. 653 00:30:09,720 --> 00:30:12,490 Eu estou indo para bater o verde bandeira em apenas um momento. 654 00:30:12,490 --> 00:30:15,130 E em seguida, um lote inteiro de lixo vai cair do céu. 655 00:30:15,130 --> 00:30:17,830 E você vai usar o mouse aqui realmente arrastar e soltar 656 00:30:17,830 --> 00:30:20,169 o lixo em latas de lixo de Oscar. 657 00:30:20,169 --> 00:30:23,210 Então, se você quiser ir em frente e clique a bandeira verde, o jogo vai começar. 658 00:30:23,210 --> 00:30:26,890 >> [Música tocando] 659 00:30:26,890 --> 00:30:29,980 >> Oh, eu amo lixo. 660 00:30:29,980 --> 00:30:34,840 Qualquer coisa suja ou Sombrio ou empoeirado. 661 00:30:34,840 --> 00:30:39,300 Qualquer coisa irregular ou podre, ou enferrujado. 662 00:30:39,300 --> 00:30:43,155 Sim, eu amo lixo. 663 00:30:43,155 --> 00:30:45,530 Se você realmente quer ver algo inútil, olhe para isto. 664 00:30:45,530 --> 00:30:49,570 Tenho aqui uma sapatilha isso é esfarrapado e desgastado. 665 00:30:49,570 --> 00:30:53,750 É tudo cheio de buracos detém e os laços são rasgadas. 666 00:30:53,750 --> 00:30:57,590 Um presente de minha mãe o dia em que nasci. 667 00:30:57,590 --> 00:30:59,434 Eu adoro isso, porque it's-- 668 00:30:59,434 --> 00:31:02,600 DAVID J. MALAN: --green estes dias apenas estar jogando tudo no lixo. 669 00:31:02,600 --> 00:31:04,312 E assim que um dos Fez-- própria equipe do CS50 670 00:31:04,312 --> 00:31:06,270 Jordan, que você pode atender today-- tem, na verdade, 671 00:31:06,270 --> 00:31:08,030 actualizado este para tempos de hoje. 672 00:31:08,030 --> 00:31:10,800 E então permitam-me a abrir um remix em vez de Angela. 673 00:31:10,800 --> 00:31:13,600 E nós vamos jogar isso em vez de alguns momentos onde agora você está 674 00:31:13,600 --> 00:31:16,600 vai ter que decidir entre se jogar algo no lixo, 675 00:31:16,600 --> 00:31:19,050 ou reciclá-lo ou compostagem-lo. 676 00:31:19,050 --> 00:31:21,280 Portanto, há um pouco de pressão sobre você para obter 677 00:31:21,280 --> 00:31:28,040 este direito na frente de sua 392 a 497 colegas aqui no hall, 678 00:31:28,040 --> 00:31:28,724 se você o faria. 679 00:31:28,724 --> 00:31:29,390 [REPRODUÇÃO DE VÍDEO] 680 00:31:29,390 --> 00:31:32,540 [Música tocando] 681 00:31:32,540 --> 00:31:36,280 Oh Eu amo lixo. 682 00:31:36,280 --> 00:31:40,840 Qualquer coisa suja ou Sombrio ou empoeirado. 683 00:31:40,840 --> 00:31:44,910 Qualquer coisa irregular ou podre ou enferrujado. 684 00:31:44,910 --> 00:31:48,830 Sim, eu amo lixo. 685 00:31:48,830 --> 00:31:51,480 >> Se você realmente quer ver algo inútil, olhe para isto. 686 00:31:51,480 --> 00:31:55,540 Tenho aqui uma sapatilha isso é esfarrapado e desgastado. 687 00:31:55,540 --> 00:31:59,440 É tudo cheio de buracos e os laços são rasgadas. 688 00:31:59,440 --> 00:32:03,762 Um presente de minha mãe o dia em que nasci. 689 00:32:03,762 --> 00:32:07,630 Eu amo isso porque é lixo. 690 00:32:07,630 --> 00:32:11,570 >> Oh, eu amo lixo. 691 00:32:11,570 --> 00:32:15,512 Qualquer coisa suja ou Sombrio, ou empoeirado. 692 00:32:15,512 --> 00:32:20,200 Qualquer coisa irregular ou podre ou enferrujado. 693 00:32:20,200 --> 00:32:23,856 Sim, eu amo lixo. 694 00:32:23,856 --> 00:32:26,246 Aqui está mais algumas coisas podres. 695 00:32:26,246 --> 00:32:28,240 Eu tenho aqui alguns newspaper-- 696 00:32:28,240 --> 00:32:28,889 >> [FIM DE REPRODUÇÃO] 697 00:32:28,889 --> 00:32:30,680 DAVID J. MALAN: --are realmente compostáveis. 698 00:32:30,680 --> 00:32:32,790 Mas agradeço a nosso voluntário, Angela. 699 00:32:32,790 --> 00:32:37,920 Nós temos uma bola de stress para você aqui também. 700 00:32:37,920 --> 00:32:38,790 Então, obrigado. 701 00:32:38,790 --> 00:32:40,250 >> Então, este foi escrito por mim. 702 00:32:40,250 --> 00:32:44,324 Mas agora, um por um ex-aluno real que implementou este, que é um jogo. 703 00:32:44,324 --> 00:32:46,490 Tudo nesta língua chamada Zero, que veremos em breve 704 00:32:46,490 --> 00:32:47,850 descascar as camadas de. 705 00:32:47,850 --> 00:32:49,940 Mas se tivéssemos como-- como sobre outro voluntário? 706 00:32:49,940 --> 00:32:50,440 Certo. 707 00:32:50,440 --> 00:32:50,970 >> Vamos lá para cima. 708 00:32:50,970 --> 00:32:52,070 Qual o seu nome? 709 00:32:52,070 --> 00:32:52,570 Glance? 710 00:32:52,570 --> 00:32:53,280 Lance. 711 00:32:53,280 --> 00:32:54,082 Lance, vamos lá para cima. 712 00:32:54,082 --> 00:32:54,790 Bom te conhecer. 713 00:32:54,790 --> 00:32:56,170 Venha desta forma. 714 00:32:56,170 --> 00:32:59,940 Então este pode ter um tema familiar para alguns de vocês. 715 00:32:59,940 --> 00:33:02,180 Mas você vai ver também que pode haver interactividade, 716 00:33:02,180 --> 00:33:05,242 em que você poderia realmente ser a papel do personagem movendo ao redor. 717 00:33:05,242 --> 00:33:05,950 Bom te conhecer. 718 00:33:05,950 --> 00:33:06,470 David. 719 00:33:06,470 --> 00:33:10,464 >> Eu dou-lhe, Pikachu. 720 00:33:10,464 --> 00:33:12,380 Instruções quiser sobre para vir na tela. 721 00:33:12,380 --> 00:33:16,070 Mas em suma, você vai quer pegar o material saboroso, 722 00:33:16,070 --> 00:33:18,827 e evitar as bombas e outras coisas. 723 00:33:18,827 --> 00:33:19,910 Com os cursores inteiramente. 724 00:33:19,910 --> 00:33:21,320 Então bateu a barra de espaço. 725 00:33:21,320 --> 00:33:21,820 -Pikachu. 726 00:33:21,820 --> 00:33:23,480 DAVID J. MALAN: Catch as coisas do lado esquerdo, 727 00:33:23,480 --> 00:33:24,938 não pegar as coisas à direita. 728 00:33:24,938 --> 00:33:27,576 729 00:33:27,576 --> 00:34:44,540 >> [Música tocando] 730 00:34:44,540 --> 00:34:46,332 >> Assim, uma última aqui. 731 00:34:46,332 --> 00:34:48,040 Se pudéssemos ter uma mais voluntário aqui. 732 00:34:48,040 --> 00:34:50,760 Nós pensamos em recriar algo de-- no shirt-- amarelo 733 00:34:50,760 --> 00:34:53,110 a partir de quarta-feira. 734 00:34:53,110 --> 00:34:54,540 Qual é o seu nome? 735 00:34:54,540 --> 00:34:57,090 Mary, venha até Mary. 736 00:34:57,090 --> 00:35:01,340 >> E lembro de na quarta-feira nós introduzimos a noção de binário, e lâmpadas binários. 737 00:35:01,340 --> 00:35:03,930 Este é na verdade um agora implementação desse mesmo interface de 738 00:35:03,930 --> 00:35:07,360 que tivemos no iPad com a luz lâmpadas, mas aqui rendeu digital. 739 00:35:07,360 --> 00:35:11,220 E ao invés de fazer um estresse ball-- bom conhecer você, David. 740 00:35:11,220 --> 00:35:14,600 Nós trouxemos alguns luz lâmpadas de Cambridge. 741 00:35:14,600 --> 00:35:18,650 >> Se você pode, clicando sobre os lâmpadas para transformá-los dentro e fora, 742 00:35:18,650 --> 00:35:29,510 vir para cima com o binário representação de dizer 256. 743 00:35:29,510 --> 00:35:32,500 E você vai ver no meio, a contagem atual. 744 00:35:32,500 --> 00:35:33,690 De modo que um está ligado. 745 00:35:33,690 --> 00:35:34,810 Assim, o bit mais à esquerda está ligada. 746 00:35:34,810 --> 00:35:36,016 >> MARIA: Sim, [inaudível] 747 00:35:36,016 --> 00:35:39,292 748 00:35:39,292 --> 00:35:41,280 >> DAVID J. MALAN: Bem, por isso temos apenas-- oh. 749 00:35:41,280 --> 00:35:42,780 Portanto, esta é a coluna 128. 750 00:35:42,780 --> 00:35:44,460 Então, nós estamos até 128. 751 00:35:44,460 --> 00:35:46,769 Temos chegar a 256. 752 00:35:46,769 --> 00:35:48,560 E você pode mexer em e fora, não é grande coisa. 753 00:35:48,560 --> 00:35:53,700 Ou você pode bater que 128 mais vezes, se quiser. 754 00:35:53,700 --> 00:35:56,310 >> Tudo bem, bom. 755 00:35:56,310 --> 00:35:58,090 24. 756 00:35:58,090 --> 00:35:59,790 Sim, se aproximando. 757 00:35:59,790 --> 00:36:02,105 Mais perto! 758 00:36:02,105 --> 00:36:05,980 Oh, qual é o problema, então? 759 00:36:05,980 --> 00:36:07,510 Então, qual é o problema? 760 00:36:07,510 --> 00:36:10,040 >> Então, o que nós precisamos resolver este problema? 761 00:36:10,040 --> 00:36:11,060 Então, precisamos de um outro bocado. 762 00:36:11,060 --> 00:36:12,770 E isso é perfeitamente razoável, na realidade, certo? 763 00:36:12,770 --> 00:36:15,800 Se você deseja contar a partir do número 1 para 2 a 3 para 4 a 5, 6, 7, 8, 9 764 00:36:15,800 --> 00:36:18,880 para realmente passar para 10, você é vai precisar de um bit adicional. 765 00:36:18,880 --> 00:36:21,240 Então vamos realmente rebobinar aqui, e vir para cima 766 00:36:21,240 --> 00:36:23,790 com-- que foi obviamente concebido para ser um set up. 767 00:36:23,790 --> 00:36:25,590 >> Você não pode fazer 256 com apenas uma lâmpada. 768 00:36:25,590 --> 00:36:29,290 Assim como sobre simplesmente o número 50? 769 00:36:29,290 --> 00:36:29,977 Número 50. 770 00:36:29,977 --> 00:36:34,550 771 00:36:34,550 --> 00:36:35,100 Excelente. 772 00:36:35,100 --> 00:36:39,050 Um grande aplauso para Maria e dela também. 773 00:36:39,050 --> 00:36:41,840 Obrigado. 774 00:36:41,840 --> 00:36:45,570 >> Portanto, este topic-- intencional como foi-- que vai realmente voltar a ocorrer. 775 00:36:45,570 --> 00:36:50,020 O maior valor que você pode representar com oito bits, ou um byte, 776 00:36:50,020 --> 00:36:51,750 é de fato 256. 777 00:36:51,750 --> 00:36:55,770 Mas não se você começar contando a partir de 0, como nós 778 00:36:55,770 --> 00:36:58,060 parecem continuar fazendo por ter todos os bits off. 779 00:36:58,060 --> 00:37:01,530 Mas agora vamos mergulhar na subjacente implementação deste ambiente, 780 00:37:01,530 --> 00:37:03,200 e provocar uma separação de algumas dessas idéias. 781 00:37:03,200 --> 00:37:06,350 >> Então, em um momento em que está prestes a ver uma alguns fundamentos de programação diferentes. 782 00:37:06,350 --> 00:37:08,080 A primeira das quais nós chamaremos comunicado. 783 00:37:08,080 --> 00:37:09,360 Tipo de verbos, se você quiser. 784 00:37:09,360 --> 00:37:09,960 Ações. 785 00:37:09,960 --> 00:37:11,180 Coisas que devem ser feitas. 786 00:37:11,180 --> 00:37:13,430 >> E em um momento em que você verá blocos que algo como isto. 787 00:37:13,430 --> 00:37:14,940 Diga "Olá mundo", por exemplo. 788 00:37:14,940 --> 00:37:16,330 Ou esperar um segundo. 789 00:37:16,330 --> 00:37:17,834 Ou jogar meow som. 790 00:37:17,834 --> 00:37:20,500 E de fato o ambiente no que nós vamos estar fazendo isso 791 00:37:20,500 --> 00:37:21,610 é chamado de risco. 792 00:37:21,610 --> 00:37:25,060 >> E se eu puxar para cima sem risco pré-carregamento de qualquer código real, 793 00:37:25,060 --> 00:37:27,830 vamos ter um rápido olhar para este interface do usuário, por assim dizer. 794 00:37:27,830 --> 00:37:29,730 Os controles com os quais nos relacionamos. 795 00:37:29,730 --> 00:37:32,840 No canto superior esquerdo do aqui tela, abaixo dos menus, 796 00:37:32,840 --> 00:37:34,650 temos a fase, por assim dizer. 797 00:37:34,650 --> 00:37:36,550 Então Scratch é o que vamos chamar Sprite. 798 00:37:36,550 --> 00:37:37,520 É um personagem. 799 00:37:37,520 --> 00:37:40,660 >> E, ele pode ser controlada pela escrever programas contra ele. 800 00:37:40,660 --> 00:37:43,950 E ele vai ser capaz de subir e descer e à esquerda e à direita neste ambiente, 801 00:37:43,950 --> 00:37:46,075 não apenas movendo o mouse, mas de forma programática. 802 00:37:46,075 --> 00:37:48,930 Posso dizer-lhe andar para a direita, a pé esquerda, para cima, para baixo ou similares. 803 00:37:48,930 --> 00:37:51,440 E eu posso apresentar outro sprites ou caracteres bem. 804 00:37:51,440 --> 00:37:54,616 >> Na verdade, na parte inferior aqui é onde você verá a sua lista de sprites. 805 00:37:54,616 --> 00:37:56,865 No momento, eu só tenho um, mas posso criar mais, 806 00:37:56,865 --> 00:37:58,880 e eles vão aparecer exatamente lá em baixo. 807 00:37:58,880 --> 00:38:02,630 Então, se você recuar por um momento, como Oscartime-- por exemplo, Oscar, 808 00:38:02,630 --> 00:38:04,590 no lado esquerdo, o lixo pode, era um sprite. 809 00:38:04,590 --> 00:38:07,450 E a coisa no meio, o Caixote de Reciclagem, foi outro sprite. 810 00:38:07,450 --> 00:38:09,300 E o composto bin foi outro sprite. 811 00:38:09,300 --> 00:38:11,790 E cada pedaço de lixo ou materiais recicláveis 812 00:38:11,790 --> 00:38:14,590 que foi caindo do céu é também um sprite, cada um dos quais 813 00:38:14,590 --> 00:38:16,150 foi programado individualmente. 814 00:38:16,150 --> 00:38:17,040 >> Como você programar? 815 00:38:17,040 --> 00:38:20,180 Bem, aqui à direita lado é a área de scripts. 816 00:38:20,180 --> 00:38:22,930 E é aí que nós podemos arrastar e soltar peças do puzzle. 817 00:38:22,930 --> 00:38:26,066 Em uma semana, ele vai ser onde nós equivalentemente escrever código 818 00:38:26,066 --> 00:38:28,940 com mais de um teclado, mas para hoje ele vai ser arrastando e soltando 819 00:38:28,940 --> 00:38:31,680 peças do puzzle, o paletas para os quais podem todos 820 00:38:31,680 --> 00:38:33,190 ser encontrada aqui no meio. 821 00:38:33,190 --> 00:38:35,190 Com efeito, no meio aqui há um grupo inteiro 822 00:38:35,190 --> 00:38:37,910 das categorias de quebra-cabeça peças ou blocos. 823 00:38:37,910 --> 00:38:42,500 Um está relacionado ao movimento, olhar, som, uma caneta indo para cima e para baixo, 824 00:38:42,500 --> 00:38:43,860 de dados, controle de eventos. 825 00:38:43,860 --> 00:38:45,654 Não é bem certo ainda o que tudo isso significa, 826 00:38:45,654 --> 00:38:47,820 mas você vai ver que eles têm foram bem categorizados. 827 00:38:47,820 --> 00:38:50,680 E para escrever um programa em Zero, vamos fazer exatamente isso. 828 00:38:50,680 --> 00:38:53,480 >> Vou começar sob Eventos e arraste este aqui. 829 00:38:53,480 --> 00:38:55,470 Quando a bandeira verde clicado. 830 00:38:55,470 --> 00:38:56,704 Agora, por que um? 831 00:38:56,704 --> 00:38:59,120 Bem lembrar que nossos voluntários veio à tona, a coisa que eu primeiro 832 00:38:59,120 --> 00:39:02,017 ou o que fiz foi clicar nesse verde bandeira no canto superior direito. 833 00:39:02,017 --> 00:39:03,600 E isso apenas significa que iniciar o programa. 834 00:39:03,600 --> 00:39:06,560 >> Assim, quando esse evento acontece, o que eu quero fazer? 835 00:39:06,560 --> 00:39:10,070 Eu estou indo para ir sob Looks, e eu vou fazer "dizer Olá." 836 00:39:10,070 --> 00:39:14,000 E eu vou mudar isso e dizer algo como "Olá Yale." 837 00:39:14,000 --> 00:39:16,970 E agora eu estou indo para zoom fora, clique na bandeira verde, 838 00:39:16,970 --> 00:39:19,050 e voila, eu escrevi um programa. 839 00:39:19,050 --> 00:39:20,990 Não é tudo o que emocionante ainda, mas esta 840 00:39:20,990 --> 00:39:23,195 é exatamente onde cada daqueles autor começou, 841 00:39:23,195 --> 00:39:25,740 ambos com Pikachu, eo lâmpadas binários e Oscartime, 842 00:39:25,740 --> 00:39:26,890 e tantos outros exemplos. 843 00:39:26,890 --> 00:39:29,150 >> Você começa super simples, e então você começa a camada, 844 00:39:29,150 --> 00:39:31,046 e adicionar recursos e funcionalidades. 845 00:39:31,046 --> 00:39:32,920 Então, quais são essas camadas vai consistir em? 846 00:39:32,920 --> 00:39:36,086 Bem, além de declarações, vamos também tem coisas que são pouco mais fancily 847 00:39:36,086 --> 00:39:38,910 chamado Boolean Expressions, depois de alguém chamado Bool. 848 00:39:38,910 --> 00:39:42,820 E uma expressão booleana é simplesmente um expressão que é verdadeira ou falsa, 849 00:39:42,820 --> 00:39:45,740 sim ou não, 1 ou 0. 850 00:39:45,740 --> 00:39:47,480 >> Quaisquer opostos polares assim. 851 00:39:47,480 --> 00:39:48,902 É verdadeira ou não. 852 00:39:48,902 --> 00:39:51,360 Mas nós também estamos indo para ver Os que pode ter esta aparência. 853 00:39:51,360 --> 00:39:52,925 Assim, por exemplo, é o mouse para baixo? 854 00:39:52,925 --> 00:39:54,550 Eles são uma espécie de perguntas, se você quiser. 855 00:39:54,550 --> 00:39:57,650 >> O mouse é ou para baixo, verdade ou não é, falsa. 856 00:39:57,650 --> 00:39:59,990 1 ou 0, se quiserem, tende a ser o mapeamento. 857 00:39:59,990 --> 00:40:01,740 Verdadeiro é 1, falsa é 0. 858 00:40:01,740 --> 00:40:03,740 Bem que sobre menos do que isso? 859 00:40:03,740 --> 00:40:05,400 Ou então, isso é menos do que isso? 860 00:40:05,400 --> 00:40:06,650 Isso é uma questão de sorte. 861 00:40:06,650 --> 00:40:09,140 >> E se você colocar dois números lá, seja x 862 00:40:09,140 --> 00:40:12,010 vai ser menor do que ou Y igual a y, ou maior do que Y, 863 00:40:12,010 --> 00:40:14,635 mas este bloco veremos, é apenas vai responder à pergunta, 864 00:40:14,635 --> 00:40:15,810 este é menos do que isso? 865 00:40:15,810 --> 00:40:17,650 Nós também pode ver algo como isso. 866 00:40:17,650 --> 00:40:18,790 Tocando ponteiros de mouse. 867 00:40:18,790 --> 00:40:21,610 Assim, em zero, você pode pedir a questão, é o Sprite 868 00:40:21,610 --> 00:40:22,800 tocar o ponteiro do mouse? 869 00:40:22,800 --> 00:40:26,040 Outras palavras, é o que paira cursor sobre a tampa, ou o equivalente? 870 00:40:26,040 --> 00:40:28,100 >> Vamos ver as coisas anding juntos. 871 00:40:28,100 --> 00:40:30,970 Você pode fazer duas perguntas, e certifique-se de que ambos 872 00:40:30,970 --> 00:40:34,920 dar-lhe sim ou verdadeiras respostas antes tomar a decisão de fazer alguma coisa. 873 00:40:34,920 --> 00:40:36,709 Mas então como você tomar decisões? 874 00:40:36,709 --> 00:40:38,000 Bem, nós temos essas condições. 875 00:40:38,000 --> 00:40:40,041 >> E nós vimos isso em nosso exemplo do livro de telefone. 876 00:40:40,041 --> 00:40:41,900 Olhando para a esquerda ou certo para Mike Smith. 877 00:40:41,900 --> 00:40:45,140 E na condição, você fazer algo potencialmente, 878 00:40:45,140 --> 00:40:47,240 se uma expressão booleana é verdadeira. 879 00:40:47,240 --> 00:40:48,720 >> E, de fato, observe as formas agora. 880 00:40:48,720 --> 00:40:52,250 Há esse espaço reservado agora sobre a sobrecarga onde podemos fit-- 881 00:40:52,250 --> 00:40:54,532 se eu recuar uma slide-- que forma. 882 00:40:54,532 --> 00:40:55,740 Não é exatamente o mesmo tamanho. 883 00:40:55,740 --> 00:40:58,400 E, de fato, você vai ver que Zero redimensiona as coisas de forma dinâmica 884 00:40:58,400 --> 00:41:01,479 encaixar peças de quebra-cabeça, mas o forma é que é importante. 885 00:41:01,479 --> 00:41:03,270 Essa coisa parece que, e de fato é 886 00:41:03,270 --> 00:41:05,410 aproximadamente a mesma forma que deve caber lá dentro. 887 00:41:05,410 --> 00:41:09,520 E se quisermos fazer alguma coisa este ou aquele caminho, se ou então, 888 00:41:09,520 --> 00:41:12,080 temos esse quebra-cabeça peça em risco também. 889 00:41:12,080 --> 00:41:17,450 >> Agora suponha que você queria fazer if, else se, ou outra coisa. 890 00:41:17,450 --> 00:41:20,120 Em outras palavras, um garfo de três vias na estrada. 891 00:41:20,120 --> 00:41:22,656 Bem, o que você pode fazer apenas olhando para isso? 892 00:41:22,656 --> 00:41:25,030 Eu posso tomar esta parte do enigma, e não parece se encaixar, 893 00:41:25,030 --> 00:41:27,670 mas, novamente, vai Raspadinha o re-size muito bem para nós. 894 00:41:27,670 --> 00:41:29,940 Eu poderia começar a camada essas coisas juntos. 895 00:41:29,940 --> 00:41:32,900 >> Então agora eu tenho uma de três vias fork se isso é verdade, fazer isso. 896 00:41:32,900 --> 00:41:36,560 Else if essa outra coisa é verdade, ir por este caminho, então ir esta outra maneira. 897 00:41:36,560 --> 00:41:39,200 E em The Muppet do filme, o bifurcação na estrada, por assim dizer, 898 00:41:39,200 --> 00:41:42,610 entre Yale ou Stanford, estava exatamente aquele, apenas duas condições. 899 00:41:42,610 --> 00:41:45,190 Ou ir por este caminho, senão ir por esse caminho. 900 00:41:45,190 --> 00:41:46,940 >> Bem, loops também existem na programação. 901 00:41:46,940 --> 00:41:49,100 E nós usamos estes já em classe e no código pseudocódigo, 902 00:41:49,100 --> 00:41:51,060 e, certamente, naqueles Programas de raspadinhas para sempre. 903 00:41:51,060 --> 00:41:53,730 Zero tem essa peça do puzzle que só vai deixar você fazer algo para sempre. 904 00:41:53,730 --> 00:41:55,688 E às vezes você quer fazer algo para sempre. 905 00:41:55,688 --> 00:41:58,810 Não é necessariamente um erro, ele é porque você quer um relógio para continuar, 906 00:41:58,810 --> 00:42:00,730 ou um jogo para continuar jogando. 907 00:42:00,730 --> 00:42:04,800 Ou você pode especificar um número finito de passos, como acontece com este bloco de repetição aqui, 908 00:42:04,800 --> 00:42:06,550 que irá repetir algo 10 vezes. 909 00:42:06,550 --> 00:42:08,560 Podemos definir variáveis, veremos em breve. 910 00:42:08,560 --> 00:42:12,300 E com variáveis, semelhante em espírito a álgebra, como x ou y, ou z. 911 00:42:12,300 --> 00:42:16,390 É algo simbólico que pode armazenar algum valor, alguma peça de informação, 912 00:42:16,390 --> 00:42:18,320 que você pode querer para se lembrar para mais tarde. 913 00:42:18,320 --> 00:42:21,080 >> Melhor exemplo disso pode ser um jogo onde você tem uma pontuação, 914 00:42:21,080 --> 00:42:22,080 como em Pikachu. 915 00:42:22,080 --> 00:42:25,180 Quantos pedaços de bolo e outros enfeites você pegou? 916 00:42:25,180 --> 00:42:29,340 Bem, isso pode ser uma variável chamado pontuação que começa em 0. 917 00:42:29,340 --> 00:42:32,400 E, em seguida, cada vez que pego um parte de bolo ou doces, ou semelhantes, 918 00:42:32,400 --> 00:42:33,720 ele é incrementado. 919 00:42:33,720 --> 00:42:35,990 Ele é adicionado a um de cada vez. 920 00:42:35,990 --> 00:42:38,450 E lojas para que uma variável um pedaço de informação como essa. 921 00:42:38,450 --> 00:42:41,450 Depois, há arrays, e nós viremos de volta para estes em uma semana ou duas vezes, 922 00:42:41,450 --> 00:42:44,900 mas uma matriz é como uma espécie de inventário ou uma mochila, dentro 923 00:42:44,900 --> 00:42:46,940 de que você pode colocar as coisas virtuais. 924 00:42:46,940 --> 00:42:49,852 Ele permite que você armazene mais de uma peça de informação. 925 00:42:49,852 --> 00:42:51,810 E isso pode ser útil se no jogo, você é 926 00:42:51,810 --> 00:42:53,630 tipo de caminhada ao redor pegar coisas. 927 00:42:53,630 --> 00:42:55,879 E talvez você deseja manter todos esses pedaços de bolo 928 00:42:55,879 --> 00:42:58,260 ao redor, e não apenas comer -los um após o outro. 929 00:42:58,260 --> 00:43:00,010 E depois há uma columbófilo construção nós vamos 930 00:43:00,010 --> 00:43:02,932 vir a chamadas funções ou processos. 931 00:43:02,932 --> 00:43:04,640 E embora nós vamos mais rápido aqui, vamos 932 00:43:04,640 --> 00:43:07,345 ver que estes são muito solução natural para problemas 933 00:43:07,345 --> 00:43:08,470 que vamos encontrar. 934 00:43:08,470 --> 00:43:10,220 Como os nossos programas começam ficando maior nós vamos 935 00:43:10,220 --> 00:43:12,640 começar a notar padrões em o código que estamos escrevendo, 936 00:43:12,640 --> 00:43:14,556 as peças do puzzle que estamos arrastando e soltando. 937 00:43:14,556 --> 00:43:18,240 E assim que você percebe-se a fazer algo novo e de novo, ou pior ainda 938 00:43:18,240 --> 00:43:21,400 cópia e programação colando código que você escreveu, 939 00:43:21,400 --> 00:43:23,612 isso é provavelmente um oportunidade de fatorar 940 00:43:23,612 --> 00:43:25,820 o que quer que você mantenha cópia e colar, e colocando- 941 00:43:25,820 --> 00:43:27,430 em algo chamado de "função". 942 00:43:27,430 --> 00:43:29,690 Mas mais sobre aqueles em grande mais detalhes antes do tempo. 943 00:43:29,690 --> 00:43:31,314 >> E depois há ainda recursos mais extravagantes. 944 00:43:31,314 --> 00:43:34,100 Para aqueles de vocês mais confortável, ou tomar APCS ou equivalente, 945 00:43:34,100 --> 00:43:37,600 Zero, na verdade, suporta coisas como fios e eventos e muito mais. 946 00:43:37,600 --> 00:43:39,840 Então, percebe que ele tem um limite máximo bastante elevado, 947 00:43:39,840 --> 00:43:42,540 mesmo que seja também muito amplamente acessível para as pessoas 948 00:43:42,540 --> 00:43:44,460 que nunca programou antes. 949 00:43:44,460 --> 00:43:47,130 Então, na verdade, vamos dar uma olhada em um programa simples ou dois. 950 00:43:47,130 --> 00:43:49,920 >> Já olhou para como nós pode dizer Olá com o Scratch. 951 00:43:49,920 --> 00:43:52,800 Deixe-me ir em frente e abrir uma pequeno programa mais interessante 952 00:43:52,800 --> 00:43:54,100 que eu escrevi com antecedência. 953 00:43:54,100 --> 00:43:56,430 E este seu chamado Pet a Cat. 954 00:43:56,430 --> 00:43:58,954 Todos esses programas serão disponível no site da CS50. 955 00:43:58,954 --> 00:43:59,870 Na verdade, já está lá. 956 00:43:59,870 --> 00:44:01,190 >> Então você pode baixar eles, e brincar com eles, 957 00:44:01,190 --> 00:44:03,850 e com Conjunto de Problemas 0, o que é também no site do curso, 958 00:44:03,850 --> 00:44:05,516 você é encorajado a caminhar por estes. 959 00:44:05,516 --> 00:44:07,820 E além disso, nós temos uma número de vídeos pé-through 960 00:44:07,820 --> 00:44:10,951 on-line em que eu e A equipe de CS50 verdadeiramente caminhar 961 00:44:10,951 --> 00:44:14,200 através de cada um destes exemplos a uma muito mais ritmo mais lento, uma forwardable muito rápido, 962 00:44:14,200 --> 00:44:18,530 ou ritmo rewindable, de modo que você pode andar através destes em seu lazer também. 963 00:44:18,530 --> 00:44:20,330 Então aqui está o zero à esquerda. 964 00:44:20,330 --> 00:44:22,920 Aqui está um programa à direita que eu já pré-fabricados. 965 00:44:22,920 --> 00:44:24,880 Então deixe-me fazer zoom sobre o assunto. 966 00:44:24,880 --> 00:44:28,780 E poderia alguém em Inglês, sabendo o que você sabe, só a partir de agora como 967 00:44:28,780 --> 00:44:31,650 de como funciona a Raspadinha, espécie de dizer em uma frase em Inglês ou sentença, 968 00:44:31,650 --> 00:44:35,450 o que faz deste programa, aparentemente, fazer? 969 00:44:35,450 --> 00:44:36,836 >> Sim, na camisa alaranjada. 970 00:44:36,836 --> 00:44:40,804 >> AUDIÊNCIA: [inaudível] 971 00:44:40,804 --> 00:44:41,796 972 00:44:41,796 --> 00:44:44,980 >> DAVID J. MALAN: Sim, se o seu cursor estiver em risco o gato, 973 00:44:44,980 --> 00:44:46,220 tocar um som miando. 974 00:44:46,220 --> 00:44:47,870 Mas note como nós expressamos isso. 975 00:44:47,870 --> 00:44:49,980 Há aparentemente um loop de lá, para sempre. 976 00:44:49,980 --> 00:44:53,000 E depois há uma condição, a expressão se. 977 00:44:53,000 --> 00:44:55,090 E coletivamente, o que aqueles significa? 978 00:44:55,090 --> 00:44:57,210 Isso significa que este programa apenas está sempre correndo, 979 00:44:57,210 --> 00:44:59,510 e isso sempre esperando e observando e escutando 980 00:44:59,510 --> 00:45:01,730 para eu movo o mouse sobre o gato. 981 00:45:01,730 --> 00:45:04,810 >> Porque cada vez que eu faço isso, como você propõe, ele vai fazer isso. 982 00:45:04,810 --> 00:45:06,475 Deixe-me começar o programa. 983 00:45:06,475 --> 00:45:08,350 Nada parece ser acontecendo, mas observe como 984 00:45:08,350 --> 00:45:10,152 que destacaram agora em uma linha amarela. 985 00:45:10,152 --> 00:45:11,360 Isso significa apenas que ele está correndo. 986 00:45:11,360 --> 00:45:13,770 E porque há um forever loop, ele ainda está em execução. 987 00:45:13,770 --> 00:45:19,610 >> Então deixe-me mover meu cursor sobre Raspadinha. [MEOW] [MEOW] E se eu movê-lo fora, 988 00:45:19,610 --> 00:45:25,444 [MEOW] Agora, ele pára, mas o programa de ainda em execução. [MEOW] E assim, adorável. 989 00:45:25,444 --> 00:45:28,550 [MEOW] Então, vamos abrir um pouco mais avançado 990 00:45:28,550 --> 00:45:32,620 exemplo chamado Não pet o gato. 991 00:45:32,620 --> 00:45:35,805 >> E agora vamos ver o que acontece aqui. [MEOW] Miar. 992 00:45:35,805 --> 00:45:39,297 Então é um pouco sobre piloto automático, se você quiser. 993 00:45:39,297 --> 00:45:39,880 --pet o gato. 994 00:45:39,880 --> 00:45:42,820 Porque será. 995 00:45:42,820 --> 00:45:45,389 [ROAR] [MEOW] Então, como isso funciona? 996 00:45:45,389 --> 00:45:47,930 Bem, você pode tipo de razão por isso intuitivamente, talvez. 997 00:45:47,930 --> 00:45:49,346 >> Mas vamos olhar para o código real. 998 00:45:49,346 --> 00:45:51,819 Então, novamente, quando a bandeira verde é clicado, fazer isso para sempre. 999 00:45:51,819 --> 00:45:53,110 O que você quer fazer para sempre? 1000 00:45:53,110 --> 00:45:56,150 Bem, se tocar rato ponteiro, em seguida, jogá 1001 00:45:56,150 --> 00:46:00,270 um som que está aparentemente chamado Lion 5, que está dentro deste projeto, mais 1002 00:46:00,270 --> 00:46:03,010 jogar miado de som, e então esperar dois segundos, de modo 1003 00:46:03,010 --> 00:46:04,510 que não está miando sem parar. 1004 00:46:04,510 --> 00:46:07,650 Na verdade, você pode começar muito rapidamente para irritar-se e seus companheiros de quarto. 1005 00:46:07,650 --> 00:46:08,690 >> Vamos remover este bloco. 1006 00:46:08,690 --> 00:46:10,580 E perceber o que é agradável sobre Raspadinha. 1007 00:46:10,580 --> 00:46:13,070 As coisas simplesmente tipo de arrasto e soltar e intertravamento. 1008 00:46:13,070 --> 00:46:14,980 Então, novamente, ela cresce para preencher o que você quer. 1009 00:46:14,980 --> 00:46:20,118 Mas se eu remover isso, e, em seguida, jogo da batida, [COMPUTER BLIP SOUND] 1010 00:46:20,118 --> 00:46:22,904 >> --É tipo de tropeçar em si, porque é literalmente 1011 00:46:22,904 --> 00:46:23,820 fazendo o que eu estou dizendo. 1012 00:46:23,820 --> 00:46:27,080 Ele está dizendo para sempre jogar esse som, mas Eu não estou dando-lhe a chance de terminar. 1013 00:46:27,080 --> 00:46:28,205 E para que seria um erro. 1014 00:46:28,205 --> 00:46:30,700 E é por isso que nós tivemos esta coisa aqui agora. 1015 00:46:30,700 --> 00:46:34,030 Então vamos realmente começar a partir scratch-- espécie de trocadilho ligeiramente intended-- 1016 00:46:34,030 --> 00:46:36,450 em que nós temos agora o movimento gato. 1017 00:46:36,450 --> 00:46:38,130 >> Então, eu vou fazer isso em tempo real. 1018 00:46:38,130 --> 00:46:40,910 Eu estou indo para fazer zoom aqui, apenas para me fale sobre eventos. 1019 00:46:40,910 --> 00:46:42,000 E bandeira verde clicado. 1020 00:46:42,000 --> 00:46:43,410 E há outras maneiras para iniciar os scripts. 1021 00:46:43,410 --> 00:46:44,920 Nós estamos indo para mantê-lo simples aqui. 1022 00:46:44,920 --> 00:46:48,049 >> E agora eu estou indo para ir em frente e ir sob controle. 1023 00:46:48,049 --> 00:46:50,590 E, novamente, se você esquecer de onde as coisas estão, basta clicar em torno, 1024 00:46:50,590 --> 00:46:52,048 e, eventualmente, você encontrá-los novamente. 1025 00:46:52,048 --> 00:46:53,680 Então, eu quero sempre fazer o quê? 1026 00:46:53,680 --> 00:46:58,650 Eu quero usar o bloco de movimento Eu sei que existe, mover 10 passos. 1027 00:46:58,650 --> 00:47:02,016 >> Então, vamos ver o que acontece aqui se eu jogar este jogo. 1028 00:47:02,016 --> 00:47:03,390 Felizmente ele não ir longe demais. 1029 00:47:03,390 --> 00:47:05,190 Eu posso ainda tipo de agarrá-lo pelo rabo e puxá-lo de volta. 1030 00:47:05,190 --> 00:47:07,860 Mas o programa ainda está em execução, então ele é tipo de lutar contra mim. 1031 00:47:07,860 --> 00:47:10,870 Mas seria bem legal se eu condicionalmente corrigir isso no código. 1032 00:47:10,870 --> 00:47:12,800 >> Porque este é não-- na verdade, este é realmente 1033 00:47:12,800 --> 00:47:15,770 não um jogo divertido para qualquer pessoa de qualquer idade. 1034 00:47:15,770 --> 00:47:18,915 Então, vamos tentar corrigir isso ter algum tipo de condições. 1035 00:47:18,915 --> 00:47:21,670 Então, eu estou indo para ir ao abrigo De controle e, em seguida, se. 1036 00:47:21,670 --> 00:47:22,660 Eu gosto dessa idéia. 1037 00:47:22,660 --> 00:47:27,470 Então, depois de mover 10 passos, se-- deixe-me sentir onde eu sou. 1038 00:47:27,470 --> 00:47:30,799 Eu estou indo para ir sob Sensing, e então parece que eu posso ir aqui. 1039 00:47:30,799 --> 00:47:31,840 remar para os jogos de forma. 1040 00:47:31,840 --> 00:47:34,380 >> Tamanho não faz, mas é vai crescer para preencher. 1041 00:47:34,380 --> 00:47:35,984 E agora este é um pequeno menu. 1042 00:47:35,984 --> 00:47:38,650 E agora rato pointer-- eu não quer o mouse, eu quero a borda. 1043 00:47:38,650 --> 00:47:41,700 Então Scratch é inteligente o suficiente para saber quando um sprite está tocando a borda. 1044 00:47:41,700 --> 00:47:44,360 O que eu quero que ele realmente faz? 1045 00:47:44,360 --> 00:47:46,025 >> Deixe-me ir em frente e mudar movimento. 1046 00:47:46,025 --> 00:47:46,940 Você sabe o que? 1047 00:47:46,940 --> 00:47:49,242 Eu estou indo para tê-lo virar. 1048 00:47:49,242 --> 00:47:51,200 Assim, a 15 graus não é realmente vai me ajudar. 1049 00:47:51,200 --> 00:47:53,990 Eu quero que ele vire-se e ir por outro caminho. 1050 00:47:53,990 --> 00:47:57,740 >> Então, vamos ver o que acontece aqui, se eu acertar Jogue agora. 1051 00:47:57,740 --> 00:48:01,520 OK, uma espécie de idiota olhando, mas ele está fazendo exatamente o que eu disse. 1052 00:48:01,520 --> 00:48:03,540 E ele está girando todo o sprite. 1053 00:48:03,540 --> 00:48:04,900 Agora não é que eu posso consertar isso. 1054 00:48:04,900 --> 00:48:06,691 E eu não sabia como para corrigir isso em primeiro lugar. 1055 00:48:06,691 --> 00:48:09,190 Eu meio que tive que futz ao redor e ver a melhor maneira de fazer isso. 1056 00:48:09,190 --> 00:48:12,630 Mas se eu for a-- vejamos, movimento. 1057 00:48:12,630 --> 00:48:14,050 Oh, eu encontrei este. 1058 00:48:14,050 --> 00:48:15,660 Na verdade, de ajuste da rotação Style. 1059 00:48:15,660 --> 00:48:18,431 Esquerda, direita, ou não gire, ou todos ao redor. 1060 00:48:18,431 --> 00:48:19,930 E verifica-se que é o que eu quero. 1061 00:48:19,930 --> 00:48:22,920 E eu vou colocar este não é meu loop, porque eu não preciso definir 1062 00:48:22,920 --> 00:48:24,487 o modelo de rotação múltiplas vezes. 1063 00:48:24,487 --> 00:48:27,570 Vou colocá-lo no topo de este programa para que ele seja definido uma vez, 1064 00:48:27,570 --> 00:48:28,670 e, em seguida, lembra. 1065 00:48:28,670 --> 00:48:30,340 E agora eu vou tentar isso de novo. 1066 00:48:30,340 --> 00:48:32,520 Deixe-me parar o programa. 1067 00:48:32,520 --> 00:48:34,050 >> E agora que fixa esse bug. 1068 00:48:34,050 --> 00:48:35,700 Então, eu estou melhorando de forma iterativa em cima deste. 1069 00:48:35,700 --> 00:48:37,900 O programa está recebendo um pouco mais complexa e maior, 1070 00:48:37,900 --> 00:48:40,810 mas eu estou tomando passos de bebê por assim dizer, e pequenas mordidas fora do problema 1071 00:48:40,810 --> 00:48:42,010 para obtê-lo cada vez melhor. 1072 00:48:42,010 --> 00:48:43,260 Mas isso, também, é uma espécie de coxo. 1073 00:48:43,260 --> 00:48:43,900 >> Você sabe o que? 1074 00:48:43,900 --> 00:48:49,860 Será que pedir a alguém com um realmente bom, voz assustadora gostaria de vir para cima? 1075 00:48:49,860 --> 00:48:51,210 Alguém com uma voz. 1076 00:48:51,210 --> 00:48:54,070 1077 00:48:54,070 --> 00:48:54,570 Uh, sim. 1078 00:48:54,570 --> 00:48:55,550 Vamos lá para cima. 1079 00:48:55,550 --> 00:48:57,990 Com a camisa verde. 1080 00:48:57,990 --> 00:49:01,530 >> Assim, verifica-lá fora é outra diversão coisas, estética e sons parecidos. 1081 00:49:01,530 --> 00:49:02,290 Aqui está o miado. 1082 00:49:02,290 --> 00:49:04,000 Eu clique na guia Sons. 1083 00:49:04,000 --> 00:49:08,730 [MEOW] Há o miado. [MIAU MIAU] [MEOW] --actually algo recorde 1084 00:49:08,730 --> 00:49:10,310 de nossa própria aqui. 1085 00:49:10,310 --> 00:49:13,120 >> Então, vamos fazer exatamente isso. 1086 00:49:13,120 --> 00:49:17,670 Em vez de usar este som gato, vamos vá em frente aqui, e qual é o seu nome? 1087 00:49:17,670 --> 00:49:18,850 Nick, prazer em conhecê-lo. 1088 00:49:18,850 --> 00:49:19,350 É David. 1089 00:49:19,350 --> 00:49:21,474 Então, em um momento, eu vou para acertar o botão Record. 1090 00:49:21,474 --> 00:49:23,240 E se você puder apenas gritar para o laptop, 1091 00:49:23,240 --> 00:49:26,140 "ouch", como se você apenas orientado para a parede, 1092 00:49:26,140 --> 00:49:28,180 que será muito apreciado. 1093 00:49:28,180 --> 00:49:29,660 1, 2. 1094 00:49:29,660 --> 00:49:31,470 >> NICK: Ouch! 1095 00:49:31,470 --> 00:49:32,470 DAVID J. MALAN: Awesome. 1096 00:49:32,470 --> 00:49:34,410 E agora pode fazer um pouco de edição aqui. 1097 00:49:34,410 --> 00:49:35,910 Vai se livrar das partes tranquilos. 1098 00:49:35,910 --> 00:49:37,000 E eu acho que isso é bom. 1099 00:49:37,000 --> 00:49:37,690 Muito obrigado. 1100 00:49:37,690 --> 00:49:38,315 >> NICK: Prazer. 1101 00:49:38,315 --> 00:49:43,277 1102 00:49:43,277 --> 00:49:45,110 DAVID J. MALAN: Eu tenho apenas renomeou "ouch" 1103 00:49:45,110 --> 00:49:46,901 mas agora eu vou voltar para meus scripts. 1104 00:49:46,901 --> 00:49:49,810 E notem há de fato som aqui. 1105 00:49:49,810 --> 00:49:53,520 E eu estou indo para ir em frente e reproduzir o som ouch, 1106 00:49:53,520 --> 00:49:56,991 e eu vou fazer isso se ele está tocando somente nas bordas. 1107 00:49:56,991 --> 00:49:58,740 E então eu vou tê-lo virar. 1108 00:49:58,740 --> 00:50:00,250 Então, vamos ver o que acontece aqui. 1109 00:50:00,250 --> 00:50:01,728 Vamos tela cheia. 1110 00:50:01,728 --> 00:50:02,394 [REPRODUÇÃO DE VÍDEO] 1111 00:50:02,394 --> 00:50:03,790 -Ouch! 1112 00:50:03,790 --> 00:50:05,290 Ouch! 1113 00:50:05,290 --> 00:50:06,790 Ouch! 1114 00:50:06,790 --> 00:50:07,790 Ouch! 1115 00:50:07,790 --> 00:50:09,160 Ouch! 1116 00:50:09,160 --> 00:50:10,780 Ouch! 1117 00:50:10,780 --> 00:50:11,587 Ouch! 1118 00:50:11,587 --> 00:50:12,086 Ouch! 1119 00:50:12,086 --> 00:50:12,492 >> [FIM DE REPRODUÇÃO] 1120 00:50:12,492 --> 00:50:14,490 >> DAVID J. MALAN: Então você percebe que estamos ficando um pouco de sorte. 1121 00:50:14,490 --> 00:50:17,110 Eu estou indo para tê-lo de movimento como 100 degraus de cada vez. 1122 00:50:17,110 --> 00:50:21,790 O efeito do que agora vai para ser-- [COMPUTADOR GLITCH SOUND] Então, 1123 00:50:21,790 --> 00:50:22,490 dentro da razão. 1124 00:50:22,490 --> 00:50:25,470 Assim, a oportunidade de refinar essa ainda mais se nós realmente queremos. 1125 00:50:25,470 --> 00:50:27,340 >> Então agora vamos introduzir um outro conceito. 1126 00:50:27,340 --> 00:50:30,660 Para me deixar ir em uma chamada Contando carneiros e uso algo 1127 00:50:30,660 --> 00:50:31,610 chamado de uma variável. 1128 00:50:31,610 --> 00:50:34,700 Este é um carneiro pequeno adorável, e I mudou seu traje por assim dizer. 1129 00:50:34,700 --> 00:50:37,450 Assim, mesmo que o padrão é uma gato, você pode fazer upload, você pode desenhar, 1130 00:50:37,450 --> 00:50:40,020 você pode fazer qualquer número de caracteres em seu sprite. 1131 00:50:40,020 --> 00:50:43,740 Aqui está um programa que é vai fazer o que em Inglês? 1132 00:50:43,740 --> 00:50:47,110 >> Baseado novamente em exatamente o que você sabe agora. 1133 00:50:47,110 --> 00:50:48,230 O que este programa faz? 1134 00:50:48,230 --> 00:50:50,740 1135 00:50:50,740 --> 00:50:53,500 Sim, ele vai contar. 1136 00:50:53,500 --> 00:50:55,842 Um número cada vez. 1137 00:50:55,842 --> 00:50:57,550 Temos aparentemente tem este contador set. 1138 00:50:57,550 --> 00:50:59,380 >> Eu não sei o que é isso, mas talvez seja uma variável. 1139 00:50:59,380 --> 00:51:00,740 É apenas um recipiente, x ou y. 1140 00:51:00,740 --> 00:51:04,290 Mas o contador de palavras é mais descritivo do que x ou y do matemático. 1141 00:51:04,290 --> 00:51:06,560 Assim, podemos usar palavras em inglês para as coisas. 1142 00:51:06,560 --> 00:51:08,490 Para sempre, apenas significa continuar fazendo isso. 1143 00:51:08,490 --> 00:51:10,020 >> Diga balcão. 1144 00:51:10,020 --> 00:51:11,270 Agora onde veio isso? 1145 00:51:11,270 --> 00:51:13,240 Bem, acontece que contador é uma variável. 1146 00:51:13,240 --> 00:51:15,645 Portanto, é apenas mais um quebra-cabeça peça que eu criei com antecedência. 1147 00:51:15,645 --> 00:51:18,020 E mesmo que isso acontece não ser da mesma forma aqui, 1148 00:51:18,020 --> 00:51:20,540 normalmente você diria algo como Olá aqui. 1149 00:51:20,540 --> 00:51:23,610 >> Você também pode arrastar uma variável de modo que é isso que está se disse. 1150 00:51:23,610 --> 00:51:26,170 Então eu esperar por um segundo, eu alterar o contador por um, 1151 00:51:26,170 --> 00:51:27,940 incrementá-lo adicionando um. 1152 00:51:27,940 --> 00:51:32,407 Assim que o efeito líquido é esta ovelha contagem adorável. 1153 00:51:32,407 --> 00:51:33,615 Embora ele está contando a si mesmo. 1154 00:51:33,615 --> 00:51:36,642 1155 00:51:36,642 --> 00:51:38,350 Agora é muito rapidamente vai ficar chato 1156 00:51:38,350 --> 00:51:40,900 porque ele vai fazer isto verdadeiramente para sempre, 1157 00:51:40,900 --> 00:51:44,240 mas isso é exatamente o que o O projeto de programa prescreve. 1158 00:51:44,240 --> 00:51:48,090 Vamos agora tentar outro exemplo que utiliza uma variável. 1159 00:51:48,090 --> 00:51:51,140 Este chamado Hi Hi Hi, que não ficar chato rapidamente. 1160 00:51:51,140 --> 00:51:52,987 Agora este tem dois scripts. 1161 00:51:52,987 --> 00:51:54,570 E então, novamente, estamos dando passos de bebê. 1162 00:51:54,570 --> 00:51:57,236 >> Começamos com algo super pequeno, adicionado a ele, adicionado a ele. 1163 00:51:57,236 --> 00:51:59,750 Agora eu quero fazer alguma coisa ainda mais dinâmico, 1164 00:51:59,750 --> 00:52:02,950 então eu quero estar a ouvir para duas coisas diferentes ao mesmo tempo. 1165 00:52:02,950 --> 00:52:05,420 Assim, do lado esquerdo, quando bandeira verde é clicado, 1166 00:52:05,420 --> 00:52:08,100 Eu definir uma variável que eu escrevi com antecedência chamado silenciado. 1167 00:52:08,100 --> 00:52:09,700 E eu arbitrariamente definir como 0. 1168 00:52:09,700 --> 00:52:13,290 Então Raspadinha não tem verdadeira e falso, mas ele tem 0 e 1. 1169 00:52:13,290 --> 00:52:15,270 >> Então eu posso aproximar essa mesma idéia. 1170 00:52:15,270 --> 00:52:21,110 E, em seguida, sempre, se a barra de espaço é pressionado, em seguida, defina a variável a 0. 1171 00:52:21,110 --> 00:52:21,810 Ou arrependido. 1172 00:52:21,810 --> 00:52:25,920 Se o espaço for pressionada, e se silenciado, a variável, é 0, 1173 00:52:25,920 --> 00:52:29,950 em seguida, definir silenciado a 1, mais silenciado definir a 0. 1174 00:52:29,950 --> 00:52:32,370 Isto parece uma espécie de como estamos apenas fazendo e desfazendo trabalho. 1175 00:52:32,370 --> 00:52:33,130 >> Mas o que é o efeito? 1176 00:52:33,130 --> 00:52:35,588 Toda vez que eu bater a barra de espaço, o que acontece com o meu variável 1177 00:52:35,588 --> 00:52:38,150 silenciado chamado, logicamente? 1178 00:52:38,150 --> 00:52:39,100 Tipo de fica invertida. 1179 00:52:39,100 --> 00:52:41,035 Ele muda de 0 a 1, ou 1-0. 1180 00:52:41,035 --> 00:52:43,035 Por isso, tomou a poucas quadras para expressar isso, mas tudo 1181 00:52:43,035 --> 00:52:47,280 Eu estou fazendo está alternando o estado de esta variável de 0 ou 1, ou 0 ou 1 1182 00:52:47,280 --> 00:52:48,530 cada vez que eu bater a barra de espaço. 1183 00:52:48,530 --> 00:52:49,905 Agora aqui, o que está fazendo isso? 1184 00:52:49,905 --> 00:52:53,400 Para sempre, se silenciado é 0, por isso, se silenciado é falsa. 1185 00:52:53,400 --> 00:52:57,910 Então, se ele não está silenciado, é a semântica lá, jogar leão mar som, 1186 00:52:57,910 --> 00:53:00,810 e pensar hi hi hi para dois segundo, espere dois segundos. 1187 00:53:00,810 --> 00:53:02,710 Então, observe agora estes roteiros são efetivamente 1188 00:53:02,710 --> 00:53:07,100 indo para executar em paralelo para que se possa estar escutando para uma ação, o outro 1189 00:53:07,100 --> 00:53:09,010 para tomar uma decisão com base nessa ação. 1190 00:53:09,010 --> 00:53:10,655 E ele pode fazer isso para sempre. 1191 00:53:10,655 --> 00:53:12,638 >> [LEÃO DE MAR BARKING] 1192 00:53:12,638 --> 00:53:14,852 >> [LEÃO DE MAR BARKING] 1193 00:53:14,852 --> 00:53:20,050 >> Vai fazer isso para sempre e [LEÃO DE MAR BARKING] como eu acabei de fazer. 1194 00:53:20,050 --> 00:53:23,010 E agora ele ainda está em execução mas eu tenho "silenciado" o jogo. 1195 00:53:23,010 --> 00:53:27,260 [LEÃO DE MAR BARKING] E isso é tudo isso cara faz agora também. 1196 00:53:27,260 --> 00:53:28,660 >> Vamos abrir um outro exemplo aqui. 1197 00:53:28,660 --> 00:53:31,840 Deixe-me entrar em Eventos, e agora este adorável também. 1198 00:53:31,840 --> 00:53:34,130 Mas note que tem dois sprites. 1199 00:53:34,130 --> 00:53:37,520 Portanto, não apenas dois scripts com um sprite, mas dois sprites. 1200 00:53:37,520 --> 00:53:40,750 E se eu clicar sobre o indivíduo azul como eu já tem, eu vejo ele como um programa 1201 00:53:40,750 --> 00:53:43,790 -se aqui que, literalmente, apenas diz este, quando eu receber um evento, 1202 00:53:43,790 --> 00:53:45,620 dizer "Polo" por dois segundos. 1203 00:53:45,620 --> 00:53:48,460 >> Então, se você já jogou em uma piscina, o jogo Marco Polo, 1204 00:53:48,460 --> 00:53:52,500 se o script laranja cara é qualquer indicação, aparentemente 1205 00:53:52,500 --> 00:53:57,380 cada vez que eu bater a barra de espaço, o que é o cara laranja vai fazer? 1206 00:53:57,380 --> 00:53:58,642 Ele vai dizer "Marco". 1207 00:53:58,642 --> 00:53:59,850 E então este é um novo bloco. 1208 00:53:59,850 --> 00:54:02,409 Nós não vimos isso antes, mas difundir um acontecimento. 1209 00:54:02,409 --> 00:54:04,200 E eu poderia chamá-lo nada evento que queremos. 1210 00:54:04,200 --> 00:54:06,033 >> Nós vamos voltar a este talvez antes do tempo. 1211 00:54:06,033 --> 00:54:08,410 Mas a transmitir um evento é uma maneira para uma entidade gráfica 1212 00:54:08,410 --> 00:54:11,836 para falar com outro por essencialmente uma mensagem de passá-lo. 1213 00:54:11,836 --> 00:54:12,960 Não é uma mensagem que você vê. 1214 00:54:12,960 --> 00:54:14,130 Não é algo visual. 1215 00:54:14,130 --> 00:54:17,370 É uma espécie de uma mensagem do computador que o outro cara está aguardando as. 1216 00:54:17,370 --> 00:54:21,210 Porque, na verdade, o cara azul, recordação não tem bandeira verde quando clicado. 1217 00:54:21,210 --> 00:54:23,290 >> Ao invés disso, tem, quando eu receber um evento. 1218 00:54:23,290 --> 00:54:26,850 Quando ele se entregou esta nota em sala de aula, por assim dizer, ele deve dizer "Polo". 1219 00:54:26,850 --> 00:54:30,200 E assim, o efeito líquido é que quando eu bateu a bandeira verde, nada acontece. 1220 00:54:30,200 --> 00:54:34,940 Mas quando eu bati a barra de espaço, ele diz "Marco", ele responde com "Polo". 1221 00:54:34,940 --> 00:54:38,350 Mas a única entidade gráfica que eu sou interagindo com é o laranja. 1222 00:54:38,350 --> 00:54:40,980 Portanto, esta é uma forma de tipo de passar mensagens entre sprites 1223 00:54:40,980 --> 00:54:43,210 e tê-los comunicar uns com os outros. 1224 00:54:43,210 --> 00:54:46,280 >> Agora vamos olhar para uma última um aqui chamados segmentos. 1225 00:54:46,280 --> 00:54:49,370 E perceber isso por jogá-lo. 1226 00:54:49,370 --> 00:54:51,184 Então, essas são duas sprites. 1227 00:54:51,184 --> 00:54:52,600 O pássaro é espécie de voar ao redor. 1228 00:54:52,600 --> 00:54:53,310 Ele está saltando. 1229 00:54:53,310 --> 00:54:55,890 Não há nenhuma "ouch", mas mesma idéia. 1230 00:54:55,890 --> 00:54:58,230 >> Mas o gato parece muito inteligente. 1231 00:54:58,230 --> 00:55:01,010 O que é o gato aparentemente fazendo? 1232 00:55:01,010 --> 00:55:03,430 E esperar por ele. 1233 00:55:03,430 --> 00:55:05,010 O que é o gato aparentemente fazendo? 1234 00:55:05,010 --> 00:55:07,740 Não é só saltar. 1235 00:55:07,740 --> 00:55:09,860 >> Ele está seguindo o pássaro. 1236 00:55:09,860 --> 00:55:13,920 E assim, aparentemente, há uma maneira com uma combinação de blocos de aqui- 1237 00:55:13,920 --> 00:55:15,760 e vamos olhar para o gato rápido real. 1238 00:55:15,760 --> 00:55:20,270 Para sempre, se tocar pássaro, em seguida, jogá o som Lion 4, o que quer que seja. 1239 00:55:20,270 --> 00:55:21,360 Ouvimo-lo uma vez. 1240 00:55:21,360 --> 00:55:25,431 Caso contrário, apontam para pássaro, e dar um passo. 1241 00:55:25,431 --> 00:55:27,680 Agora, o fato de que é um passo é o que dá o pássaro 1242 00:55:27,680 --> 00:55:29,850 um pouco de vantagem inicialmente, mas se em vez 1243 00:55:29,850 --> 00:55:32,980 fazer esta 10, por exemplo, tão que cada iteração do loop de que ele é 1244 00:55:32,980 --> 00:55:34,100 movendo 10 passos de tempo. 1245 00:55:34,100 --> 00:55:35,280 Então, mais espaço. 1246 00:55:35,280 --> 00:55:36,650 Vamos ver o que acontece em seguida. 1247 00:55:36,650 --> 00:55:38,740 [LION ROAR] Nem tudo o que muito melhor. 1248 00:55:38,740 --> 00:55:41,460 Então agora vamos tentar melhorar sobre estes um pouco de forma iterativa, 1249 00:55:41,460 --> 00:55:43,330 e voltar para que noção de uma função. 1250 00:55:43,330 --> 00:55:46,580 >> E, de fato um dos fundamentais takeaways do design de classe. 1251 00:55:46,580 --> 00:55:49,560 Não apenas escrever programas que funcionem e que estão corretas, mas estão bem 1252 00:55:49,560 --> 00:55:50,080 projetados. 1253 00:55:50,080 --> 00:55:54,349 E design é muito mais subjetivo, e você vai ficar melhor para ele ao longo do tempo. 1254 00:55:54,349 --> 00:55:57,390 Mas vamos dar alguns passos de bebê na direção começando com um programa que funciona, 1255 00:55:57,390 --> 00:55:59,310 absolutamente, mas não é muito bom. 1256 00:55:59,310 --> 00:56:00,650 Não é muito bem escrito. 1257 00:56:00,650 --> 00:56:03,830 >> Então aqui está um programa que faz isso. 1258 00:56:03,830 --> 00:56:08,060 Tosse, tosse, tosse. 1259 00:56:08,060 --> 00:56:09,880 O que o programa se parece? 1260 00:56:09,880 --> 00:56:11,330 Parece correto para mim. 1261 00:56:11,330 --> 00:56:13,370 É dizer sofá por um segundo, então ele espera. 1262 00:56:13,370 --> 00:56:14,515 >> Em seguida, ele diz que de novo, então ele espera. 1263 00:56:14,515 --> 00:56:16,056 Em seguida, ele diz que de novo, então ele espera. 1264 00:56:16,056 --> 00:56:18,770 E, em seguida, o programa implicitamente termina, porque não há loop. 1265 00:56:18,770 --> 00:56:21,325 Mas por que este é um programa mal escrito? 1266 00:56:21,325 --> 00:56:22,950 Mesmo que você nunca tenha programado antes? 1267 00:56:22,950 --> 00:56:25,240 Como, o que esfrega o forma errada, talvez aqui? 1268 00:56:25,240 --> 00:56:26,016 Sim? 1269 00:56:26,016 --> 00:56:29,278 >> AUDIÊNCIA: [inaudível] 1270 00:56:29,278 --> 00:56:29,950 1271 00:56:29,950 --> 00:56:30,950 DAVID J. MALAN: Exatamente. 1272 00:56:30,950 --> 00:56:32,700 Você está repetindo -se uma e outra vez. 1273 00:56:32,700 --> 00:56:36,190 E, literalmente, Copiei e colei dois desses blocos novamente e novamente. 1274 00:56:36,190 --> 00:56:39,237 E isso é exatamente o tipo de sanidade verificar que você deve fazer. 1275 00:56:39,237 --> 00:56:39,820 Espere um minuto. 1276 00:56:39,820 --> 00:56:41,070 Devo realmente estar fazendo isso? 1277 00:56:41,070 --> 00:56:43,610 Então o que é isso o que está a solução óbvia, talvez? 1278 00:56:43,610 --> 00:56:44,680 Ter algum tipo de loop. 1279 00:56:44,680 --> 00:56:46,860 E eu não lembro bem que a peça do puzzle é, 1280 00:56:46,860 --> 00:56:48,810 mas se eu olhar para o próxima iteração aqui, 1281 00:56:48,810 --> 00:56:50,560 de fato, não há apenas o loop para sempre, 1282 00:56:50,560 --> 00:56:52,560 há alguns repetir várias vezes. 1283 00:56:52,560 --> 00:56:54,080 E assim eu especifiquei três. 1284 00:56:54,080 --> 00:56:57,839 E agora perceber o quanto mais apertado, como muito mais sucinta este programa é. 1285 00:56:57,839 --> 00:56:59,630 E num certo sentido, como muito mais sustentável. 1286 00:56:59,630 --> 00:57:02,840 Se eu quiser alterar a palavra de tosse para outra coisa, 1287 00:57:02,840 --> 00:57:07,530 como achoo, como se ele estivesse espirros. 1288 00:57:07,530 --> 00:57:09,770 Então eu mudá-lo em um lugar, e não três. 1289 00:57:09,770 --> 00:57:12,050 Portanto, esta já se sente como um pouco melhor design. 1290 00:57:12,050 --> 00:57:14,610 Deixe-me tosse vez aberto 2, o nosso terceiro exemplo. 1291 00:57:14,610 --> 00:57:17,670 >> Observe como um cientista da computação, Eu começar a contar a 0, tipicamente. 1292 00:57:17,670 --> 00:57:20,950 Agora, isso parece um pouco assustador no em primeiro lugar, mas o efeito é o mesmo. 1293 00:57:20,950 --> 00:57:22,590 Tosse, tosse, tosse. 1294 00:57:22,590 --> 00:57:26,920 Mas o que parece ser fundamentalmente nova na parte superior do programa? 1295 00:57:26,920 --> 00:57:28,670 Eu removi a palavra. 1296 00:57:28,670 --> 00:57:29,830 >> Eu removi a espera. 1297 00:57:29,830 --> 00:57:32,370 E o que eu tenho ligado em vez disso? 1298 00:57:32,370 --> 00:57:32,890 Uma função. 1299 00:57:32,890 --> 00:57:33,670 Um bloco de tosse. 1300 00:57:33,670 --> 00:57:35,410 Quero dizer, francamente, me parece tipo de um idiota se eu não fizesse apenas 1301 00:57:35,410 --> 00:57:37,285 começar com o bloco que é aparentemente chamado 1302 00:57:37,285 --> 00:57:38,894 "tosse", se isso é tudo que eu quero que ele faça. 1303 00:57:38,894 --> 00:57:40,310 Mas isso não existe no Scratch. 1304 00:57:40,310 --> 00:57:43,396 Em vez eu fui a uma no paleta chamado mais blocos aqui, 1305 00:57:43,396 --> 00:57:46,270 e eu arrastar esta grande coisa roxa aqui que me permite definir uma função. 1306 00:57:46,270 --> 00:57:48,240 É, essencialmente, me deixa criar meu próprio quebra-cabeça 1307 00:57:48,240 --> 00:57:51,280 peça que pode ser chamado de qualquer coisa que eu quer, que pode fazer o que quiser, 1308 00:57:51,280 --> 00:57:52,360 mas dá-lhe um nome. 1309 00:57:52,360 --> 00:57:57,050 Isso me dá uma nova, parte do enigma roxo que agora faz tudo o que eu diga a ele para fazer. 1310 00:57:57,050 --> 00:58:01,060 Portanto, esta peça roxa aqui corresponde a este aqui. 1311 00:58:01,060 --> 00:58:01,960 >> E o que ele faz? 1312 00:58:01,960 --> 00:58:03,930 Diz tosse por um segundo, e então ele espera. 1313 00:58:03,930 --> 00:58:07,330 E agora eu tenho a sorte de criado minha própria parte do enigma feito sob encomenda, 1314 00:58:07,330 --> 00:58:10,040 de modo que ele se comporta exatamente do mesmo jeito. 1315 00:58:10,040 --> 00:58:11,130 Então eu posso continuar fazendo isso. 1316 00:58:11,130 --> 00:58:14,421 E, de fato, não vai ser mais e mais oportunidades para a modularização, 1317 00:58:14,421 --> 00:58:16,630 e para camadas, complexidade em cima do outro. 1318 00:58:16,630 --> 00:58:18,547 Mas essa idéia básica, de fato em problema, disse 0. 1319 00:58:18,547 --> 00:58:20,338 O que você vai ser desafiados a fazer é 1320 00:58:20,338 --> 00:58:23,810 fazer o download do risco, ou apenas usá-lo na web, e apenas se divertir com ele. 1321 00:58:23,810 --> 00:58:26,056 Nós vamos dar-lhe um conjunto de necessidades, tendo um som, 1322 00:58:26,056 --> 00:58:27,430 e um certo número de peças do puzzle. 1323 00:58:27,430 --> 00:58:28,480 Mas você vai fazer exatamente isso. 1324 00:58:28,480 --> 00:58:31,771 E você vai perceber que você está indo quer dar alguns passos de bebê, inicialmente, 1325 00:58:31,771 --> 00:58:33,690 até que seu programa recebe mais e mais complexa. 1326 00:58:33,690 --> 00:58:36,010 Mas, considerando este é o melhor maneira que eu poderia fazer isso? 1327 00:58:36,010 --> 00:58:39,210 É possível evitar esse instinto talvez, para copiar e colar? 1328 00:58:39,210 --> 00:58:41,850 >> Mas antes do Conjunto de Problemas 0, e antes de encerrar, 1329 00:58:41,850 --> 00:58:44,980 pensei que iria demorar até um mais voluntário se pudéssemos, 1330 00:58:44,980 --> 00:58:46,820 para um programa final que é talvez o mais 1331 00:58:46,820 --> 00:58:49,150 montagem de todo, dado local de hoje. 1332 00:58:49,150 --> 00:58:50,298 Vamos lá para baixo. 1333 00:58:50,298 --> 00:58:51,234 Sim. 1334 00:58:51,234 --> 00:58:52,170 Sim. 1335 00:58:52,170 --> 00:58:53,431 Qual o seu nome? 1336 00:58:53,431 --> 00:58:53,930 Uh oh. 1337 00:58:53,930 --> 00:58:57,820 1338 00:58:57,820 --> 00:58:59,010 Está ok. 1339 00:58:59,010 --> 00:59:01,230 Ambos vêm para baixo. 1340 00:59:01,230 --> 00:59:05,520 E eu tenho que lidar com isso de alguma forma dentro desse próximos dez segundos. 1341 00:59:05,520 --> 00:59:06,550 Então venha para baixo. 1342 00:59:06,550 --> 00:59:08,370 Vamos lá para baixo. 1343 00:59:08,370 --> 00:59:13,250 >> Deixe-me vir aqui em cima. 1344 00:59:13,250 --> 00:59:16,050 Vamos. 1345 00:59:16,050 --> 00:59:16,685 Tudo certo. 1346 00:59:16,685 --> 00:59:21,360 1347 00:59:21,360 --> 00:59:22,360 Vamos ver aqui. 1348 00:59:22,360 --> 00:59:25,735 Então, observe bem rápido aqui, se você gostaria de vir em cima. 1349 00:59:25,735 --> 00:59:28,650 1350 00:59:28,650 --> 00:59:29,926 >> Nós vamos fazer duas rodadas de presente. 1351 00:59:29,926 --> 00:59:30,800 E qual é o seu nome? 1352 00:59:30,800 --> 00:59:31,270 >> SABRINA: Sabrina. 1353 00:59:31,270 --> 00:59:32,060 >> DAVID J. MALAN: Sabrina e? 1354 00:59:32,060 --> 00:59:32,622 >> YING GEE: Ying Gee. 1355 00:59:32,622 --> 00:59:33,360 >> DAVID J. MALAN: Ying Gee. 1356 00:59:33,360 --> 00:59:34,276 Prazer em conhecê-los. 1357 00:59:34,276 --> 00:59:34,970 David. 1358 00:59:34,970 --> 00:59:38,785 Assim, o nosso último exemplo é aqui O jogo mais difícil do chamado Ivy. 1359 00:59:38,785 --> 00:59:41,160 E por que não temos de fazer Nível 1 e Nível 2 você faz. 1360 00:59:41,160 --> 00:59:43,350 >> E vamos ver o quão longe além de que nós realmente ir. 1361 00:59:43,350 --> 00:59:45,855 Escrito por um estudante no ano passado, remixada por mim 1362 00:59:45,855 --> 00:59:48,840 de modo que este iria sobre bem em New Haven. 1363 00:59:48,840 --> 00:59:53,180 E dou-vos um jogo que vai envolver movendo as setas para cima e para baixo, 1364 00:59:53,180 --> 00:59:55,771 e ficando Yale para a linha de chegada. 1365 00:59:55,771 --> 00:59:56,270 Aqui vamos nós. 1366 00:59:56,270 --> 00:59:56,759 >> [REPRODUÇÃO DE VÍDEO] 1367 00:59:56,759 --> 00:59:58,092 >> [MUSIC - NFL ON FOX música tema] 1368 00:59:58,092 --> 00:59:59,369 1369 00:59:59,369 --> 01:00:01,160 [MUSIC - MC Hammer, "U PODE NÃO TOQUE  ESTA"] 1370 01:00:01,160 --> 01:00:04,590 1371 01:00:04,590 --> 01:00:07,900 >> -U Não pode tocar isso. 1372 01:00:07,900 --> 01:00:11,634 U não pode tocar neste. 1373 01:00:11,634 --> 01:00:14,252 Não pode tocar nisto. 1374 01:00:14,252 --> 01:00:19,490 Meu, meu, meu, minha música me bate tão duro, me faz dizer, oh, meu senhor. 1375 01:00:19,490 --> 01:00:22,927 Obrigado por me abençoar com um mente para rimar e dois pés hype. 1376 01:00:22,927 --> 01:00:24,891 >> Isso é bom quando você sabe que está para baixo. 1377 01:00:24,891 --> 01:00:26,855 A homeboy narcótico super do Oaktown. 1378 01:00:26,855 --> 01:00:31,274 E eu sou conhecido como tal e esta uma batida uh, você não pode tocar. 1379 01:00:31,274 --> 01:00:34,672 Eu disse que homeboy U não pode tocar neste. 1380 01:00:34,672 --> 01:00:38,656 Sim, é assim que nós estamos vivendo e você sabe U não pode tocar neste. 1381 01:00:38,656 --> 01:00:40,135 >> Olhe nos meus olhos, cara. 1382 01:00:40,135 --> 01:00:43,093 U não pode tocar neste. 1383 01:00:43,093 --> 01:00:44,572 Yo, deixe-me rebentar as letras de funky. 1384 01:00:44,572 --> 01:00:45,363 U não pode tocar neste. 1385 01:00:45,363 --> 01:00:46,544 Novos chutes e calças frescas. 1386 01:00:46,544 --> 01:00:48,627 >> Você gostou disso e você sabe que você quer dançar. 1387 01:00:48,627 --> 01:00:51,967 Então, sair do seu assento e ficar uma menina mosca e pegar esse ritmo. 1388 01:00:51,967 --> 01:00:55,911 Enquanto ele está rolando em espera bombear um pouco bit e que eles saibam o que está acontecendo. 1389 01:00:55,911 --> 01:00:56,890 Como aquilo. 1390 01:00:56,890 --> 01:00:57,390 Como aquilo. 1391 01:00:57,390 --> 01:00:59,362 >> Frio em uma missão tão puxe de volta. 1392 01:00:59,362 --> 01:01:04,785 Deixe-os saber que você é demais e este é um movimento uh você não pode tocar. 1393 01:01:04,785 --> 01:01:07,743 Yo, eu disse que U não pode tocar neste. 1394 01:01:07,743 --> 01:01:09,222 Por que você parado lá homem? 1395 01:01:09,222 --> 01:01:10,208 U não pode tocar neste. 1396 01:01:10,208 --> 01:01:13,200 >> Yo, soar na escola sino, otário. 1397 01:01:13,200 --> 01:01:14,005 U não pode tocar neste. 1398 01:01:14,005 --> 01:01:18,326 Dê-me uma canção, um ritmo tornando- suar é isso que eu estou dando-lhes agora. 1399 01:01:18,326 --> 01:01:21,805 Eles sabem que quando você fala sobre o Martelo você fala sobre um show que é sensacionalistas. 1400 01:01:21,805 --> 01:01:24,290 E cantores são apertados suando assim passá-los um microfone. 1401 01:01:24,290 --> 01:01:27,272 >> Ou uma fita para saber o que que vai tomar e agora 1402 01:01:27,272 --> 01:01:29,260 ele vai queimar as cartas. 1403 01:01:29,260 --> 01:01:32,739 Legit tanto trabalho duro ou assim como você pode sair. 1404 01:01:32,739 --> 01:01:37,709 Porque você sabe que U não pode tocar neste. 1405 01:01:37,709 --> 01:01:41,599 U não pode tocar neste. 1406 01:01:41,599 --> 01:01:42,182 Quebrá-lo para baixo. 1407 01:01:42,182 --> 01:01:56,095 1408 01:01:56,095 --> 01:01:56,595 Pare. 1409 01:01:56,595 --> 01:01:57,095 Tempo do martelo. 1410 01:01:57,095 --> 01:01:59,577 Vá com o fluxo em uma rodada se você não pode mover-se para este 1411 01:01:59,577 --> 01:02:01,068 então você provavelmente estão mortos. 1412 01:02:01,068 --> 01:02:04,547 Então balance sua mão no o ar [inaudível] 1413 01:02:04,547 --> 01:02:08,026 >> Isto é para uma dança ao vencedor isso e você está indo para obter mais fino. 1414 01:02:08,026 --> 01:02:12,996 Mova deslize o garupa apenas para um minuto, vamos todos fazer a colisão. 1415 01:02:12,996 --> 01:02:13,990 Sim. 1416 01:02:13,990 --> 01:02:14,984 U não pode tocar neste. 1417 01:02:14,984 --> 01:02:17,966 1418 01:02:17,966 --> 01:02:19,457 >> U não pode tocar neste. 1419 01:02:19,457 --> 01:02:23,433 É melhor você sensacionalistas menino U não pode tocar neste. 1420 01:02:23,433 --> 01:02:24,924 Anel de volta da escola sino in. 1421 01:02:24,924 --> 01:02:25,918 Quebrá-lo para baixo. 1422 01:02:25,918 --> 01:02:38,837 1423 01:02:38,837 --> 01:02:39,337 Pare. 1424 01:02:39,337 --> 01:02:40,828 Tempo do martelo 1425 01:02:40,828 --> 01:02:42,816 >> DAVID J. MALAN: Isso é tudo para CS50! 1426 01:02:42,816 --> 01:02:45,301 Muito obrigado por se juntar a nós! 1427 01:02:45,301 --> 01:02:47,786 Vejo você lá fora. 1428 01:02:47,786 --> 01:02:48,611 >> [FIM DE REPRODUÇÃO] 1429 01:02:48,611 --> 01:02:49,277 [REPRODUÇÃO DE VÍDEO] 1430 01:02:49,277 --> 01:02:52,259 [MUSIC - "Seinfeld" música-tema] 1431 01:02:52,259 --> 01:02:53,860 Ei David. 1432 01:02:53,860 --> 01:02:54,500 Ei, David. 1433 01:02:54,500 --> 01:02:55,912 Como está indo? 1434 01:02:55,912 --> 01:02:58,078 >> -Bom Trabalho, hoje. 1435 01:02:58,078 --> 01:03:00,952 -Então Você já pensou sobre o que você vai fazer para as piadas fora? 1436 01:03:00,952 --> 01:03:03,207 Não, eu não tenho nada. 1437 01:03:03,207 --> 01:03:07,550 -O Se-- o que se esta é a piada? 1438 01:03:07,550 --> 01:03:08,970 -Como, Desembalar carrinhos? 1439 01:03:08,970 --> 01:03:11,430 Uh-huh. 1440 01:03:11,430 --> 01:03:13,890 Você sabe, é sobre nada. 1441 01:03:13,890 --> 01:03:17,559 >> -Então Gosta, nenhuma história, nenhuma conflito, nenhuma resolução. 1442 01:03:17,559 --> 01:03:18,350 Não estou entendendo. 1443 01:03:18,350 --> 01:03:20,542 Sobre o que é então? 1444 01:03:20,542 --> 01:03:23,510 >> -Nada. 1445 01:03:23,510 --> 01:03:27,427 >> -Então Temos a piada é sobre nada, e não temos atores. 1446 01:03:27,427 --> 01:03:28,510 Quem vai estar nessa? 1447 01:03:28,510 --> 01:03:29,010 >> -Não não não. 1448 01:03:29,010 --> 01:03:31,310 Quero dizer, eu vou estar nele. 1449 01:03:31,310 --> 01:03:32,109 >> -Você Vai estar nele? 1450 01:03:32,109 --> 01:03:32,608 -Sim! 1451 01:03:32,608 --> 01:03:34,903 As pessoas estão sempre dizendo me que eu sou um personagem. 1452 01:03:34,903 --> 01:03:36,029 >> Bem, eu quero dizer, é verdade. 1453 01:03:36,029 --> 01:03:37,445 Mas quem mais vai estar nele? 1454 01:03:37,445 --> 01:03:38,660 Ele não pode simplesmente ser você. 1455 01:03:38,660 --> 01:03:47,240 >> -Você Vai estar nele, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, 1456 01:03:47,240 --> 01:03:51,120 David, todo mundo. 1457 01:03:51,120 --> 01:03:53,630 >> -Então É sobre nada, e todo mundo está nele? 1458 01:03:53,630 --> 01:03:54,530 >> -Absolutamente nada. 1459 01:03:54,530 --> 01:03:58,730 1460 01:03:58,730 --> 01:04:00,580 >> -Isso é ridículo.