1 00:00:00,000 --> 00:00:10,980 >> [MÚSICA DE JOGO] 2 00:00:10,980 --> 00:00:13,260 >> -Tudo Bem! 3 00:00:13,260 --> 00:00:16,400 >> -É CS50. 4 00:00:16,400 --> 00:00:18,220 >> -É CS50. 5 00:00:18,220 --> 00:00:19,324 >> -É CS50. 6 00:00:19,324 --> 00:00:20,615 [MUSIC - IGGY azaléia, "fancy"] 7 00:00:20,615 --> 00:00:29,925 8 00:00:29,925 --> 00:00:33,570 >> -Meu Memória favorita do CS50 Foi quando eu fui para Quebra-Cabeça Dia. 9 00:00:33,570 --> 00:00:35,797 >> -Provavelmente Apenas o tempo passou a trabalhar na série de exercícios 10 00:00:35,797 --> 00:00:38,630 com os meus amigos e pessoas que Wold eventualmente tornar-se meus blockmates. 11 00:00:38,630 --> 00:00:40,421 >> -Meu Melhor memória de CS50 é o Hackathon. 12 00:00:40,421 --> 00:00:41,630 -The CS50 Hackathon. 13 00:00:41,630 --> 00:00:42,130 >> -Hackathon. 14 00:00:42,130 --> 00:00:42,800 >> -Hackathon. 15 00:00:42,800 --> 00:00:43,300 -Hackathon. 16 00:00:43,300 --> 00:00:43,883 -The Hackathon 17 00:00:43,883 --> 00:00:45,027 -Rob Bowden. 18 00:00:45,027 --> 00:00:46,110 Apenas tudo sobre ele. 19 00:00:46,110 --> 00:00:47,401 >> [MUSIC - IGGY azaléia, "fancy"] 20 00:00:47,401 --> 00:00:56,790 21 00:00:56,790 --> 00:01:02,512 >> -Meu Memória favorita é quando eu estava no palco e fiz o papel de prestígio 22 00:01:02,512 --> 00:01:04,220 de um nó de [? no Linked?] [? Lista. ?] 23 00:01:04,220 --> 00:01:08,470 >> -Quando Todos nós temos espaço livre Dropbox e David era como, procure em seus lugares. 24 00:01:08,470 --> 00:01:10,520 E foi assim, espaço para todos! 25 00:01:10,520 --> 00:01:11,811 >> [MUSIC - IGGY azaléia, "fancy"] 26 00:01:11,811 --> 00:01:20,940 27 00:01:20,940 --> 00:01:22,830 >> Conselho -Meu para qualquer estudante de entrada seria 28 00:01:22,830 --> 00:01:26,170 ser realmente trabalhar em P-sets com os amigos. 29 00:01:26,170 --> 00:01:27,960 >> Horas -Office é muito seu amigo. 30 00:01:27,960 --> 00:01:30,870 >> -Certifique Ao máximo a sua experiência e atender a tantas pessoas quanto possível. 31 00:01:30,870 --> 00:01:32,390 >> -Não Tenha medo de pedir ajuda. 32 00:01:32,390 --> 00:01:33,890 -Comece Os P-sets no início da semana. 33 00:01:33,890 --> 00:01:36,723 -I Acho que a maior coisa é tirar proveito de todos os recursos 34 00:01:36,723 --> 00:01:37,950 que CS50 tem. 35 00:01:37,950 --> 00:01:39,960 >> -Vá Para o horário de expediente no início da semana. 36 00:01:39,960 --> 00:01:41,430 >> -definitivamente Assistir aos shorts. 37 00:01:41,430 --> 00:01:42,989 >> -Não Procrastinar em seu P-sets. 38 00:01:42,989 --> 00:01:45,780 -Certifique-Se encontrar um grande grupo de pessoas para trabalhar na P-sets com. 39 00:01:45,780 --> 00:01:48,530 Você pode ter um monte de diversão e começar o trabalho feito em conjunto. 40 00:01:48,530 --> 00:01:50,370 >> Não sejas medo de empurrar-se. 41 00:01:50,370 --> 00:01:52,080 Vá para a edição de hackers às vezes. 42 00:01:52,080 --> 00:01:55,410 >> Coisas -Write no papel antes Você sempre toca seu computador. 43 00:01:55,410 --> 00:01:58,380 >> -CS50 É realmente grande em fornecendo maneiras de obter ajuda. 44 00:01:58,380 --> 00:02:01,134 >> -Meu Um conselho é dormir. 45 00:02:01,134 --> 00:02:02,050 Alguém já disse isso? 46 00:02:02,050 --> 00:02:04,100 O sono, com certeza. 47 00:02:04,100 --> 00:02:08,919 É fácil não fazer, mas você tem que fazê-lo, eu acho. 48 00:02:08,919 --> 00:02:12,982 >> -I Diria realmente estar preparado mentalmente porque você vai adorar. 49 00:02:12,982 --> 00:02:14,273 [MUSIC - IGGY azaléia, "fancy"] 50 00:02:14,273 --> 00:02:17,750 51 00:02:17,750 --> 00:02:18,940 >> -É CS50. 52 00:02:18,940 --> 00:02:22,090 53 00:02:22,090 --> 00:02:23,066 >> -É CS50. 54 00:02:23,066 --> 00:02:26,400 55 00:02:26,400 --> 00:02:26,989 >> -É CS50. 56 00:02:26,989 --> 00:02:28,280 [MUSIC - IGGY azaléia, "fancy"] 57 00:02:28,280 --> 00:02:31,290 58 00:02:31,290 --> 00:02:31,964 >> -É CS50. 59 00:02:31,964 --> 00:02:36,020 60 00:02:36,020 --> 00:02:42,270 >> [Aplausos] 61 00:02:42,270 --> 00:02:46,040 >> DAVID J. MALAN: Então este é CS50 e este é o fim de semana 0. 62 00:02:46,040 --> 00:02:48,770 E isso era apenas um de pessoal do CS50 que 63 00:02:48,770 --> 00:02:51,100 esperam por você, não só em seções e as horas de expediente, mas, 64 00:02:51,100 --> 00:02:54,390 Além disso, neste fim de semana em CS50 enigma Day. 65 00:02:54,390 --> 00:02:56,410 Que, de novo, não é tudo sobre a programação. 66 00:02:56,410 --> 00:02:59,710 Na verdade, espera-se que você não terá que programar nada, 67 00:02:59,710 --> 00:03:03,780 mas sim resolver problemas usando inteligência e amigos ao seu lado. 68 00:03:03,780 --> 00:03:06,400 >> Nós estaremos unidos por alguns de nossos amigos da Facebook-- 69 00:03:06,400 --> 00:03:08,980 se você se registrar aqui-- que para os últimos anos, 70 00:03:08,980 --> 00:03:11,450 tem realmente sido escrito esses desafios com a gente. 71 00:03:11,450 --> 00:03:14,822 E assim, eles vão ser os únicos em última análise, em execução enigma Day. 72 00:03:14,822 --> 00:03:17,530 E assim, você será desafiado com precisão os tipos de coisas 73 00:03:17,530 --> 00:03:20,520 e os problemas que as pessoas em Facebook gosta de pensar. 74 00:03:20,520 --> 00:03:21,860 Então, que é amanhã. 75 00:03:21,860 --> 00:03:25,980 Registre-se no cs50.harvard.edu/register. 76 00:03:25,980 --> 00:03:28,120 >> Agora uma palavra sobre um casal de pessoal, em particular. 77 00:03:28,120 --> 00:03:30,090 Isso aqui é Ansel Duff, que é na verdade um 78 00:03:30,090 --> 00:03:33,860 dos co-autores destes binário lâmpadas que vimos na quarta-feira, 79 00:03:33,860 --> 00:03:36,710 além do CS50 próprio Dan Bradley. 80 00:03:36,710 --> 00:03:40,094 Ansel Duff também era um ex- calouro orientando meu 3 anos atrás 81 00:03:40,094 --> 00:03:41,760 e ele, na verdade, até mesmo construíram esta tribuna. 82 00:03:41,760 --> 00:03:45,330 Ele passou a fazer ciências da engenharia e muito mais. 83 00:03:45,330 --> 00:03:49,279 Agora, a foto dele aqui é realmente Ansel há 3 anos no CS50 Hackathon 84 00:03:49,279 --> 00:03:51,820 quando ele emprestou um de nossos balões, preso a seu laptop, 85 00:03:51,820 --> 00:03:55,240 e, para o próximo dia 12 um estranho horas, com foco em seu projeto final, 86 00:03:55,240 --> 00:03:59,150 pausas apenas para abrir sacos de doces no Hackathon. 87 00:03:59,150 --> 00:04:02,210 >> Mas ele continuou, mais recentemente, a passar este verão passado com a gente, 88 00:04:02,210 --> 00:04:05,270 desde CS50 para o seu pessoal, e Agora os estudantes neste semestre, 89 00:04:05,270 --> 00:04:06,770 tem a sua própria impressora 3D. 90 00:04:06,770 --> 00:04:10,180 E em poucas palavras a impressoras 3D é um dispositivo que parece bastante como este. 91 00:04:10,180 --> 00:04:15,700 Você preenchê-lo com um carretel de plástico que é derretido pelo dispositivo 92 00:04:15,700 --> 00:04:18,940 e você construir coisas literalmente do nada. 93 00:04:18,940 --> 00:04:22,660 Muito parecido com uma impressora jato de tinta, você começa cuspindo pontinhos de plástico 94 00:04:22,660 --> 00:04:24,990 que em conjunto formam a formar objectos inteiros. 95 00:04:24,990 --> 00:04:28,430 E assim Ansel por exemplo, mais cedo neste verão, tem um iPhone 5 96 00:04:28,430 --> 00:04:30,722 e decidiu que ele realmente queria para sustentá-lo em sua mesa. 97 00:04:30,722 --> 00:04:32,638 Mas ele não queria sair e comprar algo 98 00:04:32,638 --> 00:04:36,030 da loja da Apple ou similar, para que ele sentou-se e começou a desenhar algo. 99 00:04:36,030 --> 00:04:38,280 Ele tomou algumas medidas como para a espessura 100 00:04:38,280 --> 00:04:41,270 e quão grande era seu iPhone, ele tirou esta imagem aqui, 101 00:04:41,270 --> 00:04:43,870 ele decidiu que queria para ter uma inclinação de 75 graus 102 00:04:43,870 --> 00:04:46,150 como ele estava olhando para ele em sua mesa lá. 103 00:04:46,150 --> 00:04:50,440 Ele então se virou isso, usando software, em um modelo 3D CAD 104 00:04:50,440 --> 00:04:52,400 que parecia um pouco algo como isto. 105 00:04:52,400 --> 00:04:55,940 E então ele passou, em última análise, na verdade, criá-lo. 106 00:04:55,940 --> 00:05:00,250 Então, na verdade, se algum de vocês aqui, talvez em uma linha que eu possa jogar para, ter 107 00:05:00,250 --> 00:05:06,780 an-- não temos gente com iPhone 5, e aqui temos mais dois. 108 00:05:06,780 --> 00:05:10,650 109 00:05:10,650 --> 00:05:17,037 >> Agora, para não ficar atrás, CS50 própria Cheng Gong também estabelecido neste verão 110 00:05:17,037 --> 00:05:19,870 para construir algumas coisas e, na verdade, por motivos que ainda estão 111 00:05:19,870 --> 00:05:23,970 claro, tem sido lentamente imprimindo um exército de elefantes 112 00:05:23,970 --> 00:05:27,250 com articulando os braços e troncos. 113 00:05:27,250 --> 00:05:32,515 Um casal de que são realmente aqui se alguém iria agora como-- um elefante. 114 00:05:32,515 --> 00:05:35,650 115 00:05:35,650 --> 00:05:40,522 Tudo certo,. mas o que Cheng também fez para nós é que ele muito gentilmente configurar uma câmera 116 00:05:40,522 --> 00:05:42,230 porque aquele elefante, acredite ou não, 117 00:05:42,230 --> 00:05:44,690 leva cerca de dois e um meia hora de imprimir. 118 00:05:44,690 --> 00:05:47,840 Mesmo o suporte iPhone levou uma hora e meia para imprimir. 119 00:05:47,840 --> 00:05:51,490 E o que Cheng foi em frente e fez foi constituída uma boa câmera na frente 120 00:05:51,490 --> 00:05:55,580 desta impressora 3D, filmado por uma hora e meio como o projeto do Ansel impresso. 121 00:05:55,580 --> 00:05:58,090 Nós revestiu alguns sexy música a ele, de modo 122 00:05:58,090 --> 00:06:00,570 para te dar esta a olhar a forma como a impressão 3D funciona. 123 00:06:00,570 --> 00:06:02,494 E mesmo que esta é, na verdade, em plástico, 124 00:06:02,494 --> 00:06:05,160 perceber que se trata de uma área de interesse acadêmico, 125 00:06:05,160 --> 00:06:07,120 há pessoas, entre los Jennifer Lewis aqui 126 00:06:07,120 --> 00:06:09,036 na Escola de Engenharia, que são, na verdade 127 00:06:09,036 --> 00:06:10,920 trabalhando em impressão 3D objetos de plástico. 128 00:06:10,920 --> 00:06:14,150 Mas mesmo, cada vez mais, materiais biológicos para resolver 129 00:06:14,150 --> 00:06:16,530 problemas fisiológicos para seres humanos. 130 00:06:16,530 --> 00:06:19,944 Mas aqui é um pouco algo do CS50. 131 00:06:19,944 --> 00:06:31,625 >> [LOUD MECÂNICA RUÍDOS] 132 00:06:31,625 --> 00:06:34,250 DAVID J. MALAN: Não soa qualquer coisa assim, na realidade, 133 00:06:34,250 --> 00:06:37,240 mas é muito mais frio para vê-lo a essa velocidade, e com esse som. 134 00:06:37,240 --> 00:06:40,000 >> Agora, na quarta-feira, como fizemos primeiro chegou aqui? 135 00:06:40,000 --> 00:06:43,345 Começamos a conversar sobre computador ciência e perguntou o que era. 136 00:06:43,345 --> 00:06:46,470 E é sobre uma série de coisas, e há tantas direções diferentes 137 00:06:46,470 --> 00:06:48,477 em que você pode ir depois de um curso como CS50. 138 00:06:48,477 --> 00:06:50,810 Na verdade, se você pegou um desses guias não oficiais 139 00:06:50,810 --> 00:06:54,080 CS para fora, o livreto que nós fornecemos, se você é 140 00:06:54,080 --> 00:06:57,150 pensando em tomar apenas CS50, ou talvez fazer um secundário, 141 00:06:57,150 --> 00:06:59,557 ou talvez até mesmo concentrando no CS, não folhear isso. 142 00:06:59,557 --> 00:07:01,390 E você vai ver um diagrama para o fim que 143 00:07:01,390 --> 00:07:04,950 mostra os muitos sentidos diferentes CS em que você pode ir para fora em. 144 00:07:04,950 --> 00:07:09,030 >> Mas por hoje, vamos nos concentrar, mais uma vez, em realmente uma das vistas fundamentais, 145 00:07:09,030 --> 00:07:11,500 talvez, onde você tem entradas para os problemas, 146 00:07:11,500 --> 00:07:13,430 você tem saídas problemas, e você tem 147 00:07:13,430 --> 00:07:17,420 algoritmos com a qual criar essas saídas desses insumos. 148 00:07:17,420 --> 00:07:20,330 E um exemplo deste tipo, era de Naturalmente, este livro de telefone aqui. 149 00:07:20,330 --> 00:07:24,180 E utilizou-se como um exemplo para ir através de um algoritmo que estava correta. 150 00:07:24,180 --> 00:07:26,490 E depois outro foi correto, mas um pouco mais rápido. 151 00:07:26,490 --> 00:07:29,448 E então um outro que estava um pouco mais dramático, mas fundamentalmente 152 00:07:29,448 --> 00:07:30,000 mais rápido. 153 00:07:30,000 --> 00:07:32,720 >> Certo, isso, livro de telefone alegou tinha cerca de 1.000 páginas. 154 00:07:32,720 --> 00:07:36,200 E quantas vezes eu tenho rasgar o livro de telefone pela metade 155 00:07:36,200 --> 00:07:39,930 para encontrar alguém como Mike Smith, máximo, em 1000 página do livro? 156 00:07:39,930 --> 00:07:41,040 Assim, 10 mais ou menos. 157 00:07:41,040 --> 00:07:45,050 E assim, uma vez rasguei essa coisa em metade, ou simplesmente, mais madura, 158 00:07:45,050 --> 00:07:48,490 dividida ao meio, só é 10 páginas em 1.000. 159 00:07:48,490 --> 00:07:51,470 E se você extrapolar, um pouco irreal para uma agenda telefônica, 160 00:07:51,470 --> 00:07:56,540 mas se este livro telefone tinha cerca de 4 bilhões de páginas em que, de forma tão completa 161 00:07:56,540 --> 00:07:59,680 pesado fisicamente, quantos vezes você dividir um 4 bilhões 162 00:07:59,680 --> 00:08:01,460 lista telefônica página pela metade? 163 00:08:01,460 --> 00:08:03,035 Então é na verdade 32, mais ou menos. 164 00:08:03,035 --> 00:08:07,090 E assim, apenas 32 vezes, fora de 4 bilhões de páginas, pode 165 00:08:07,090 --> 00:08:08,700 você encontrar alguém como Mike Smith. 166 00:08:08,700 --> 00:08:09,740 E isso é eficiência. 167 00:08:09,740 --> 00:08:12,130 Isso é um bom algoritmo, ouso dizer. 168 00:08:12,130 --> 00:08:14,480 >> Mas, então, mudou-se de que para tentar formalizar isso. 169 00:08:14,480 --> 00:08:16,100 E eu propus este código pseudocódigo. 170 00:08:16,100 --> 00:08:17,800 Código Pseudocódigo não é nada formal. 171 00:08:17,800 --> 00:08:18,880 Não é algo que você memorizar. 172 00:08:18,880 --> 00:08:21,588 É apenas algo que você expressa bastante intuitiva usando Inglês, 173 00:08:21,588 --> 00:08:24,990 ou qualquer linguagem de verdade, que transmite as suas ideias de forma sucinta. 174 00:08:24,990 --> 00:08:26,990 Mas o que é importante sobre código pseudocódigo é que você 175 00:08:26,990 --> 00:08:30,331 tentar antecipar todas as possíveis casos que possam acontecer. 176 00:08:30,331 --> 00:08:33,080 E, de fato, neste pseudocódigo código, havia realmente três casos 177 00:08:33,080 --> 00:08:34,700 cada vez que eu dividido o livro de telefone. 178 00:08:34,700 --> 00:08:36,006 Mike pode ser para a esquerda. 179 00:08:36,006 --> 00:08:37,130 Mike pode ser para a direita. 180 00:08:37,130 --> 00:08:39,240 Ou ele pode estar certo na página em que estou. 181 00:08:39,240 --> 00:08:42,110 Ou um quarto caso esquina, por assim dizer. 182 00:08:42,110 --> 00:08:46,470 Um cenário ruim pode ser um which-- o que está acontecendo? 183 00:08:46,470 --> 00:08:48,860 Mike não é só em o livro de telefone em todos. 184 00:08:48,860 --> 00:08:52,720 >> E quando os programas crash-- quando Mac e software para PC que vocês correr 185 00:08:52,720 --> 00:08:56,400 em seus computadores, por vezes, trava ou fecha inesperadamente, 186 00:08:56,400 --> 00:08:59,770 que geralmente significa que alguns programador, algum ser humano como você em breve, 187 00:08:59,770 --> 00:09:01,650 só asneira e cometido algum erro. 188 00:09:01,650 --> 00:09:05,207 Talvez não antecipar que talvez não há Mike Smith no livro de telefone. 189 00:09:05,207 --> 00:09:08,040 E se você realmente não escrevo código para lidar com situações como essa, 190 00:09:08,040 --> 00:09:09,890 geralmente imprevisível coisas podem acontecer. 191 00:09:09,890 --> 00:09:10,960 A máquina pode congelar. 192 00:09:10,960 --> 00:09:11,730 Ele pode reiniciar. 193 00:09:11,730 --> 00:09:12,889 O programa pode parar. 194 00:09:12,889 --> 00:09:14,722 E assim todas estas estupidezes que você pode 195 00:09:14,722 --> 00:09:18,030 que encontrou em sua real vida apenas usando computadores, 196 00:09:18,030 --> 00:09:20,710 será cada vez mais só explicada por essa intuição 197 00:09:20,710 --> 00:09:24,920 e essa compreensão do que é realmente está acontecendo debaixo do capô. 198 00:09:24,920 --> 00:09:27,329 >> Agora vamos tentar dar uma olhada em um problema mais geral. 199 00:09:27,329 --> 00:09:29,120 Ao invés de tomar atendimento em um lugar como 200 00:09:29,120 --> 00:09:32,230 este, o que seria muito lento para fazer um, dois, três, quatro. 201 00:09:32,230 --> 00:09:34,070 Ou talvez dois, quatro, seis, oito. 202 00:09:34,070 --> 00:09:36,080 Vamos nos concentrar, em vez disso, em como podemos formalizar 203 00:09:36,080 --> 00:09:39,400 o algoritmo do processo por que poderíamos ter atendimento. 204 00:09:39,400 --> 00:09:42,290 E ao longo do caminho, vamos começar aplicar alguma nomenclatura 205 00:09:42,290 --> 00:09:47,130 que usaremos hoje, quando, na verdade, começar a programar em uma linguagem. 206 00:09:47,130 --> 00:09:50,910 Então, eu dou-lhe agora, um vídeo quatro minutos que estamos juntos com nossos amigos 207 00:09:50,910 --> 00:09:52,820 de TED, a organização. 208 00:09:52,820 --> 00:09:56,380 Pelo qual nos forneceu um roteiro e trouxeram seus animadores de suportar, 209 00:09:56,380 --> 00:10:00,970 e realmente criou um 2D animação do que um algoritmo é. 210 00:10:00,970 --> 00:10:02,776 Se pudéssemos diminuir as luzes. 211 00:10:02,776 --> 00:10:06,664 >> [MÚSICA DE JOGO] 212 00:10:06,664 --> 00:10:17,890 213 00:10:17,890 --> 00:10:19,140 NARRADOR: O que é um algoritmo? 214 00:10:19,140 --> 00:10:21,620 Em ciência da computação, um algoritmo é um conjunto 215 00:10:21,620 --> 00:10:24,840 instruções de resolver algum problema passo-a-passo. 216 00:10:24,840 --> 00:10:27,310 Tipicamente, os algoritmos são executado por computadores, 217 00:10:27,310 --> 00:10:29,365 mas nós seres humanos temos algoritmos também. 218 00:10:29,365 --> 00:10:31,240 Por exemplo, como é que você vai fazer sobre a contagem 219 00:10:31,240 --> 00:10:32,990 o número de pessoas em uma sala? 220 00:10:32,990 --> 00:10:36,840 Bem, se você é como eu, você provavelmente apontar em cada pessoa um de cada vez 221 00:10:36,840 --> 00:10:38,370 e contar-se a partir de zero. 222 00:10:38,370 --> 00:10:41,200 Um, dois, três, quatro, e assim por diante. 223 00:10:41,200 --> 00:10:42,410 Bem, isso é um algoritmo. 224 00:10:42,410 --> 00:10:45,820 Na verdade, vamos tentar expressá-lo um pouco mais formalmente no código pseudocódigo. 225 00:10:45,820 --> 00:10:48,940 Sintaxe Inglês-assim assemelha-se a uma linguagem de programação. 226 00:10:48,940 --> 00:10:50,880 >> Seja n igual a 0. 227 00:10:50,880 --> 00:10:55,210 Para cada pessoa, em quarto, definir n igual a n + 1. 228 00:10:55,210 --> 00:10:56,790 Como interpretar o pseudocódigo? 229 00:10:56,790 --> 00:10:59,490 Bem uma linha declara: por assim dizer, uma variável 230 00:10:59,490 --> 00:11:02,880 chamado n e inicializa seu valor para 0 Isso só 231 00:11:02,880 --> 00:11:05,080 significa que na início do nosso algoritmo, 232 00:11:05,080 --> 00:11:07,910 a coisa com a qual estamos contagem tem um valor de 0. 233 00:11:07,910 --> 00:11:10,860 Afinal, antes de começar a contar não ter contado nada ainda. 234 00:11:10,860 --> 00:11:13,580 Chamar essa variável n é apenas uma convenção. 235 00:11:13,580 --> 00:11:15,130 Eu poderia tê-lo chamado mais nada. 236 00:11:15,130 --> 00:11:17,460 Agora linha dois demarks o início de um ciclo, 237 00:11:17,460 --> 00:11:20,550 uma seqüência de passos que repetir um determinado número de vezes. 238 00:11:20,550 --> 00:11:24,130 Assim, no nosso exemplo, o passo que estamos tomada está contando as pessoas na sala. 239 00:11:24,130 --> 00:11:26,260 Sob linha dois é a linha três, que descreve 240 00:11:26,260 --> 00:11:28,400 exatamente como nós vamos sobre a contagem. 241 00:11:28,400 --> 00:11:31,720 O recuo que implica é linha de três que vai repetir. 242 00:11:31,720 --> 00:11:35,190 Assim, com o código de pseudocódigo é dizendo é que depois de iniciar a 0 243 00:11:35,190 --> 00:11:38,940 para cada pessoa no quarto que vai aumentar n por 1 244 00:11:38,940 --> 00:11:41,310 Agora é este algoritmo correto? 245 00:11:41,310 --> 00:11:42,820 Bem, vamos bater nele um pouco. 246 00:11:42,820 --> 00:11:45,520 >> Será que funciona se houver duas pessoas na sala? 247 00:11:45,520 --> 00:11:46,420 Vamos ver. 248 00:11:46,420 --> 00:11:48,500 Em uma linha de nós inicializar n a 0. 249 00:11:48,500 --> 00:11:51,910 Para cada uma das duas pessoas, nós então incrementar n em 1. 250 00:11:51,910 --> 00:11:55,570 Assim, na primeira viagem através do loop, nós atualizamos n 0-1. 251 00:11:55,570 --> 00:11:59,320 Na segunda viagem através desse mesmo loop, nós atualizamos n 1-2. 252 00:11:59,320 --> 00:12:02,850 E assim, por este algoritmo de final, n é 2, o qual 253 00:12:02,850 --> 00:12:04,950 na verdade, corresponde ao número de de pessoas na sala. 254 00:12:04,950 --> 00:12:06,040 Por enquanto, tudo bem. 255 00:12:06,040 --> 00:12:07,870 >> Que tal um caso canto embora? 256 00:12:07,870 --> 00:12:11,090 Suponha que existam 0 pessoas no quarto-- além de mim, quem é 257 00:12:11,090 --> 00:12:12,420 fazendo a contagem. 258 00:12:12,420 --> 00:12:15,380 Em uma linha, mais uma vez inicializar n a 0. 259 00:12:15,380 --> 00:12:17,810 Desta vez, porém, a linha se três não executar a todos 260 00:12:17,810 --> 00:12:19,610 uma vez que não há uma pessoa na sala. 261 00:12:19,610 --> 00:12:23,540 E assim permanece n 0, o que de fato corresponde o número de pessoas na sala. 262 00:12:23,540 --> 00:12:24,670 Muito simples, certo? 263 00:12:24,670 --> 00:12:27,880 Mas a contagem de pessoas, uma de cada vez é muito ineficiente, também, não? 264 00:12:27,880 --> 00:12:29,160 Certamente que podemos fazer melhor. 265 00:12:29,160 --> 00:12:33,440 Por que não contar duas pessoas de cada vez, em vez de contar um, dois, três, 266 00:12:33,440 --> 00:12:36,470 quatro, cinco, seis, sete, oito, e assim por diante. 267 00:12:36,470 --> 00:12:39,106 Por que não contar dois, quatro, seis, oito, e assim por diante? 268 00:12:39,106 --> 00:12:40,670 Ele ainda soa mais rápido. 269 00:12:40,670 --> 00:12:41,940 E certamente é. 270 00:12:41,940 --> 00:12:44,490 >> Vamos expressar essa otimização em código pseudocódigo. 271 00:12:44,490 --> 00:12:46,040 Seja n igual a 0. 272 00:12:46,040 --> 00:12:50,760 Para cada par de pessoas quarto, situado n igual a n + 2. 273 00:12:50,760 --> 00:12:52,360 Muito simples mudança, certo? 274 00:12:52,360 --> 00:12:56,560 Ao invés de contar com as pessoas, uma de cada vez, que em vez contá-los duas de cada vez. 275 00:12:56,560 --> 00:12:59,240 Este algoritmo de, assim, duas vezes mais rápido que o anterior. 276 00:12:59,240 --> 00:13:00,530 Mas será que é correto? 277 00:13:00,530 --> 00:13:01,160 Vamos ver. 278 00:13:01,160 --> 00:13:03,580 Será que funciona se houver duas pessoas na sala? 279 00:13:03,580 --> 00:13:05,800 Em uma linha, nós inicializar n a 0. 280 00:13:05,800 --> 00:13:09,160 Para que um par de pessoas, nós então incrementar n por 2. 281 00:13:09,160 --> 00:13:11,910 E assim por este algoritmo de final n é 2, o qual 282 00:13:11,910 --> 00:13:13,910 na verdade, corresponde ao número de de pessoas na sala. 283 00:13:13,910 --> 00:13:16,610 >> Suponhamos que existem próxima zero de pessoas na sala. 284 00:13:16,610 --> 00:13:19,080 Em uma linha de nós inicializar n a 0. 285 00:13:19,080 --> 00:13:21,260 Tal como anteriormente, a linha de três não executa tudo 286 00:13:21,260 --> 00:13:25,270 já que não há nenhum par de pessoas na sala, e assim permanece n 0. 287 00:13:25,270 --> 00:13:27,840 O que de fato corresponde ao número de pessoas na sala. 288 00:13:27,840 --> 00:13:30,520 Mas o que se há três pessoas na sala? 289 00:13:30,520 --> 00:13:32,380 Como é que este algoritmo de tarifa? 290 00:13:32,380 --> 00:13:35,710 Vamos ver, em uma linha, inicializamos n a 0. 291 00:13:35,710 --> 00:13:39,140 Para um par dessas pessoas, nós então incrementar n por 2. 292 00:13:39,140 --> 00:13:40,050 Mas e depois? 293 00:13:40,050 --> 00:13:42,340 Não existe outro completo par de pessoas na sala, 294 00:13:42,340 --> 00:13:44,430 de modo linha dois não mais se aplica. 295 00:13:44,430 --> 00:13:48,790 E assim até o final do presente algoritmo, n ainda é 2 o que não é correto. 296 00:13:48,790 --> 00:13:52,070 Na verdade, este algoritmo do dito ser buggy porque tem um erro. 297 00:13:52,070 --> 00:13:54,070 >> Vamos reparação com algum novo código de pseudocódigo. 298 00:13:54,070 --> 00:13:56,110 Seja n igual a 0. 299 00:13:56,110 --> 00:14:00,790 Para cada par de pessoas quarto, conjunto N igual a n + 2. 300 00:14:00,790 --> 00:14:05,410 Se uma pessoa permanece não pareado, definir N igual a n + 1. 301 00:14:05,410 --> 00:14:09,340 Para resolver este problema particular, temos introduzido na linha de quatro uma condição, 302 00:14:09,340 --> 00:14:12,120 de outro modo conhecido como um filiais, que apenas executa 303 00:14:12,120 --> 00:14:14,890 se há uma pessoa que não poderia emparelhar com outro. 304 00:14:14,890 --> 00:14:17,140 E agora, se há um, ou três, 305 00:14:17,140 --> 00:14:21,550 ou qualquer número ímpar de pessoas na sala, este algoritmo será agora contá-los. 306 00:14:21,550 --> 00:14:22,810 Podemos fazer ainda melhor? 307 00:14:22,810 --> 00:14:25,890 Bem, poderíamos contar em grupos de três, ou quatro, ou mesmo cinco anos e dez, 308 00:14:25,890 --> 00:14:29,390 mas, além disso, ele vai ficar um pouco difícil de apontar. 309 00:14:29,390 --> 00:14:32,900 >> No final do dia, se executado por computadores ou de seres humanos, 310 00:14:32,900 --> 00:14:34,870 algoritmos são apenas um conjunto de instruções 311 00:14:34,870 --> 00:14:36,560 com que para resolver os problemas. 312 00:14:36,560 --> 00:14:38,360 Estes foram apenas três. 313 00:14:38,360 --> 00:14:41,860 Que problema você faria resolver com um algoritmo? 314 00:14:41,860 --> 00:14:44,261 >> DAVID J. MALAN: Então, deliberadamente, um programa muito simples, 315 00:14:44,261 --> 00:14:46,260 um algoritmo muito simples, para alcançar algo 316 00:14:46,260 --> 00:14:48,280 muito simples, contando o número de pessoas na sala. 317 00:14:48,280 --> 00:14:50,370 >> Mas vamos desmembrar algum do representante 318 00:14:50,370 --> 00:14:52,870 apresenta aqui que são realmente vai ser útil mesmo quando 319 00:14:52,870 --> 00:14:54,880 execução mais complexo de software. 320 00:14:54,880 --> 00:14:58,060 Assim, por exemplo, nesta primeira linha, temos o que chamamos de variável, 321 00:14:58,060 --> 00:15:01,040 e da álgebra, você está familiarizada com x e y 322 00:15:01,040 --> 00:15:02,930 e z por vezes, e assim por diante. 323 00:15:02,930 --> 00:15:05,770 Mas, na programação, variáveis são ainda, no final do dia, 324 00:15:05,770 --> 00:15:06,680 muito semelhante ao que. 325 00:15:06,680 --> 00:15:09,910 Mas talvez seja mais simples para pensar de uma variável como apenas um recipiente. 326 00:15:09,910 --> 00:15:13,520 E, de fato, é um número de bits implementadas de alguma forma em seu disco rígido 327 00:15:13,520 --> 00:15:16,410 ou na memória do seu computador, mas mais sobre isso no futuro. 328 00:15:16,410 --> 00:15:17,670 É apenas um recipiente. 329 00:15:17,670 --> 00:15:20,310 E se você diz algo como vamos n igual a 0, 330 00:15:20,310 --> 00:15:24,310 bem, isso é como chamar esse vidro bowl aqui n, apenas um nome arbitrário, 331 00:15:24,310 --> 00:15:26,230 e colocar nada nela inicialmente. 332 00:15:26,230 --> 00:15:28,940 Então, o valor desta bowl agora é zero. 333 00:15:28,940 --> 00:15:31,380 E, claro, se você perceber numa linha subsequente, 334 00:15:31,380 --> 00:15:35,070 para efectivamente aumentar alguns linha de código, como nesta terceira linha aqui, 335 00:15:35,070 --> 00:15:39,857 em 1, isso é como dizer qual é o valor atual de n, é 0, mais 1, 336 00:15:39,857 --> 00:15:41,690 colocar algo como um de ping pong aqui. 337 00:15:41,690 --> 00:15:45,140 Agora o valor desta variável é simplesmente um. 338 00:15:45,140 --> 00:15:50,064 E você poderia muito rapidamente extrapolar, mas agora é 2, agora é 3, e assim por diante. 339 00:15:50,064 --> 00:15:51,230 Então, isso é tudo que uma variável é. 340 00:15:51,230 --> 00:15:53,740 É um pedaço de armazenamento para na verdade, armazenar alguns dados. 341 00:15:53,740 --> 00:15:55,050 Por agora é uma bola de pingue-pongue. 342 00:15:55,050 --> 00:15:55,883 Não é um número. 343 00:15:55,883 --> 00:15:58,910 Mas também pode ser um em palavras dicionário, como o verificador ortográfico 344 00:15:58,910 --> 00:16:02,300 Me referi na quarta-feira para um dos conjuntos de problemas do ano passado. 345 00:16:02,300 --> 00:16:05,640 >> Agora uma outra idéia chave, que da mesma forma é bastante intuitivo que eu teria a pretensão, 346 00:16:05,640 --> 00:16:06,690 que é de um laço. 347 00:16:06,690 --> 00:16:08,930 E o ciclo do processo contagem de todos 348 00:16:08,930 --> 00:16:12,540 É, evidentemente, fazer o mesmo coisa de novo e novamente-- qualquer um 349 00:16:12,540 --> 00:16:14,140 em um momento ou dois de cada vez. 350 00:16:14,140 --> 00:16:17,690 E você pode expressar isso em Inglês, ou pseudocódigo código, em qualquer número de maneiras, 351 00:16:17,690 --> 00:16:21,560 mas usando a preposição "para" é uma forma muito comum de se fazer isso. 352 00:16:21,560 --> 00:16:24,460 Para cada pessoa na sala, faça isso. 353 00:16:24,460 --> 00:16:25,350 Uma e outra vez. 354 00:16:25,350 --> 00:16:27,700 E o fato de que é recortado, linha de três, 355 00:16:27,700 --> 00:16:29,840 significa apenas que o você deveria fazer 356 00:16:29,840 --> 00:16:33,490 é o material que está recuado abaixo da linha de si dois. 357 00:16:33,490 --> 00:16:35,590 Apenas uma convenção humana, mas um comum 358 00:16:35,590 --> 00:16:39,010 como veremos em maior real linguagens de programação de nível. 359 00:16:39,010 --> 00:16:41,870 >> Agora pouco mais interessante é quando você chegar em um caso de canto. 360 00:16:41,870 --> 00:16:43,970 Por exemplo, um canto caso se quando há 361 00:16:43,970 --> 00:16:48,060 três pessoas, ou cinco, ou sete, ou qualquer número ímpar de pessoas na sala, 362 00:16:48,060 --> 00:16:51,630 porque fazendo isso por freios twos finalmente, porque o seu curso 363 00:16:51,630 --> 00:16:54,265 a falta de alguém, seja no início ou o fim 364 00:16:54,265 --> 00:16:55,390 dependendo de como você o faz. 365 00:16:55,390 --> 00:16:59,800 E assim, agora, eu tenho esse ramo, ou condição, se uma pessoa permanece, 366 00:16:59,800 --> 00:17:04,490 então vá em frente e lidar com isso um pessoa solitária que não conseguiu 367 00:17:04,490 --> 00:17:05,690 emparelhado com outra pessoa. 368 00:17:05,690 --> 00:17:09,030 Então, isso é o que chamaríamos uma condição, ou um galho. 369 00:17:09,030 --> 00:17:11,500 >> Código Agora pseudocódigo mais geralmente, podem ser 370 00:17:11,500 --> 00:17:13,730 escrita para resolver qualquer número de problemas. 371 00:17:13,730 --> 00:17:16,490 E o que eu pensei que ia fazer aqui é ter um momento 372 00:17:16,490 --> 00:17:20,089 convidar digamos CS50 da possuir Rob Bowden no palco 373 00:17:20,089 --> 00:17:25,040 a ser acompanhado por dois voluntários, que não têm idéia do que o aguarda. 374 00:17:25,040 --> 00:17:26,890 Uma mão desceu assim que eu disse isso. 375 00:17:26,890 --> 00:17:28,700 Que tal você na termina aqui, vamos lá para cima. 376 00:17:28,700 --> 00:17:33,040 E quanto mais distante de longe, que tal caminho na volta. 377 00:17:33,040 --> 00:17:35,200 Fila de trás, vamos lá para cima com as mãos para cima. 378 00:17:35,200 --> 00:17:36,475 Certo, e qual é o seu nome? 379 00:17:36,475 --> 00:17:36,960 >> ANITA: Anita. 380 00:17:36,960 --> 00:17:37,655 >> DAVID J. MALAN: Anita. 381 00:17:37,655 --> 00:17:38,613 Ok, prazer em conhecê-lo. 382 00:17:38,613 --> 00:17:41,010 Deixe-me apresentar-lhe Rob Bowden. 383 00:17:41,010 --> 00:17:42,890 Este é Anita. 384 00:17:42,890 --> 00:17:44,033 E qual é o seu nome? 385 00:17:44,033 --> 00:17:44,800 >> Kiersten: Kiersten 386 00:17:44,800 --> 00:17:46,020 >> DAVID J. MALAN: Irena. 387 00:17:46,020 --> 00:17:49,790 Irena, vamos lá para cima e atender Rob Bowden e Anita. 388 00:17:49,790 --> 00:17:51,036 Prazer em conhecê-lo. 389 00:17:51,036 --> 00:17:52,160 Kiersten: Prazer em conhecê-lo. 390 00:17:52,160 --> 00:17:53,368 DAVID J. MALAN: Tudo bem, Rob. 391 00:17:53,368 --> 00:17:54,650 ROB BOWDEN: Prazer em conhecê-lo. 392 00:17:54,650 --> 00:17:55,566 DAVID J. MALAN: Anita. 393 00:17:55,566 --> 00:17:56,520 Kiersten: Oi Anita. 394 00:17:56,520 --> 00:17:58,686 DAVID J. MALAN: E o seu várias centenas de colegas. 395 00:17:58,686 --> 00:18:02,490 Então, agora deixe-me ir em frente e puxe se apenas um simples programa aqui 396 00:18:02,490 --> 00:18:05,690 no Mac OS que vai me deixar realmente anotar algumas notas para baixo. 397 00:18:05,690 --> 00:18:09,570 E se vocês querem, cada um leva um posição em uma dessas escolas de lá, 398 00:18:09,570 --> 00:18:16,360 deixe-me ir em frente e começar uma lista de código de pseudocódigo, se você quiser. 399 00:18:16,360 --> 00:18:19,970 E o que eu quero fazer aqui, em última instância, é do tipo para você 400 00:18:19,970 --> 00:18:22,470 algumas instruções que o nosso membros da audiência são realmente 401 00:18:22,470 --> 00:18:23,569 vai recitar para nós. 402 00:18:23,569 --> 00:18:25,860 Deixe-me ir em frente e apenas mudar isso para uma lista numerada 403 00:18:25,860 --> 00:18:27,720 para coincidir com o que estávamos fazendo lá em cima. 404 00:18:27,720 --> 00:18:30,990 E o que eu vou fazer com sua ajuda, é escrever um programa 405 00:18:30,990 --> 00:18:34,620 em pseudocódigo, com o qual esses caras vão 406 00:18:34,620 --> 00:18:38,150 para implementar um amendoim manteiga e geléia sanduíche. 407 00:18:38,150 --> 00:18:40,880 Por isso, é talvez a propósito de mostrar algo que alguns de vocês 408 00:18:40,880 --> 00:18:44,560 pode ter visto na internet por apenas um breve momento chato. 409 00:18:44,560 --> 00:18:47,650 >> [MUSIC BUCKEWHEAT BOYS ", MANTEIGA DE AMENDOIM  Tempo da geléia "] 410 00:18:47,650 --> 00:19:08,119 411 00:19:08,119 --> 00:19:08,910 DAVID J. MALAN: OK. 412 00:19:08,910 --> 00:19:10,050 Isso é o suficiente. 413 00:19:10,050 --> 00:19:12,690 Então aqui enquanto isso, eu tenho uma par de Google Glasses que 414 00:19:12,690 --> 00:19:16,500 vamos colocar no próprio Rob Bowden do CS50 de ver o mundo através de seus olhos. 415 00:19:16,500 --> 00:19:19,140 E nós vamos fazer o nosso melhor no post produção de realmente tecer 416 00:19:19,140 --> 00:19:23,100 a metragem do que Rob está vendo agora, para esta palestra real 417 00:19:23,100 --> 00:19:26,420 vídeo com nossos dois voluntários ao lado dele. 418 00:19:26,420 --> 00:19:28,480 Então o que eu vou fazer é, eu vou ser o datilógrafo. 419 00:19:28,480 --> 00:19:31,849 Nós temos o objetivo aqui de realmente escrever um programa 420 00:19:31,849 --> 00:19:34,640 com que fazer, em última análise, uma manteiga de amendoim e geléia sanduíche, 421 00:19:34,640 --> 00:19:37,680 mas estes três vão se comportar como se fossem computadores. 422 00:19:37,680 --> 00:19:40,638 E computadores, no final do dia, são na verdade dispositivos muito burro. 423 00:19:40,638 --> 00:19:44,432 Eles são super rápido, mas só eles podem fazer, literalmente, o que é dito. 424 00:19:44,432 --> 00:19:46,890 Você não pode simplesmente dizer fazer um amendoim manteiga e geléia sanduíche. 425 00:19:46,890 --> 00:19:48,640 Você tem que programá-los a fazer isso. 426 00:19:48,640 --> 00:19:51,420 Você tem que dizer-lhes com precisão o que fazer, 427 00:19:51,420 --> 00:19:54,400 menos as coisas vão muito e, esperançosamente, divertidamente errado. 428 00:19:54,400 --> 00:19:57,460 >> Assim, com o que disse, nós precisamos um call-out do público 429 00:19:57,460 --> 00:19:59,440 para o que deverá intensificar um ser, se o objetivo aqui 430 00:19:59,440 --> 00:20:01,356 é fazer um amendoim manteiga e geléia sanduíche. 431 00:20:01,356 --> 00:20:01,910 Sim? 432 00:20:01,910 --> 00:20:03,647 >> AUDIÊNCIA: [inaudível] o saco de pão. 433 00:20:03,647 --> 00:20:05,230 DAVID J. MALAN: Abra o saco de pão. 434 00:20:05,230 --> 00:20:08,360 Portanto, se os três competidores faria gostaria de continuar a fazer isso literalmente. 435 00:20:08,360 --> 00:20:12,394 Abra o saco de pão. 436 00:20:12,394 --> 00:20:15,810 >> [Audiência de riso] 437 00:20:15,810 --> 00:20:20,717 438 00:20:20,717 --> 00:20:22,300 DAVID J. MALAN: Então, vamos trabalhar nisso. 439 00:20:22,300 --> 00:20:23,180 Tudo certo. 440 00:20:23,180 --> 00:20:25,400 Então, passo dois, how-- vamos dar mais este. 441 00:20:25,400 --> 00:20:26,480 Sim, na frente. 442 00:20:26,480 --> 00:20:27,240 >> AUDIÊNCIA: [inaudível] o pão. 443 00:20:27,240 --> 00:20:27,735 >> DAVID J. MALAN: O que é isso? 444 00:20:27,735 --> 00:20:28,836 >> AUDIÊNCIA: Retire o pão. 445 00:20:28,836 --> 00:20:30,210 DAVID J. MALAN: Retire o pão. 446 00:20:30,210 --> 00:20:31,190 Da mesma forma sucinta. 447 00:20:31,190 --> 00:20:33,667 Obrigado. 448 00:20:33,667 --> 00:20:43,777 >> [Aplausos] 449 00:20:43,777 --> 00:20:44,860 DAVID J. MALAN: É isso? 450 00:20:44,860 --> 00:20:48,830 OK, então o segundo passo é ir ser remover o pão. 451 00:20:48,830 --> 00:20:51,790 Tudo bem, alguém quer escreva-nos uma frase mais longa? 452 00:20:51,790 --> 00:20:52,640 Alguém mais? 453 00:20:52,640 --> 00:20:53,920 Um pouco mais [inaudível]. 454 00:20:53,920 --> 00:20:54,810 Não, nada agora. 455 00:20:54,810 --> 00:20:56,094 Sim? 456 00:20:56,094 --> 00:20:58,900 >> AUDIÊNCIA: Coloque dois fatias ao lado do outro. 457 00:20:58,900 --> 00:21:03,575 >> DAVID J. MALAN: Coloque dois fatias ao lado do outro. 458 00:21:03,575 --> 00:21:06,420 >> [Audiência de riso] 459 00:21:06,420 --> 00:21:09,590 >> DAVID J. MALAN: Coloque dois fatias ao lado do outro. 460 00:21:09,590 --> 00:21:11,334 Passo Quatro. 461 00:21:11,334 --> 00:21:12,816 Sim? 462 00:21:12,816 --> 00:21:14,792 >> AUDIÊNCIA: Leve o seu mão e coloque-o levemente 463 00:21:14,792 --> 00:21:17,756 na parte superior da tampa da manteiga de amendoim. 464 00:21:17,756 --> 00:21:19,710 >> [Audiência de riso] 465 00:21:19,710 --> 00:21:21,710 AUDIÊNCIA: [inaudível] ao lado da manteiga de amendoim. 466 00:21:21,710 --> 00:21:21,870 DAVID J. MALAN: O quê? 467 00:21:21,870 --> 00:21:22,520 Diga isso de novo. 468 00:21:22,520 --> 00:21:26,308 >> AUDIÊNCIA: Solte a tampa e colocar -o suavemente ao lado da manteiga de amendoim. 469 00:21:26,308 --> 00:21:31,490 >> DAVID J. MALAN: Coloque-o suavemente ao lado da manteiga de amendoim. 470 00:21:31,490 --> 00:21:37,770 471 00:21:37,770 --> 00:21:40,090 OK, o progresso. 472 00:21:40,090 --> 00:21:41,080 Etapa cinco. 473 00:21:41,080 --> 00:21:42,380 Excelente. 474 00:21:42,380 --> 00:21:43,261 Sim? 475 00:21:43,261 --> 00:21:44,163 >> Pegue uma faca. 476 00:21:44,163 --> 00:21:46,380 477 00:21:46,380 --> 00:21:47,630 DAVID J. MALAN: Pegue uma faca. 478 00:21:47,630 --> 00:21:52,320 479 00:21:52,320 --> 00:21:53,631 OK, passo seis. 480 00:21:53,631 --> 00:21:54,130 Sim? 481 00:21:54,130 --> 00:21:56,237 >> AUDIÊNCIA: Segure a faca pelo cabo. 482 00:21:56,237 --> 00:21:57,945 DAVID J. MALAN: Segure faca pela alça. 483 00:21:57,945 --> 00:22:00,710 484 00:22:00,710 --> 00:22:03,230 Segure a faca pelo cabo. 485 00:22:03,230 --> 00:22:04,880 Passo Sete. 486 00:22:04,880 --> 00:22:05,692 Sim? 487 00:22:05,692 --> 00:22:10,030 >> AUDIÊNCIA: Faca [inaudível] em amendoim manteiga e tão pouco para fora [inaudível]. 488 00:22:10,030 --> 00:22:13,070 >> DAVID J. MALAN: faca Coloque em-- I ouviu "faca colocar em manteiga de amendoim 489 00:22:13,070 --> 00:22:19,500 e ter tão pouco quanto for possível ". 490 00:22:19,500 --> 00:22:22,480 By the way, retire o papel primeiro. 491 00:22:22,480 --> 00:22:29,320 492 00:22:29,320 --> 00:22:31,890 Tudo bem, passo nove. 493 00:22:31,890 --> 00:22:34,910 Passo nove. 494 00:22:34,910 --> 00:22:35,624 Passo nove. 495 00:22:35,624 --> 00:22:37,290 Nós realmente não tenho feito um sanduíche ainda. 496 00:22:37,290 --> 00:22:37,790 Sim? 497 00:22:37,790 --> 00:22:41,570 AUDIÊNCIA: Usando faca em manteiga de amendoim, aplicar manteiga de amendoim na referida pão. 498 00:22:41,570 --> 00:22:47,440 >> DAVID J. MALAN: Usando a faca na manteiga de amendoim, aplique manteiga de amendoim em 499 00:22:47,440 --> 00:22:48,736 disse pão. 500 00:22:48,736 --> 00:22:56,030 >> [Audiência de riso] 501 00:22:56,030 --> 00:22:59,480 DAVID J. MALAN: All passo certo 10. 502 00:22:59,480 --> 00:23:01,762 Passo 10. 503 00:23:01,762 --> 00:23:02,750 Sim? 504 00:23:02,750 --> 00:23:05,220 >> AUDIÊNCIA: Gosto de amendoim manteiga para garantir a qualidade. 505 00:23:05,220 --> 00:23:15,960 >> [Audiência de riso] 506 00:23:15,960 --> 00:23:16,960 DAVID J. MALAN: Passo 11. 507 00:23:16,960 --> 00:23:19,500 508 00:23:19,500 --> 00:23:21,340 Passo 11. 509 00:23:21,340 --> 00:23:22,101 Passo 11. 510 00:23:22,101 --> 00:23:22,600 Venha. 511 00:23:22,600 --> 00:23:23,099 Sim? 512 00:23:23,099 --> 00:23:24,208 Bem ali. 513 00:23:24,208 --> 00:23:25,840 >> AUDIÊNCIA: Com cuidado, pegue a geléia. 514 00:23:25,840 --> 00:23:28,220 >> DAVID J. MALAN: Com cuidado, pegue a geléia. 515 00:23:28,220 --> 00:23:29,970 OK, e depois outra mão foi para cima. 516 00:23:29,970 --> 00:23:32,812 517 00:23:32,812 --> 00:23:33,520 Logo atrás de você. 518 00:23:33,520 --> 00:23:35,761 Sim, em azul. 519 00:23:35,761 --> 00:23:40,671 >> AUDIÊNCIA: Tudo bem, remova tampa de [inaudível], sim, 520 00:23:40,671 --> 00:23:42,635 retire a tampa da geléia. 521 00:23:42,635 --> 00:23:43,617 >> [Audiência de riso] 522 00:23:43,617 --> 00:23:44,742 >> DAVID J. MALAN: A partir de geléia. 523 00:23:44,742 --> 00:23:45,581 Ha ha. 524 00:23:45,581 --> 00:23:48,967 >> [Audiência de riso] 525 00:23:48,967 --> 00:23:49,800 DAVID J. MALAN: E? 526 00:23:49,800 --> 00:23:52,490 AUDIÊNCIA: E mal varrer qualquer [inaudível]. 527 00:23:52,490 --> 00:23:59,536 [Audiência de riso] 528 00:23:59,536 --> 00:24:04,456 AUDIÊNCIA: É claro que, antes de [inaudível], retire o papel da geléia. 529 00:24:04,456 --> 00:24:06,940 DAVID J. MALAN: Remova o papel da geléia. 530 00:24:06,940 --> 00:24:08,229 Passo 14. 531 00:24:08,229 --> 00:24:09,020 Estamos quase lá. 532 00:24:09,020 --> 00:24:09,857 Sim? 533 00:24:09,857 --> 00:24:12,600 >> AUDIÊNCIA: Inverter o frasco de geléia antes de tudo cai. 534 00:24:12,600 --> 00:24:16,515 >> DAVID J. MALAN: Invert geléia garrafa antes de geléia cai. 535 00:24:16,515 --> 00:24:19,070 536 00:24:19,070 --> 00:24:19,890 Passo 15. 537 00:24:19,890 --> 00:24:21,130 >> AUDIÊNCIA: Recoloque a tampa. 538 00:24:21,130 --> 00:24:22,463 >> DAVID J. MALAN: Recoloque a tampa. 539 00:24:22,463 --> 00:24:25,880 540 00:24:25,880 --> 00:24:28,190 Passo 16. 541 00:24:28,190 --> 00:24:28,931 Sim? 542 00:24:28,931 --> 00:24:29,806 >> AUDIÊNCIA: [inaudível] 543 00:24:29,806 --> 00:24:34,109 544 00:24:34,109 --> 00:24:35,400 DAVID J. MALAN: Diga isso de novo. 545 00:24:35,400 --> 00:24:38,100 AUDIÊNCIA: Pegue tampa fora de sua geléia. 546 00:24:38,100 --> 00:24:39,650 DAVID J. MALAN: Off seu gingado. 547 00:24:39,650 --> 00:24:43,720 548 00:24:43,720 --> 00:24:49,510 Então realmente-- Oops. 549 00:24:49,510 --> 00:24:50,420 Venha. 550 00:24:50,420 --> 00:24:51,740 Recoloque a tampa. 551 00:24:51,740 --> 00:24:56,660 Coloque cap-- Você disse retire a tampa de geléia. 552 00:24:56,660 --> 00:24:58,950 Sinta-se como se estivéssemos em um pouco de um loop. 553 00:24:58,950 --> 00:24:59,640 Passo 17. 554 00:24:59,640 --> 00:25:00,398 Sim? 555 00:25:00,398 --> 00:25:02,639 >> AUDIÊNCIA: [inaudível] 556 00:25:02,639 --> 00:25:03,930 DAVID J. MALAN: Diga isso de novo. 557 00:25:03,930 --> 00:25:05,150 AUDIÊNCIA: [inaudível] 558 00:25:05,150 --> 00:25:07,835 DAVID J. MALAN: Volte para step-- 559 00:25:07,835 --> 00:25:10,110 AUDIÊNCIA: [inaudível] 560 00:25:10,110 --> 00:25:13,760 DAVID J. MALAN: Remover cap de manteiga de amendoim. 561 00:25:13,760 --> 00:25:14,492 Sim? 562 00:25:14,492 --> 00:25:16,430 >> AUDIÊNCIA: Largue tudo o geléia com o pão. 563 00:25:16,430 --> 00:25:19,040 >> DAVID J. MALAN: Largue tudo a geléia com o pão. 564 00:25:19,040 --> 00:25:25,372 565 00:25:25,372 --> 00:25:26,830 DAVID J. MALAN: Estamos quase lá. 566 00:25:26,830 --> 00:25:27,800 Passo 19. 567 00:25:27,800 --> 00:25:30,250 >> AUDIÊNCIA: Retire o excesso de geléia. 568 00:25:30,250 --> 00:25:31,720 >> DAVID J. MALAN: Haha, geléia. 569 00:25:31,720 --> 00:25:36,615 >> [Aplausos] 570 00:25:36,615 --> 00:25:39,240 DAVID J. MALAN: Por que não nós-- mais um passo para tomar esta casa. 571 00:25:39,240 --> 00:25:41,720 Mais um passo e, em seguida, vamos servir sanduíches. 572 00:25:41,720 --> 00:25:42,900 Sim? 573 00:25:42,900 --> 00:25:45,570 >> AUDIÊNCIA: [inaudível] 574 00:25:45,570 --> 00:25:50,704 >> DAVID J. MALAN: Embora qualquer sanduíche travessão Vamos remains-- isso-- comer. 575 00:25:50,704 --> 00:25:56,400 >> [Risos da platéia] 576 00:25:56,400 --> 00:26:00,395 >> DAVID J. MALAN: Tudo bem, obrigado aos nossos voluntários aqui. 577 00:26:00,395 --> 00:26:06,150 >> [Aplausos} 578 00:26:06,150 --> 00:26:08,940 >> DAVID J. MALAN: Temos algumas agradáveis presentes de despedida para cada um de vocês. 579 00:26:08,940 --> 00:26:14,350 A sua própria manteiga de amendoim, geléia, e pão para levar para casa. 580 00:26:14,350 --> 00:26:15,774 Obrigado. 581 00:26:15,774 --> 00:26:17,118 >> Kiersten: Obrigado. 582 00:26:17,118 --> 00:26:18,618 DAVID J. MALAN: [inaudível] bem-vindos. 583 00:26:18,618 --> 00:26:21,849 [Aplausos] 584 00:26:21,849 --> 00:26:24,390 DAVID J. MALAN: Então, isso é, Claro, um exemplo ridículo. 585 00:26:24,390 --> 00:26:24,890 Certo? 586 00:26:24,890 --> 00:26:28,890 Mas isso tipo de revelar como nós humanos basta ter clareza para concedido. 587 00:26:28,890 --> 00:26:30,890 E o fato de eu ter sido falando com outro ser humano, 588 00:26:30,890 --> 00:26:33,300 ele ou ela simplesmente sabe o que quer dizer. 589 00:26:33,300 --> 00:26:35,220 >> Os computadores não estão indo para saber o que você quer dizer, 590 00:26:35,220 --> 00:26:37,430 mesmo quando se utiliza, como estamos prestes a fazer hoje, 591 00:26:37,430 --> 00:26:42,300 programar algo em risco, uma drag e soltar, linguagem de estilo peça do puzzle. 592 00:26:42,300 --> 00:26:44,310 Mesmo projetado para jovens crianças, você tem 593 00:26:44,310 --> 00:26:48,726 ser tão explícita e tão literal com o que você quer que seu programa para fazer. 594 00:26:48,726 --> 00:26:50,600 Agora, em última análise, somos vai ser a programação 595 00:26:50,600 --> 00:26:53,550 não no código pseudocódigo Inglês como sintaxe, 596 00:26:53,550 --> 00:26:56,370 mas o código ou, mais propriamente, o código fonte. 597 00:26:56,370 --> 00:26:59,260 O código-fonte é apenas a maneira extravagante para o código que descreve você realmente 598 00:26:59,260 --> 00:27:01,730 escrever com um teclado que é não em Inglês, por si só. 599 00:27:01,730 --> 00:27:06,480 É em C ou Java ou C ++ ou algo assim, como veremos em breve. 600 00:27:06,480 --> 00:27:09,510 >> E, de fato, só para assustar um alguns de vocês, à primeira vista, 601 00:27:09,510 --> 00:27:13,769 este é um programa escrito em uma linguagem chamado C. Mas, para un-susto um pouco de você, 602 00:27:13,769 --> 00:27:15,560 você será completamente entender o que está acontecendo 603 00:27:15,560 --> 00:27:18,980 em vir na próxima segunda-feira quando trata de algo como isto. 604 00:27:18,980 --> 00:27:20,510 Francamente, isso é uma linguagem mais velho. 605 00:27:20,510 --> 00:27:22,430 É bastante misteriosa, mas é representativa 606 00:27:22,430 --> 00:27:26,120 de uma série de linguagens que nos dias de hoje tem um monte de parênteses e crespos 607 00:27:26,120 --> 00:27:28,630 chaves e aspas e vírgulas. 608 00:27:28,630 --> 00:27:30,780 E um monte de presente material sintática que não é 609 00:27:30,780 --> 00:27:32,450 em todos intelectualmente interessante. 610 00:27:32,450 --> 00:27:35,790 Na verdade, é uma distração absoluta a partir das idéias muito simples 611 00:27:35,790 --> 00:27:37,370 que estão nos olhando na cara. 612 00:27:37,370 --> 00:27:41,760 Este programa, como você pode apenas adivinhar, impressões a tela do computador de alguém 613 00:27:41,760 --> 00:27:44,070 as palavras "Olá mundo vírgula." 614 00:27:44,070 --> 00:27:44,860 É isso aí. 615 00:27:44,860 --> 00:27:46,580 Então, claramente, não há um monte de coisas que é 616 00:27:46,580 --> 00:27:48,970 ficando no caminho de alguma evidência lá, 617 00:27:48,970 --> 00:27:52,490 mas vai deslizar muito rapidamente distância e ser completamente intuitiva. 618 00:27:52,490 --> 00:27:55,617 >> Na verdade, o que nós vamos fazer hoje é destilar esta bastante complexo 619 00:27:55,617 --> 00:27:58,950 programa procura, que mais uma vez você vai chegar de compreender rapidamente, mas a algo 620 00:27:58,950 --> 00:27:59,710 muito mais simples. 621 00:27:59,710 --> 00:28:01,640 Vamos apenas dizer o que queremos dizer. 622 00:28:01,640 --> 00:28:05,590 Vamos desenhar uma imagem do que queremos dizer, por meio dessas peças de quebra-cabeça aqui. 623 00:28:05,590 --> 00:28:09,110 >> Portanto, esta é uma programação linguagem conhecido como zero. 624 00:28:09,110 --> 00:28:11,080 Ele foi desenvolvido pelo Laboratório de Mídia do MIT. 625 00:28:11,080 --> 00:28:14,830 E o que você verá no conjunto de problemas zero, , que será lançado hoje à noite, 626 00:28:14,830 --> 00:28:18,980 nós vamos ter que ir a este URL aqui scratch.mit.edu. 627 00:28:18,980 --> 00:28:20,940 E eles têm um web interface de base através da qual 628 00:28:20,940 --> 00:28:22,540 você vai escrever seu primeiro programa. 629 00:28:22,540 --> 00:28:25,330 Ou aqueles de vocês com prévia experiência, segundo seus programas, 630 00:28:25,330 --> 00:28:28,090 mas em um ambiente que é provavelmente um pouco desconhecido e que 631 00:28:28,090 --> 00:28:32,930 vai empurrá-lo para criar algo usando este ambiente muito visual. 632 00:28:32,930 --> 00:28:35,940 >> Agora, o que eu vou fazer aqui é abrir o programa em si. 633 00:28:35,940 --> 00:28:41,911 Ela existe não só como um navegador, mas também como um programa de download 634 00:28:41,911 --> 00:28:44,660 de modo que você pode realmente usá-lo se você não tiver acesso à internet. 635 00:28:44,660 --> 00:28:46,743 E eu vou fazer isso aqui, em Sanders, apenas 636 00:28:46,743 --> 00:28:49,580 no caso de o Wi-Fi não cooperar de super bem. 637 00:28:49,580 --> 00:28:52,640 E o que eu vou fazer é ponto fora algumas características deste programa. 638 00:28:52,640 --> 00:28:55,720 Então, para ficar claro, eu tenho apenas duas vezes cliquei no ícone no meu desktop, 639 00:28:55,720 --> 00:28:59,830 ou equivalentemente ido para scratch.mit.edu, e é puxado para cima nesta janela. 640 00:28:59,830 --> 00:29:01,650 Este é um ambiente de programação. 641 00:29:01,650 --> 00:29:04,110 É um pedaço de software que alguns dos nossos amigos do MIT 642 00:29:04,110 --> 00:29:08,850 escreveu que vamos nós e você escreve programas em uma linguagem chamada de rascunho. 643 00:29:08,850 --> 00:29:12,010 >> Agora, este passa a ser um gato que também é chamado risco 644 00:29:12,010 --> 00:29:13,890 e este é o mundo em que vive. 645 00:29:13,890 --> 00:29:17,175 Esta é a fase de, por assim dizer, que retângulo no canto superior esquerdo. 646 00:29:17,175 --> 00:29:18,800 E ele não tem que olhar como um gato. 647 00:29:18,800 --> 00:29:20,591 Você pode fazê-lo parecer como qualquer coisa e você 648 00:29:20,591 --> 00:29:23,700 pode ter muitos desses sprites, ou personagens, em um programa. 649 00:29:23,700 --> 00:29:27,450 Enquanto isso, aqui na extrema certo, é uma grande folha em branco. 650 00:29:27,450 --> 00:29:30,260 E é aí que, em um momento, vamos começar a programação 651 00:29:30,260 --> 00:29:32,750 arrastando e soltando estes quebra-cabeça gráfica 652 00:29:32,750 --> 00:29:35,300 peças que estão à direita aqui no meio. 653 00:29:35,300 --> 00:29:38,140 E há muito mais deles do que vamos passar um tempo aqui na sala de aula 654 00:29:38,140 --> 00:29:40,080 porque você vai descobrir que todos eles são bastante intuitiva. 655 00:29:40,080 --> 00:29:41,788 Mais uma vez, ele foi projetado para as crianças, mas nós 656 00:29:41,788 --> 00:29:45,759 usá-lo para provocar uma separação alguns daqueles idéias fundamentais de variáveis, loops, 657 00:29:45,759 --> 00:29:48,050 condições e, em breve, as coisas como funções e eventos 658 00:29:48,050 --> 00:29:51,810 e fios e outras coisas extravagantes vamos chegar ao pouco tempo para realmente criar 659 00:29:51,810 --> 00:29:53,840 algo a partir do zero. 660 00:29:53,840 --> 00:29:54,810 Trocadilhos. 661 00:29:54,810 --> 00:29:58,740 >> Agora, o que eu vou fazer aqui é clique em não o movimento, mas o controle. 662 00:29:58,740 --> 00:30:01,400 E este é apenas um categorização de aqui-- 663 00:30:01,400 --> 00:30:03,150 e vejo uma diferente cor conjunto de blocos. 664 00:30:03,150 --> 00:30:05,030 Mas notar algumas palavras familiares. 665 00:30:05,030 --> 00:30:07,830 "Se" e "else if" e "repetição". 666 00:30:07,830 --> 00:30:10,440 E você provavelmente pode adivinhar que é uma reminiscência do ramo, 667 00:30:10,440 --> 00:30:12,870 ou as condições que vimos, e até mesmo a construção de loop. 668 00:30:12,870 --> 00:30:14,760 Portanto, temos blocos semelhantes aqui. 669 00:30:14,760 --> 00:30:16,720 Mas o mais interessante é este aqui. 670 00:30:16,720 --> 00:30:20,690 Quando esta bandeira verde é clicado, isso, para aqueles com programação prévia 671 00:30:20,690 --> 00:30:23,110 experiência, é equivalente para uma função principal. 672 00:30:23,110 --> 00:30:25,300 Mas, para quem não conhece, esta é a parte do enigma 673 00:30:25,300 --> 00:30:27,320 que irá lançar toda a nossa programação. 674 00:30:27,320 --> 00:30:31,350 Significa literalmente quando eu vou, neste programa, e clique em um flag-- verde 675 00:30:31,350 --> 00:30:35,560 que você pode ver aqui no canto superior esquerdo da interface do usuário, 676 00:30:35,560 --> 00:30:38,570 assim que ver a bandeira verde ao lado do sinal vermelho? 677 00:30:38,570 --> 00:30:41,475 Quando clico isso, meu programa vai ser executado. 678 00:30:41,475 --> 00:30:43,850 Agora, eu vou fazer alguma coisa super simples com o Scratch. 679 00:30:43,850 --> 00:30:46,640 Eu estou indo para ir em frente e vá para o painel de olhares 680 00:30:46,640 --> 00:30:50,010 aqui, onde eu tenho um monte de peças do quebra-roxo, 681 00:30:50,010 --> 00:30:53,887 e eu estou indo para ir em frente e fazer algo super simples como, digamos. 682 00:30:53,887 --> 00:30:55,720 E note depois-- este texto na caixa branca 683 00:30:55,720 --> 00:30:59,290 é editable-- eu vou dizer "Olá mundo", assim como nós 684 00:30:59,290 --> 00:31:01,470 fez naquele textual versão de um momento atrás. 685 00:31:01,470 --> 00:31:05,920 E agora, se eu for e clique neste bandeira verde, eu já programado. 686 00:31:05,920 --> 00:31:07,810 Não é um particular programa interessante, 687 00:31:07,810 --> 00:31:09,760 mas eu fiz o computador fazer alguma coisa. 688 00:31:09,760 --> 00:31:13,120 Eu comecei um programa e fiz o que eu disse para fazer. 689 00:31:13,120 --> 00:31:16,170 Agora, eu posso continuar a arrastar e soltar mais e mais dessas peças do puzzle 690 00:31:16,170 --> 00:31:19,220 e eles vão bloquear, mas vamos bater um pouco de terminologia aqui 691 00:31:19,220 --> 00:31:21,680 que veremos recorrentes durante todo o curso, 692 00:31:21,680 --> 00:31:24,610 e realmente em toda a ciência da computação e programação em geral. 693 00:31:24,610 --> 00:31:27,990 >> Este "dizer" do bloco, em roxo, vamos apenas começar a chamar um comunicado. 694 00:31:27,990 --> 00:31:29,240 É como uma declaração de fato. 695 00:31:29,240 --> 00:31:30,380 Faça isso. 696 00:31:30,380 --> 00:31:32,590 Então, é uma categoria de instruções que você 697 00:31:32,590 --> 00:31:36,760 pode alimentar um computador como parte de um programa ou de um algoritmo. 698 00:31:36,760 --> 00:31:39,270 E para ser claro, você tem provavelmente tida como certa 699 00:31:39,270 --> 00:31:41,930 que você tem programas em seu computador. 700 00:31:41,930 --> 00:31:45,850 E eles são o tipo de algoritmos, mas uma programa é realmente um monte de algoritmos 701 00:31:45,850 --> 00:31:47,160 que alguns seres humanos, escreveu. 702 00:31:47,160 --> 00:31:49,040 Eles embalado para cima e eles venderam isso para que você, 703 00:31:49,040 --> 00:31:51,330 ou eles postado em um website para você baixar. 704 00:31:51,330 --> 00:31:54,930 Assim, um programa é apenas um todo monte de zeros e uns 705 00:31:54,930 --> 00:31:56,970 que, de alguma forma, os seres humanos criaram. 706 00:31:56,970 --> 00:32:00,080 E esses padrões de zeros e os representam coisas, em última análise, 707 00:32:00,080 --> 00:32:04,030 como "dizer Olá mundo" ou "o jogo esta música "ou" reproduzir este vídeo " 708 00:32:04,030 --> 00:32:05,129 ou "envie um e-mail." 709 00:32:05,129 --> 00:32:06,920 Mas vamos voltar em forma mais detalhes o que 710 00:32:06,920 --> 00:32:08,780 um programa é quando você, mesmo, escrevê-los. 711 00:32:08,780 --> 00:32:11,320 >> Aqui está outra statement-- "Espere um segundo." 712 00:32:11,320 --> 00:32:14,330 Eu não uso isso ainda, mas se eu quiser meu programa para fazer uma pausa por um momento 713 00:32:14,330 --> 00:32:16,540 fazer alguma coisa, eu posso dizer que para fazê-lo. 714 00:32:16,540 --> 00:32:18,450 Espere um segundo. 715 00:32:18,450 --> 00:32:20,150 Agora um outro poderia ser "reproduzir o som." 716 00:32:20,150 --> 00:32:23,270 Então, este é exclusivo para zero, tem a capacidade de reproduzir sons. 717 00:32:23,270 --> 00:32:26,130 Assim, uma declaração que pode utilização é, aqui, "reproduzir o som." 718 00:32:26,130 --> 00:32:29,530 Enquanto isso, a expressão booleana, por isso esta é uma palavra extravagante 719 00:32:29,530 --> 00:32:34,490 em homenagem a um cara chamado Mr. Bool, e isso é tudo sobre a questão. 720 00:32:34,490 --> 00:32:37,470 Verdadeiro ou false-- é o mouse para baixo? 721 00:32:37,470 --> 00:32:41,100 Uma expressão booleana é apenas alguma expressão em Inglês 722 00:32:41,100 --> 00:32:42,860 que é verdadeiro ou falso. 723 00:32:42,860 --> 00:32:44,140 Ligado ou desligado. 724 00:32:44,140 --> 00:32:45,130 Qualquer um ou zero. 725 00:32:45,130 --> 00:32:46,960 Você pode pensar nisso em qualquer número de maneiras, 726 00:32:46,960 --> 00:32:49,220 mas é verdadeiro ou essa falsa, em última instância. 727 00:32:49,220 --> 00:32:52,540 Assim, "do mouse para baixo ponto de interrogação" que seria uma expressão booleana. 728 00:32:52,540 --> 00:32:54,300 E você pode pensar nos outros, talvez. 729 00:32:54,300 --> 00:32:57,510 Por exemplo, "é o número esquerda menor que o número certo? " 730 00:32:57,510 --> 00:32:59,410 Isso também seria uma expressão booleana. 731 00:32:59,410 --> 00:33:01,540 "Menos de" é uma expressão booleana. 732 00:33:01,540 --> 00:33:03,280 >> Este, também, "pointer tocar mouse." 733 00:33:03,280 --> 00:33:05,196 Eu não sei por que eles chamou-o ponteiro do mouse. 734 00:33:05,196 --> 00:33:08,430 Significa apenas que, é o cursor, é o seta na tela, tocando o gato, 735 00:33:08,430 --> 00:33:09,022 por exemplo. 736 00:33:09,022 --> 00:33:10,480 Ou algum outro aspecto da tela. 737 00:33:10,480 --> 00:33:13,710 E é uma questão, mais uma vez, e que denota uma expressão booleana. 738 00:33:13,710 --> 00:33:17,130 Algo que você pode quero usar em uma condição. 739 00:33:17,130 --> 00:33:19,100 Então, nós vamos chegar a isso em apenas um momento. 740 00:33:19,100 --> 00:33:20,350 Você pode "e" coisas juntas. 741 00:33:20,350 --> 00:33:23,099 Então, se você quiser verificar se este é o caso e que é o caso, 742 00:33:23,099 --> 00:33:25,580 você pode usar um "e" bloco como este. 743 00:33:25,580 --> 00:33:26,850 E aqui está nessa condição. 744 00:33:26,850 --> 00:33:31,290 Observe a forma da pequena abertura no topo desta parte do enigma amarelo, 745 00:33:31,290 --> 00:33:34,480 É uma reminiscência da forma que acabamos de ver um momento atrás. 746 00:33:34,480 --> 00:33:37,920 Cada uma dessas expressões booleanas tem essas arestas pontiagudas 747 00:33:37,920 --> 00:33:39,030 no lado esquerdo e direito. 748 00:33:39,030 --> 00:33:43,140 E isso é porque as pessoas do MIT decidiu que por formatos de transporte visualmente, 749 00:33:43,140 --> 00:33:45,780 você pode tipo de ajudar as pessoas, estudantes e crianças, 750 00:33:45,780 --> 00:33:47,650 ao tipo de preencher os espaços em branco, literalmente. 751 00:33:47,650 --> 00:33:49,780 >> Agora que puzzle-- que abertura é um pouco pequeno, 752 00:33:49,780 --> 00:33:52,750 e, como veremos no programa, em risco, ela vai crescer para se adequar. 753 00:33:52,750 --> 00:33:54,830 Ele vai manter a sua forma, em última instância. 754 00:33:54,830 --> 00:33:58,350 Assim, uma condição lhe permite decidir "Eu deveria fazer alguma coisa ou não?" 755 00:33:58,350 --> 00:34:00,470 Uma expressão booleana é a questão real 756 00:34:00,470 --> 00:34:04,100 você está usando para decidir se eu vou para a esquerda ou eu ir para a direita 757 00:34:04,100 --> 00:34:06,710 quando me deparo com este chamado bifurcação na estrada? 758 00:34:06,710 --> 00:34:07,980 Você pode ter dois ramos. 759 00:34:07,980 --> 00:34:10,909 Se algo é verdade, fazer isso, mais ir por esse caminho, 760 00:34:10,909 --> 00:34:14,590 ou você pode simplesmente não fazer nada tudo, tal como este bloco implícita. 761 00:34:14,590 --> 00:34:16,360 Da mesma forma, pode aninhar essas coisas. 762 00:34:16,360 --> 00:34:20,204 Então, se você quer triplicar bifurcação na estrada, ou fazer isto ou isto ou aquilo, 763 00:34:20,204 --> 00:34:21,870 você pode apenas ninho essas coisas juntas. 764 00:34:21,870 --> 00:34:24,520 E isso começa a ficar um pouco feio, eventualmente, com certeza, 765 00:34:24,520 --> 00:34:26,120 mas a lógica continua a ser a mesma. 766 00:34:26,120 --> 00:34:28,000 Você pode literalmente ler este de cima para baixo 767 00:34:28,000 --> 00:34:33,290 e ele diz que o que means-- se este é verdade, fazer isso, mais se outra coisa. 768 00:34:33,290 --> 00:34:36,179 >> Um ciclo não fica mais simples em risco. 769 00:34:36,179 --> 00:34:37,422 Sempre faça o seguinte. 770 00:34:37,422 --> 00:34:39,880 Agora você não pode pensar que você pode fazer muito porque não há 771 00:34:39,880 --> 00:34:42,839 o espaço entre a parte superior e a parte inferior desta abertura peça do puzzle. 772 00:34:42,839 --> 00:34:45,671 Mas você vai ver Raspadinha vai crescer para atender o maior número de peças do puzzle 773 00:34:45,671 --> 00:34:47,060 como você quer enfiar lá dentro. 774 00:34:47,060 --> 00:34:48,960 Outro circuito pode ser expresso com repetições. 775 00:34:48,960 --> 00:34:51,590 Se você sabe de antemão ", I quero fazer algo 10 vezes ", 776 00:34:51,590 --> 00:34:54,010 você pode apenas dizer Raspadinha fazer alguma coisa 10 vezes. 777 00:34:54,010 --> 00:34:57,260 E, enquanto isso, podemos ter variáveis. 778 00:34:57,260 --> 00:34:59,572 Então aqui está arbitrária, é laranja, neste caso, 779 00:34:59,572 --> 00:35:00,780 e este é um rápido tour. 780 00:35:00,780 --> 00:35:04,540 Mais uma vez, você vai encontrar isso muito acessível uma vez que você começar a apontar e clicar. 781 00:35:04,540 --> 00:35:07,930 Eu nomeei minha variável n, mas eu poderia ter chamado ele o que eu quiser, 782 00:35:07,930 --> 00:35:11,280 e eu estou ajustando-lo aqui, em Neste exemplo arbitrária, a zero. 783 00:35:11,280 --> 00:35:14,250 >> Agora vendo um programa como o Olá mundo não é tão convincente, 784 00:35:14,250 --> 00:35:17,900 então vamos realmente abrir mão de algo que um ex-aluno fez. 785 00:35:17,900 --> 00:35:23,100 Deixe-me ir em frente e abrir-se, por exemplo, este aqui, 786 00:35:23,100 --> 00:35:26,780 para que eu adoraria ter um voluntário. 787 00:35:26,780 --> 00:35:28,450 Tudo bem, como sobre-- vamos mais longe. 788 00:35:28,450 --> 00:35:29,240 Sim, vamos lá para cima. 789 00:35:29,240 --> 00:35:30,056 Qual o seu nome? 790 00:35:30,056 --> 00:35:30,635 >> Abby: Abby. 791 00:35:30,635 --> 00:35:32,010 DAVID J. MALAN: Abby, vamos lá para cima. 792 00:35:32,010 --> 00:35:35,930 Então, você já jogou este jogo antes? 793 00:35:35,930 --> 00:35:36,430 Abby: No. 794 00:35:36,430 --> 00:35:37,370 DAVID J. MALAN: Tudo bem. 795 00:35:37,370 --> 00:35:38,380 David, prazer em conhecê-lo. 796 00:35:38,380 --> 00:35:39,620 Venha pra cá. 797 00:35:39,620 --> 00:35:42,300 E qual é a sua programação fundo, se for o caso. 798 00:35:42,300 --> 00:35:43,914 >> Abby: Eu aprendi algumas C ++. 799 00:35:43,914 --> 00:35:45,580 DAVID J. MALAN: Você aprendeu alguma C ++. 800 00:35:45,580 --> 00:35:48,382 E qual é o seu jogo tocando de fundo? 801 00:35:48,382 --> 00:35:49,505 >> Abby: Não muito. 802 00:35:49,505 --> 00:35:51,130 DAVID J. MALAN: OK, então vamos levar isso. 803 00:35:51,130 --> 00:35:52,700 Então aqui está como o jogo vai funcionar. 804 00:35:52,700 --> 00:35:54,510 Eu estou indo para ir em frente e clique na bandeira verde, que 805 00:35:54,510 --> 00:35:55,830 está aqui em cima no canto superior direito. 806 00:35:55,830 --> 00:35:59,710 Agora, o seu antecessor na classe deu-lhe algumas instruções aqui. 807 00:35:59,710 --> 00:36:02,306 E em apenas um momento, diz que "o espaço para começar." 808 00:36:02,306 --> 00:36:03,680 Então vá em frente e bateu a barra de espaço. 809 00:36:03,680 --> 00:36:05,507 >> JOGO DE COMPUTADOR: Pikachu. 810 00:36:05,507 --> 00:36:08,340 DAVID J. MALAN: E o objetivo é pegar a comida, como representado não 811 00:36:08,340 --> 00:36:09,320 à esquerda. 812 00:36:09,320 --> 00:36:11,388 E para [inaudível] 813 00:36:11,388 --> 00:36:15,356 >> [GAME MUSIC PLAYING] 814 00:36:15,356 --> 00:36:27,280 815 00:36:27,280 --> 00:36:29,610 >> DAVID J. MALAN: Ohh, bem, Obrigado por jogar. 816 00:36:29,610 --> 00:36:32,800 Temos aqui um pouco separando presente para você. 817 00:36:32,800 --> 00:36:35,574 Temos CS50 bola anti-stress, Se você gostaria de escolher. 818 00:36:35,574 --> 00:36:36,820 Tudo bem, é bom conhecê-lo. 819 00:36:36,820 --> 00:36:39,680 Obrigado por terem vindo e desafiador. 820 00:36:39,680 --> 00:36:42,410 821 00:36:42,410 --> 00:36:46,910 Portanto, temos mais bolas de stress, de modo vamos fazer mais um exemplo para motivar. 822 00:36:46,910 --> 00:36:48,150 Um voluntário? 823 00:36:48,150 --> 00:36:50,510 Tudo bem, que tal bem aqui na frente. 824 00:36:50,510 --> 00:36:51,250 Qual o seu nome? 825 00:36:51,250 --> 00:36:51,660 >> PHILLIP: Phillip. 826 00:36:51,660 --> 00:36:52,660 >> DAVID J. MALAN: Phillip. 827 00:36:52,660 --> 00:36:54,530 Venha, Phillip. 828 00:36:54,530 --> 00:36:57,340 Assim, Phillip vai ser desafiados com um outro jogo 829 00:36:57,340 --> 00:37:00,840 que um de seus antecessores escreveu como parte do conjunto de problemas zero, 830 00:37:00,840 --> 00:37:03,510 chamado O jogo mais difícil do Ivy. 831 00:37:03,510 --> 00:37:05,980 E nós vamos ver em apenas um momento o que se quer dizer com isso. 832 00:37:05,980 --> 00:37:07,400 Phillip, prazer em conhecê-lo. 833 00:37:07,400 --> 00:37:09,060 Qual é a sua formação? 834 00:37:09,060 --> 00:37:10,310 PHILLIP: Feito um monte de codificação. 835 00:37:10,310 --> 00:37:11,110 Feito um pouco de jogo, também. 836 00:37:11,110 --> 00:37:11,570 >> DAVID J. MALAN: OK. 837 00:37:11,570 --> 00:37:12,620 Tem um monte de jogos, também. 838 00:37:12,620 --> 00:37:14,230 E você já jogou este jogo antes? 839 00:37:14,230 --> 00:37:14,730 >> PHILLIP: Não 840 00:37:14,730 --> 00:37:16,438 David J. MALAN: Todos certo, então vamos lá. 841 00:37:16,438 --> 00:37:18,434 Eu estou indo para ir em frente e clicar na bandeira verde. 842 00:37:18,434 --> 00:37:24,160 >> [GAME MUSIC] 843 00:37:24,160 --> 00:37:27,770 >> [MUSIC MC HAMMER, "U NÃO PODE TOCAR ESTE"] 844 00:37:27,770 --> 00:38:39,790 845 00:38:39,790 --> 00:38:41,635 >> PHILLIP: [inaudível] 846 00:38:41,635 --> 00:38:42,760 DAVID J. MALAN: [inaudível] 847 00:38:42,760 --> 00:38:44,740 PHILLIP: [inaudível] 848 00:38:44,740 --> 00:38:49,056 [Risos] 849 00:38:49,056 --> 00:38:50,680 [MUSIC MC HAMMER, "U NÃO PODE TOCAR ESTE"] 850 00:38:50,680 --> 00:38:52,660 DAVID J. MALAN: [inaudível] Arar através dele. 851 00:38:52,660 --> 00:38:54,094 PHILLIP: [inaudível] 852 00:38:54,094 --> 00:38:55,135 DAVID J. MALAN: Vá em frente. 853 00:38:55,135 --> 00:39:01,570 [MUSIC MC HAMMER, "U NÃO PODE TOCAR ESTE"] 854 00:39:01,570 --> 00:39:15,832 855 00:39:15,832 --> 00:39:16,915 DAVID J. MALAN: Tudo bem. 856 00:39:16,915 --> 00:39:18,400 Parabéns. 857 00:39:18,400 --> 00:39:25,150 >> [Aplausos] 858 00:39:25,150 --> 00:39:27,330 >> DAVID J. MALAN: Vamos posto que em linha mais tarde, para 859 00:39:27,330 --> 00:39:29,820 que você pode procrastinar com ele também. 860 00:39:29,820 --> 00:39:32,550 Princeton vem logo em seguida, depois disso. 861 00:39:32,550 --> 00:39:35,470 >> Então agora vamos realmente proceder que começar do zero, 862 00:39:35,470 --> 00:39:39,310 por assim dizer, e realmente construir até podemos desmembrar algumas dessas idéias 863 00:39:39,310 --> 00:39:41,970 e chegar a algo ainda mais complexo no final. 864 00:39:41,970 --> 00:39:45,240 Eu vou por aqui e eu vou ir em frente e criar um novo arquivo. 865 00:39:45,240 --> 00:39:47,460 Então, novamente, o conjunto de problemas andará lo através de algumas destas etapas. 866 00:39:47,460 --> 00:39:49,300 Mas, tudo o que eu fiz foi ir para o menu Arquivo e eu 867 00:39:49,300 --> 00:39:52,760 disse "novo", tão parecido com Microsoft Word, ou qualquer outro programa como esse. 868 00:39:52,760 --> 00:39:56,630 >> E vamos em frente agora-- e nós implementado "Olá, mundo" um momento atrás, 869 00:39:56,630 --> 00:39:58,410 mas vamos fazer algo um pouco mais bonito. 870 00:39:58,410 --> 00:40:00,150 Eu estou indo para ir até eventos. 871 00:40:00,150 --> 00:40:02,350 E eu vou fazer ", quando bandeira verde clicado. " 872 00:40:02,350 --> 00:40:05,830 E então eu vou usar, digamos, um ramo. 873 00:40:05,830 --> 00:40:07,610 Então, eu vou usar um "se" condição. 874 00:40:07,610 --> 00:40:10,940 E note como assim que eu chegar perto para ele, ele quer se encaixam. 875 00:40:10,940 --> 00:40:13,020 Então, eu deixo ir e que se encaixe em conjunto. 876 00:40:13,020 --> 00:40:15,150 E agora eu posso fazer alguma coisa interessante. 877 00:40:15,150 --> 00:40:19,150 Se eu rolar por aqui, eu vou ver um monte de blocos. 878 00:40:19,150 --> 00:40:22,620 Se eu for a "data" - deixe-me zoom em-- há algo sobre variáveis. 879 00:40:22,620 --> 00:40:26,160 Se eu for para "movimento", você pode aparentemente mudar as coisas. 880 00:40:26,160 --> 00:40:28,760 Se eu for para "operadores" - oh, isso é interessante, 881 00:40:28,760 --> 00:40:31,000 Eu posso pegar um número aleatório. 882 00:40:31,000 --> 00:40:34,119 Então deixe-me fazer algo com apenas alguma probabilidade, apenas porque. 883 00:40:34,119 --> 00:40:36,160 Eu estou indo para ir em frente e arrastar esta parte do enigma, 884 00:40:36,160 --> 00:40:37,910 isto é que a menos de bloco, por isso é apenas 885 00:40:37,910 --> 00:40:39,480 "É esse número menor do que um?" 886 00:40:39,480 --> 00:40:42,438 Mas eu não quero um código rígido de um número porque que ser bastante inútil. 887 00:40:42,438 --> 00:40:46,270 Então eu vou para arrastar esta peça aqui, e perceba como ela se encaixe em, 888 00:40:46,270 --> 00:40:49,480 e agora deixe-me ir em frente e dizer "se o número que é escolhido aleatoriamente 889 00:40:49,480 --> 00:40:51,820 é menos de seis, faça o seguinte. " 890 00:40:51,820 --> 00:40:52,790 Agora, por menos de seis? 891 00:40:52,790 --> 00:40:56,400 Qual a probabilidade é isso de forma eficaz vai me dar, apenas intuitivamente? 892 00:40:56,400 --> 00:40:57,440 Cerca de 50%, certo? 893 00:40:57,440 --> 00:41:01,190 Se o número que de adivinhar aleatoriamente entre 1 e 10, é menos do que seis, 894 00:41:01,190 --> 00:41:03,480 claramente que é um, dois, três, quatro, ou cinco. 895 00:41:03,480 --> 00:41:06,740 E assim que vai me dar um 50% de probabilidade de que aconteça? 896 00:41:06,740 --> 00:41:09,890 >> Bem, vamos fazer algo parecido isso, "jogar miado de som." 897 00:41:09,890 --> 00:41:11,750 E notem, mais uma vez, a peça cresce 898 00:41:11,750 --> 00:41:13,700 para se ajustar, tanto tempo quanto as formas corresponder. 899 00:41:13,700 --> 00:41:14,910 Isso é que é importante. 900 00:41:14,910 --> 00:41:18,000 Deixai-me passar a arranhar aqui e clique em "jogo". 901 00:41:18,000 --> 00:41:19,300 Nada acontece. 902 00:41:19,300 --> 00:41:21,160 Isso é um bug? 903 00:41:21,160 --> 00:41:21,999 Não, não é necessário. 904 00:41:21,999 --> 00:41:24,040 Poderia ser apenas que a número maior foi escolhido. 905 00:41:24,040 --> 00:41:25,762 Então, vamos fazê-lo novamente. 906 00:41:25,762 --> 00:41:27,550 Nada. 907 00:41:27,550 --> 00:41:28,344 >> [Miau] 908 00:41:28,344 --> 00:41:29,510 DAVID J. MALAN: Aqui está. 909 00:41:29,510 --> 00:41:30,280 [Miau] 910 00:41:30,280 --> 00:41:31,690 DAVID J. MALAN: Mais uma vez. 911 00:41:31,690 --> 00:41:32,300 No. 912 00:41:32,300 --> 00:41:32,922 >> [Miando] 913 00:41:32,922 --> 00:41:35,380 DAVID J. MALAN: Então, se você tem sempre um jogo, é claro, 914 00:41:35,380 --> 00:41:38,500 onde o material está acontecendo de forma aleatória, como os bandidos estão vindo ou não 915 00:41:38,500 --> 00:41:41,350 chegando à tela, ou as coisas estão a cair ou não cair, 916 00:41:41,350 --> 00:41:43,610 isso é só porque algo super- simples como isso está acontecendo. 917 00:41:43,610 --> 00:41:46,010 Escolha um número aleatório, e se É menos do que algum valor, 918 00:41:46,010 --> 00:41:49,100 talvez fazer isso ou talvez fazer isso. 919 00:41:49,100 --> 00:41:51,340 Podemos incorporar que em uma condição. 920 00:41:51,340 --> 00:41:52,600 Vamos fazer algo diferente. 921 00:41:52,600 --> 00:41:53,559 >> Deixe-me jogar isso fora. 922 00:41:53,559 --> 00:41:56,058 Você pode se livrar de coisas por apenas arrastando-o para a esquerda 923 00:41:56,058 --> 00:41:56,810 e deixar ir. 924 00:41:56,810 --> 00:42:00,310 Deixe-me ir em frente e fazer um bloco para sempre e muito rapidamente fazer algo irritante. 925 00:42:00,310 --> 00:42:03,010 Deixe-me ir em frente e dizer "jogar miado de som." 926 00:42:03,010 --> 00:42:06,620 Mas eu não quero que isso seja muito chato, então deixe-me pegar neste bloco, 927 00:42:06,620 --> 00:42:09,090 "Espere um segundo", e aviso prévio não há mais espaço para isso. 928 00:42:09,090 --> 00:42:11,310 Mas se você for perto o suficiente, ele quer ir para lá. 929 00:42:11,310 --> 00:42:14,100 Então, eu deixo ir e vai crescer para encher o bloco. 930 00:42:14,100 --> 00:42:15,932 Então, agora, este é um loop. 931 00:42:15,932 --> 00:42:16,432 [Miando] 932 00:42:16,432 --> 00:42:18,473 DAVID J. MALAN: Eu sou literalmente fazer isso para sempre. 933 00:42:18,473 --> 00:42:19,360 Uma e outra vez. 934 00:42:19,360 --> 00:42:21,510 Isso não é apenas som natural. 935 00:42:21,510 --> 00:42:24,800 Deixe-me ir em frente e mudar esta não de um segundo, a dois segundo 936 00:42:24,800 --> 00:42:25,854 e pressione Enter. 937 00:42:25,854 --> 00:42:28,770 E o que é agradável sobre Scratch é que você pode programar de forma interativa. 938 00:42:28,770 --> 00:42:32,450 Faça uma mudança, talvez tecle Enter ou jogar de novo, e ele vai continuar. 939 00:42:32,450 --> 00:42:34,962 Bem, agora por que não podemos fazer algo um pouco mais bonito? 940 00:42:34,962 --> 00:42:39,680 Ao invés de fazer tudo a partir do zero, deixe-me ir em frente e abrir um avanço 941 00:42:39,680 --> 00:42:43,180 fez um, que eu pré-cozido, chamado de "acariciar o gato." 942 00:42:43,180 --> 00:42:44,920 E nós vamos postar todos esses arquivos on-line, 943 00:42:44,920 --> 00:42:48,464 e conjunto de problemas de zero irá dizer-lhe como acessá-los e abri-los. 944 00:42:48,464 --> 00:42:49,880 E note, isso é muito simples. 945 00:42:49,880 --> 00:42:53,860 Mas antes, me parece ter agarrado um bloco "para sempre", então eu tenho um loop. 946 00:42:53,860 --> 00:42:55,500 E então eu tenho um "se" condição. 947 00:42:55,500 --> 00:42:57,410 Eu tenho uma expressão booleana. 948 00:42:57,410 --> 00:43:00,100 >> Assim, em Inglês, apenas olhando para isso, especialmente se você nunca 949 00:43:00,100 --> 00:43:04,278 programado antes, apenas de forma intuitiva, o que é que isto vai fazer, este programa? 950 00:43:04,278 --> 00:43:06,910 >> [Audiência CHATTER] 951 00:43:06,910 --> 00:43:09,960 >> DAVID J. MALAN: Se você acariciar o gato, o gato vai miar, certo? 952 00:43:09,960 --> 00:43:14,560 Porque "para sempre desmarcando" é o ponteiro do mouse tocando o gato. 953 00:43:14,560 --> 00:43:17,630 Então, para ser claro, e eu não disse isso antes, todos estes quebra-cabeça 954 00:43:17,630 --> 00:43:20,750 peças eo script que nós os combinados em, 955 00:43:20,750 --> 00:43:25,510 por assim dizer, um script é sinônimo de programa, na verdade, pertence a este gato. 956 00:43:25,510 --> 00:43:30,110 E a razão porque é-- aviso como esse mesmo gato aqui é destacado, 957 00:43:30,110 --> 00:43:32,710 aqui você pode criar um segundo gato ou cão ou realmente 958 00:43:32,710 --> 00:43:33,970 qualquer coisa que você quer graficamente. 959 00:43:33,970 --> 00:43:35,900 Você pode importar algo de Photoshop, ou semelhante, 960 00:43:35,900 --> 00:43:38,300 e integrar alguma coisa se você quero fazê-lo para um projeto. 961 00:43:38,300 --> 00:43:40,174 E o que você vai encontrar, em última análise, é que você 962 00:43:40,174 --> 00:43:44,800 pode adicionar scripts, adicione quebra-cabeça peças, para caracteres individuais. 963 00:43:44,800 --> 00:43:47,210 Então, todos estes pertencem a este gato particular. 964 00:43:47,210 --> 00:43:51,770 Portanto, agora se eu ir em frente e jogar Neste programa, nada está acontecendo. 965 00:43:51,770 --> 00:43:52,970 Mas ele está sendo executado. 966 00:43:52,970 --> 00:43:56,364 O programa é neste loop para sempre, tipo de espera para que isso aconteça? 967 00:43:56,364 --> 00:43:57,230 >> [Audiência CHATTER] 968 00:43:57,230 --> 00:43:58,130 >> DAVID J. MALAN: Para acariciar o gato. 969 00:43:58,130 --> 00:43:59,800 Então, se eu mover o mouse em direção ele-- 970 00:43:59,800 --> 00:44:02,420 >> [Miando] 971 00:44:02,420 --> 00:44:04,450 >> DAVID J. MALAN: Então agora Estou acariciando o gato. 972 00:44:04,450 --> 00:44:07,330 Enquanto isso, nós podemos ter um ramo de casal. 973 00:44:07,330 --> 00:44:10,370 Deixe-me ir em frente e abrir se não acariciar o gato. 974 00:44:10,370 --> 00:44:12,160 Vamos postar essa linha também. 975 00:44:12,160 --> 00:44:16,760 Este é um pouco mais complexo, mas sem dizer 976 00:44:16,760 --> 00:44:18,780 você pode adivinhar, talvez, o que vai acontecer. 977 00:44:18,780 --> 00:44:20,160 >> [Miando] 978 00:44:20,160 --> 00:44:23,900 >> DAVID J. MALAN: Gato é miando, grand velhos tempos. 979 00:44:23,900 --> 00:44:26,690 Mas este programa é claro chamado "Não acariciar o gato," 980 00:44:26,690 --> 00:44:29,350 tão claramente, eu quero acariciar o gato. 981 00:44:29,350 --> 00:44:30,490 >> [RUJE] 982 00:44:30,490 --> 00:44:31,940 >> DAVID J. MALAN: Não acariciar o gato. 983 00:44:31,940 --> 00:44:34,230 Agora, vamos dar uma olhada em outro exemplo aqui. 984 00:44:34,230 --> 00:44:38,035 Este será chamada "Hi, Hi, Hi," por razões 985 00:44:38,035 --> 00:44:40,410 que será evidente, porque assim que eu executar este coisa-- 986 00:44:40,410 --> 00:44:41,401 >> [SEAL BARKING] 987 00:44:41,401 --> 00:44:43,942 DAVID J. MALAN: Muito fácil escrever programas de raspadinhas irritantes. 988 00:44:43,942 --> 00:44:45,300 [SEAL BARKING] 989 00:44:45,300 --> 00:44:48,540 DAVID J. MALAN: Agora não vamos em grande detalhe com todos estes, 990 00:44:48,540 --> 00:44:51,150 mas notar que há uma par de novos recursos aqui. 991 00:44:51,150 --> 00:44:55,540 Há uma variável, chamado de "mudo" e então há um monte de condições. 992 00:44:55,540 --> 00:44:57,900 E por agora, deixe-me apenas provocá-lo, dizendo: 993 00:44:57,900 --> 00:45:03,170 que se esse cara fica muito chato, Eu posso bater a barra de espaço e ele pára. 994 00:45:03,170 --> 00:45:05,880 Porque o papel a ser desempenhado pelo estes dois certificados é como se segue. 995 00:45:05,880 --> 00:45:08,510 Um deles está fazendo o latindo a cada poucos segundos. 996 00:45:08,510 --> 00:45:11,305 A outra está apenas esperando para mim para bater a barra de espaço. 997 00:45:11,305 --> 00:45:14,780 E se eu bater a barra de espaço, isso vai mudar 998 00:45:14,780 --> 00:45:18,096 o estado dessa variável, o valor desta variável, que é, aparentemente, 999 00:45:18,096 --> 00:45:20,470 chamado "silenciado" Eu não chamei algo chato como n, 1000 00:45:20,470 --> 00:45:22,370 Chamei-lhe uma palavra em Inglês, "silenciado". 1001 00:45:22,370 --> 00:45:24,740 De 1-0 ou 0-1. 1002 00:45:24,740 --> 00:45:26,830 De verdadeiro para falso ou falso para verdadeiro. 1003 00:45:26,830 --> 00:45:28,930 E para que você possa realmente ver agora, que você 1004 00:45:28,930 --> 00:45:31,720 poderia ter dois scripts, dois programas em execução ao mesmo tempo, 1005 00:45:31,720 --> 00:45:34,360 e ambos pode estar sentado em um loop fazendo alguma coisa. 1006 00:45:34,360 --> 00:45:38,067 Esperando o ser humano fazer algo como bater a barra de espaço. 1007 00:45:38,067 --> 00:45:38,650 [SEAL BARKING] 1008 00:45:38,650 --> 00:45:40,566 DAVID J. MALAN: E agora ele está a caminho de novo. 1009 00:45:40,566 --> 00:45:41,640 [SEAL BARKING] 1010 00:45:41,640 --> 00:45:45,220 DAVID J. MALAN: Então, o que mais que podemos fazer com esses exemplos? 1011 00:45:45,220 --> 00:45:50,920 Bem, vamos em frente e fazer uma exemplo, com contar carneiros. 1012 00:45:50,920 --> 00:45:59,210 Nós vamos continuar esta ao longo das linhas aqui de-- vamos abrir o exemplo ovelhas. 1013 00:45:59,210 --> 00:46:02,460 E aviso, bem como antes, este, felizmente, é um pouco menos chato. 1014 00:46:02,460 --> 00:46:06,940 Uma vez eu bati jogar aqui-- Oh não, isso é irritante. 1015 00:46:06,940 --> 00:46:10,130 Ele vai baa com alguma probabilidade. 1016 00:46:10,130 --> 00:46:11,050 Vamos jogar isso de novo. 1017 00:46:11,050 --> 00:46:15,221 >> [OVINOS BLEETING] 1018 00:46:15,221 --> 00:46:18,470 David J. MALAN: A única diferença é nós mudamos o traje, por assim dizer, 1019 00:46:18,470 --> 00:46:21,710 e vamos reduzir para metade e dizer o que esse número é real. 1020 00:46:21,710 --> 00:46:24,680 Bem, vamos seguir em frente e dar um passo adiante. 1021 00:46:24,680 --> 00:46:28,190 E deixe-me te provocar com Uma outra característica aqui. 1022 00:46:28,190 --> 00:46:31,800 Vamos em frente e abrir um programa chamado Threads. 1023 00:46:31,800 --> 00:46:36,620 Então, assim como você pode ter um sprite, tendo vários scripts, 1024 00:46:36,620 --> 00:46:41,250 você pode ter dois sprites, um pássaro em um gato, cada um com seu próprio roteiro. 1025 00:46:41,250 --> 00:46:43,976 E cada um deles pode operar simultaneamente. 1026 00:46:43,976 --> 00:46:45,980 Se você já ouviu o palavra "multithreading" 1027 00:46:45,980 --> 00:46:49,240 um computador é meio "multithreaded" ele pode fazer várias coisas ao mesmo tempo, 1028 00:46:49,240 --> 00:46:50,880 e, de fato, isso pode arranhar. 1029 00:46:50,880 --> 00:46:52,690 >> E agora notem a ave é uma espécie de idiota. 1030 00:46:52,690 --> 00:46:55,100 É só fazer as coisas de forma aleatória, saltando para fora da tela. 1031 00:46:55,100 --> 00:46:59,460 É evidente que o gato tenha sido programado ao tipo de ter que procuram capacidades 1032 00:46:59,460 --> 00:47:02,680 em casa, em que o pássaro porque ele está sempre apontando para ele. 1033 00:47:02,680 --> 00:47:06,176 Até que, finalmente, ele pega o pássaro real. 1034 00:47:06,176 --> 00:47:08,550 Então eu não vou me debruçar sobre os detalhes aqui, mas você pode tipo de 1035 00:47:08,550 --> 00:47:12,160 vislumbrar as mesmas formas, alguns "Se" condições, algumas variáveis, 1036 00:47:12,160 --> 00:47:15,740 talvez alguns loops, são em última análise, fazendo a mesma coisa. 1037 00:47:15,740 --> 00:47:18,400 >> Agora deixe-me ir em frente e abrir se algo completamente diferente, 1038 00:47:18,400 --> 00:47:20,920 para provocar alguns de vocês, particularmente aqueles mais confortável, 1039 00:47:20,920 --> 00:47:22,760 o que você pode realmente ver com isso. 1040 00:47:22,760 --> 00:47:26,080 Eu estou indo para ir em frente e abrir Botão aqui. 1041 00:47:26,080 --> 00:47:28,740 E este é um super programa simples de aparência, 1042 00:47:28,740 --> 00:47:34,190 mas veja o que acontece quando I-- Veja o que 1043 00:47:34,190 --> 00:47:39,860 acontece quando eu abrir essa versão dela, aqui no navegador, scratch.mit.edu. 1044 00:47:39,860 --> 00:47:43,460 E quando eu clicar nesse grande e vermelho botão, observe o que acontece. 1045 00:47:43,460 --> 00:47:46,110 1046 00:47:46,110 --> 00:47:47,647 Então, o que está acontecendo aqui? 1047 00:47:47,647 --> 00:47:50,480 Na verdade, há muito mais complexidade acontecendo debaixo do capô, 1048 00:47:50,480 --> 00:47:52,896 embora eu tenha implementado esta, ou, francamente, Dan Bradley 1049 00:47:52,896 --> 00:47:54,660 implementou esta tão simples. 1050 00:47:54,660 --> 00:47:59,540 Ele criou um quebra-cabeça personalizado Raspadinha parte, conhecida como uma extensão de arranhões, 1051 00:47:59,540 --> 00:48:01,300 ele chamou de alternância. 1052 00:48:01,300 --> 00:48:06,332 >> E o que faz é alternar envia uma mensagem através da internet. 1053 00:48:06,332 --> 00:48:08,290 E que a própria mensagem parece um pouco enigmática. 1054 00:48:08,290 --> 00:48:10,248 Mas isso, também, você compreender até o final do prazo. 1055 00:48:10,248 --> 00:48:14,930 A mensagem que ele está realmente enviando parece um pouco algo como isto. 1056 00:48:14,930 --> 00:48:15,921 É só texto. 1057 00:48:15,921 --> 00:48:16,420 Cryptic. 1058 00:48:16,420 --> 00:48:19,130 Você vai entender que no momento em que temos o problema de sete set. 1059 00:48:19,130 --> 00:48:22,180 É só enviar uma mensagem de texto através da internet para um servidor. 1060 00:48:22,180 --> 00:48:24,330 E esse servidor é, em última análise, conversando com essa lâmpada, que 1061 00:48:24,330 --> 00:48:27,240 tem uma daquelas lâmpadas de fantasia em que ela, em si, está falando 1062 00:48:27,240 --> 00:48:30,760 para o Wi-Fi na rede aqui, onde um dispositivo local para baixo aqui-- 1063 00:48:30,760 --> 00:48:34,400 e, em última análise, é realmente transformando essa luz ligado e desligado. 1064 00:48:34,400 --> 00:48:36,240 Mas podemos fazer mais coisas interessantes ainda. 1065 00:48:36,240 --> 00:48:38,270 Observe o que Dan também fez por nós. 1066 00:48:38,270 --> 00:48:42,210 Ele fez vários sprites, cada um dos que tem um roteiro à espera de um clique. 1067 00:48:42,210 --> 00:48:44,030 E se eu clicar em vermelho, ele fica vermelho. 1068 00:48:44,030 --> 00:48:46,780 Se eu ficar azul, ele vai azulado. 1069 00:48:46,780 --> 00:48:49,854 Verde, amarelo, laranja. 1070 00:48:49,854 --> 00:48:52,520 E tudo isso está acontecendo por vai sair para a internet, 1071 00:48:52,520 --> 00:48:54,690 recuar aqui para o lâmpada, ligar e desligar. 1072 00:48:54,690 --> 00:48:57,981 >> E se você pode acreditar ele-- e este é talvez um dos mais complexos Raspadinha 1073 00:48:57,981 --> 00:49:00,930 projetos alguém tem implemented-- ele fez isso, com justiça, em um dia. 1074 00:49:00,930 --> 00:49:04,180 E esse foi o desafio que jogou Dan quando vimos têm lâmpadas binários, 1075 00:49:04,180 --> 00:49:05,810 temos zero, como podemos combiná-los? 1076 00:49:05,810 --> 00:49:08,410 E, de fato, isso é absolutamente algo que qualquer um nesta sala 1077 00:49:08,410 --> 00:49:14,250 poderia fazer por end-- semestre é ele lâmpadas binários reimplemented usando 1078 00:49:14,250 --> 00:49:18,310 a mesma interface que era em nosso iPad na quarta-feira. 1079 00:49:18,310 --> 00:49:22,000 De modo que agora, se eu realmente clique no sinal de mais aqui, 1080 00:49:22,000 --> 00:49:25,250 nós temos um, dois, três. 1081 00:49:25,250 --> 00:49:27,550 Eu posso bater o 16 e transformar isso em um. 1082 00:49:27,550 --> 00:49:29,440 128, e assim por diante. 1083 00:49:29,440 --> 00:49:31,250 >> Agora se que por si só tem e soprado a sua mente, 1084 00:49:31,250 --> 00:49:35,680 você poderia fazer coisas muito mais acessível, não envolvendo qualquer hardware certamente. 1085 00:49:35,680 --> 00:49:38,320 Apenas as coisas na própria tela. 1086 00:49:38,320 --> 00:49:41,110 E, de fato, o que mais estudantes acabar fazendo algum tipo de jogo, 1087 00:49:41,110 --> 00:49:44,600 alguma obra artística, ou algum tipo de animação interativa. 1088 00:49:44,600 --> 00:49:47,352 E eu vou dizer uma de nossas favoritos tem sido um presente. 1089 00:49:47,352 --> 00:49:49,060 E eu pensei se nós poderia diminuir as luzes, 1090 00:49:49,060 --> 00:49:52,960 vamos dar uma olhada neste último Projecto Scratch em conclusão. 1091 00:49:52,960 --> 00:49:57,460 Mas o que você deve ter em mente, como Eu posso provocá-lo com um último detalhe, 1092 00:49:57,460 --> 00:49:59,140 seccionamento começará na próxima semana. 1093 00:49:59,140 --> 00:50:00,830 Horário de atendimento começará na próxima semana. 1094 00:50:00,830 --> 00:50:04,410 Problema zero definido será postado CS50.harvard.edu ainda hoje. 1095 00:50:04,410 --> 00:50:06,430 E você será recebido no conjunto de problemas de zero 1096 00:50:06,430 --> 00:50:10,070 a própria Zamyla Chan do CS50, que orienta a maioria do nosso passo a passo. 1097 00:50:10,070 --> 00:50:11,952 Estes são vídeos incorporados nos conjuntos de problemas 1098 00:50:11,952 --> 00:50:15,160 que vai segurar a sua mão através de um lote da configuração inicial e através de muitos 1099 00:50:15,160 --> 00:50:16,570 das possíveis decisões de design. 1100 00:50:16,570 --> 00:50:19,570 Então, se você já teve essa emoção quando pegar uma lição de casa 1101 00:50:19,570 --> 00:50:21,030 e se perguntando, por onde eu começo? 1102 00:50:21,030 --> 00:50:23,510 Ela vai ter a resposta para você. 1103 00:50:23,510 --> 00:50:27,720 E agora, um programa final de um de seus antecessores 1104 00:50:27,720 --> 00:50:30,659 em resposta à pergunta "O que a raposa diz?" 1105 00:50:30,659 --> 00:50:32,242 [MUSIC YLVIS, "O que a FOX DIZ?] 1106 00:50:32,242 --> 00:50:40,178 1107 00:50:40,178 --> 00:50:41,666 >> YLVIS: (cantando) Cão passa trama. 1108 00:50:41,666 --> 00:50:43,650 O gato vai miar. 1109 00:50:43,650 --> 00:50:47,520 Pássaro vai tweet e mouse vai chiar. 1110 00:50:47,520 --> 00:50:49,240 Cow vai moo. 1111 00:50:49,240 --> 00:50:51,690 Sapo vai coaxar. 1112 00:50:51,690 --> 00:50:54,630 E o elefante vai Toot. 1113 00:50:54,630 --> 00:50:59,040 Patos dizer charlatão e peixe ir blub. 1114 00:50:59,040 --> 00:51:07,370 E o selo vai ow ow ow, mas há um som que ninguém sabe, 1115 00:51:07,370 --> 00:51:10,330 o que é que a raposa diz? 1116 00:51:10,330 --> 00:51:11,020 E 1117 00:51:11,020 --> 00:51:12,478 >> DAVID J. MALAN: Isso é tudo para CS50. 1118 00:51:12,478 --> 00:51:15,436 Vamos vê-lo em Quebra-Dia e na segunda-feira. 1119 00:51:15,436 --> 00:51:16,424 >> [Aplausos] 1120 00:51:16,424 --> 00:51:19,882 >> [MUSIC YLVIS, "O Que Diz a FOX?"] 1121 00:51:19,882 --> 00:51:24,840 1122 00:51:24,840 --> 00:51:28,820 >> NARRADOR: E agora profundo pensamentos, por Daven Farnham. 1123 00:51:28,820 --> 00:51:31,770 1124 00:51:31,770 --> 00:51:34,570 Hoje eu fui atingido no cara com um livro de telefone. 1125 00:51:34,570 --> 00:51:38,160 Confundindo, como eu estou em casa assistindo online. 1126 00:51:38,160 --> 00:51:42,528