1 00:00:14,320 --> 00:00:17,970 Por isso, é o meu maior prazer para recebê-lo aqui hoje 2 00:00:17,970 --> 00:00:20,600 para a primeira palestra de, bem, Introdução 3 00:00:20,600 --> 00:00:22,510 a Computação e Programação. 4 00:00:22,510 --> 00:00:29,110 Também conhecida como CS50 ou bem, CPSC 100, oficialmente aqui em Yale. 5 00:00:29,110 --> 00:00:34,820 >> Portanto, não poderia estar mais animado para recebê-lo todos aqui. 6 00:00:34,820 --> 00:00:36,620 Meu nome é Patrick Rebeschini. 7 00:00:36,620 --> 00:00:39,180 Eu sou o instrutor principal para a classe. 8 00:00:39,180 --> 00:00:43,600 Eu estou aqui representando um grupo de cerca de 60 membros da equipe 9 00:00:43,600 --> 00:00:46,380 que irá trabalhar com você ao longo do semestre. 10 00:00:46,380 --> 00:00:49,040 Este número é quase 60 nós. 11 00:00:49,040 --> 00:00:52,440 No entanto, ao longo da extraordinária nível de compromissos 12 00:00:52,440 --> 00:00:56,555 que dedicou a este classe, faz CS50 da classe 13 00:00:56,555 --> 00:01:00,690 na Universidade de Yale que oferece o maior nível de apoio 14 00:01:00,690 --> 00:01:01,960 para tudo de você. 15 00:01:01,960 --> 00:01:05,940 E nós não poderíamos estar mais orgulhosos de oferecendo esta classe aqui novamente. 16 00:01:05,940 --> 00:01:11,380 >> Na verdade, como você vai experimentar, CS50 é muito mais do que uma classe. 17 00:01:11,380 --> 00:01:13,120 É uma comunidade. 18 00:01:13,120 --> 00:01:15,250 E você fará parte logo desta comunidade. 19 00:01:15,250 --> 00:01:18,730 Este é o segundo ano que Yale está oferecendo esta classe. 20 00:01:18,730 --> 00:01:21,640 Estamos construindo na extrema o sucesso do ano passado, onde 21 00:01:21,640 --> 00:01:24,340 pela primeira vez, aqui nesta universidade, 22 00:01:24,340 --> 00:01:28,930 assistente de graduação de aprendizagem foram adoptadas em salas de aula. 23 00:01:28,930 --> 00:01:32,650 Tudo começou com esta classe no ano passado. 24 00:01:32,650 --> 00:01:37,050 >> Então, como você sabe, a classe é ensinado em conjunto com a Universidade de Harvard. 25 00:01:37,050 --> 00:01:39,920 Para ensinar este curso estamos relying-- pudermos 26 00:01:39,920 --> 00:01:44,850 contar com a grande experiência de David Malan e a equipe de Harvard. 27 00:01:44,850 --> 00:01:48,930 Então David tem sido ensino CS50 para o bem, 10 anos agora. 28 00:01:48,930 --> 00:01:51,160 E todos os anos ele tem sido empurrando os limites 29 00:01:51,160 --> 00:01:54,210 e melhorando a experiência de sala de aula. 30 00:01:54,210 --> 00:01:58,940 Mais uma vez, nós não poderíamos estar mais felizes de continuar esta colaboração com eles. 31 00:01:58,940 --> 00:02:01,840 >> Na verdade, um dos a maioria das peças interessantes, 32 00:02:01,840 --> 00:02:06,560 Eu vou dizer de executar essa classe agora, tanto em Harvard e aqui em Yale, 33 00:02:06,560 --> 00:02:09,420 é o realmente incrível fertilização cruzada 34 00:02:09,420 --> 00:02:13,770 de ideias, que visa melhorar a experiência de aprendizagem para todos vocês. 35 00:02:13,770 --> 00:02:18,130 Assim, como resultado desta extensa colaboração entre os dois 36 00:02:18,130 --> 00:02:23,070 universidade, CS50 tem o orgulho de anunciar a nova versão deste ano 37 00:02:23,070 --> 00:02:24,770 com mudanças perceptíveis. 38 00:02:24,770 --> 00:02:27,580 David tudo vai nos dizer sobre eles agora. 39 00:02:27,580 --> 00:02:31,450 Então please-- este ser disse, por favor se juntar a mim 40 00:02:31,450 --> 00:02:34,220 e bem-vindo a fazer um grande aplauso 41 00:02:34,220 --> 00:02:37,290 para acolher David e equipe de Harvard aqui em Yale. 42 00:02:37,290 --> 00:02:40,032 >> [Aplausos] 43 00:02:40,032 --> 00:02:41,882 44 00:02:41,882 --> 00:02:43,247 >> DAVID MALAN: Obrigado. 45 00:02:43,247 --> 00:02:43,746 Obrigado. 46 00:02:43,746 --> 00:02:46,550 47 00:02:46,550 --> 00:02:51,400 Este é CS50, Harvard University de ea introdução da Universidade de Yale 48 00:02:51,400 --> 00:02:53,960 ao intelectual empresas de informática 49 00:02:53,960 --> 00:02:55,490 e a arte da programação. 50 00:02:55,490 --> 00:02:59,640 E o que isso significa é que este curso Em última análise, é sobre a resolução de problemas. 51 00:02:59,640 --> 00:03:01,849 Na verdade, muitos de vocês podem têm de sair do ensino médio 52 00:03:01,849 --> 00:03:04,931 ou ter passado os últimos dois anos perguntando o que alguns de seus amigos 53 00:03:04,931 --> 00:03:06,380 fez no ano passado ou em outras classes. 54 00:03:06,380 --> 00:03:08,449 E, no entanto, a realidade é, não importa o que nós 55 00:03:08,449 --> 00:03:11,740 fazer no final do dia nesta classe, ele vai ser sobre a resolução de problemas. 56 00:03:11,740 --> 00:03:14,320 >> E, como tal, talvez levá alguma tranquilidade no fato 57 00:03:14,320 --> 00:03:16,770 que 73% dos estudantes que tomar esta classe, tanto aqui 58 00:03:16,770 --> 00:03:20,235 em Yale, bem como em Harvard, nunca tomou uma classe CS antes. 59 00:03:20,235 --> 00:03:22,610 Então, se você está sentado aqui em o público hoje perguntando 60 00:03:22,610 --> 00:03:24,520 por que você está sentado aqui na audiência de hoje, 61 00:03:24,520 --> 00:03:26,300 ou talvez você só seguido juntamente com alguns amigos, 62 00:03:26,300 --> 00:03:28,299 ou talvez você tenha sido um pouco curioso sobre o que 63 00:03:28,299 --> 00:03:30,194 ciência da computação e programação é, perceber 64 00:03:30,194 --> 00:03:32,860 que a maioria de seus colegas para à esquerda e à direita de você 65 00:03:32,860 --> 00:03:35,840 são muito nessa mesma demográfica. 66 00:03:35,840 --> 00:03:38,120 >> E, de fato, se olharmos as estatísticas últimos anos 67 00:03:38,120 --> 00:03:42,760 dentro do corpo do estudante de CS50, tanto aqui e em Harvard, 58% dos alunos 68 00:03:42,760 --> 00:03:44,630 descrevem-se como menos confortável. 69 00:03:44,630 --> 00:03:46,090 9% é mais confortável. 70 00:03:46,090 --> 00:03:47,699 E, em seguida, 33% está em algum lugar no meio. 71 00:03:47,699 --> 00:03:50,240 E não há nenhuma definição formal do que estes baldes significa. 72 00:03:50,240 --> 00:03:52,335 Você meio que sabe que você é menos confortável se você estiver. 73 00:03:52,335 --> 00:03:54,840 Você está se sentindo um pouco desconfortável com talvez estar na classe. 74 00:03:54,840 --> 00:03:57,840 Você não tem certeza se um computador aula de ciências é, em última instância para você, 75 00:03:57,840 --> 00:04:00,009 e perceber que você é em muito boa companhia. 76 00:04:00,009 --> 00:04:01,800 E, de fato a classificação, ea avaliação, 77 00:04:01,800 --> 00:04:04,466 eo feedback, e tudo isso estrutura de apoio na classe 78 00:04:04,466 --> 00:04:06,550 em última análise é muito individualizada. 79 00:04:06,550 --> 00:04:09,187 Mais do que a maioria qualquer outra classe de design. 80 00:04:09,187 --> 00:04:11,520 E, de fato, o que, em última instância matérias desta classe não é 81 00:04:11,520 --> 00:04:14,180 tanto onde você termina -se em relação aos outros, 82 00:04:14,180 --> 00:04:18,070 mas onde, na semana 11 ou passado, e em relação a si mesmo na semana 83 00:04:18,070 --> 00:04:20,372 0 aqui a nossa primeira. 84 00:04:20,372 --> 00:04:21,330 Então, o que isso significa? 85 00:04:21,330 --> 00:04:24,750 Bem, isto significa aqueles de 73% de estudantes no ano passado, que nunca tinham tomado 86 00:04:24,750 --> 00:04:26,917 uma classe CS antes, pela início do semestre eles 87 00:04:26,917 --> 00:04:29,500 foram brincar em um idioma chamado de risco, que nós mesmos 88 00:04:29,500 --> 00:04:30,340 vai ver aqui hoje. 89 00:04:30,340 --> 00:04:32,190 E por a extremidade do semestre tivessem ido 90 00:04:32,190 --> 00:04:34,700 através de toda esta lista de desafios. 91 00:04:34,700 --> 00:04:36,399 Começando com uma linguagem chamada C. 92 00:04:36,399 --> 00:04:38,190 Implementação, o que é à primeira vista, indo 93 00:04:38,190 --> 00:04:41,010 a ser um pouco de um desafio para alguns, mas bastante gratificante, uma vez que 94 00:04:41,010 --> 00:04:44,510 obter Super Mario saltando cima e para baixo uma pirâmide 95 00:04:44,510 --> 00:04:47,005 implementada, ainda que, com apenas algo chamado de arte ASCII. 96 00:04:47,005 --> 00:04:49,380 Implementando última ano-- o que os alunos do último ano, em seguida, 97 00:04:49,380 --> 00:04:53,270 que depois disso foi implementar o seu cifra de César própria e cifra de Vigenère. 98 00:04:53,270 --> 00:04:55,180 Assim, algoritmos de criptografia com o qual você poderia 99 00:04:55,180 --> 00:04:58,920 informações corrida e depois desembaralhar informação para enviar mensagens secretas. 100 00:04:58,920 --> 00:05:00,010 O jogo de 15. 101 00:05:00,010 --> 00:05:02,260 Se você se lembrar de infância ou algum favor de partido, 102 00:05:02,260 --> 00:05:05,000 esse joguinho de plástico onde você se move os números para cima, baixo, esquerda e direita 103 00:05:05,000 --> 00:05:07,500 para tentar obtê-los em ordem, realmente implementar esse jogo 104 00:05:07,500 --> 00:05:09,640 e resolvendo a lógica necessária lá. 105 00:05:09,640 --> 00:05:11,640 E, então, se envolveu em forense no ano passado. 106 00:05:11,640 --> 00:05:13,810 >> Assim, por meio do semestre, estudantes que nunca tiveram 107 00:05:13,810 --> 00:05:16,130 usaram seus teclados para este fim antes, 108 00:05:16,130 --> 00:05:19,030 estavam escrevendo software para recuperar, por assim dizer, 109 00:05:19,030 --> 00:05:21,420 JPEGs ou fotografias que tínhamos acidentalmente 110 00:05:21,420 --> 00:05:24,430 excluída de um digitais cartão de memória de uma câmera. 111 00:05:24,430 --> 00:05:28,130 Recuperando mensagens secretas de dentro de uma imagem bitmap, 112 00:05:28,130 --> 00:05:30,030 e outros tais tipos de gráficos também. 113 00:05:30,030 --> 00:05:32,770 >> Em seguida, transferida para dar toda a classe um dicionário. 114 00:05:32,770 --> 00:05:36,330 Apenas um arquivo de texto muito grande com 150.000 palavras em inglês. 115 00:05:36,330 --> 00:05:39,080 E todo mundo foi contestada de alguma forma ler, por assim dizer, 116 00:05:39,080 --> 00:05:40,780 essas palavras na memória. 117 00:05:40,780 --> 00:05:42,060 Na memória do computador. 118 00:05:42,060 --> 00:05:44,310 E, em seguida, responder a perguntas da forma, esta é uma palavra? 119 00:05:44,310 --> 00:05:44,934 Será esta uma palavra? 120 00:05:44,934 --> 00:05:45,580 Será esta uma palavra? 121 00:05:45,580 --> 00:05:47,880 Realmente apenas implementando um corretor ortográfico. 122 00:05:47,880 --> 00:05:50,320 E, em seguida, desafiando uns aos a outra com uma grande board-- 123 00:05:50,320 --> 00:05:53,040 um quadro de líderes para ver quem poderia usar a menor quantidade de memória, 124 00:05:53,040 --> 00:05:56,470 na menor quantidade de tempo para na verdade, a verificação ortográfica de documentos grandes. 125 00:05:56,470 --> 00:05:59,760 >> Nós transferida de seguida, para implementar os próprio servidor web. 126 00:05:59,760 --> 00:06:04,070 Portanto, não fazer páginas web em idiomas como HTML e CSS, se você está familiarizado. 127 00:06:04,070 --> 00:06:06,360 Mas realmente implementar que o servidor 128 00:06:06,360 --> 00:06:09,260 escuta na internet para solicitações de navegadores 129 00:06:09,260 --> 00:06:11,022 e, em seguida, responder a esses pedidos. 130 00:06:11,022 --> 00:06:13,230 Em seguida, implementar a nossa própria e-comércio, como site, onde 131 00:06:13,230 --> 00:06:15,490 estudantes poderiam comprar e vender ações. 132 00:06:15,490 --> 00:06:18,590 Desenho em tempo quase real cotações de ações do Yahoo Finance. 133 00:06:18,590 --> 00:06:21,200 E permitindo que os alunos a ver como sua carteira desenvolve. 134 00:06:21,200 --> 00:06:23,570 E então, finalmente, um mash up do Google News e Google 135 00:06:23,570 --> 00:06:26,540 Mapas qual os alunos pelo prazo de termos fim 136 00:06:26,540 --> 00:06:30,110 tinha a capacidade de clicar, e rodada, e pesquisa em um mapa do Google. 137 00:06:30,110 --> 00:06:32,060 E depois ver todos os artigos de notícias que 138 00:06:32,060 --> 00:06:33,940 são proximal a essas áreas particulares. 139 00:06:33,940 --> 00:06:36,180 Então, realmente vai de zero a 60. 140 00:06:36,180 --> 00:06:39,420 >> E ao longo do caminho com o que tínhamos no ano passado chamado, adições de hackers. 141 00:06:39,420 --> 00:06:41,211 Que levantar a barra ainda mais para aqueles de vocês 142 00:06:41,211 --> 00:06:44,390 que poderia muito bem ter um bom quantidade de experiência de estar em que 9% 143 00:06:44,390 --> 00:06:45,349 de mais confortável. 144 00:06:45,349 --> 00:06:47,140 Então perceber que há um limite muito alto 145 00:06:47,140 --> 00:06:49,200 mesmo dentro daqueles desafios para os alunos 146 00:06:49,200 --> 00:06:50,660 vindo de um fundo diferente. 147 00:06:50,660 --> 00:06:52,618 Porque no final de o dia, estamos em última análise, 148 00:06:52,618 --> 00:06:54,910 focado muito simplesmente sobre este assunto. 149 00:06:54,910 --> 00:06:57,010 >> Mas o que faz este Quer dizer, a resolução de problemas? 150 00:06:57,010 --> 00:06:59,100 Então, vamos propor que nós destilar-lo como este. 151 00:06:59,100 --> 00:07:01,550 Assim, a resolução de problemas é realmente apenas este tipo de imagem. 152 00:07:01,550 --> 00:07:04,675 Então você tem entradas para algum problema, algo que você realmente quer resolver. 153 00:07:04,675 --> 00:07:07,020 O objetivo é obter resultados, uma solução para esse problema. 154 00:07:07,020 --> 00:07:09,950 E, em seguida, no meio é o que vamos chamar uma caixa preta. 155 00:07:09,950 --> 00:07:13,970 Você não precisa necessariamente saber ou mesmo importo com o que está dentro dessa caixa preta. 156 00:07:13,970 --> 00:07:16,670 Tudo o que sei é que, quando você alimenta de entrada para ele, 157 00:07:16,670 --> 00:07:19,890 você espera obter uma saída ou uma solução a partir dele. 158 00:07:19,890 --> 00:07:22,380 E enquanto hoje nós olharemos tanto em entradas e saídas, 159 00:07:22,380 --> 00:07:24,838 nós vamos longo prazo, e sobre o longo de todo o semestre, 160 00:07:24,838 --> 00:07:26,880 se concentrar no que está dentro dessa caixa. 161 00:07:26,880 --> 00:07:30,040 >> E é aí que vai mentir algo chamado algoritmos. 162 00:07:30,040 --> 00:07:33,300 Instruções passo a passo para na verdade resolução de alguns problemas. 163 00:07:33,300 --> 00:07:35,090 Mas o que é um exemplo de alguns insumos? 164 00:07:35,090 --> 00:07:37,840 Então, talvez uma coisa simples na início de cada ano escolar, alguém 165 00:07:37,840 --> 00:07:39,090 pode querer dar atendimento. 166 00:07:39,090 --> 00:07:42,030 Assim, poderíamos fazer um, dois, três, quatro, cinco, seis, 167 00:07:42,030 --> 00:07:44,010 e como eu iria manter a par de tais informações. 168 00:07:44,010 --> 00:07:46,051 Eu só pode ir um, dois, três, quatro, cinco, seis. 169 00:07:46,051 --> 00:07:47,720 E usar apenas uma espécie de um dígito. 170 00:07:47,720 --> 00:07:51,210 >> Ou eu poderia realmente gravar isso um pouco mais longo prazo. 171 00:07:51,210 --> 00:07:53,340 E como faço para representar todos os seres humanos neste quarto? 172 00:07:53,340 --> 00:07:54,900 Bem, eu poderia fazer algo assim, OK. 173 00:07:54,900 --> 00:07:56,070 Eu vejo uma pessoa. 174 00:07:56,070 --> 00:07:56,600 Tudo certo. 175 00:07:56,600 --> 00:08:01,180 Eu vejo uma outra pessoa, um terceira pessoa, e assim por diante. 176 00:08:01,180 --> 00:08:04,070 Mas ninguém conta as pessoas como este. 177 00:08:04,070 --> 00:08:06,952 Então, literalmente, a maioria de nós se estivermos mesmo indo para desenhar alguma coisa, 178 00:08:06,952 --> 00:08:08,910 são, provavelmente, indo para ir um dois três quatro, 179 00:08:08,910 --> 00:08:14,240 talvez um pouco extravagante, cinco, seis, sete, oito, nove, dez e assim por diante. 180 00:08:14,240 --> 00:08:16,960 >> E isso é realmente uma sistema chamado unário. 181 00:08:16,960 --> 00:08:20,549 Uno, como uno implicando um, onde você só tem uma letra do alfabeto. 182 00:08:20,549 --> 00:08:21,840 Você só tem esta marca hash. 183 00:08:21,840 --> 00:08:24,570 E eu, para a eficiência, acabou de desenhar estas marcas de hash, em última instância 184 00:08:24,570 --> 00:08:25,500 como linhas retas. 185 00:08:25,500 --> 00:08:27,666 Mas eu poderia ter tirado deles como pequenas figuras da vara. 186 00:08:27,666 --> 00:08:29,550 Onde representam uma pessoa, uma entrada, 187 00:08:29,550 --> 00:08:32,210 Eu apenas desenhar uma vara figura ou uma marca hash. 188 00:08:32,210 --> 00:08:33,910 Mas isso não é tudo o que expressivo. 189 00:08:33,910 --> 00:08:38,020 >> Se tudo o que tenho são essas de hash marcas, vamos figuras da vara sozinho, 190 00:08:38,020 --> 00:08:41,410 como eu poderia representar algo como o número 15? 191 00:08:41,410 --> 00:08:43,050 Ou 15 pessoas na sala? 192 00:08:43,050 --> 00:08:48,740 Eu poderia ter de fazer algo como 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 193 00:08:48,740 --> 00:08:51,270 14, 15. 194 00:08:51,270 --> 00:08:52,830 Ele só não escala muito bem. 195 00:08:52,830 --> 00:08:55,730 Como as entradas de obter grandes, nós precisa de um sistema melhor do que este. 196 00:08:55,730 --> 00:08:57,910 >> E verifica-se que o sistema que os computadores usam 197 00:08:57,910 --> 00:09:00,510 não é assim tão diferente a partir do que você e eu sabemos. 198 00:09:00,510 --> 00:09:03,301 Na verdade, a maioria das pessoas nesta sala, mesmo se você está entre os menos 199 00:09:03,301 --> 00:09:06,300 confortável, não necessariamente sabem como o seu Mac ou PC realmente funciona, 200 00:09:06,300 --> 00:09:09,810 você provavelmente pelo menos ouviu falar, que debaixo do capô são 0 e 1.. 201 00:09:09,810 --> 00:09:11,390 O chamado sistema binário. 202 00:09:11,390 --> 00:09:15,340 Então, na verdade, os computadores têm mais de apenas marcas de hash em seu vocabulário, 203 00:09:15,340 --> 00:09:17,450 mas não tanto de um vocabulário, como nós, seres humanos. 204 00:09:17,450 --> 00:09:19,210 >> Na verdade, nós, humanos, não use binário. 205 00:09:19,210 --> 00:09:21,160 Bi o que significa 2, 0 e 1. 206 00:09:21,160 --> 00:09:24,140 Mas decimal, deca significando 10, de 0 a 9. 207 00:09:24,140 --> 00:09:27,660 Portanto, temos muito mais expressiva capacidades em nosso mundo humano normal. 208 00:09:27,660 --> 00:09:31,720 Mas eu diria que estes sistemas, binário e decimal, e tudo 209 00:09:31,720 --> 00:09:35,290 entre e para além dela, estão realmente tudo muito familiar. 210 00:09:35,290 --> 00:09:39,650 Por exemplo, considere Neste exemplo aqui, 123. 211 00:09:39,650 --> 00:09:43,850 Então, isso realmente é, é claro, um número que conhecemos como 123. 212 00:09:43,850 --> 00:09:47,160 Mas tudo o que acabou de desenhar era apenas isso padrão de símbolos, glifos por assim dizer. 213 00:09:47,160 --> 00:09:49,100 Tipo de formas na placa em giz. 214 00:09:49,100 --> 00:09:52,951 >> Mas porque é que nós imediatamente e intuitivamente entender isso como 123? 215 00:09:52,951 --> 00:09:54,700 Bem, se você fosse como me na escola, 216 00:09:54,700 --> 00:09:59,920 você provavelmente aprendeu que este é o 1s coluna, isto é a coluna 10s, 217 00:09:59,920 --> 00:10:01,330 esta é a coluna 100s. 218 00:10:01,330 --> 00:10:02,860 E por que é útil? 219 00:10:02,860 --> 00:10:06,440 Bem, é simples aritmética agora fazer para começar a partir de um padrão de símbolos 220 00:10:06,440 --> 00:10:08,940 a um número entendemos intuitivamente. 221 00:10:08,940 --> 00:10:14,160 É o que, 100 vezes 1, e, em seguida, 10 vezes 2 e 1 vezes 3, 222 00:10:14,160 --> 00:10:17,860 que, naturalmente, é apenas 100, e esta é de 20, e este é três. 223 00:10:17,860 --> 00:10:19,740 E por isso, se somarmos os together-- ah. 224 00:10:19,740 --> 00:10:23,880 Então é aí que reside o tipo de raciocínio por trás porque este conjunto de símbolos 225 00:10:23,880 --> 00:10:26,550 significa algo real e numérica. 226 00:10:26,550 --> 00:10:32,030 >> Bem, os computadores fazem exatamente a mesma coisa, mas eles só podem contar tão alto quanto um. 227 00:10:32,030 --> 00:10:34,400 Considerando que eu era capaz de contar além de três. 228 00:10:34,400 --> 00:10:37,380 E, na verdade, se eu continuasse eu vou poderia ir tão alto como nove neste sistema. 229 00:10:37,380 --> 00:10:40,430 Computadores só tem zeros e os de seu alfabeto. 230 00:10:40,430 --> 00:10:41,410 >> Então, o que isso significa? 231 00:10:41,410 --> 00:10:46,900 Bem, isso significa apenas que se um computador quer representar, dizem que o número 0, 232 00:10:46,900 --> 00:10:51,300 talvez usando três de caráteres três letras do alfabeto, por assim dizer, 233 00:10:51,300 --> 00:10:53,050 que é como um computador representa 0. 234 00:10:53,050 --> 00:10:54,620 Então, nem tudo o que assustador até agora. 235 00:10:54,620 --> 00:10:56,450 É exatamente o que nós, seres humanos faria. 236 00:10:56,450 --> 00:10:59,410 E, de fato, a maioria de nós só faria ignorar os zeros à esquerda de qualquer maneira. 237 00:10:59,410 --> 00:11:01,640 >> Um computador, se quiser para armazenar o número 1, 238 00:11:01,640 --> 00:11:03,330 Acontece que vai fazer isso. 239 00:11:03,330 --> 00:11:05,630 E um computador para armazenar o número 2 não é 240 00:11:05,630 --> 00:11:09,280 vai fazer o sistema unário, que aludi anteriormente. 241 00:11:09,280 --> 00:11:11,360 É realmente vai fazer isso. 242 00:11:11,360 --> 00:11:13,570 E este é, provavelmente, onde o padrão começa 243 00:11:13,570 --> 00:11:15,570 para tornar-se menos óbvio para a maioria das pessoas. 244 00:11:15,570 --> 00:11:18,580 Isso é 2, isto é 3. 245 00:11:18,580 --> 00:11:21,600 Curiosamente, esta é agora 4. 246 00:11:21,600 --> 00:11:24,120 E agora ele realmente faz parecem ser, talvez, enigmático, 247 00:11:24,120 --> 00:11:26,762 mas não é, se considerarmos o binário realmente significa. 248 00:11:26,762 --> 00:11:28,720 Significa que você tem dois letras do seu alfabeto. 249 00:11:28,720 --> 00:11:31,940 Assim, dois caracteres possíveis para cada espaço reservado. 250 00:11:31,940 --> 00:11:35,970 >> Então isso realmente significa que estamos indo precisar de um lugar 1s ou 2s lugar, 251 00:11:35,970 --> 00:11:40,800 um lugar 4s e depois 8, e 16, 32, e 64. 252 00:11:40,800 --> 00:11:42,290 E qual é a diferença lá? 253 00:11:42,290 --> 00:11:47,150 Como estes são 1, 2, 4, 8, 16, 32, 64. 254 00:11:47,150 --> 00:11:50,690 E antes que nós tivemos 110, 100.000, 10.000. 255 00:11:50,690 --> 00:11:53,170 Qual é a semelhança lá? 256 00:11:53,170 --> 00:11:54,940 E o que é o padrão? 257 00:11:54,940 --> 00:11:55,505 Sim. 258 00:11:55,505 --> 00:11:57,380 ALUNO: potências de 2 em vez de potências de 10. 259 00:11:57,380 --> 00:11:57,660 DAVID MALAN: Yeah. 260 00:11:57,660 --> 00:11:59,290 Potências de 2 em vez de potências de 10. 261 00:11:59,290 --> 00:12:02,160 E então se eu queria manter indo, 8, 16s e assim forth-- 262 00:12:02,160 --> 00:12:05,822 mas agora se você tem este tipo de pista, agora o sistema binário 263 00:12:05,822 --> 00:12:07,280 é realmente muito simples. 264 00:12:07,280 --> 00:12:10,910 Porque é que este padrão de 0 do no mundo dos computadores 0? 265 00:12:10,910 --> 00:12:14,910 Bem porque é 4 vezes 0, 2 tempos 0, 1 vezes 0 e você começa 0. 266 00:12:14,910 --> 00:12:16,650 >> Por que este é o número 1? 267 00:12:16,650 --> 00:12:20,070 Mesmo raciocínio, mas agora nós tem um 1 na coluna 1. 268 00:12:20,070 --> 00:12:21,840 Por que isso é 2? 269 00:12:21,840 --> 00:12:24,450 Temos um 1 na coluna 2s. 270 00:12:24,450 --> 00:12:30,190 E então como eu represento dizer, o número 7 em binário? 271 00:12:30,190 --> 00:12:31,324 Diga mais alto. 272 00:12:31,324 --> 00:12:32,170 >> ALUNO: Três 1s. 273 00:12:32,170 --> 00:12:33,086 >> DAVID MALAN: Três 1s. 274 00:12:33,086 --> 00:12:37,110 Então, 1, 1, 1, porque só precisamos 4 mais 2 mais 1 me dá 7. 275 00:12:37,110 --> 00:12:37,610 Tudo certo. 276 00:12:37,610 --> 00:12:40,410 Então, a partir daí, como vamos representam 8 com 3 espaços reservados? 277 00:12:40,410 --> 00:12:43,310 278 00:12:43,310 --> 00:12:43,922 Sim. 279 00:12:43,922 --> 00:12:45,070 >> ALUNO: 1, 0, 0, 0. 280 00:12:45,070 --> 00:12:46,970 >> DAVID MALAN: Sim 1, 0, 0, 0. 281 00:12:46,970 --> 00:12:49,380 E, no entanto, talvez, eu meio de tecnicamente precisa 282 00:12:49,380 --> 00:12:52,380 para adicionar outro espaço reservado para o conselho. 283 00:12:52,380 --> 00:12:55,480 Se eu quiser para caber que eu de fato precisa fazer algo parecido com isto. 284 00:12:55,480 --> 00:12:58,990 Então, eu realmente preciso usar agora a coluna de 8s, e isso é bom. 285 00:12:58,990 --> 00:13:02,680 Mas o curioso é na computação que isso vai nos custar alguma coisa. 286 00:13:02,680 --> 00:13:04,390 Você precisa de mais memória RAM em seu computador agora. 287 00:13:04,390 --> 00:13:06,348 Você precisa de mais memória porque você precisa de algo 288 00:13:06,348 --> 00:13:09,650 físico para armazenar esse bit adicional, por assim dizer. 289 00:13:09,650 --> 00:13:10,700 dígitos binários. 290 00:13:10,700 --> 00:13:13,260 E, de fato tudo o que aconteceu aqui, como o sistema decimal, 291 00:13:13,260 --> 00:13:17,380 se continuarmos a adição de números cima e para cima e para cima, vamos para 5-6 a 7-8 292 00:13:17,380 --> 00:13:19,330 é como carregar a 1, literalmente. 293 00:13:19,330 --> 00:13:21,940 E então tudo o resto vai voltar para baixo a zero. 294 00:13:21,940 --> 00:13:25,870 >> Mas como é que vamos realmente representam estas coisas fisicamente em um computador? 295 00:13:25,870 --> 00:13:29,380 Bem, no final do dia, a única entrada física de ir para o meu computador 296 00:13:29,380 --> 00:13:33,630 aqui é o cabo de alimentação, de modo eletricidade ou elétrons da parede. 297 00:13:33,630 --> 00:13:36,920 E assim como faço para começar a partir de algo físico como que para realmente 298 00:13:36,920 --> 00:13:40,630 representando uma idéia como esta vez. 299 00:13:40,630 --> 00:13:41,930 >> Bem, o que poderíamos fazer? 300 00:13:41,930 --> 00:13:45,560 Poderíamos considerar que, tudo bem, talvez se a eletricidade está fluindo 301 00:13:45,560 --> 00:13:47,420 Eu poderia armazená-lo e segurá-lo. 302 00:13:47,420 --> 00:13:49,250 E se eu estou me segurando a alguma electricidade, 303 00:13:49,250 --> 00:13:51,700 que só vai arbitrariamente representam um 1. 304 00:13:51,700 --> 00:13:53,997 E se eu puxar o plugue e não há nada lá, 305 00:13:53,997 --> 00:13:56,330 você sabe que só vai para representar arbitrariamente a 0. 306 00:13:56,330 --> 00:13:57,700 >> Então, se algo está lá, 1. 307 00:13:57,700 --> 00:13:59,280 Se nada está lá, 0. 308 00:13:59,280 --> 00:14:01,420 Ou você pode fazer isso um pouco mais visual. 309 00:14:01,420 --> 00:14:02,704 Aqui é um 0. 310 00:14:02,704 --> 00:14:05,370 Não há nada acontecendo interessante em cerca de parte de trás do meu telefone. 311 00:14:05,370 --> 00:14:08,690 Mas se eu permitir que um pouco pouco de eletricidade flua, 312 00:14:08,690 --> 00:14:11,490 mesmo que seja um pouco claros aqui, minha lanterna continuou. 313 00:14:11,490 --> 00:14:15,840 Então, eu estou armazenar uma carga e ergo, este telefone agora representa um 1. 314 00:14:15,840 --> 00:14:17,700 Então 0 1. 315 00:14:17,700 --> 00:14:23,630 >> Assim, com um iPhone quão alto posso contar com este tipo de abordagem? 316 00:14:23,630 --> 00:14:24,490 Quero dizer a 1. 317 00:14:24,490 --> 00:14:25,900 Não é tudo o que atraente. 318 00:14:25,900 --> 00:14:27,170 Então, o que mais poderíamos fazer? 319 00:14:27,170 --> 00:14:31,180 Bem, vamos ver, tem alguém na sua telefone agora que eu poderia pedir? 320 00:14:31,180 --> 00:14:33,800 Qualquer pessoa que tenha um telefone com uma lanterna construído em? 321 00:14:33,800 --> 00:14:34,969 Posso pegar emprestado? 322 00:14:34,969 --> 00:14:36,010 Eu não preciso de desbloqueio. 323 00:14:36,010 --> 00:14:36,510 Tudo certo. 324 00:14:36,510 --> 00:14:37,150 Obrigado. 325 00:14:37,150 --> 00:14:37,780 Deixe-me pedir isso. 326 00:14:37,780 --> 00:14:38,279 Tudo certo. 327 00:14:38,279 --> 00:14:45,570 Então, se eu agora vá para cima e aqui, o que estou representando agora? 328 00:14:45,570 --> 00:14:46,070 Sim. 329 00:14:46,070 --> 00:14:49,350 Portanto, é um três porque isso é no coluna de 1s, este é na coluna 2s. 330 00:14:49,350 --> 00:14:50,480 Então 1 mais 2 é 3. 331 00:14:50,480 --> 00:14:53,410 E então se nós tentar obter realmente creative-- oh, obrigado. 332 00:14:53,410 --> 00:14:54,690 Muito preventivo. 333 00:14:54,690 --> 00:14:55,560 Tudo certo. 334 00:14:55,560 --> 00:14:57,100 Agora tenho três iPhones. 335 00:14:57,100 --> 00:14:58,810 Tudo certo. 336 00:14:58,810 --> 00:15:02,500 >> E agora isto-- eu não vou fazer mais longe do que isso. 337 00:15:02,500 --> 00:15:04,380 O que estou representando agora? 338 00:15:04,380 --> 00:15:05,090 Apenas setes. 339 00:15:05,090 --> 00:15:08,000 Mas eu precisava fisicamente mais memória neste caso. 340 00:15:08,000 --> 00:15:08,920 Mas isso é tudo o que é. 341 00:15:08,920 --> 00:15:12,870 Você pode pensar que está acontecendo on-- obrigado você-- dentro do seu telefone 342 00:15:12,870 --> 00:15:16,240 como sendo apenas um interruptor que é sendo ligada e desligada. 343 00:15:16,240 --> 00:15:18,350 >> E se você nunca ouviu falar a palavra transistor. 344 00:15:18,350 --> 00:15:21,312 Ou se você já ouviu o comercialização falar Intel dentro, 345 00:15:21,312 --> 00:15:24,270 que está falando com o tipo de hardware que está dentro do seu computador. 346 00:15:24,270 --> 00:15:26,707 Intel faz CPUs, unidades de processamento central, 347 00:15:26,707 --> 00:15:28,790 que são como os cérebros dentro do seu computador. 348 00:15:28,790 --> 00:15:30,640 E estas CPUs e coisas que eles estão conectados 349 00:15:30,640 --> 00:15:32,740 ter lotes e lotes de pequenos comutadores. 350 00:15:32,740 --> 00:15:36,440 Milhões, bilhões de switches que tanto pode ser ligado ou desligado. 351 00:15:36,440 --> 00:15:38,840 >> Então, computadores, felizmente, como os nossos Macs e PCs, 352 00:15:38,840 --> 00:15:43,830 pode contar muito maior do que 7 ou 8 porque eles têm muito mais do que três 353 00:15:43,830 --> 00:15:44,660 ou quatro bits. 354 00:15:44,660 --> 00:15:48,140 Muito mais do que o equivalente ao três lanternas que tivemos apenas. 355 00:15:48,140 --> 00:15:52,110 Mas agora isso começa a ficar muito desinteressante rapidamente. 356 00:15:52,110 --> 00:15:55,810 Se eu agora quero realmente ser capaz para fazer algo mais interessante, 357 00:15:55,810 --> 00:16:00,340 Eu quero ser capaz de saltar para algo como isto. 358 00:16:00,340 --> 00:16:03,604 >> Então ASCII, não é realmente um útil sigla, mas American Standard Code 359 00:16:03,604 --> 00:16:04,770 Information Interchange. 360 00:16:04,770 --> 00:16:07,450 Significa apenas que, alguns anos atrás, os humanos decidiram, 361 00:16:07,450 --> 00:16:10,724 Você sabe o que, nós queremos ser capazes de fazer mais com computadores do que apenas números. 362 00:16:10,724 --> 00:16:12,890 Nós não queremos que eles apenas ser calculadoras caros, 363 00:16:12,890 --> 00:16:16,730 nós gostaríamos de ser capaz de fazer coisas como processamento de texto, ainda que de forma muito simples. 364 00:16:16,730 --> 00:16:20,030 Mais tarde, tivemos de e-mail e outras mídias. 365 00:16:20,030 --> 00:16:23,700 >> E assim o mundo decidiu há alguns anos atrás de acordo com este sistema ASCII, 366 00:16:23,700 --> 00:16:24,770 Você sabe o que? 367 00:16:24,770 --> 00:16:26,970 Em certos tipos de programas a qualquer momento você 368 00:16:26,970 --> 00:16:30,649 ver o equivalente do número 65, como o padrão de bits. 369 00:16:30,649 --> 00:16:32,440 E nós poderíamos fazer o matemática aqui no quadro. 370 00:16:32,440 --> 00:16:34,450 O padrão de bits que representam 65. 371 00:16:34,450 --> 00:16:37,240 Não pense nisso como 65 em decimal. 372 00:16:37,240 --> 00:16:41,620 Pense nisso como arbitrariamente, mas globalmente, de forma consistente como a capital 373 00:16:41,620 --> 00:16:42,201 UMA. 374 00:16:42,201 --> 00:16:43,950 E então o mundo decidido, você sabe o quê? 375 00:16:43,950 --> 00:16:45,630 Vamos dar um outro padrão de bits. 376 00:16:45,630 --> 00:16:47,770 E se alguma vez ver a número 66, vamos 377 00:16:47,770 --> 00:16:50,573 assumir que esse é o de capital B. Avançando para H 378 00:16:50,573 --> 00:16:55,510 e eu, se você ver 72 ou 73, que deve ser um H e um I, respectivamente. 379 00:16:55,510 --> 00:16:57,780 E assim, desde que o conjunto mundo concorda com isso. 380 00:16:57,780 --> 00:17:01,342 De modo que quando você recebe um e-mail ou você teria um arquivo em um stick USB, 381 00:17:01,342 --> 00:17:03,800 ou algo parecido isso-- quando você vê que o padrão de bits, 382 00:17:03,800 --> 00:17:06,980 você sabe que ele deve ser este carta ou alguma outra letra. 383 00:17:06,980 --> 00:17:08,620 >> Mas é contexto específico, certo. 384 00:17:08,620 --> 00:17:12,250 Um programa de e-mail pode interpretar estas coisas como personagens, 385 00:17:12,250 --> 00:17:15,760 mas uma calculadora gráfica ou calculadora pode representar ou interpretar 386 00:17:15,760 --> 00:17:18,370 estas coisas, é claro, tal como letras. 387 00:17:18,370 --> 00:17:21,610 >> Assim, com o que disse, pouco rápida revisão. 388 00:17:21,610 --> 00:17:25,440 Este é talvez um de três caracteres e-mail que foi enviado para mim. 389 00:17:25,440 --> 00:17:27,990 Debaixo do capô está tudo em 0s e 1s, mas não me importo. 390 00:17:27,990 --> 00:17:31,580 Nós vamos começar a abstrair acima dos 0s e 1s para letras. 391 00:17:31,580 --> 00:17:36,830 E se eu ver um padrão de 0s e 1s que realmente representam 72, dica, dica, 73, 392 00:17:36,830 --> 00:17:38,866 e depois 33, qual é a mensagem? 393 00:17:38,866 --> 00:17:40,348 >> Estudante: [inaudível] 394 00:17:40,348 --> 00:17:42,639 DAVID MALAN: Então, se você pensa para trás apenas um momento atrás, HI 395 00:17:42,639 --> 00:17:47,210 foi a mensagem que eu estava tentando comunicar aqui porque H é de 72, 396 00:17:47,210 --> 00:17:50,925 I é de 73, e agora 33-- você não faria necessariamente saber isso com antecedência, 397 00:17:50,925 --> 00:17:53,800 mas acontece que se você realmente ver mais do gráfico e do sistema 398 00:17:53,800 --> 00:17:56,800 que a humanidade acordado anos atrás, é apenas um ponto de exclamação. 399 00:17:56,800 --> 00:18:01,590 E, de fato, não há um padrão de símbolos e números para cada personagem 400 00:18:01,590 --> 00:18:03,849 que você pode ter em seu teclado. 401 00:18:03,849 --> 00:18:04,389 >> Tudo certo. 402 00:18:04,389 --> 00:18:05,660 Vamos abstrato mais. 403 00:18:05,660 --> 00:18:09,380 Se não queremos apenas ter coisas como números e letras, 404 00:18:09,380 --> 00:18:11,420 nós realmente deseja implementar gráficos. 405 00:18:11,420 --> 00:18:13,351 Bem, se você já ouviu a sigla RGB. 406 00:18:13,351 --> 00:18:15,559 É uma espécie de datada agora, mas ainda é tipo de lá. 407 00:18:15,559 --> 00:18:17,380 RGB é vermelho, verde, azul. 408 00:18:17,380 --> 00:18:19,380 E é apenas um sistema de de dizer, você sabe o quê, 409 00:18:19,380 --> 00:18:21,650 vamos usar três conjuntos de bits. 410 00:18:21,650 --> 00:18:25,280 Um conjunto de 8 bits, um outro conjunto de 8 bits, e um outro conjunto de 8 bits. 411 00:18:25,280 --> 00:18:27,710 E vamos usar esses bits para armazenar o quanto nós vermelho 412 00:18:27,710 --> 00:18:31,430 quer na nossa tela, quanto verde que queremos em nossa tela, 413 00:18:31,430 --> 00:18:34,070 e quanto azul queremos em nossa tela. 414 00:18:34,070 --> 00:18:37,860 E isto significa apenas que se você ter um lot-- um número grande para o vermelho, 415 00:18:37,860 --> 00:18:39,200 isso significa que me dar um monte de vermelho. 416 00:18:39,200 --> 00:18:41,658 Se você tem um número grande para verde, dá-me um monte de verde. 417 00:18:41,658 --> 00:18:44,660 E se você tiver apenas um pouco de azul ou um pequeno número como 33, 418 00:18:44,660 --> 00:18:45,960 dá-me um pouco de azul. 419 00:18:45,960 --> 00:18:49,720 E se acontecer de você combinar os três magnitudes, por assim dizer, 420 00:18:49,720 --> 00:18:53,160 você começa isto-- você mal pode ver em o projetor aqui, mas este obscuro 421 00:18:53,160 --> 00:18:54,630 tom de amarelo ou marrom. 422 00:18:54,630 --> 00:18:58,590 >> Mas isto é dizer, usando esse padrão de 8 plus 8 plus plus 8-- 423 00:18:58,590 --> 00:19:01,710 esse padrão de 24 bits É assim que um computador faria 424 00:19:01,710 --> 00:19:06,460 armazenar esse tom de amarelo em um pontinho um pixel na tela. 425 00:19:06,460 --> 00:19:10,570 Então, nós fomos de 0s e 1s para decimal números por letras do alfabeto. 426 00:19:10,570 --> 00:19:13,680 Ou mais interessante, pontos coloridos. 427 00:19:13,680 --> 00:19:16,200 >> Bem, o que, naturalmente, em seguida, vem a seguir? 428 00:19:16,200 --> 00:19:19,040 Bem, o que é uma imagem que você ver em Facebook ou entrar em um e-mail? 429 00:19:19,040 --> 00:19:20,172 Ou semelhante? 430 00:19:20,172 --> 00:19:22,130 Qual é a definição tecnicamente de uma imagem? 431 00:19:22,130 --> 00:19:25,090 432 00:19:25,090 --> 00:19:27,710 Sim. 433 00:19:27,710 --> 00:19:31,270 O que é uma imagem composta de se olhar muito perto em sua tela? 434 00:19:31,270 --> 00:19:31,770 Sim. 435 00:19:31,770 --> 00:19:33,186 É apenas um monte de pixels. 436 00:19:33,186 --> 00:19:35,220 Na verdade, se você levar o seu laptop talvez mais tarde, 437 00:19:35,220 --> 00:19:37,180 e olhar muito de perto a ele-- dependendo 438 00:19:37,180 --> 00:19:40,370 sobre como caro o laptop é e como de alta qualidade da tela é, 439 00:19:40,370 --> 00:19:43,480 você pode muito bem ver todas os pequenos pontos na tela. 440 00:19:43,480 --> 00:19:45,890 >> E esses pontos ou pixels, que significa que há 441 00:19:45,890 --> 00:19:49,810 24 bits que representam cada pixel naquela fotografia que você vê no Facebook, 442 00:19:49,810 --> 00:19:52,049 ou que você acabou de tirar em seu iPhone recentemente. 443 00:19:52,049 --> 00:19:54,090 E então é assim que obtemos a coisas como gráficos. 444 00:19:54,090 --> 00:19:55,120 Bem, o que é um vídeo? 445 00:19:55,120 --> 00:19:58,660 Um vídeo é apenas um conjunto de gráficos voando pela tela novamente 446 00:19:58,660 --> 00:19:59,780 e novamente e novamente. 447 00:19:59,780 --> 00:20:04,080 E assim vídeos realmente, são apenas padrões de bits representando grades, linhas 448 00:20:04,080 --> 00:20:06,880 e colunas de pontos, voando a imagem da tela, 449 00:20:06,880 --> 00:20:09,240 depois de imagem, conforme a imagem, a.k.a. 450 00:20:09,240 --> 00:20:10,650 As imagens em movimento. 451 00:20:10,650 --> 00:20:12,340 Então é isso para entradas e saídas. 452 00:20:12,340 --> 00:20:14,420 >> Tudo o que temos agora é uma pressuposto de que, você 453 00:20:14,420 --> 00:20:17,190 sabe o que, se queremos um computador para representar informações, 454 00:20:17,190 --> 00:20:18,560 temos um sistema para fazê-lo. 455 00:20:18,560 --> 00:20:20,780 Nós podemos fazê-lo com 0s e 1S no final do dia. 456 00:20:20,780 --> 00:20:23,160 Mas podemos abstrair, de modo para falar, em cima do que 457 00:20:23,160 --> 00:20:25,140 de modo a representar mais coisas interessantes. 458 00:20:25,140 --> 00:20:28,790 E daqui em diante em CS50 e, em ciência da computação de modo mais geral, 459 00:20:28,790 --> 00:20:31,250 agora estamos firmes sobre os ombros de todas as pessoas que 460 00:20:31,250 --> 00:20:33,530 vieram antes de nós, que descobriu isso. 461 00:20:33,530 --> 00:20:38,170 E agora apenas supor que os computadores pode representar entradas e saídas. 462 00:20:38,170 --> 00:20:41,140 >> Mas agora vamos realmente fazer algo com eles. 463 00:20:41,140 --> 00:20:44,850 Assim, um algoritmo é apenas um conjunto de instruções, passo a passo, 464 00:20:44,850 --> 00:20:46,340 para resolver algum problema. 465 00:20:46,340 --> 00:20:48,730 E o que pode um problema de tal ser. 466 00:20:48,730 --> 00:20:52,440 Portanto, esta é uma velha escola tecnologia, um livro de telefone. 467 00:20:52,440 --> 00:20:55,534 E dentro de um livro de telefone é um Toda monte de nomes e números. 468 00:20:55,534 --> 00:20:57,700 E esses nomes são geralmente classificados em ordem alfabética. 469 00:20:57,700 --> 00:21:01,310 >> Então, se eu queria encontrar alguém em este livro telefone como Mike Smith, 470 00:21:01,310 --> 00:21:02,930 o que é um ser humano típico vai fazer? 471 00:21:02,930 --> 00:21:06,000 Bem, você pode simplesmente abrir -lo, olhar para a primeira página. 472 00:21:06,000 --> 00:21:07,390 Não vejo Mike Smith. 473 00:21:07,390 --> 00:21:09,740 Vire-se para a segunda página, Não vejo Mike Smith. 474 00:21:09,740 --> 00:21:11,830 E apenas manter indo e indo. 475 00:21:11,830 --> 00:21:14,397 esta abordagem passo a passo é a correta? 476 00:21:14,397 --> 00:21:17,380 477 00:21:17,380 --> 00:21:18,310 Sim. 478 00:21:18,310 --> 00:21:20,080 É uma espécie de idiota, certo. 479 00:21:20,080 --> 00:21:21,646 É ineficiente, certo. 480 00:21:21,646 --> 00:21:24,520 Porque vai demorar uma eternidade para chegar a Mike, mas ele está correto. 481 00:21:24,520 --> 00:21:26,620 Porque se Mike é aqui I vai realmente encontrá-lo. 482 00:21:26,620 --> 00:21:29,030 >> Assim que é um pouco mais pessoa razoável vai fazer? 483 00:21:29,030 --> 00:21:32,180 Eles ainda podem abrir para a frente, e talvez voar através do livro de telefone 484 00:21:32,180 --> 00:21:33,250 duas páginas de cada vez. 485 00:21:33,250 --> 00:21:34,840 Dois, quatro, seis, oito. 486 00:21:34,840 --> 00:21:36,830 Eu não posso realmente fisicamente fazê-lo muito bem. 487 00:21:36,830 --> 00:21:39,560 Mas, em teoria, este deve ser duas vezes mais rápido, duas páginas de cada vez. 488 00:21:39,560 --> 00:21:41,152 Este algoritmo é correto? 489 00:21:41,152 --> 00:21:43,252 >> Estudante: [inaudível] 490 00:21:43,252 --> 00:21:44,460 DAVID MALAN: Não necessariamente. 491 00:21:44,460 --> 00:21:44,960 Boa. 492 00:21:44,960 --> 00:21:46,112 Por que essa advertência? 493 00:21:46,112 --> 00:21:50,020 >> ALUNO: Porque ele poderia estar em uma das páginas que você está saltando. 494 00:21:50,020 --> 00:21:50,770 DAVID MALAN: Yeah. 495 00:21:50,770 --> 00:21:52,260 Assim, mesmo se eu ficar cada vez mais perto. 496 00:21:52,260 --> 00:21:56,150 E se ele é apenas acidentalmente, por má sorte, ensanduichada entre as duas páginas 497 00:21:56,150 --> 00:21:57,290 que eu estou voando sobre? 498 00:21:57,290 --> 00:21:59,920 499 00:21:59,920 --> 00:22:01,730 Então, precisamos de uma correção para isso. 500 00:22:01,730 --> 00:22:03,590 Nós realmente precisa em seguida, dizer, espere um minuto, 501 00:22:03,590 --> 00:22:06,240 talvez se nós ir longe demais, talvez se bater a seção de T, 502 00:22:06,240 --> 00:22:09,670 para T vem depois de Smith, então devemos pelo menos o dobro de volta pelo menos uma página. 503 00:22:09,670 --> 00:22:12,630 Assim fixável, mas há Há um problema condicional. 504 00:22:12,630 --> 00:22:16,159 Portanto, é duas vezes mais rápido, mas você pode tem que dobrar para trás apenas um pouco. 505 00:22:16,159 --> 00:22:19,200 Mas ninguém em seu quarto, mesmo se você realmente não usar telefone livros mais, 506 00:22:19,200 --> 00:22:20,740 vai começar no início. 507 00:22:20,740 --> 00:22:23,317 O que você vai fazer à procura de Mike Smith? 508 00:22:23,317 --> 00:22:24,900 Você está indo para ir mais ou menos para o S do. 509 00:22:24,900 --> 00:22:26,820 Ou se você realmente não tem a folha de fraude no papel, 510 00:22:26,820 --> 00:22:28,365 você está indo para ir, pelo menos, aproximadamente ao meio. 511 00:22:28,365 --> 00:22:30,220 E certamente não para a capa do livro. 512 00:22:30,220 --> 00:22:31,130 Você vai olhar para baixo. 513 00:22:31,130 --> 00:22:33,770 E matematicamente você provavelmente vai ver a secção M, que 514 00:22:33,770 --> 00:22:34,890 é mais ou menos no meio. 515 00:22:34,890 --> 00:22:36,848 E então você vai perceber, o que é verdade? 516 00:22:36,848 --> 00:22:37,968 Onde está Mike? 517 00:22:37,968 --> 00:22:39,170 >> Estudante: [inaudível] 518 00:22:39,170 --> 00:22:39,920 DAVID MALAN: Yeah. 519 00:22:39,920 --> 00:22:41,530 Então, ele está deste lado. 520 00:22:41,530 --> 00:22:42,710 E então o que você pode fazer? 521 00:22:42,710 --> 00:22:48,870 Bem, figurativa e literalmente você pode rasgar o problema pela metade uma vez? 522 00:22:48,870 --> 00:22:54,260 E depois saber que você pode jogar esta metade do problema de distância. 523 00:22:54,260 --> 00:22:58,170 E agora ficamos com fundamentalmente o mesmo problema, mas é metade do tamanho. 524 00:22:58,170 --> 00:22:59,920 E agora, qual é a um conjunto de instruções? 525 00:22:59,920 --> 00:23:01,753 Qual é o algoritmo para encontrar Mike Smith? 526 00:23:01,753 --> 00:23:03,030 É exatamente a mesma coisa. 527 00:23:03,030 --> 00:23:05,750 >> Agora, este passa a ser o M secção e esta é a secção Z, 528 00:23:05,750 --> 00:23:08,650 mas fundamental fórmula é ainda o mesmo. 529 00:23:08,650 --> 00:23:10,800 Ir aproximadamente ao meio, olhar para baixo, oh, danado. 530 00:23:10,800 --> 00:23:13,160 Agora estou na seção T, Eu tenho ido longe demais. 531 00:23:13,160 --> 00:23:16,640 Mas também aqui pode você aplicar a mesma lógica. 532 00:23:16,640 --> 00:23:19,189 metade lance do problema de distância e agora estamos 533 00:23:19,189 --> 00:23:21,230 deixou com um problema que é um quarto do tamanho. 534 00:23:21,230 --> 00:23:28,140 E podemos repetir, e podemos repetir, e podemos repetir até que, teoricamente, 535 00:23:28,140 --> 00:23:32,190 há apenas uma página à esquerda na que Mike é ou não é. 536 00:23:32,190 --> 00:23:34,014 >> Assim que é tão poderosa sobre esta idéia? 537 00:23:34,014 --> 00:23:35,680 Quero dizer, afinal, é bastante intuitiva. 538 00:23:35,680 --> 00:23:37,390 Ninguém vai começar no início do livro de telefone 539 00:23:37,390 --> 00:23:39,320 e virar 1.000 páginas para encontrar Mike Smith. 540 00:23:39,320 --> 00:23:42,319 A maioria das pessoas nesta sala vai para fazer mais ou menos esse tipo de algoritmo 541 00:23:42,319 --> 00:23:43,220 poupar para o rasgar. 542 00:23:43,220 --> 00:23:45,480 >> E então por que fazemos isso? 543 00:23:45,480 --> 00:23:47,810 Bem, considere a eficiência. 544 00:23:47,810 --> 00:23:51,500 Considere apenas quanto melhor este algoritmo foi por dividi-lo 545 00:23:51,500 --> 00:23:52,890 em suas partes componentes. 546 00:23:52,890 --> 00:23:53,980 Então o que eu primeiro fazer? 547 00:23:53,980 --> 00:23:55,389 Peguei o livro de telefone. 548 00:23:55,389 --> 00:23:57,180 E um cientista da computação, e um programador, 549 00:23:57,180 --> 00:24:00,090 de modo mais geral que parece, vai para começar a contar tudo a 0. 550 00:24:00,090 --> 00:24:00,610 >> Por quê? 551 00:24:00,610 --> 00:24:03,240 Bem, é um pouco estranho que nós, humanos, contam, em geral, 552 00:24:03,240 --> 00:24:04,400 a partir de um. 553 00:24:04,400 --> 00:24:08,110 Porque o que é o menor número podemos representam claramente baseado 554 00:24:08,110 --> 00:24:09,930 mesmo em nossa matemática antiga escola primária? 555 00:24:09,930 --> 00:24:12,400 Bem, foi 0, se é em decimal ou binário. 556 00:24:12,400 --> 00:24:14,900 E assim que você vai ver no mundo da computação e programação, 557 00:24:14,900 --> 00:24:17,620 especificamente, começamos contando tudo, desde 0. 558 00:24:17,620 --> 00:24:19,690 >> Então eu peguei o livro etapa telefone 0. 559 00:24:19,690 --> 00:24:21,924 Eu estou indo para abrir a meio do livro de telefone. 560 00:24:21,924 --> 00:24:23,840 E isso é de fato um expressão do que eu fiz. 561 00:24:23,840 --> 00:24:25,900 E então o segundo passo foi olhar para os nomes. 562 00:24:25,900 --> 00:24:29,110 Etapa três é um pouco diferente conceptualmente. 563 00:24:29,110 --> 00:24:30,600 Eu estou me perguntando uma pergunta. 564 00:24:30,600 --> 00:24:33,610 Se Smith está entre os nomes, Vou tomar uma decisão. 565 00:24:33,610 --> 00:24:36,550 Se ele está entre os nomes, então eu vou ligar para Mike. 566 00:24:36,550 --> 00:24:39,590 E eu vou tomar uma decisão com base nessa informação. 567 00:24:39,590 --> 00:24:44,100 >> No entanto, se não, se é Smith anteriormente no livro para a esquerda, 568 00:24:44,100 --> 00:24:48,200 Vou abrir para o meio da metade esquerda do livro. 569 00:24:48,200 --> 00:24:51,674 E então aqui está a inteligência, Vou voltar para a etapa dois. 570 00:24:51,674 --> 00:24:53,590 Vou tipo de estar em meus próprios ombros 571 00:24:53,590 --> 00:24:55,110 e apenas repetir o passado trabalho que fiz. 572 00:24:55,110 --> 00:24:58,062 Mas o trabalho que me resta é menos, e menos, e menos. 573 00:24:58,062 --> 00:24:59,270 Mas ele ainda está indo para o trabalho. 574 00:24:59,270 --> 00:25:02,110 Mas se Mike, em vez disso, é mais tarde no livro para a direita, 575 00:25:02,110 --> 00:25:04,980 Vou abrir para o meio da metade direita do livro, 576 00:25:04,980 --> 00:25:07,240 em seguida, voltar para a etapa dois. 577 00:25:07,240 --> 00:25:09,330 >> Mas há realmente um quarto cenário. 578 00:25:09,330 --> 00:25:13,336 Mike, quer aqui, ou aqui, ou aqui, ou- 579 00:25:13,336 --> 00:25:14,152 >> ALUNO: Não há. 580 00:25:14,152 --> 00:25:15,110 DAVID MALAN: Não há. 581 00:25:15,110 --> 00:25:18,580 E, de fato, se não prevemos Neste quarto e último cenário 582 00:25:18,580 --> 00:25:21,510 nosso programa pode ser buggy ou falho de alguma forma. 583 00:25:21,510 --> 00:25:25,020 Else, saia no caso em que não encontramos Mike em tudo. 584 00:25:25,020 --> 00:25:27,720 E, de fato, se você observar sempre o computador de suspensão, ou todos 585 00:25:27,720 --> 00:25:30,490 de uma palavra súbita ou alguma outra programa só é encerrado inesperadamente, 586 00:25:30,490 --> 00:25:32,614 e às vezes te erro mensagem é literalmente isso. 587 00:25:32,614 --> 00:25:34,070 Este programa fechar inesperadamente. 588 00:25:34,070 --> 00:25:35,570 Pode ser para qualquer número de razões. 589 00:25:35,570 --> 00:25:38,120 Mas às vezes é algo tão simples como isso. 590 00:25:38,120 --> 00:25:40,440 O programador humano que escreveu que software 591 00:25:40,440 --> 00:25:43,610 não percebeu que, oh, há uma diante coisa que pode realmente acontecer. 592 00:25:43,610 --> 00:25:46,480 E se você não escrever código para capturar esse quarto cenário, 593 00:25:46,480 --> 00:25:51,342 é realmente inesperado, por vezes, o que o computador pode realmente fazer. 594 00:25:51,342 --> 00:25:53,050 Agora vamos chamar um Algumas dessas coisas. 595 00:25:53,050 --> 00:25:55,465 Então em amarelo aqui, eu têm termos realçados 596 00:25:55,465 --> 00:25:57,590 que, doravante, nós somos apenas vai chamar funções. 597 00:25:57,590 --> 00:26:00,700 Funções no mundo da programação são como ações, 598 00:26:00,700 --> 00:26:01,850 declarações de ações. 599 00:26:01,850 --> 00:26:05,720 Então pegue, aberto a, olhar a, chamada, aberto, aberto, saia. 600 00:26:05,720 --> 00:26:09,350 Isso é uma função, um procedimento, uma ação, qualquer número de sinônimos 601 00:26:09,350 --> 00:26:10,184 iria funcionar tão bem. 602 00:26:10,184 --> 00:26:11,850 Agora, quais são essas coisas agora, em amarelo? 603 00:26:11,850 --> 00:26:14,210 Se outra pessoa, se mais, se mais, estes são o que 604 00:26:14,210 --> 00:26:16,500 vamos chamá condições em programação, 605 00:26:16,500 --> 00:26:19,270 ou filiais, a decisão aponta, se você quiser. 606 00:26:19,270 --> 00:26:22,759 Mas como você sabe qual garfo no caminho a tomar, por assim dizer? 607 00:26:22,759 --> 00:26:24,550 Precisamos destacar os termos à direita 608 00:26:24,550 --> 00:26:27,570 lá, as quais são sim, não há dúvida. 609 00:26:27,570 --> 00:26:29,040 Estes verdadeiros falsos perguntas. 610 00:26:29,040 --> 00:26:30,880 Smith entre os nomes? 611 00:26:30,880 --> 00:26:32,190 Smith no início do livro? 612 00:26:32,190 --> 00:26:33,260 Smith mais tarde no livro? 613 00:26:33,260 --> 00:26:35,490 Estas são perguntas para qual há um sim, ou não, 614 00:26:35,490 --> 00:26:42,110 ou equivalentemente verdadeira ou falsa, ou equivalentemente, um ou zero resposta. 615 00:26:42,110 --> 00:26:44,260 >> E, entretanto, há apenas uma última peça. 616 00:26:44,260 --> 00:26:45,940 Este aqui tem que tipo de efeito? 617 00:26:45,940 --> 00:26:48,230 Querendo ou não você programar antes, como você 618 00:26:48,230 --> 00:26:51,030 descrever o passo sete e 10 estão fazendo? 619 00:26:51,030 --> 00:26:54,110 620 00:26:54,110 --> 00:26:55,027 O que você disse? 621 00:26:55,027 --> 00:26:56,110 ALUNO: Um passo recursiva. 622 00:26:56,110 --> 00:26:56,980 DAVID MALAN: Um passo recursiva. 623 00:26:56,980 --> 00:26:58,000 Sim, essencialmente. 624 00:26:58,000 --> 00:27:00,384 É tecnicamente iterativa aqui se você está familiarizado. 625 00:27:00,384 --> 00:27:01,550 Mas vamos voltar a isso. 626 00:27:01,550 --> 00:27:03,930 Mas está fazendo algo claramente. 627 00:27:03,930 --> 00:27:06,370 Novamente, é induzir uma ciclo, um ciclo, certo. 628 00:27:06,370 --> 00:27:08,770 Você vai literalmente de volta a alguma etapa anterior. 629 00:27:08,770 --> 00:27:12,592 E assim, de fato, isso vai implementar algum tipo de ciclo. 630 00:27:12,592 --> 00:27:15,050 Mas você não vai conseguir preso neste sem parar, certo. 631 00:27:15,050 --> 00:27:19,290 Porque se você está constantemente verificando é Mike aqui, ou para a esquerda, ou não aqui, 632 00:27:19,290 --> 00:27:21,360 eventualmente, ele não vai estar lá. 633 00:27:21,360 --> 00:27:24,590 E você pode simplesmente parar completamente como por essa última linha. 634 00:27:24,590 --> 00:27:25,834 >> Então é isso para vocabulário. 635 00:27:25,834 --> 00:27:28,250 E isso era o que faria geralmente chamar código pseudocódigo. 636 00:27:28,250 --> 00:27:29,570 Não é uma linguagem real. 637 00:27:29,570 --> 00:27:32,405 É apenas muito concisa Inglês, mas ele se comunica o ponto. 638 00:27:32,405 --> 00:27:33,780 Não há nenhuma estrutura formal aqui. 639 00:27:33,780 --> 00:27:35,738 Você só usá-lo de alguns palavras, mas palavras como claros 640 00:27:35,738 --> 00:27:37,870 como você pode se comunicar a sua ideia. 641 00:27:37,870 --> 00:27:40,580 >> Agora, como boa é que o algoritmo e quanto melhor é? 642 00:27:40,580 --> 00:27:43,570 Bem, não temos para entrar no especificidades de números ou nada 643 00:27:43,570 --> 00:27:44,069 como aquilo. 644 00:27:44,069 --> 00:27:46,300 Mas podemos olhar para o moldar desta solução. 645 00:27:46,300 --> 00:27:50,194 Então, se nós apenas desenhar alguma trama xy aqui no eixo horizontal aqui. 646 00:27:50,194 --> 00:27:51,860 Vamos chamar o tamanho do problema. 647 00:27:51,860 --> 00:27:55,540 E um cientista da computação seria normalmente usam n como a variável aqui. 648 00:27:55,540 --> 00:27:59,690 Então n páginas, ou n pessoas na sala, ou seja o que for que você está tentando contar. 649 00:27:59,690 --> 00:28:03,039 >> E, em seguida, sobre o eixo vertical no esquerda, que seria o tempo para resolver. 650 00:28:03,039 --> 00:28:05,330 Então, quantos segundos o faz leve-me para encontrar Mike Smith? 651 00:28:05,330 --> 00:28:06,621 Ou quantos passos que é preciso? 652 00:28:06,621 --> 00:28:08,100 Quantas voltas página leva? 653 00:28:08,100 --> 00:28:11,370 Então, isso é quanto custa me no tempo para resolver um problema. 654 00:28:11,370 --> 00:28:15,030 E nós pode desenhar o primeiro algoritmos de inclinação, se quiserem, 655 00:28:15,030 --> 00:28:16,910 como apenas esta linha reta em vermelho. 656 00:28:16,910 --> 00:28:18,450 E eu vou chamá-lo n. 657 00:28:18,450 --> 00:28:19,117 >> Por que n? 658 00:28:19,117 --> 00:28:20,950 Por que é apenas um presente para um relacionamento? 659 00:28:20,950 --> 00:28:22,700 Bem, se Verizon ou qualquer que seja empresa de telefonia 660 00:28:22,700 --> 00:28:25,130 acrescenta mais uma página para o livro de telefone no próximo ano, 661 00:28:25,130 --> 00:28:28,370 que pode empurrar um Mike mais um passo mais perto do fim, 662 00:28:28,370 --> 00:28:29,950 dependendo de onde essa página é. 663 00:28:29,950 --> 00:28:32,380 E assim o efeito só poderia a de adicionar mais um segundo. 664 00:28:32,380 --> 00:28:33,520 Ou mais uma página virada. 665 00:28:33,520 --> 00:28:34,970 Uma proporção 00:59. 666 00:28:34,970 --> 00:28:37,410 >> Em contrapartida, o segundo algoritmo. 667 00:28:37,410 --> 00:28:41,406 Quanto mais rápido foi que intuitivamente? 668 00:28:41,406 --> 00:28:42,780 Onde eu fui duas páginas de cada vez? 669 00:28:42,780 --> 00:28:43,664 Sim. 670 00:28:43,664 --> 00:28:44,497 >> Estudante: [inaudível] 671 00:28:44,497 --> 00:28:47,255 672 00:28:47,255 --> 00:28:48,080 >> DAVID MALAN: Yeah. 673 00:28:48,080 --> 00:28:49,220 Por isso, vai ser duas vezes mais rápido. 674 00:28:49,220 --> 00:28:51,344 E nós gostaria de chamar isso aqui dependendo da escala. 675 00:28:51,344 --> 00:28:54,220 Ainda é uma linha reta, mas menor do que a linha vermelha. 676 00:28:54,220 --> 00:28:56,410 Porque, por algum número de páginas, se leva 677 00:28:56,410 --> 00:28:58,360 isto muitas etapas com o primeiro algoritmo, 678 00:28:58,360 --> 00:29:00,570 que vai levá-lo a metade como muitos passos com o segundo. 679 00:29:00,570 --> 00:29:02,770 E assim, a linha amarela descrevendo o segundo algoritmo 680 00:29:02,770 --> 00:29:03,990 é apenas vai ser abaixo dela. 681 00:29:03,990 --> 00:29:07,250 >> Mas o que é realmente poderoso é pensar sobre a terceira e última, 682 00:29:07,250 --> 00:29:10,480 e surpreendentemente mais intuitiva algoritmo, que tem esta forma. 683 00:29:10,480 --> 00:29:12,720 Tecnicamente nós chamaríamos esta uma curva logarítmica. 684 00:29:12,720 --> 00:29:14,309 Log base 2 de n neste caso. 685 00:29:14,309 --> 00:29:15,600 Mas isso realmente não importa. 686 00:29:15,600 --> 00:29:19,140 O que importa realmente é o fundamental forma diferente que tem. 687 00:29:19,140 --> 00:29:22,810 E você pode considerar o quão muito mais curto esta linha realmente 688 00:29:22,810 --> 00:29:24,620 é no longo prazo. 689 00:29:24,620 --> 00:29:25,870 Ele está constantemente a aumentar. 690 00:29:25,870 --> 00:29:27,620 Ele não achatar perfeitamente. 691 00:29:27,620 --> 00:29:34,030 Mas ela cresce sempre muito mais lentamente como o problema se torna maior e maior. 692 00:29:34,030 --> 00:29:36,710 E você pode pensar desta way-- se Verizon não apenas 693 00:29:36,710 --> 00:29:40,410 adicionar uma página no próximo ano, mas duplos o número de páginas do livro de telefone, 694 00:29:40,410 --> 00:29:42,740 o primeiro algoritmo pode tomar o dobro de passos. 695 00:29:42,740 --> 00:29:45,360 Se é de 1.000 páginas esta ano, 2.000 páginas no próximo ano, 696 00:29:45,360 --> 00:29:47,180 Mike pode ser que muito mais longe. 697 00:29:47,180 --> 00:29:49,380 Portanto, é de 1.000 medidas adicionais para encontrá-lo. 698 00:29:49,380 --> 00:29:51,610 O segundo algoritmo pode ser apenas mais 500 699 00:29:51,610 --> 00:29:55,490 passos para encontrá-lo porque mais uma vez, Estou voando por ele dois de cada vez. 700 00:29:55,490 --> 00:29:56,950 >> Mas o que sobre o terceiro algoritmo? 701 00:29:56,950 --> 00:29:59,010 Se Verizon duplica a tamanho da lista telefónica 702 00:29:59,010 --> 00:30:02,620 próximo ano de 1000 a 2000 páginas, quantos mais passos 703 00:30:02,620 --> 00:30:05,540 é o meu terceiro algoritmo vai levar? 704 00:30:05,540 --> 00:30:06,630 Sim, é apenas um. 705 00:30:06,630 --> 00:30:08,600 E essa é a idéia poderosa. 706 00:30:08,600 --> 00:30:12,780 Você pode tomar 1.000 páginas mordida fora desse problema de uma só vez. 707 00:30:12,780 --> 00:30:14,510 E agora, se você considerar um cenário de bobo, 708 00:30:14,510 --> 00:30:17,320 mas que tipo de fala ao poder deste tipo de intuition-- 709 00:30:17,320 --> 00:30:21,494 Se um livro de telefone teve, como, quatro bilhões páginas, se sente como um problema muito grande. 710 00:30:21,494 --> 00:30:23,410 E, de fato, pode me levar de quatro bilhões de page 711 00:30:23,410 --> 00:30:26,549 volta-se para encontrar Mike Smith naquela caso com o primeiro algoritmo. 712 00:30:26,549 --> 00:30:28,840 Mas quantos passos seria ele tomar no terceiro algoritmo 713 00:30:28,840 --> 00:30:31,585 para encontrar Mike entre os quatro bilhão de pedaços de papel? 714 00:30:31,585 --> 00:30:34,865 715 00:30:34,865 --> 00:30:36,240 Então, quatro bilhões de você rasga ao meio. 716 00:30:36,240 --> 00:30:37,220 Você obter dois bilhões. 717 00:30:37,220 --> 00:30:42,810 Em seguida, um bilhão, em seguida, 500 milhões, 250 milhões, 125 milhões-- mas 718 00:30:42,810 --> 00:30:44,780 Parece que este é vai demorar um pouco. 719 00:30:44,780 --> 00:30:47,340 Eu poderia precisar de 32 dedos contar-se que a alta. 720 00:30:47,340 --> 00:30:51,340 Mas é de facto como poucos como 32 lágrimas página. 721 00:30:51,340 --> 00:30:54,060 Você pode ir de quatro bilhões para uma página divisória 722 00:30:54,060 --> 00:30:57,030 o número original de Páginas na metade 32 vezes 723 00:30:57,030 --> 00:30:59,290 até que você é deixado com só que uma única página. 724 00:30:59,290 --> 00:31:01,320 >> Agora, é claro, eu estou enganando aqui. 725 00:31:01,320 --> 00:31:06,470 Não é que estamos apenas sendo sorte de estúpida inteiramente com os dois primeiros 726 00:31:06,470 --> 00:31:07,470 algoritmos. 727 00:31:07,470 --> 00:31:11,500 Eu estou traindo de alguma forma, ou realmente estou aproveitando uma suposição. 728 00:31:11,500 --> 00:31:15,610 O que era verdade sobre o livro de telefone na sua forma original que permitiu 729 00:31:15,610 --> 00:31:17,450 eu mesmo usar esse terceiro algoritmo? 730 00:31:17,450 --> 00:31:18,110 Sim? 731 00:31:18,110 --> 00:31:19,360 AUDIÊNCIA: Foi em ordem alfabética. 732 00:31:19,360 --> 00:31:21,130 DAVID MALAN: Foi alfabetizado, certo? 733 00:31:21,130 --> 00:31:23,500 Se fosse apenas de forma aleatória fim, isto é um desperdício 734 00:31:23,500 --> 00:31:24,880 de tempo, toda essa conversa. 735 00:31:24,880 --> 00:31:27,500 Eu tenho que olhar para cada A página se estiver em ordem aleatória 736 00:31:27,500 --> 00:31:30,350 para encontrar Mike Smith antes de eu pode-se concluir que ele está lá ou não. 737 00:31:30,350 --> 00:31:32,880 E assim o que canto ter cortado é que eu tenho 738 00:31:32,880 --> 00:31:35,752 que assumiu outra pessoa em Neste caso fez o trabalho para mim. 739 00:31:35,752 --> 00:31:38,460 E para que, finalmente, convida a questão, bem, espere um minuto. 740 00:31:38,460 --> 00:31:41,284 Como você classificar 1.000 páginas de nomes e números? 741 00:31:41,284 --> 00:31:43,200 Isso é realmente uma pessoa diferente problema, algo 742 00:31:43,200 --> 00:31:44,574 vamos voltar no futuro. 743 00:31:44,574 --> 00:31:48,130 Mas quando você pensa sobre sites como Facebook e Google para o Gmail 744 00:31:48,130 --> 00:31:50,450 e coisas como o do Google índices próprios de busca, 745 00:31:50,450 --> 00:31:53,800 quando você tem milhões ou bilhões de pedaços de dados armazenados nos dias de hoje, 746 00:31:53,800 --> 00:31:56,660 searching-- e para não mencionar classificando essas problems-- 747 00:31:56,660 --> 00:31:59,450 é em última análise, um desafio em si mesmo. 748 00:31:59,450 --> 00:32:02,250 E, de fato, este é, então, apenas um desses desafios 749 00:32:02,250 --> 00:32:03,460 que vamos estar olhando. 750 00:32:03,460 --> 00:32:05,590 >> Então agora vamos ter um momento e vejam o CS50 751 00:32:05,590 --> 00:32:09,082 -se e dar-lhe uma sensação de que está na loja neste semestre. 752 00:32:09,082 --> 00:32:11,540 Na verdade, se você não tiver, não dê uma olhada neste URL. 753 00:32:11,540 --> 00:32:13,880 E, como Patrick aludiu para, este ano estamos 754 00:32:13,880 --> 00:32:17,130 fazendo um investimento significativo tudo quanto mais em apoio do curso 755 00:32:17,130 --> 00:32:20,170 estrutura em termos de agências de viagens eo CAs, o horário de expediente, 756 00:32:20,170 --> 00:32:23,520 secções disponibilidade, e materiais digitais on-line, também. 757 00:32:23,520 --> 00:32:27,489 Na verdade, em termos de o curso de palestra, que estamos aqui hoje. 758 00:32:27,489 --> 00:32:29,780 E as expectativas deste ano oficialmente do curso 759 00:32:29,780 --> 00:32:32,370 são assistir aos dias de hoje, do curso última palestra, e um campo de 760 00:32:32,370 --> 00:32:35,161 mais ou menos no meio do semestre com cada palestra entre 761 00:32:35,161 --> 00:32:37,280 disponibilizados em geral numa sexta à tarde 762 00:32:37,280 --> 00:32:40,240 on-line, tanto para estudantes de Yale e estudantes de Harvard este ano. 763 00:32:40,240 --> 00:32:42,090 Com efeito, um dos mudanças fundamentais é 764 00:32:42,090 --> 00:32:44,310 que estamos adotando no Harvard um paradigma muito 765 00:32:44,310 --> 00:32:46,570 como fizemos aqui última ano e agora este ano, 766 00:32:46,570 --> 00:32:50,300 para que da mesma forma, nós ainda filme mais de palestras do curso em Cambridge 767 00:32:50,300 --> 00:32:52,900 mas torná-los disponíveis mais cedo do que temos no passado 768 00:32:52,900 --> 00:32:55,540 de modo que aqueles de você-- se você gostaria de, por exemplo, 769 00:32:55,540 --> 00:32:58,400 obter uma vantagem inicial sobre os materiais no primeiro fim de semana em vez 770 00:32:58,400 --> 00:33:02,000 que o segundo fim de semana, você terá acesso a esses tipos de materiais, 771 00:33:02,000 --> 00:33:06,561 pesquisável, incorporável, hyperlinkable aos recursos relacionados toda a anterior. 772 00:33:06,561 --> 00:33:09,560 Em termos de temas, para dar-lhe um senso de trajectory-- do curso 773 00:33:09,560 --> 00:33:12,365 e alguns isso pode ser jargão para agora, mas não por muito tempo, a certeza. 774 00:33:12,365 --> 00:33:15,010 Vamos começar hoje, em última análise, com olhar para uma programação 775 00:33:15,010 --> 00:33:16,260 linguagem chamada zero. 776 00:33:16,260 --> 00:33:19,380 Nós vamos fazer a transição depois na próxima semana para algo chamado C 777 00:33:19,380 --> 00:33:22,140 e, em seguida, olhando para outro edifício blocos para resolver problemas, 778 00:33:22,140 --> 00:33:26,230 coisas chamadas matrizes e algoritmos, como podemos usar a memória para a nossa vantagem 779 00:33:26,230 --> 00:33:28,326 e desvantagens, e coisas como estruturas de dados, 780 00:33:28,326 --> 00:33:31,200 e, em seguida, em direção ao fim da cauda da classe olhando para a aprendizagem de máquina 781 00:33:31,200 --> 00:33:33,410 e olhando para outro linguagem chamada Python, 782 00:33:33,410 --> 00:33:37,460 como a web funciona, como a internet mais geralmente funciona, protocolos como HTTP, 783 00:33:37,460 --> 00:33:40,950 linguagens para bancos de dados como SQL, JavaScript para a web, 784 00:33:40,950 --> 00:33:43,000 e, finalmente, amarrando conjuntamente todos esses. 785 00:33:43,000 --> 00:33:44,708 >> E assim, de fato, na final do dia, você 786 00:33:44,708 --> 00:33:50,250 não vai aprender nesta classe zero ou C ou Python ou SQL ou JavaScript. 787 00:33:50,250 --> 00:33:53,560 Você, ao contrário, mais geralmente aprendem ciência da computação e as fundações 788 00:33:53,560 --> 00:33:55,790 do mesmo, e você vai aprender a programar 789 00:33:55,790 --> 00:33:58,800 em qualquer número de estes línguas ao longo do caminho. 790 00:33:58,800 --> 00:34:00,970 Assim, na verdade, um dos objectivos do curso no final 791 00:34:00,970 --> 00:34:04,160 é tirar tudo do curso de rodinhas por aquelas semanas finais 792 00:34:04,160 --> 00:34:06,710 para que, após isso, você pode retornar à sua própria fields-- 793 00:34:06,710 --> 00:34:08,510 se isso é ou não ciência da computação 794 00:34:08,510 --> 00:34:12,290 ou engenharia, no natural ciências, artes, humanidades, ou beyond-- 795 00:34:12,290 --> 00:34:14,720 e trazer um pouco dessa As ideias de curso e este campo de 796 00:34:14,720 --> 00:34:17,400 idéias e práticas habilidades para o seu próprio domínio 797 00:34:17,400 --> 00:34:19,480 a fim de resolver problemas no seu interior. 798 00:34:19,480 --> 00:34:22,990 >> O que vamos fazer aqui, entretanto, na maioria das quintas-feiras a partir de hoje 799 00:34:22,990 --> 00:34:26,160 é com cabeças do curso conducente o que vamos chamar de orientações 800 00:34:26,160 --> 00:34:27,620 de conjuntos de problemas do curso. 801 00:34:27,620 --> 00:34:29,610 Assim, cada semana quando ter um conjunto de problemas, vamos 802 00:34:29,610 --> 00:34:32,900 estar andando através de uma localização assim desafios do curso, 803 00:34:32,900 --> 00:34:35,582 oferecendo-lhe algumas dicas e truques e técnicas de design. 804 00:34:35,582 --> 00:34:37,540 Mas se você não é capaz para fazer aqueles em pessoa, 805 00:34:37,540 --> 00:34:39,760 realizar esses mesmos recursos serão incorporados 806 00:34:39,760 --> 00:34:41,590 por um do curso de assistentes de ensino 807 00:34:41,590 --> 00:34:43,860 no problema define-se, como bem. 808 00:34:43,860 --> 00:34:47,124 >> O problema define este ano, ao contrário no ano passado, com base no feedback, 809 00:34:47,124 --> 00:34:48,540 ainda será lançado em sextas-feiras. 810 00:34:48,540 --> 00:34:51,310 Mas em vez de ser devido a subsequente sexta-feira, 811 00:34:51,310 --> 00:34:55,079 dando assim você apenas sete dias, será efectivamente devido 10 dias mais tarde. 812 00:34:55,079 --> 00:34:57,620 E, de fato, isto significa que eles vão se sobrepor por um fim de semana. 813 00:34:57,620 --> 00:34:59,369 Mas esperamos que este ano especialmente este será 814 00:34:59,369 --> 00:35:02,320 permitir que os alunos para melhor acomodar fluxo e refluxo em suas agendas, 815 00:35:02,320 --> 00:35:05,040 se é ou acadêmicos extracurriculars ou atletismo 816 00:35:05,040 --> 00:35:06,280 ou a estação de meio termo. 817 00:35:06,280 --> 00:35:10,060 Você pode front-load ou back-load sua semana focando CS50 base 818 00:35:10,060 --> 00:35:12,400 na carga curso real seu próprio semana. 819 00:35:12,400 --> 00:35:14,990 >> O problema coloca-se cobrirá uma variedade de línguas, 820 00:35:14,990 --> 00:35:17,990 porém vamos nos concentrar predominantemente no início em C 821 00:35:17,990 --> 00:35:23,040 antes de se concentrar em seguida em maior nível, mais linguagens web-centric. 822 00:35:23,040 --> 00:35:25,970 E, em seguida, um par de FAQs aqui-- você deve tomar uma classe como CS50 823 00:35:25,970 --> 00:35:26,900 como um primeiro ano? 824 00:35:26,900 --> 00:35:27,970 Então, com certeza. 825 00:35:27,970 --> 00:35:30,470 E, de fato, não é necessariamente algo 826 00:35:30,470 --> 00:35:34,440 você deve adiar até que você tenha cortado os dentes em outros tipos de classes. 827 00:35:34,440 --> 00:35:36,290 Mas em vez disso, considere que, para muitos alunos, 828 00:35:36,290 --> 00:35:39,040 eu incluído para trás no dia, este é um campo muito estranho, 829 00:35:39,040 --> 00:35:40,997 especialmente se você nunca o fez tomar uma CSA AP 830 00:35:40,997 --> 00:35:42,580 ou algo parecido na escola. 831 00:35:42,580 --> 00:35:44,705 Mas percebemos que no início, se é este curso 832 00:35:44,705 --> 00:35:47,900 ou algum outro curso introdutório, agora é realmente o melhor tempo, 833 00:35:47,900 --> 00:35:52,082 Eu acho que, para encontrar algum novo caminho ou algum novo interesse acadêmico, bem. 834 00:35:52,082 --> 00:35:55,040 E, em seguida, levando com outra courses-- Portanto, uma das principais diferenças aqui 835 00:35:55,040 --> 00:35:57,906 contra Harvard é que só tomar quatro cursos por semestre 836 00:35:57,906 --> 00:35:59,030 em Harvard, por algum motivo. 837 00:35:59,030 --> 00:36:01,494 E vocês realmente puxar off alguns 36 cursos no total 838 00:36:01,494 --> 00:36:04,410 ao longo de seus quatro anos, o que significa geralmente quatro ou cinco 839 00:36:04,410 --> 00:36:05,040 classes. 840 00:36:05,040 --> 00:36:08,367 E eu acho que é bastante justo dizer e assumem CS50, pelo projeto, é 841 00:36:08,367 --> 00:36:10,700 provavelmente não o tipo de classe que você deve normalmente 842 00:36:10,700 --> 00:36:13,680 levar com quatro outros cursos para um total de cinco 843 00:36:13,680 --> 00:36:16,249 Série de Exercícios porque são por design bastante intensivo. 844 00:36:16,249 --> 00:36:18,040 Na verdade, eu também aprendi esta de volta no dia. 845 00:36:18,040 --> 00:36:21,110 Eu não descrever CS50 e ciência da computação, programação 846 00:36:21,110 --> 00:36:24,477 como muito difícil que é apenas demorado. 847 00:36:24,477 --> 00:36:26,560 Não é o tipo de coisa onde após o jantar, 848 00:36:26,560 --> 00:36:28,310 pode voltar para seu dormitório sala, sentar e começar 849 00:36:28,310 --> 00:36:29,710 centrando-se na pset pensando, tudo bem, 850 00:36:29,710 --> 00:36:31,340 Eu vou bater este para fora hoje à noite e, em seguida, movimento 851 00:36:31,340 --> 00:36:33,000 no meu próximo assunto no dia seguinte. 852 00:36:33,000 --> 00:36:34,450 Às vezes você apenas bater em uma parede. 853 00:36:34,450 --> 00:36:35,690 Você tem erros em seu código. 854 00:36:35,690 --> 00:36:37,900 Você não precisa necessariamente saber como resolver algum problema. 855 00:36:37,900 --> 00:36:41,670 E uma das principais características do programação para mim até hoje 856 00:36:41,670 --> 00:36:44,480 é que você só tipo de necessidade de tomar um passo para trás, às vezes, dormir com ela 857 00:36:44,480 --> 00:36:47,870 ou pensar sobre ele durante o curso de uma corrida ou alguma outra atividade, 858 00:36:47,870 --> 00:36:49,240 e, em seguida, voltar a ele fresco. 859 00:36:49,240 --> 00:36:50,930 E você só precisa destas janelas de tempo. 860 00:36:50,930 --> 00:36:52,910 >> E, de fato, é por isso que nós temos alongou a quantidade de tempo 861 00:36:52,910 --> 00:36:55,710 disponível para os conjuntos de problemas este ano e também, por que URL 862 00:36:55,710 --> 00:36:57,950 Eu coloquei anteriormente como a que há de novo neste semestre, 863 00:36:57,950 --> 00:37:00,950 aparado o problema define para que eles são fundamentalmente não menos rigorosa, 864 00:37:00,950 --> 00:37:03,741 e os tópicos não são menos, mas há muito menos matéria frente, 865 00:37:03,741 --> 00:37:07,630 muito menos trabalho braçal que você precisa fazer na frente de cada conjunto de problemas, 866 00:37:07,630 --> 00:37:10,680 como você verá, antes que você possa mergulhar de fato na carne dele. 867 00:37:10,680 --> 00:37:13,500 Assim, perceber que esses e outros mudanças estão no horizonte 868 00:37:13,500 --> 00:37:16,490 para melhor acomodar os alunos, mas em última análise para se certificar 869 00:37:16,490 --> 00:37:18,860 que os tópicos são de facto o mais alto possível. 870 00:37:18,860 --> 00:37:21,330 Assim, enquanto mais trabalho do que pode estar em uma classe típica, 871 00:37:21,330 --> 00:37:25,120 esperamos que os retornos para você e os takeaways para você 872 00:37:25,120 --> 00:37:27,490 e as habilidades e idéias com o qual você sair 873 00:37:27,490 --> 00:37:29,921 são ainda mais atraente como um resultado. 874 00:37:29,921 --> 00:37:32,420 E para que você obtenha há-- e este é uma das principais lições, 875 00:37:32,420 --> 00:37:35,470 como Patrick aludiu earlier-- é estrutura de apoio do curso. 876 00:37:35,470 --> 00:37:39,720 Assim, não só CS50 tem um dos as maiores equipes do curso no campus. 877 00:37:39,720 --> 00:37:41,750 Ele também tem um do mais de graduação. 878 00:37:41,750 --> 00:37:43,700 Na verdade, CS50 último ano Foi a primeira classe 879 00:37:43,700 --> 00:37:45,366 ter uma equipe de graduação de ensino. 880 00:37:45,366 --> 00:37:48,570 E a prova disso sucesso fazer agora muitos outros cursos dentro de Yale CS 881 00:37:48,570 --> 00:37:49,500 tem que, como bem. 882 00:37:49,500 --> 00:37:52,906 E para estudantes, especificamente, farão estes ATs e assistentes do curso 883 00:37:52,906 --> 00:37:55,030 apoiando ser um inteiro rede de recursos de suporte, 884 00:37:55,030 --> 00:37:58,250 entre eles secções ou recitações, oportunidades semanais 885 00:37:58,250 --> 00:38:01,674 ter discussões mais íntimos e opiniões de material de abordagem selectiva 886 00:38:01,674 --> 00:38:04,590 para diferentes faixas, para estudantes menos confortável, mais confortável, 887 00:38:04,590 --> 00:38:05,720 ou algures no meio. 888 00:38:05,720 --> 00:38:08,886 Estes irão seguir a disponibilidade de as palestras de vários dias a cada semana 889 00:38:08,886 --> 00:38:09,970 às segundas e terças-feiras. 890 00:38:09,970 --> 00:38:11,970 E então escritório horas-- one-on-one oportunidades 891 00:38:11,970 --> 00:38:15,490 para a ajuda do CAs curso e TAs será às quartas-feiras e quintas-feiras 892 00:38:15,490 --> 00:38:18,400 e domingos, às múltipla vezes, todos os quais 893 00:38:18,400 --> 00:38:22,180 serão publicadas no site do curso, ainda mais do que no ano passado, também. 894 00:38:22,180 --> 00:38:25,501 >> Mas o que é fundamental para CS50, se não reconhecidamente um pouco incomum, 895 00:38:25,501 --> 00:38:27,750 é a cultura do curso que nós tentamos cultivar, 896 00:38:27,750 --> 00:38:30,672 tanto em Cambridge, durante muitos anos e agora mais recentemente em New Haven. 897 00:38:30,672 --> 00:38:33,130 E, de fato, chegando neste Sábado, se você ainda não ouviu, 898 00:38:33,130 --> 00:38:36,410 é o Dia CS50 enigma, que tem nada a ver com ciência da computação 899 00:38:36,410 --> 00:38:39,430 mas é totalmente projetado para enviar uma mensagem que a informática é 900 00:38:39,430 --> 00:38:40,665 sobre a resolução de problemas. 901 00:38:40,665 --> 00:38:43,540 E, de fato, se você gostaria de parceiro com um ou dois ou três amigos 902 00:38:43,540 --> 00:38:46,150 e formar uma equipe para CS50 Quebra-dia, dê uma olhada 903 00:38:46,150 --> 00:38:48,010 aos anúncios que estão no caminho para fora. 904 00:38:48,010 --> 00:38:51,582 E três horas de pizza e puzzles e prêmios aguardam. 905 00:38:51,582 --> 00:38:53,290 E, de fato, para o primeira vez este ano, 906 00:38:53,290 --> 00:38:54,873 ela não será realizada em conjunto com Harvard. 907 00:38:54,873 --> 00:38:57,530 Ele vai estar aqui de forma independente em Yale. 908 00:38:57,530 --> 00:38:59,815 Portanto, mantenha-se atento para aqueles que se você não tem. 909 00:38:59,815 --> 00:39:02,440 A maioria toda sexta-feira no semestre é que vamos tentar fazer uma grande classe 910 00:39:02,440 --> 00:39:06,710 sentir-se pequeno e trazer cerca de 50 alunos para almoçar com o pessoal do curso, 911 00:39:06,710 --> 00:39:08,730 com ex-alunos, amigos da indústria para falar 912 00:39:08,730 --> 00:39:12,630 sobre como é a vida depois de um classe como CS50 e ao longo dos verões 913 00:39:12,630 --> 00:39:14,250 e após a graduação. 914 00:39:14,250 --> 00:39:16,280 Portanto, mantenha-se atento para convites a isso. 915 00:39:16,280 --> 00:39:17,988 Pela primeira vez já este ano nós 916 00:39:17,988 --> 00:39:21,420 realizar a primeira vez CS50 codificação competição, um opt-in opcional oportunidade 917 00:39:21,420 --> 00:39:25,580 meio do semestre, depois de tudo de nós já teve cerca de seis ou sete semanas de programação 918 00:39:25,580 --> 00:39:30,100 no C sob suas correias para competir, se você assim choose-- novamente 919 00:39:30,100 --> 00:39:32,460 em teams-- tentando resolver tantos desafios 920 00:39:32,460 --> 00:39:36,160 como você pode em programação com amigos de vocês contra os outros. 921 00:39:36,160 --> 00:39:38,850 >> E em direção à cauda do semestre o faremos charter alguns autocarros, 922 00:39:38,850 --> 00:39:40,850 realmente passar algum tempo em Cambridge, se você 923 00:39:40,850 --> 00:39:43,460 gostaria de se juntar a nós, para o chamada CS50 hackathon. 924 00:39:43,460 --> 00:39:44,600 No 19:00 nós vamos começar. 925 00:39:44,600 --> 00:39:45,970 Por volta de 21:00, teremos pizza. 926 00:39:45,970 --> 00:39:47,650 Por volta de 01h00, teremos burritos. 927 00:39:47,650 --> 00:39:50,550 E ninguém ainda acordado na ônibus carona para casa por volta das 5:00 AM, 928 00:39:50,550 --> 00:39:54,070 vamos parar para panquecas no IHOP no caminho casa-- 929 00:39:54,070 --> 00:39:57,540 uma oportunidade de 12 horas para mergulhar -se com colegas e funcionários 930 00:39:57,540 --> 00:39:59,950 no projeto final do curso, que é uma oportunidade 931 00:39:59,950 --> 00:40:01,870 para ir muito além do conjuntos de problemas do curso 932 00:40:01,870 --> 00:40:05,950 e elaborar e implementar mais qualquer coisa de interesse para você, 933 00:40:05,950 --> 00:40:09,170 que será finalmente caracterizado aqui em Commons. 934 00:40:09,170 --> 00:40:12,510 A primeira feira já CS50 foi o último ano, uma exposição de final de semestre 935 00:40:12,510 --> 00:40:15,460 ou celebração do que todos na classe tinha realizado, 936 00:40:15,460 --> 00:40:19,810 especialmente aqueles, mais uma vez, que passou de nada para algo, de zero a 60, 937 00:40:19,810 --> 00:40:22,450 ter nenhum conhecimento prévio e exibindo, em última análise, 938 00:40:22,450 --> 00:40:26,960 algo para toda a campus e, se on-line, o mundo ver, também. 939 00:40:26,960 --> 00:40:30,780 >> Agora, estas aqui são apenas alguns dos TAs e CAs que faz CS50 possível. 940 00:40:30,780 --> 00:40:33,034 Permita-me convidar qualquer desses funcionários 941 00:40:33,034 --> 00:40:35,700 que estão aqui para chegar no palco, bem como cabeças do curso, 942 00:40:35,700 --> 00:40:38,785 oferecer algumas palavras de inspiração, bem. 943 00:40:38,785 --> 00:41:03,138 944 00:41:03,138 --> 00:41:03,950 >> ANDI: Oi, pessoal. 945 00:41:03,950 --> 00:41:05,290 Vocês podem me ouvir? 946 00:41:05,290 --> 00:41:10,260 Obrigado por se juntar a nós nesta adorável, quinta-feira chuvosa tarde. 947 00:41:10,260 --> 00:41:11,010 Meu nome é Andi. 948 00:41:11,010 --> 00:41:12,070 Eu sou um júnior em Berkeley. 949 00:41:12,070 --> 00:41:17,250 E junto com Stelios e Verão, que será o seu ensinamento três cabeças 950 00:41:17,250 --> 00:41:19,277 assistentes para este próximo ano. 951 00:41:19,277 --> 00:41:21,110 Então, eu acho, demonstração de hands-- quantos de vocês 952 00:41:21,110 --> 00:41:26,680 não têm a intenção de ser um CS grande nem realmente mergulhar profundamente 953 00:41:26,680 --> 00:41:29,930 em ciência da computação como um importante aqui? 954 00:41:29,930 --> 00:41:30,520 Impressionante. 955 00:41:30,520 --> 00:41:32,730 Isso é brilhante. 956 00:41:32,730 --> 00:41:35,850 >> Então, eu sou realmente um dos assuntos globais e ciência cognitiva major. 957 00:41:35,850 --> 00:41:37,780 Eu literalmente veio a Yale com a intenção 958 00:41:37,780 --> 00:41:42,199 de nunca ter que olhar para uma número cada vez mais na minha vida. 959 00:41:42,199 --> 00:41:44,990 Quando vim para Yale, este foi algo que nunca estava no meu radar. 960 00:41:44,990 --> 00:41:46,460 Eu queria aprender sobre poesia. 961 00:41:46,460 --> 00:41:48,500 Eu queria aprender sobre assuntos Internacionais. 962 00:41:48,500 --> 00:41:50,510 Eu queria aprender sobre desenhos em aquarela. 963 00:41:50,510 --> 00:41:53,360 Sim, nós oferecemos uma classe em desenhos de aquarela. 964 00:41:53,360 --> 00:41:57,340 >> Mas eu nunca realmente estava interessado em qualquer coisa STEM relacionado. 965 00:41:57,340 --> 00:41:59,620 Mas, então, quanto mais velho eu ficava, mais eu percebi 966 00:41:59,620 --> 00:42:03,340 que todos os campos realmente em algum sentido emprega ciência da computação, 967 00:42:03,340 --> 00:42:05,700 ou se não ciência da computação, computação. 968 00:42:05,700 --> 00:42:08,300 Na verdade, para o meu mundial projeto de capeamento assuntos, 969 00:42:08,300 --> 00:42:12,020 estamos usando análise de dados para analisar ataques terroristas 970 00:42:12,020 --> 00:42:13,680 para Boko Haram na Nigéria. 971 00:42:13,680 --> 00:42:17,510 E assim como você pode ver, independentemente do que importante você acaba perseguindo 972 00:42:17,510 --> 00:42:21,640 ou o que os seus interesses aqui em Yale são, de programação e as fundações 973 00:42:21,640 --> 00:42:24,130 de tudo o que habilidades são super útil. 974 00:42:24,130 --> 00:42:29,840 E CS50 realmente está bem equipado para tipo de emprestar um monte de seus recursos 975 00:42:29,840 --> 00:42:32,060 para você, independentemente do como você está confortável 976 00:42:32,060 --> 00:42:34,590 ou como você está interessado na prossecução da classe. 977 00:42:34,590 --> 00:42:37,290 >> Verão vai falar um pouco pouco sobre o que vocês estão 978 00:42:37,290 --> 00:42:39,635 vai aprender sobre este ano. 979 00:42:39,635 --> 00:42:40,510 VERÃO: Oi, todo mundo. 980 00:42:40,510 --> 00:42:41,320 Estou Verão Wu. 981 00:42:41,320 --> 00:42:43,090 Eu sou um júnior em Morse. 982 00:42:43,090 --> 00:42:48,100 E eu realmente começou como um estudante CS50 mim. 983 00:42:48,100 --> 00:42:51,460 Assim, três anos atrás, eu estava em um ano sabático. 984 00:42:51,460 --> 00:42:53,940 Eu nunca tinha tido um CS classe na escola, 985 00:42:53,940 --> 00:42:57,800 mas eu pensei que, no meu tempo livre, que seria legal para aprender a codificar. 986 00:42:57,800 --> 00:43:02,610 Então eu fiz uma pesquisa rápida no Google, olhou para o que estava disponível on-line, 987 00:43:02,610 --> 00:43:06,990 e vi este vídeo com os muppets e DJs e sites legal. 988 00:43:06,990 --> 00:43:09,450 Eu estava tipo, eu quero aprender a fazer isso. 989 00:43:09,450 --> 00:43:14,690 >> Então eu fiz o curso, e eu apenas caiu no amor com ele. 990 00:43:14,690 --> 00:43:20,410 Mas eu me lembro de estar tão ciumento do crianças que puderam assistir à maratona hacker, 991 00:43:20,410 --> 00:43:24,610 participar do Dia do quebra-cabeça, participar de escritório horas, começar a ajuda de agências de viagens em pessoa. 992 00:43:24,610 --> 00:43:27,410 E assim eu nunca imaginei que eu teria a chance 993 00:43:27,410 --> 00:43:30,640 estar aqui envolvido em o curso que começou primeiramente 994 00:43:30,640 --> 00:43:33,630 me interessado em computador ciência e é a razão pela qual 995 00:43:33,630 --> 00:43:35,690 Eu sou uma ciência da computação importante hoje. 996 00:43:35,690 --> 00:43:39,290 Então, eu vou avisá-lo, esta classe vai esticá-lo. 997 00:43:39,290 --> 00:43:41,120 Ele vai desafiá-lo. 998 00:43:41,120 --> 00:43:43,910 Mas também vai ensinar-lhe como fazer as coisas 999 00:43:43,910 --> 00:43:45,506 que você nunca imaginou que pudesse. 1000 00:43:45,506 --> 00:43:49,330 1001 00:43:49,330 --> 00:43:52,160 >> STELIOS: Oi, todo mundo. 1002 00:43:52,160 --> 00:43:53,510 Meu nome é Stelios. 1003 00:43:53,510 --> 00:43:58,240 Eu sou um júnior em Branford College e um dos principais CS. 1004 00:43:58,240 --> 00:44:01,640 Eu também sou de Atenas, Grécia. 1005 00:44:01,640 --> 00:44:03,830 Eu estou realmente ansioso para atender a todos vocês, 1006 00:44:03,830 --> 00:44:09,010 conversando com você na seção, pelo o horário de expediente, em almoços de sexta-feira. 1007 00:44:09,010 --> 00:44:11,250 Estou muito animado, porque nós colocamos muito esforço 1008 00:44:11,250 --> 00:44:14,650 para criar um suporte único estrutura para todos vocês 1009 00:44:14,650 --> 00:44:19,170 para tornar a sua experiência com o curso o melhor possível. 1010 00:44:19,170 --> 00:44:22,640 E eu espero que, embora a maioria dos você provavelmente não ter tomado um CS 1011 00:44:22,640 --> 00:44:27,310 Claro antes, eu espero que isso seja CS50 para você é o que acende o interesse 1012 00:44:27,310 --> 00:44:30,260 a prosseguir computador ciência no futuro, 1013 00:44:30,260 --> 00:44:33,270 como tem feito com tão muitas pessoas no passado. 1014 00:44:33,270 --> 00:44:36,740 Então, obrigado por ser aqui, animado para vê-lo. 1015 00:44:36,740 --> 00:44:38,487 Jason Hirschhorn. 1016 00:44:38,487 --> 00:44:39,820 JASON HIRSCHHORN: Oi, pessoal. 1017 00:44:39,820 --> 00:44:41,700 Meu nome é Jason Hirschhorn. 1018 00:44:41,700 --> 00:44:43,050 Eu vivo em Silliman. 1019 00:44:43,050 --> 00:44:46,910 E eu fui para Harvard como uma graduação e se formou em estudos sociais 1020 00:44:46,910 --> 00:44:48,870 e minored em ciência da computação. 1021 00:44:48,870 --> 00:44:53,100 E um dos meus papéis principais aqui é apoiar essa equipe maravilhosa 1022 00:44:53,100 --> 00:44:54,630 como eles apoiá-lo todo. 1023 00:44:54,630 --> 00:44:56,410 Na verdade, este não é de todos eles. 1024 00:44:56,410 --> 00:45:01,230 Há 55 alunos de graduação e graduados aqui para apoiá-lo todo. 1025 00:45:01,230 --> 00:45:04,420 E ouso dizer que um dos melhores partes do curso para você 1026 00:45:04,420 --> 00:45:08,080 tudo está começando a trabalhar com -los, conhecê-los, 1027 00:45:08,080 --> 00:45:12,389 começando a vê-los, tanto em CS50 e fora do CS50 este semestre 1028 00:45:12,389 --> 00:45:13,680 e para muitos semestres para vir. 1029 00:45:13,680 --> 00:45:16,770 Portanto, esperamos que você vai tomar a Claro, porque espero que você 1030 00:45:16,770 --> 00:45:21,060 começa a interagir com o equipe maravilhosa que temos no palco. 1031 00:45:21,060 --> 00:45:24,977 >> Orador: Bem, deixe-me terminar dizendo que vai ser divertido. 1032 00:45:24,977 --> 00:45:26,810 DAVID MALAN: Bem, Graças a toda a nossa equipe. 1033 00:45:26,810 --> 00:45:29,610 Permitam-me que diminua as luzes e permitir um pouco mais de nossa equipe, 1034 00:45:29,610 --> 00:45:32,890 ambos de Cambridge e New Haven, para dizer Olá como arquivar esses caras. 1035 00:45:32,890 --> 00:45:36,130 E depois disso é que vamos fazer a transição para o primeiro dos nossos compromissos de programação 1036 00:45:36,130 --> 00:45:37,584 com este linguagem chamada zero. 1037 00:45:37,584 --> 00:45:38,500 Assim, graças à equipe. 1038 00:45:38,500 --> 00:45:40,770 Vamos diminuir as luzes e ouvir de alguns outros. 1039 00:45:40,770 --> 00:45:44,207 >> [Aplausos] 1040 00:45:44,207 --> 00:45:45,680 1041 00:45:45,680 --> 00:45:48,140 >> [REPRODUÇÃO DE VÍDEO] 1042 00:45:48,140 --> 00:45:53,210 >> -A Missão do CS50 é fazer você mais confortável com uma maneira totalmente nova 1043 00:45:53,210 --> 00:45:54,947 de pensar, essa mentalidade computacional. 1044 00:45:54,947 --> 00:45:56,780 -Ele Fez ciência da computação interessante, que 1045 00:45:56,780 --> 00:46:00,241 é algo que eu realmente não percebi foi possível até eu levei a classe. 1046 00:46:00,241 --> 00:46:00,990 -Eu Era como, whoa. 1047 00:46:00,990 --> 00:46:04,120 Estou realmente traduzir meus pensamentos em um computador agora. 1048 00:46:04,120 --> 00:46:07,970 >> -Mesmo Se você não tem qualquer fundo em ciência da computação ou de qualquer experiência, 1049 00:46:07,970 --> 00:46:10,140 esta é realmente a classe para você. 1050 00:46:10,140 --> 00:46:12,250 >> -Então Eu definitivamente quero meus alunos para apenas 1051 00:46:12,250 --> 00:46:14,350 ficar animado sobre a ciência da computação. 1052 00:46:14,350 --> 00:46:17,187 Não apenas a programação, mas pensar como um cientista da computação 1053 00:46:17,187 --> 00:46:19,270 é realmente o que eu quero tentar ensinar meu primeiro. 1054 00:46:19,270 --> 00:46:21,560 >> -CS50 É difícil e gratificante. 1055 00:46:21,560 --> 00:46:22,592 >> -Uma experiência. 1056 00:46:22,592 --> 00:46:23,456 >> -Extravaganza. 1057 00:46:23,456 --> 00:46:26,350 >> -É Nos trazendo para o próximo nível. 1058 00:46:26,350 --> 00:46:28,850 >> [REPRODUÇÃO DE MÚSICA] 1059 00:46:28,850 --> 00:46:32,167 >> -As TFs são, penso eu, o Força Vital do curso. 1060 00:46:32,167 --> 00:46:34,560 >> -Estou Animado para ter meus alunos eu estou ajudando 1061 00:46:34,560 --> 00:46:38,027 tem que aha momento para perceber o que eles estão realmente tentando 1062 00:46:38,027 --> 00:46:39,610 fazer, para descobrir como fazer um pset. 1063 00:46:39,610 --> 00:46:41,438 >> -CS50 É definitivamente um curso difícil. 1064 00:46:41,438 --> 00:46:43,960 Mas ao contrário de qualquer outro curso realmente em Yale, 1065 00:46:43,960 --> 00:46:45,759 ele tem um tão grande, comunidade de apoio. 1066 00:46:45,759 --> 00:46:47,550 -Você Absolutamente não precisa saber nada 1067 00:46:47,550 --> 00:46:49,341 sobre a codificação de poder para fazer o curso. 1068 00:46:49,341 --> 00:46:52,270 -É Incrível ver o quão longe as pessoas vêm em um semestre. 1069 00:46:52,270 --> 00:46:55,610 >> -Você Não estavam sozinhos sentado em seu quarto aprender a código, 1070 00:46:55,610 --> 00:46:57,170 mas era mais do que apenas uma classe. 1071 00:46:57,170 --> 00:46:58,044 Foi uma experiência. 1072 00:46:58,044 --> 00:47:02,500 -A Melhor maneira de aprender conceitos e para processá-los é de ensinar os outros. 1073 00:47:02,500 --> 00:47:04,033 >> -O Que é a divisão de telefone? 1074 00:47:04,033 --> 00:47:06,934 >> [REPRODUÇÃO DE MÚSICA] 1075 00:47:06,934 --> 00:47:08,080 >> -E Este é CS50. 1076 00:47:08,080 --> 00:47:10,810 >> [REPRODUÇÃO DE MÚSICA] 1077 00:47:10,810 --> 00:47:11,720 1078 00:47:11,720 --> 00:47:12,380 >> -Este É CS50. 1079 00:47:12,380 --> 00:47:13,446 >> -Tenho um problema? 1080 00:47:13,446 --> 00:47:14,852 Rasgá-lo ao meio. 1081 00:47:14,852 --> 00:47:15,804 >> [REPRODUÇÃO DE MÚSICA] 1082 00:47:15,804 --> 00:47:18,184 >> Jogá-lo fora. 1083 00:47:18,184 --> 00:47:19,520 >> DAVID MALAN: Tudo bem. 1084 00:47:19,520 --> 00:47:23,190 Então, vamos tackle-- em um pouco bit, aliás, é 1085 00:47:23,190 --> 00:47:25,270 sido essa tradição para alguma razão para 10 anos 1086 00:47:25,270 --> 00:47:27,260 para servir o bolo na iniciar e o fim do CS50. 1087 00:47:27,260 --> 00:47:30,800 Então, esperando por você no final do Hoje em dia, para além de programas de estudo, 1088 00:47:30,800 --> 00:47:34,270 será um pedaço de bolo, bem como, e equipe do curso de dizer Olá. 1089 00:47:34,270 --> 00:47:37,110 Mas agora, vamos transição para o primeira das nossas línguas, onde 1090 00:47:37,110 --> 00:47:40,970 nós vamos passar realmente apenas uma semana e um conjunto de problemas neste domínio, zero. 1091 00:47:40,970 --> 00:47:43,160 E você vai encontrar se você tiver programado antes, muitos 1092 00:47:43,160 --> 00:47:46,280 das ideias e do possibilidades são familiares para você. 1093 00:47:46,280 --> 00:47:48,160 Mas você vai descobrir que é divertido ao longo do caminho 1094 00:47:48,160 --> 00:47:51,201 para descobrir exatamente como traduzir algumas das idéias que você já conhece 1095 00:47:51,201 --> 00:47:53,852 a este ambiente específico realmente impressionar a sua família 1096 00:47:53,852 --> 00:47:57,060 e amigos com o seu trabalho, o que pode ir online, se assim o desejarem, depois. 1097 00:47:57,060 --> 00:47:58,851 >> E se você não tem experiência prévia e são 1098 00:47:58,851 --> 00:48:01,540 entre a maioria dos alunos menos confortáveis, 1099 00:48:01,540 --> 00:48:05,320 perceber que muitas das ideias que apenas explorado com as coisas reality-- 1100 00:48:05,320 --> 00:48:07,970 como livros de telefone e atendimento e assim por forth-- traduzir 1101 00:48:07,970 --> 00:48:12,280 bastante bem a um computador, mas não se você usar, 1102 00:48:12,280 --> 00:48:13,710 inicialmente, uma linguagem como esta. 1103 00:48:13,710 --> 00:48:16,290 Portanto, este é um programa escrito em uma linguagem chamada C. 1104 00:48:16,290 --> 00:48:18,590 E nós vamos gastar um pouco de tempo em C, em última análise. 1105 00:48:18,590 --> 00:48:22,560 Mas as probabilidades são, isso vai parecer um pouco criptográficas para você à primeira vista. 1106 00:48:22,560 --> 00:48:25,760 Na verdade, há um monte de estranho sintaxe, parênteses, colchetes, 1107 00:48:25,760 --> 00:48:27,422 chaves, citações e ponto e vírgula. 1108 00:48:27,422 --> 00:48:29,880 E, de fato, se você mergulhar programação pela primeira vez 1109 00:48:29,880 --> 00:48:33,420 olhando e tentando criar coisas assim, honestamente, você fica tão atolada 1110 00:48:33,420 --> 00:48:36,500 tantas vezes em apenas estúpido minúcia que não tem nada 1111 00:48:36,500 --> 00:48:38,240 intelectualmente interessante sobre ele. 1112 00:48:38,240 --> 00:48:40,980 >> Mas imagine se você pudesse criar este mesmo program-- que, 1113 00:48:40,980 --> 00:48:46,200 como você pode tipo de inferir, provavelmente imprime "Olá, mundo" forma ou de outra. 1114 00:48:46,200 --> 00:48:49,850 Nós podemos destilar essa mesma ideia em apenas duas peças do puzzle, se você quiser. 1115 00:48:49,850 --> 00:48:52,850 De facto, é interessante arranhões porque é esta linguagem gráfica. 1116 00:48:52,850 --> 00:48:56,110 Você pode arrastar e soltar esses peças do puzzle que só interlock 1117 00:48:56,110 --> 00:48:57,940 se faz sentido lógico para fazê-lo. 1118 00:48:57,940 --> 00:48:59,830 E assim, em risco, que em breve vai ver, este é 1119 00:48:59,830 --> 00:49:03,460 Como você poderia implementar essa mesma programa, com apenas duas peças do puzzle 1120 00:49:03,460 --> 00:49:05,420 que praticamente fazer o que eles dizem. 1121 00:49:05,420 --> 00:49:08,870 >> Mas vamos ver em apenas um momento que alguns dos blocos de construção que aludimos 1122 00:49:08,870 --> 00:49:12,140 anteriormente e um pouco mais são tudo o que em última análise, vão constituir 1123 00:49:12,140 --> 00:49:13,460 alguns dos nossos primeiros programas. 1124 00:49:13,460 --> 00:49:15,460 Nós vamos ter coisas como funções no apenas 1125 00:49:15,460 --> 00:49:18,034 ações que fazem algo, como dizer Olá, mundo. 1126 00:49:18,034 --> 00:49:20,200 Nós vamos ter loops, coisas que induzem ciclos 1127 00:49:20,200 --> 00:49:23,210 novo e de novo, assim como nós fez há pouco com a pesquisa 1128 00:49:23,210 --> 00:49:24,110 para Mike Smith. 1129 00:49:24,110 --> 00:49:27,190 Variáveis, como na álgebra, se você tem x ou y, que podem armazenar um número. 1130 00:49:27,190 --> 00:49:29,940 Bem, em um programa, você pode realmente armazenar mais do que apenas números. 1131 00:49:29,940 --> 00:49:34,290 Você pode armazenar palavras e frases e gráficos e outras coisas ainda. 1132 00:49:34,290 --> 00:49:37,530 expressões booleanas, apenas perguntas-- sim ou não, verdadeiro ou falso. 1133 00:49:37,530 --> 00:49:40,680 Condições, para tomar decisões com base nessas respostas sim / não. 1134 00:49:40,680 --> 00:49:43,890 >> E coisas, em seguida, mais extravagantes como array e tópicos e eventos 1135 00:49:43,890 --> 00:49:46,100 e qualquer número de outras características, mas todos os quais 1136 00:49:46,100 --> 00:49:48,670 mapear muito bem a muito blocos amigáveis ​​como este. 1137 00:49:48,670 --> 00:49:52,736 Esta vai ser uma função, um parte do enigma roxo que apenas diz 1138 00:49:52,736 --> 00:49:54,717 o que seu nome é-- neste caso, dizem. 1139 00:49:54,717 --> 00:49:56,550 E, em seguida, muitas vezes, não há uma caixa branca que você 1140 00:49:56,550 --> 00:49:58,550 pode digitar ou arraste algum valor em. 1141 00:49:58,550 --> 00:50:01,370 E isso é o que é geralmente chamado de um argumento ou um parâmetro. 1142 00:50:01,370 --> 00:50:04,110 É uma maneira de alterar a comportamento padrão de um enigma 1143 00:50:04,110 --> 00:50:07,530 peça ou uma função para que ele faz algo personalizado para você gosto de dizer, 1144 00:50:07,530 --> 00:50:12,570 Olá, mundo ou Olá, Andy ou Olá, Jason ou alguma outra frase em seu lugar. 1145 00:50:12,570 --> 00:50:15,830 >> Se você quer dizer que um lot-- literalmente sempre-- 1146 00:50:15,830 --> 00:50:18,142 você pode tomar um outro parte do enigma chamado para sempre 1147 00:50:18,142 --> 00:50:20,100 e apenas imprensado o dois juntos como este. 1148 00:50:20,100 --> 00:50:24,090 E esse ciclo, como a imagem sugere, significa apenas dizer Olá, mundo para sempre, 1149 00:50:24,090 --> 00:50:25,810 de novo e de novo e de novo. 1150 00:50:25,810 --> 00:50:28,840 Ou, se você só quer fazê-lo um número finito de vezes, como 50 vezes, 1151 00:50:28,840 --> 00:50:32,050 lá vai ser um outro quebra-cabeça peça para isso-- repetir 50 vezes. 1152 00:50:32,050 --> 00:50:34,190 >> Enquanto isso, se você quiser ter uma variável 1153 00:50:34,190 --> 00:50:36,090 nesta língua estamos prestes a jogar com, 1154 00:50:36,090 --> 00:50:37,880 você pode usar um bloco de laranja como este. 1155 00:50:37,880 --> 00:50:40,750 E esta variável I arbitrariamente chamado i para inteiro. 1156 00:50:40,750 --> 00:50:42,290 E eu só defini-lo igual a 0. 1157 00:50:42,290 --> 00:50:44,780 E talvez por isso eu, neste case-- este variable-- 1158 00:50:44,780 --> 00:50:46,630 representa pontuação de alguém em um jogo. 1159 00:50:46,630 --> 00:50:49,680 Você começa no zero, e cada vez que você fazer um gol ou algo parecido, 1160 00:50:49,680 --> 00:50:51,270 você recebe um ponto adicional. 1161 00:50:51,270 --> 00:50:52,830 >> Você pode fazer perguntas em risco. 1162 00:50:52,830 --> 00:50:55,390 Se arrastar e soltar quebra-cabeça peças em um momento como este, 1163 00:50:55,390 --> 00:50:58,470 você pode fazer perguntas como, bem, é i menos de 50? 1164 00:50:58,470 --> 00:51:00,060 Talvez você precisa de 50 pontos para vencer. 1165 00:51:00,060 --> 00:51:01,893 E assim que este seria a pergunta que você ia perguntar. 1166 00:51:01,893 --> 00:51:04,030 Ou, mais geralmente, você poderia dizer é x menos de y, 1167 00:51:04,030 --> 00:51:05,780 onde há duas variáveis ​​envolvidas? 1168 00:51:05,780 --> 00:51:08,320 Agora, este é um monte maior à primeira vista, 1169 00:51:08,320 --> 00:51:11,470 mas realmente não tudo o que mais complexo. 1170 00:51:11,470 --> 00:51:15,390 >> Esta é apenas uma combinação de condições e variáveis 1171 00:51:15,390 --> 00:51:19,370 e expressões booleanas para perguntar três perguntas-- x é menor que y? 1172 00:51:19,370 --> 00:51:20,660 Se assim for, digamos assim. 1173 00:51:20,660 --> 00:51:22,170 Digamos, x é inferior a y. 1174 00:51:22,170 --> 00:51:26,571 Logo, se x é maior do que Y, o resto X deve ser igual a y. 1175 00:51:26,571 --> 00:51:29,070 E que com Mike Smith, havia quatro cenários, aqui 1176 00:51:29,070 --> 00:51:32,270 no mundo dos números, x ou é inferior a, maior do que, ou igual a. 1177 00:51:32,270 --> 00:51:34,531 Tudo o que temos são três garfos na estrada. 1178 00:51:34,531 --> 00:51:36,530 E depois há mais extravagante peças do puzzle como este 1179 00:51:36,530 --> 00:51:39,613 para coisas como matrizes, onde estamos vai ser capaz de armazenar informação. 1180 00:51:39,613 --> 00:51:43,590 Vamos ver blocos que permitem -nos a implementar vários segmentos, 1181 00:51:43,590 --> 00:51:46,620 Outra característica que vamos usar e então também algo chamado eventos. 1182 00:51:46,620 --> 00:51:49,390 Mas antes de chegar a esse ponto e criar ainda, 1183 00:51:49,390 --> 00:51:52,000 em última análise, o nosso próprio costume partes do enigma, vamos 1184 00:51:52,000 --> 00:51:53,950 realmente abrir o próprio programa. 1185 00:51:53,950 --> 00:51:54,860 >> Portanto, esta é zero. 1186 00:51:54,860 --> 00:51:57,490 Está disponível em scratch.mit.edu. 1187 00:51:57,490 --> 00:51:59,650 E você é bem-vindo para jogar agora ou mais tarde, também. 1188 00:51:59,650 --> 00:52:01,330 Isto acontece por ser a versão offline. 1189 00:52:01,330 --> 00:52:03,129 Para as pessoas que não o fazem necessariamente tem grande internet, 1190 00:52:03,129 --> 00:52:04,962 você pode baixar a mesmo software, bem. 1191 00:52:04,962 --> 00:52:07,460 E não há realmente apenas três componentes para este software. 1192 00:52:07,460 --> 00:52:10,860 No canto superior esquerdo da a tela é o tipo de estágio 1193 00:52:10,860 --> 00:52:13,800 que zero, que por padrão se parece com um gato, vive dentro. 1194 00:52:13,800 --> 00:52:16,799 Ele pode mover para cima, baixo, esquerda e direita e fazer qualquer número de outras coisas, 1195 00:52:16,799 --> 00:52:20,520 e pode olhar para qualquer número de formas baseadas sobre os trajes que você atribui a ele. 1196 00:52:20,520 --> 00:52:22,980 Mas isso é o que vamos chamar um sprite, uma espécie de personagem. 1197 00:52:22,980 --> 00:52:25,429 E você pode ter múltiplos caracteres, como veremos em breve. 1198 00:52:25,429 --> 00:52:30,060 >> No meio estão agora todos estes quebra-cabeça peças e estas categorias ou paletes 1199 00:52:30,060 --> 00:52:30,900 dos mesmos. 1200 00:52:30,900 --> 00:52:32,429 Então, agora, eu cliquei em Movimento. 1201 00:52:32,429 --> 00:52:35,900 E assim eu estou vendo todo o movimento relacionados com peças do puzzle ou blocos, 1202 00:52:35,900 --> 00:52:37,950 assim funções que têm a ver com ir para cima, 1203 00:52:37,950 --> 00:52:39,950 para baixo, para a esquerda ou para a direita ou alguma outra operação. 1204 00:52:39,950 --> 00:52:43,790 Mas se eu cliquei em Looks, você podia ver coisas como o bloco digamos 1205 00:52:43,790 --> 00:52:45,084 que vimos apenas um momento atrás. 1206 00:52:45,084 --> 00:52:48,250 E se eu clicar no controle, você verá coisas como a repetição ea sempre 1207 00:52:48,250 --> 00:52:50,410 e se o bloco que vimos um momento atrás. 1208 00:52:50,410 --> 00:52:51,670 >> E assim você vai encontrar que vamos arranhar 1209 00:52:51,670 --> 00:52:53,750 a superfície de alguns dos quebra-cabeça pedaços juntos, 1210 00:52:53,750 --> 00:52:55,833 mas é tudo bastante intuitiva e apontar e clicar. 1211 00:52:55,833 --> 00:52:58,219 Com efeito, foi concebido arranhões para os estudantes mais jovens 1212 00:52:58,219 --> 00:53:00,730 para ajudar a dar-lhes uma saída para o pensamento criativo. 1213 00:53:00,730 --> 00:53:03,040 E ainda assim maravilhosamente, é uma pedra maravilhosa stepping 1214 00:53:03,040 --> 00:53:07,020 exatamente as idéias que vamos explorar em C e Python e JavaScript, 1215 00:53:07,020 --> 00:53:07,719 também. 1216 00:53:07,719 --> 00:53:11,960 >> Do lado da mão direita, finalmente, aqui este é, a assim chamada zona de scripts. 1217 00:53:11,960 --> 00:53:15,750 E esta é apenas a tela em branco com que você começa a escrever um programa. 1218 00:53:15,750 --> 00:53:16,897 E eu vou exatamente isso. 1219 00:53:16,897 --> 00:53:19,980 Agora, acontece que eu sei onde as coisas são porque eu fiz isso algumas vezes. 1220 00:53:19,980 --> 00:53:22,710 Mas eu sei que, sob a categoria Events, 1221 00:53:22,710 --> 00:53:25,520 há essa aqui-- bloco quando a bandeira verde clicado. 1222 00:53:25,520 --> 00:53:28,790 E observe se eu diminuir o zoom e volta aqui no palco, 1223 00:53:28,790 --> 00:53:31,190 vidas scratch dentro desta pequeno mundo rectangular, 1224 00:53:31,190 --> 00:53:33,920 no topo de que é um verde bandeira e um sinal vermelho. 1225 00:53:33,920 --> 00:53:36,180 Então vá e parar, respectivamente. 1226 00:53:36,180 --> 00:53:38,710 >> E então o que eu quero fazer quando a bandeira verde é clicado? 1227 00:53:38,710 --> 00:53:40,900 Bem, deixe-me ir para o que parece categoria. 1228 00:53:40,900 --> 00:53:43,357 E deixe-me ir em frente e arrastar e soltar isso. 1229 00:53:43,357 --> 00:53:45,940 E note, logo que ele fica perto, eles são tipo de magnético. 1230 00:53:45,940 --> 00:53:48,489 Então, se eu agora deixar ir, que ele se encaixe em conjunto agradável e limpa. 1231 00:53:48,489 --> 00:53:51,030 E eu estou indo para ir em frente e dizer algo como Olá, mundo 1232 00:53:51,030 --> 00:53:52,190 durante dois segundos. 1233 00:53:52,190 --> 00:53:56,730 Deixe-me diminuir o zoom e clique agora bandeira verde, e dizer: Olá, mundo. 1234 00:53:56,730 --> 00:53:57,230 Tudo certo. 1235 00:53:57,230 --> 00:53:58,460 Então, isso é tudo muito bem e bom. 1236 00:53:58,460 --> 00:53:59,900 Nem tudo o que emocionante. 1237 00:53:59,900 --> 00:54:01,340 Vamos torná-lo um pouco mais bonito. 1238 00:54:01,340 --> 00:54:03,494 E eu sei que em antecedência, risco acontece 1239 00:54:03,494 --> 00:54:05,160 para vir com algumas coisas fofas como este. 1240 00:54:05,160 --> 00:54:07,720 Então, jogar miado de som até feito. 1241 00:54:07,720 --> 00:54:09,531 Então, vamos fazer isso. 1242 00:54:09,531 --> 00:54:10,380 >> [MIAU] 1243 00:54:10,380 --> 00:54:11,819 >> Aw, isso é adorável. 1244 00:54:11,819 --> 00:54:12,860 E se eu clicar nele novamente-- 1245 00:54:12,860 --> 00:54:14,920 >> [MIAU] 1246 00:54:14,920 --> 00:54:15,460 >> E de novo. 1247 00:54:15,460 --> 00:54:16,740 >> [MIAU] 1248 00:54:16,740 --> 00:54:18,760 >> Mas eu continuo tendo de reanimar zero. 1249 00:54:18,760 --> 00:54:20,010 Mas eu posso fazer melhor do que este. 1250 00:54:20,010 --> 00:54:23,060 Por que eu não basta arrastar três destes. 1251 00:54:23,060 --> 00:54:24,821 E agora é três vezes mais adorável. 1252 00:54:24,821 --> 00:54:26,264 >> [Miando] 1253 00:54:26,264 --> 00:54:28,190 >> OK, na verdade, é um pouco assustador. 1254 00:54:28,190 --> 00:54:31,020 Então, precisamos de algo entre lá. 1255 00:54:31,020 --> 00:54:33,870 Se eu for a de controle, parece que há realmente um bloco de espera. 1256 00:54:33,870 --> 00:54:36,994 E assim perceber se eu passar o mouse sobre há-- e deixe-me fazer esta um pouco maior. 1257 00:54:36,994 --> 00:54:38,780 Se eu passar o mouse, ele vai para encaixar no lugar. 1258 00:54:38,780 --> 00:54:41,660 Então, espere um segundo, espere um segundo. 1259 00:54:41,660 --> 00:54:43,170 Vamos bater bandeira verde novamente. 1260 00:54:43,170 --> 00:54:46,330 >> [Miando] 1261 00:54:46,330 --> 00:54:47,695 1262 00:54:47,695 --> 00:54:50,660 >> OK, um pouco mais natural, mas não muito eficiente. 1263 00:54:50,660 --> 00:54:54,300 Então, isso é correto se o meu programa de meta foi meow três vezes. 1264 00:54:54,300 --> 00:54:56,410 Mas não é muito bem concebido. 1265 00:54:56,410 --> 00:54:57,740 Eu meio que cortar alguns cantos. 1266 00:54:57,740 --> 00:54:58,730 Eu tenho um pouco preguiçoso. 1267 00:54:58,730 --> 00:55:05,620 O que se sente como-- o que me parece ter feito mal, que você diria? 1268 00:55:05,620 --> 00:55:07,197 Sim? 1269 00:55:07,197 --> 00:55:08,030 Sim, no meio. 1270 00:55:08,030 --> 00:55:11,208 1271 00:55:11,208 --> 00:55:13,083 AUDIÊNCIA: Usado mais memória do que o necessário para 1272 00:55:13,083 --> 00:55:15,005 porque você está usando tantos linha diferente. 1273 00:55:15,005 --> 00:55:16,380 DAVID MALAN: Sim, por isso mais linhas. 1274 00:55:16,380 --> 00:55:19,190 E não seria necessariamente memória, embora possa ser visto como aquela forma. 1275 00:55:19,190 --> 00:55:20,898 Mas é definitely-- há redundância. 1276 00:55:20,898 --> 00:55:23,440 E eu literalmente tipo de arrastado e deixou cair as mesmas coisas. 1277 00:55:23,440 --> 00:55:26,564 E se você tipo de extrapolate-- se não é óbvio aqui-- bem, como seria 1278 00:55:26,564 --> 00:55:27,910 Eu meow 30 vezes? 1279 00:55:27,910 --> 00:55:31,450 Gostaria de arrastar e soltar, como, mais 30 pares de peças do puzzle. 1280 00:55:31,450 --> 00:55:32,890 E, certamente, há uma maneira melhor. 1281 00:55:32,890 --> 00:55:34,056 E temos visto uma maneira melhor. 1282 00:55:34,056 --> 00:55:36,870 O que intuitivamente seria ser o melhor caminho? 1283 00:55:36,870 --> 00:55:37,890 Sim, basta usar um loop. 1284 00:55:37,890 --> 00:55:38,810 Não copiar e colar. 1285 00:55:38,810 --> 00:55:40,790 E, de fato, a qualquer momento presente semestre, se você começar 1286 00:55:40,790 --> 00:55:43,890 encontrando-se arrastando e soltando, ou realmente copiando e colando, 1287 00:55:43,890 --> 00:55:47,050 perigoso hábito de entrar, porque este não é apenas muito fácil de manter. 1288 00:55:47,050 --> 00:55:49,740 Por exemplo, se eu quero mudar o som para outra coisa, 1289 00:55:49,740 --> 00:55:52,826 Eu tenho que mudá-lo agora, em três locais, em vez de apenas um. 1290 00:55:52,826 --> 00:55:54,575 Uma vez que, de facto, se eu quebrar este away-- estou 1291 00:55:54,575 --> 00:55:56,170 indo só para dissociar-lo assim. 1292 00:55:56,170 --> 00:56:01,900 Deixe-me pegar um bloco de repetição e clique em três, digite três, 1293 00:56:01,900 --> 00:56:04,015 jogue alguns destes afastado por apenas deixar ir. 1294 00:56:04,015 --> 00:56:05,890 E, em seguida, perceber que Não parece que ele se encaixa, 1295 00:56:05,890 --> 00:56:08,139 mas magneticamente, ele vai não só encaixar no lugar 1296 00:56:08,139 --> 00:56:09,510 mas crescer para se ajustar à forma. 1297 00:56:09,510 --> 00:56:10,310 Então, isso é bom. 1298 00:56:10,310 --> 00:56:11,530 E agora se eu clicar jogo. 1299 00:56:11,530 --> 00:56:13,870 >> [Miando] 1300 00:56:13,870 --> 00:56:14,370 1301 00:56:14,370 --> 00:56:15,620 Muito agradável. 1302 00:56:15,620 --> 00:56:16,126 Tudo certo. 1303 00:56:16,126 --> 00:56:18,500 E agora é muito fácil mudar, também, porque eu só posso 1304 00:56:18,500 --> 00:56:20,670 alterar um número em um só lugar. 1305 00:56:20,670 --> 00:56:22,500 Mas isso, também, não é tudo o que interessante. 1306 00:56:22,500 --> 00:56:25,350 Vamos realmente ter Zero não miar, mas se mover. 1307 00:56:25,350 --> 00:56:32,680 Deixe-me ir para o Movimento e mover 10 passos dentro de-- gritos, deixe-me corrigir isso. 1308 00:56:32,680 --> 00:56:37,460 Deixe-me tê-lo mover 10 steps-- na verdade, vamos não repetir. 1309 00:56:37,460 --> 00:56:40,670 Deixe-me pegar um bloco de controle, e faça o seguinte para sempre. 1310 00:56:40,670 --> 00:56:42,720 Para sempre, mover 10 passos. 1311 00:56:42,720 --> 00:56:45,070 E clique em Executar. 1312 00:56:45,070 --> 00:56:45,600 >> ESTÁ BEM. 1313 00:56:45,600 --> 00:56:46,740 Então, felizmente, ele pára. 1314 00:56:46,740 --> 00:56:49,710 Caso contrário, as crianças se ficar muito chateado quando eles tipo de perder o seu gato. 1315 00:56:49,710 --> 00:56:52,720 Mas pelo menos eu pode arrastar -lo de volta para a tela. 1316 00:56:52,720 --> 00:56:56,177 Mas isso não é tudo o que grande de um jogo ou animação. 1317 00:56:56,177 --> 00:56:58,260 Seria bom se talvez ele saltou para fora da borda. 1318 00:56:58,260 --> 00:57:00,020 Então, o que fazemos? 1319 00:57:00,020 --> 00:57:04,302 O constructo que precisamos ter Raspe decidir saltar, você acha que, 1320 00:57:04,302 --> 00:57:06,010 mesmo se você nunca visto zero antes? 1321 00:57:06,010 --> 00:57:06,593 Sim, na parte de trás. 1322 00:57:06,593 --> 00:57:08,359 AUDIÊNCIA: Você precisa de um Se bloco ou if-then. 1323 00:57:08,359 --> 00:57:10,650 DAVID MALAN: Sim, por isso, alguns tipo de bloco if ou if-then. 1324 00:57:10,650 --> 00:57:12,275 Então, na verdade, temos um desses aqui. 1325 00:57:12,275 --> 00:57:14,500 Então se-- então deixe-me começar livrar do movimento. 1326 00:57:14,500 --> 00:57:16,070 Deixe-me fazer zoom por isso é maior. 1327 00:57:16,070 --> 00:57:16,890 Assim como sobre isso. 1328 00:57:16,890 --> 00:57:21,920 Para sempre, se Sensing-- nós não temos visto isso antes. 1329 00:57:21,920 --> 00:57:23,160 Eu preciso de uma expressão booleana. 1330 00:57:23,160 --> 00:57:25,970 E verifica-se se tocar o quê? 1331 00:57:25,970 --> 00:57:29,030 Se tocar a borda, o que eu quero fazer? 1332 00:57:29,030 --> 00:57:32,030 Bem, se eu voltar para a Câmara, Acontece que, oh, eu posso virar. 1333 00:57:32,030 --> 00:57:33,350 Deixe-me arrastar esta aqui. 1334 00:57:33,350 --> 00:57:36,430 Por que eu não vá em frente e virar 180 graus? 1335 00:57:36,430 --> 00:57:38,190 >> E agora, deixe-me mover-se no final. 1336 00:57:38,190 --> 00:57:40,500 Eu poderia colocar o movimento na o início ou o fim. 1337 00:57:40,500 --> 00:57:44,452 Mas, logicamente, cada vez que eu passar, eu pretende verificar, estou tocando a borda? 1338 00:57:44,452 --> 00:57:45,410 Eu estou tocando a borda? 1339 00:57:45,410 --> 00:57:46,490 Eu estou tocando a borda? 1340 00:57:46,490 --> 00:57:49,200 Assim que, logicamente, eu me viro em caso afirmativo. 1341 00:57:49,200 --> 00:57:51,190 Então, vamos bater o jogo. 1342 00:57:51,190 --> 00:57:52,030 >> ESTÁ BEM. 1343 00:57:52,030 --> 00:57:53,910 Por isso é um pouco de buggy, por assim dizer. 1344 00:57:53,910 --> 00:57:56,560 E um erro é apenas um erro em um programa de computador. 1345 00:57:56,560 --> 00:57:57,800 Mas pelo menos ele está trabalhando. 1346 00:57:57,800 --> 00:57:59,420 E, de fato, eu posso ir aqui. 1347 00:57:59,420 --> 00:58:03,130 E deixe-me torná-lo não 10 passos de cada tempo, mas isso é tudo animação é. 1348 00:58:03,130 --> 00:58:05,310 Isso tudo é um desenho animado ou mesmo um filme é. 1349 00:58:05,310 --> 00:58:07,110 Deixe-me mover 20 passos de cada vez. 1350 00:58:07,110 --> 00:58:11,200 Então, 20 vezes como muitas coisas estão acontecendo uma vez ou duas vezes mais, neste caso. 1351 00:58:11,200 --> 00:58:12,600 E ele está se movendo mais rápido. 1352 00:58:12,600 --> 00:58:15,150 Deixe-me mudar para 30. 1353 00:58:15,150 --> 00:58:17,450 100. 1354 00:58:17,450 --> 00:58:19,406 1000. 1355 00:58:19,406 --> 00:58:20,530 E está indo muito rápido. 1356 00:58:20,530 --> 00:58:22,190 E isso é-- sim, OK. 1357 00:58:22,190 --> 00:58:24,130 >> Então, agora nós estamos apenas brincando com ele. 1358 00:58:24,130 --> 00:58:24,954 OK, então buggy. 1359 00:58:24,954 --> 00:58:26,620 Mas podemos arrastá-lo para fora do caminho aqui. 1360 00:58:26,620 --> 00:58:28,286 Mas podemos fazer mais divertido com isso, também. 1361 00:58:28,286 --> 00:58:30,710 Como cerca de isto-- ele está de cabeça para baixo. 1362 00:58:30,710 --> 00:58:32,800 Mas acontece Scratch-- e não há, na verdade, 1363 00:58:32,800 --> 00:58:35,510 Eu tenho que assumem, não acadêmica valor para o que eu estou prestes a fazer. 1364 00:58:35,510 --> 00:58:40,200 Mas se eu abrir o microfone, vamos detê-lo e fazer algo assim. 1365 00:58:40,200 --> 00:58:41,960 Ouch! 1366 00:58:41,960 --> 00:58:42,884 >> [RIR] 1367 00:58:42,884 --> 00:58:45,200 1368 00:58:45,200 --> 00:58:45,990 >> Isso foi adorável. 1369 00:58:45,990 --> 00:58:46,740 Obrigado. 1370 00:58:46,740 --> 00:58:50,850 Agora, isso é o que a minha voz Parece que quando eu gritar ouch. 1371 00:58:50,850 --> 00:58:52,630 Eu não acho que pegamos o seu riso. 1372 00:58:52,630 --> 00:58:53,280 Isso está ok. 1373 00:58:53,280 --> 00:58:56,550 Deixe-me salve como "ai". 1374 00:58:56,550 --> 00:58:57,915 Vamos guardá-lo como "ai". 1375 00:58:57,915 --> 00:58:59,410 E agora vamos voltar para Scripts. 1376 00:58:59,410 --> 00:59:01,660 E agora eu need-- vamos ver, Sound. 1377 00:59:01,660 --> 00:59:03,160 Oh, jogar ouch som. 1378 00:59:03,160 --> 00:59:08,180 Então, se eu estou tocando a borda, deixe-me primeira ouch jogo, e depois virar. 1379 00:59:08,180 --> 00:59:10,191 E agora vamos colocá-lo no meio. 1380 00:59:10,191 --> 00:59:14,754 >> [Dizer "ai"] 1381 00:59:14,754 --> 00:59:15,740 >> Duas vezes mais rápido. 1382 00:59:15,740 --> 00:59:20,660 1383 00:59:20,660 --> 00:59:21,830 >> ESTÁ BEM. 1384 00:59:21,830 --> 00:59:23,780 Mas é literalmente fazendo o que estou dizendo. 1385 00:59:23,780 --> 00:59:27,580 Por isso, é de fato correta, é apenas um pouco chato rapidamente. 1386 00:59:27,580 --> 00:59:30,330 Então vamos acrescentar algo mais interessante a este. 1387 00:59:30,330 --> 00:59:32,950 Deixe-me realmente abrir um que eu feitas com antecedência, 1388 00:59:32,950 --> 00:59:38,560 apropriadamente chamado Pet o Gato, que faz isso. 1389 00:59:38,560 --> 00:59:40,340 Aqui está o script aqui. 1390 00:59:40,340 --> 00:59:44,510 O que é que isto vai fazer em termos ingleses? 1391 00:59:44,510 --> 00:59:45,820 O que é isso projetado para fazer? 1392 00:59:45,820 --> 00:59:47,900 Sim, vamos some-- sim? 1393 00:59:47,900 --> 00:59:49,665 >> AUDIÊNCIA: Quando você acariciar o gato, ele mia. 1394 00:59:49,665 --> 00:59:52,290 DAVID MALAN: Sim, por isso, quando você acariciar o gato, ele vai miar. 1395 00:59:52,290 --> 00:59:55,452 Portanto, em outras palavras, há agora um loop para sempre ainda, combinado 1396 00:59:55,452 --> 00:59:57,660 com uma condição, combinada com uma expressão booleana, 1397 00:59:57,660 --> 01:00:00,140 combinado com um par de funções, o efeito 1398 01:00:00,140 --> 01:00:02,610 de que, uma vez que eu toco este programa, não é nada 1399 01:00:02,610 --> 01:00:06,820 acontece até que eu mover o cursor cada vez mais perto e mais perto e- 1400 01:00:06,820 --> 01:00:08,029 >> [MIAU] 1401 01:00:08,029 --> 01:00:09,320 Então é como acariciar o gato. 1402 01:00:09,320 --> 01:00:11,210 [MIAU] 1403 01:00:11,210 --> 01:00:14,270 Apenas uma vez que você realmente mova o cursor sobre ele. 1404 01:00:14,270 --> 01:00:19,964 Agora, eu também instigou não pet o gato, que faz isso em vez. 1405 01:00:19,964 --> 01:00:21,350 >> [Miando] 1406 01:00:21,350 --> 01:00:23,485 >> Então, ele está apenas constantemente miando. 1407 01:00:23,485 --> 01:00:24,455 >> [Miando] 1408 01:00:24,455 --> 01:00:27,705 >> Mas se eu ficar muito close-- 1409 01:00:27,705 --> 01:00:29,645 >> [Miando] 1410 01:00:29,645 --> 01:00:32,080 >> [RUGIDO] 1411 01:00:32,080 --> 01:00:33,590 >> Então, como isso funciona? 1412 01:00:33,590 --> 01:00:35,880 Agora eu só tenho um Bidirecional bifurcação na estrada. 1413 01:00:35,880 --> 01:00:38,930 Se tocar ponteiro do mouse, em seguida, reproduzir o som leão. 1414 01:00:38,930 --> 01:00:41,950 Else apenas reproduzir o som meow, e depois esperar três segundos para 1415 01:00:41,950 --> 01:00:43,880 que é uma espécie de fazer muito tranquilamente. 1416 01:00:43,880 --> 01:00:44,380 Tudo certo. 1417 01:00:44,380 --> 01:00:47,290 Então essa é a combinação mais algumas ideias fixas. 1418 01:00:47,290 --> 01:00:50,870 Vamos dar uma olhada neste exemplo Eu chicoteado até chamadas threads. 1419 01:00:50,870 --> 01:00:54,020 E este é fundamentalmente diferente, já que aproveita 1420 01:00:54,020 --> 01:00:56,070 uma característica de muitas linguagem de programação chamada 1421 01:00:56,070 --> 01:00:59,970 tópicos, a capacidade de um programa de literalmente fazer duas coisas ao mesmo tempo. 1422 01:00:59,970 --> 01:01:03,600 Na verdade, estes dias se você estiver usando Google Docs ou o Microsoft Word, 1423 01:01:03,600 --> 01:01:09,620 e seu documento está constantemente sendo verificadas ortograficamente, mesmo que você type-- ou você 1424 01:01:09,620 --> 01:01:11,580 pressione Ctrl-P ou Control-P e algo de impressão, 1425 01:01:11,580 --> 01:01:13,380 está imprimindo enquanto você continuar a escrever. 1426 01:01:13,380 --> 01:01:16,680 Programas de hoje pode realmente fazer múltipla coisas ao mesmo tempo, assim como em risco 1427 01:01:16,680 --> 01:01:17,180 Aqui. 1428 01:01:17,180 --> 01:01:20,400 >> Então, aqui, tenho duas sprites agora, um pássaro e um gato. 1429 01:01:20,400 --> 01:01:22,780 E se eu clicar em cada um dos Os caracteres em um de cada vez, 1430 01:01:22,780 --> 01:01:25,590 Vejo agora o pássaro de roteiros na direita superior. 1431 01:01:25,590 --> 01:01:27,270 Agora eu vejo o gato. 1432 01:01:27,270 --> 01:01:28,540 Pássaro, gato. 1433 01:01:28,540 --> 01:01:30,270 Então, cada um deles tem seu próprio script. 1434 01:01:30,270 --> 01:01:32,700 Mas o aviso prévio, o que parte do enigma que ambos começar? 1435 01:01:32,700 --> 01:01:34,260 Quando a bandeira verde clicado. 1436 01:01:34,260 --> 01:01:36,890 E pássaro, quando a bandeira verde clicado. 1437 01:01:36,890 --> 01:01:40,870 Então, quando eu clique na bandeira verde, ambos os scripts ou programas 1438 01:01:40,870 --> 01:01:42,759 vão correr em paralelo. 1439 01:01:42,759 --> 01:01:45,800 E você notará que o pássaro é apenas estupidamente saltando para fora da borda. 1440 01:01:45,800 --> 01:01:50,890 O gato claramente foi programado com uma vantagem estratégica. 1441 01:01:50,890 --> 01:01:52,704 E-- 1442 01:01:52,704 --> 01:01:53,490 >> [RUGIDO] 1443 01:01:53,490 --> 01:01:53,821 1444 01:01:53,821 --> 01:01:54,320 Tudo certo. 1445 01:01:54,320 --> 01:01:57,340 Assim o gato pegou o pássaro neste caso. 1446 01:01:57,340 --> 01:01:58,390 Por que é que? 1447 01:01:58,390 --> 01:02:03,310 Bem, primeiro edital só temos o pássaro apenas descuidadamente indo 1448 01:02:03,310 --> 01:02:05,120 para este local inicial, e em seguida, sempre, 1449 01:02:05,120 --> 01:02:06,774 se não tocar o gato, basta mover. 1450 01:02:06,774 --> 01:02:08,190 E se você está na borda, saltar. 1451 01:02:08,190 --> 01:02:08,870 E apenas mover. 1452 01:02:08,870 --> 01:02:10,286 E se você está na borda, saltar. 1453 01:02:10,286 --> 01:02:12,840 Mas o gato, enquanto isso, tem alguma lógica adicional 1454 01:02:12,840 --> 01:02:18,250 que diz isto-- primeira, só assim que este não é completamente tendenciosa 1455 01:02:18,250 --> 01:02:21,191 contra o pássaro, perceber que eu tenho usou uma peça do puzzle verde lá 1456 01:02:21,191 --> 01:02:22,690 que realmente escolhe um número aleatório. 1457 01:02:22,690 --> 01:02:26,179 Uma característica de muitas línguas é dar você números aleatórios ou pseudo-aleatórios. 1458 01:02:26,179 --> 01:02:29,220 Portanto, neste caso, o gato inicialmente escolhe um número aleatório entre, como, 1459 01:02:29,220 --> 01:02:31,727 90 graus e 180 graus, essencialmente, de modo 1460 01:02:31,727 --> 01:02:33,310 que há um pouco de variância. 1461 01:02:33,310 --> 01:02:37,000 E, em seguida, para sempre, se tocar o pássaro, reproduzir o som leão. 1462 01:02:37,000 --> 01:02:38,754 Caso contrário, basta apontar para o pássaro. 1463 01:02:38,754 --> 01:02:39,670 Apontam para o pássaro. 1464 01:02:39,670 --> 01:02:44,199 Apontam para a ave, que é um parte do enigma em si mesmo neste caso. 1465 01:02:44,199 --> 01:02:45,740 Bem, nós podemos fazer uma outra coisa aqui. 1466 01:02:45,740 --> 01:02:49,820 Deixe-me abrir o programa eventos aqui. 1467 01:02:49,820 --> 01:02:53,520 E aqui temos novamente dois sprites, que se parecem com estes dois bonecos aqui. 1468 01:02:53,520 --> 01:02:55,710 E o que é interessante aqui é isso. 1469 01:02:55,710 --> 01:02:59,140 O cara laranja tem isso conjunto de peças do puzzle aqui. 1470 01:02:59,140 --> 01:03:01,700 Sempre fazer o following-- Se a barra de espaço é pressionado, 1471 01:03:01,700 --> 01:03:05,430 em seguida, dizer, Marco, e em seguida, transmitir um evento. 1472 01:03:05,430 --> 01:03:09,460 E enquanto isso, o cara azul tem aqui isto-- quando receber o evento, 1473 01:03:09,460 --> 01:03:10,540 dizem Polo. 1474 01:03:10,540 --> 01:03:12,850 Assim, verifica-se em risco e em outras línguas, 1475 01:03:12,850 --> 01:03:15,830 existem maneiras para dois programas ou dois scripts, neste caso, 1476 01:03:15,830 --> 01:03:20,310 a intercomunicação de modo que quando eu pressione a barra de espaço, ele diz Marco. 1477 01:03:20,310 --> 01:03:23,539 E o outro ouve que, por assim falar, e diz Polo em resposta. 1478 01:03:23,539 --> 01:03:26,080 Assim, você pode escrever programas que realmente interagir desta maneira. 1479 01:03:26,080 --> 01:03:28,630 E se eu fizer isso uma vez, Eu até posso adicionar variáveis, 1480 01:03:28,630 --> 01:03:31,287 apenas usando um sprite no presente caso. 1481 01:03:31,287 --> 01:03:32,578 Este é especialmente irritante. 1482 01:03:32,578 --> 01:03:36,174 >> [BARKING SEAL] 1483 01:03:36,174 --> 01:03:37,100 1484 01:03:37,100 --> 01:03:42,490 >> Agora, observe no lado direito temos alguma lógica adicional aqui. 1485 01:03:42,490 --> 01:03:45,146 Como faço para parar este selo de latir? 1486 01:03:45,146 --> 01:03:48,320 >> [BARKING SEAL] 1487 01:03:48,320 --> 01:03:52,830 1488 01:03:52,830 --> 01:03:55,630 >> Parece que na mão direita lado é o que há de tocar o som. 1489 01:03:55,630 --> 01:03:58,500 Mas é só jogar um soar se o que é verdade? 1490 01:03:58,500 --> 01:04:03,390 Se um laranja variable-- block-- silenciado é zero. 1491 01:04:03,390 --> 01:04:07,916 Como faço para mudar silenciado para ser 1, ou seja verdadeiro, fazer este silenciado? 1492 01:04:07,916 --> 01:04:12,455 Aparentemente, o outro roteiro, eu posso pressione a barra de espaço, e agora ele pára. 1493 01:04:12,455 --> 01:04:15,080 Assim, podemos ter esta intercomunicação através de scripts, assim, 1494 01:04:15,080 --> 01:04:18,349 por apenas compartilhar uma variável do outro lado os dois como este. 1495 01:04:18,349 --> 01:04:19,890 Agora, isso não é tudo o que interessante. 1496 01:04:19,890 --> 01:04:24,360 Vamos ir em frente e fazer isso e combinar muitas dessas ideias com este programa 1497 01:04:24,360 --> 01:04:25,940 Aqui. 1498 01:04:25,940 --> 01:04:28,100 Antes de fazer isso, porém, Como cerca de um voluntário? 1499 01:04:28,100 --> 01:04:30,558 Deixe-me tirar a pressão de mim porque eu realmente não 1500 01:04:30,558 --> 01:04:31,280 joga este jogo. 1501 01:04:31,280 --> 01:04:33,030 Vamos ter alguém que não tenha visto antes. 1502 01:04:33,030 --> 01:04:36,420 Você tem que ser confortável vindo no palco aqui, diante das câmeras. 1503 01:04:36,420 --> 01:04:37,430 OK, vamos lá para cima. 1504 01:04:37,430 --> 01:04:38,130 Muito valente. 1505 01:04:38,130 --> 01:04:39,052 Qual o seu nome? 1506 01:04:39,052 --> 01:04:39,962 >> IDRIS: Idris. 1507 01:04:39,962 --> 01:04:40,753 DAVID MALAN: Desculpe? 1508 01:04:40,753 --> 01:04:41,196 IDRIS: Idris. 1509 01:04:41,196 --> 01:04:42,670 DAVID MALAN: Idris, prazer em conhecê-lo. 1510 01:04:42,670 --> 01:04:43,170 Vamos lá para cima. 1511 01:04:43,170 --> 01:04:45,630 E agora, em seu próprio celular telefone, você joga Pokemon ir? 1512 01:04:45,630 --> 01:04:46,567 >> IDRIS: No. 1513 01:04:46,567 --> 01:04:47,400 DAVID MALAN: Sério? 1514 01:04:47,400 --> 01:04:48,104 IDRIS: Yeah. 1515 01:04:48,104 --> 01:04:48,770 DAVID MALAN: OK. 1516 01:04:48,770 --> 01:04:49,020 Tudo certo. 1517 01:04:49,020 --> 01:04:49,978 Bem, prazer em conhecê-lo. 1518 01:04:49,978 --> 01:04:50,820 Venha aqui. 1519 01:04:50,820 --> 01:04:51,950 Eu também não. 1520 01:04:51,950 --> 01:04:55,380 Então, vamos descobrir juntos como jogar este, que alguém realmente 1521 01:04:55,380 --> 01:05:00,140 fui e implementado em risco alterando o gato para essencialmente 1522 01:05:00,140 --> 01:05:02,260 personagens diferentes todos juntos. 1523 01:05:02,260 --> 01:05:04,870 E se eu fullscreen isso aqui, vamos 1524 01:05:04,870 --> 01:05:06,860 para ver o seguinte jogo juntos. 1525 01:05:06,860 --> 01:05:09,560 Ainda carregando, ainda que carrega. 1526 01:05:09,560 --> 01:05:10,270 Vamos. 1527 01:05:10,270 --> 01:05:12,590 Deixe-me fazer isso. 1528 01:05:12,590 --> 01:05:14,520 Vamos. 1529 01:05:14,520 --> 01:05:17,200 Este jogo é tão grande que ele caiu. 1530 01:05:17,200 --> 01:05:18,980 Espera. 1531 01:05:18,980 --> 01:05:22,390 Tente isto mais uma vez. 1532 01:05:22,390 --> 01:05:23,710 Vamos. 1533 01:05:23,710 --> 01:05:24,211 Tudo certo. 1534 01:05:24,211 --> 01:05:26,840 1535 01:05:26,840 --> 01:05:27,430 >> Aqui vamos nós. 1536 01:05:27,430 --> 01:05:27,929 ESTÁ BEM. 1537 01:05:27,929 --> 01:05:29,330 bandeira verde. 1538 01:05:29,330 --> 01:05:30,190 Então, vamos lá. 1539 01:05:30,190 --> 01:05:30,950 >> [REPRODUÇÃO DE MÚSICA] 1540 01:05:30,950 --> 01:05:32,510 >> Escolha o nível médio aqui. 1541 01:05:32,510 --> 01:05:34,200 Clique no indivíduo azul lá. 1542 01:05:34,200 --> 01:05:34,700 Tudo certo. 1543 01:05:34,700 --> 01:05:37,860 E você pode usar a seta keys-- cima, baixo, esquerda, direita. 1544 01:05:37,860 --> 01:05:42,150 Agora, vamos considerar como fazemos isto-- e depois ir depois que o personagem lá. 1545 01:05:42,150 --> 01:05:42,650 Sim. 1546 01:05:42,650 --> 01:05:45,786 E agora, clique nele com o mouse. 1547 01:05:45,786 --> 01:05:46,693 Oh sim. 1548 01:05:46,693 --> 01:05:47,193 Mover. 1549 01:05:47,193 --> 01:05:47,662 Onde está a flecha? 1550 01:05:47,662 --> 01:05:48,131 Aqui está. 1551 01:05:48,131 --> 01:05:48,600 Então clique lá. 1552 01:05:48,600 --> 01:05:48,840 Sim. 1553 01:05:48,840 --> 01:05:49,340 Tudo certo. 1554 01:05:49,340 --> 01:05:56,008 Então, agora, eu disse que você tem uma Pokébola, que, se clicar nele, ele vai fazer isso. 1555 01:05:56,008 --> 01:05:57,932 Muito bom. 1556 01:05:57,932 --> 01:06:00,390 Na prática por hoje, encontrado esta versão do jogo de 1557 01:06:00,390 --> 01:06:01,760 na verdade, não é muito difícil. 1558 01:06:01,760 --> 01:06:07,650 Então, se você quer ir de novo aqui, caminhar até esta Pokébola. 1559 01:06:07,650 --> 01:06:08,780 E, em seguida, ir tomar um direito. 1560 01:06:08,780 --> 01:06:11,200 Experimente clicar sobre ela. 1561 01:06:11,200 --> 01:06:13,120 Oh, na verdade, isso é a loja, aparentemente. 1562 01:06:13,120 --> 01:06:14,170 OK tão perto disso. 1563 01:06:14,170 --> 01:06:15,150 Nunca fiz isso antes. 1564 01:06:15,150 --> 01:06:16,566 Talvez ir até esta coisa aqui. 1565 01:06:16,566 --> 01:06:17,460 Oh, lá vai. 1566 01:06:17,460 --> 01:06:18,910 Espere, há uma lá. 1567 01:06:18,910 --> 01:06:20,412 Oh, não há outra. 1568 01:06:20,412 --> 01:06:21,285 ESTÁ BEM. 1569 01:06:21,285 --> 01:06:21,785 Baixa. 1570 01:06:21,785 --> 01:06:23,210 Sim, clique em. 1571 01:06:23,210 --> 01:06:24,635 >> OK, isso é muito bonito. 1572 01:06:24,635 --> 01:06:27,485 1573 01:06:27,485 --> 01:06:28,810 OK, muito bem feito. 1574 01:06:28,810 --> 01:06:30,010 Este jogo não é muito difícil. 1575 01:06:30,010 --> 01:06:30,510 ESTÁ BEM. 1576 01:06:30,510 --> 01:06:32,150 Parabéns. 1577 01:06:32,150 --> 01:06:34,720 Aqui, temos uma CS50 bola de stress para você. 1578 01:06:34,720 --> 01:06:37,680 Mas considere por um momento que alguns dos tópicos estão lá. 1579 01:06:37,680 --> 01:06:39,263 Mais fácil do que o jogo real, aparentemente. 1580 01:06:39,263 --> 01:06:41,809 Mas todos temos em curso aqui é um personagem 1581 01:06:41,809 --> 01:06:44,100 que provavelmente tem algum tipo do circuito associado com ele. 1582 01:06:44,100 --> 01:06:44,590 Não é um gato. 1583 01:06:44,590 --> 01:06:45,860 É esse personagem em seu lugar. 1584 01:06:45,860 --> 01:06:49,052 E esse ciclo é apenas constantemente dizendo, se seta para cima pressionado, 1585 01:06:49,052 --> 01:06:51,260 se seta para baixo pressionada, se seta para a esquerda ou para a direita pressionado 1586 01:06:51,260 --> 01:06:53,960 arrow pressionado, mover para cima ou para baixo ou para a esquerda ou para a direita. 1587 01:06:53,960 --> 01:06:57,870 Ou se há uma outra parte do enigma lá que diz ao tocar outro sprite, 1588 01:06:57,870 --> 01:07:01,320 ao tocar um dos personagens a Pokébola, se tocar, 1589 01:07:01,320 --> 01:07:02,440 em seguida, fazer isso. 1590 01:07:02,440 --> 01:07:04,800 >> Assim, todas as idéias que temos vindo a utilizar até agora realmente 1591 01:07:04,800 --> 01:07:09,130 pode apenas ser aplicado nesse particular contexto para jogar este jogo, também. 1592 01:07:09,130 --> 01:07:13,580 Deixe-me ir em frente e puxe -se um outro aqui, na verdade. 1593 01:07:13,580 --> 01:07:17,060 Deixe-me ir em frente e puxe -se, digamos, isso. 1594 01:07:17,060 --> 01:07:18,540 Isso é algo que remixado. 1595 01:07:18,540 --> 01:07:20,329 Feito por um dos nossos estudantes em Cambridge, 1596 01:07:20,329 --> 01:07:23,370 e então eu passei e mudou praticamente todas as instâncias de Harvard 1597 01:07:23,370 --> 01:07:25,580 para Yale este tempo. 1598 01:07:25,580 --> 01:07:27,870 Será que alguém gostaria de competir contra os Ivies 1599 01:07:27,870 --> 01:07:31,650 aqui em outra acumulação de todas essas idéias? 1600 01:07:31,650 --> 01:07:32,662 Venha, sim. 1601 01:07:32,662 --> 01:07:33,370 Qual o seu nome? 1602 01:07:33,370 --> 01:07:34,190 >> DINA: Dina. 1603 01:07:34,190 --> 01:07:35,015 >> DAVID MALAN: Adina? 1604 01:07:35,015 --> 01:07:35,380 >> DINA: Dina. 1605 01:07:35,380 --> 01:07:36,410 >> DAVID MALAN: Dina, vamos lá para baixo. 1606 01:07:36,410 --> 01:07:37,320 Tudo bem, Dina. 1607 01:07:37,320 --> 01:07:40,780 Portanto, este jogo fica mais mais difícil, porque neste jogo, 1608 01:07:40,780 --> 01:07:43,970 há variáveis ​​que estão sendo utilizados, bem que estão constantemente a manter o controle 1609 01:07:43,970 --> 01:07:45,930 de que nível você está no jogo. 1610 01:07:45,930 --> 01:07:47,120 Tão bom te conhecer. 1611 01:07:47,120 --> 01:07:48,250 Vem por aqui. 1612 01:07:48,250 --> 01:07:51,460 E assim, o objetivo aqui é classificar de fazer o seu caminho através de um labirinto 1613 01:07:51,460 --> 01:07:52,710 que este estudante implementado. 1614 01:07:52,710 --> 01:07:55,334 >> E só para definir o cenário, cada destas imagens na tela 1615 01:07:55,334 --> 01:07:57,222 é a sua própria sprite, o seu próprio carácter. 1616 01:07:57,222 --> 01:07:59,680 Então, esses foram por gatos padrão, mas o estudante mudou-los 1617 01:07:59,680 --> 01:08:01,480 para os diversos logotipos heras aqui. 1618 01:08:01,480 --> 01:08:04,370 E então você verá que apenas usando condições e loops 1619 01:08:04,370 --> 01:08:06,848 e as funções e muito mais, você tem isso. 1620 01:08:06,848 --> 01:08:07,478 >> [REPRODUÇÃO DE MÚSICA] 1621 01:08:07,478 --> 01:08:09,228 [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1622 01:08:09,228 --> 01:08:13,060 1623 01:08:13,060 --> 01:08:14,018 >> Sim, ok. 1624 01:08:14,018 --> 01:08:17,371 1625 01:08:17,371 --> 01:08:20,110 Sim, continue. 1626 01:08:20,110 --> 01:08:21,180 Primeiro é muito fácil nível. 1627 01:08:21,180 --> 01:08:22,554 Você apenas tem que ir lá. 1628 01:08:22,554 --> 01:08:25,644 Mas, novamente, considere, este é apenas um loop de ouvir a seta keys-- 1629 01:08:25,644 --> 01:08:26,560 cima baixo esquerda direita. 1630 01:08:26,560 --> 01:08:28,320 E agora um bloco de detecção. 1631 01:08:28,320 --> 01:08:29,345 Muito agradável. 1632 01:08:29,345 --> 01:08:32,600 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1633 01:08:32,600 --> 01:08:40,340 1634 01:08:40,340 --> 01:08:41,288 >> Muito agradável. 1635 01:08:41,288 --> 01:08:44,550 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1636 01:08:44,550 --> 01:08:55,540 1637 01:08:55,540 --> 01:08:56,430 >> Muito agradável. 1638 01:08:56,430 --> 01:08:57,975 Muito fácil, carmesim. 1639 01:08:57,975 --> 01:08:59,060 Tudo certo. 1640 01:08:59,060 --> 01:09:00,250 Levels-- uh-oh. 1641 01:09:00,250 --> 01:09:02,380 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1642 01:09:02,380 --> 01:09:04,980 1643 01:09:04,980 --> 01:09:07,150 >> E, novamente, nestes três cristas de Harvard, 1644 01:09:07,150 --> 01:09:10,334 você só tem lógica dizendo se na borda, salto. 1645 01:09:10,334 --> 01:09:13,238 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1646 01:09:13,238 --> 01:09:14,690 1647 01:09:14,690 --> 01:09:17,651 >> OK, o que você está fazendo é mais interessante do que isso. 1648 01:09:17,651 --> 01:09:18,150 Muito agradável. 1649 01:09:18,150 --> 01:09:18,810 Muito agradável. 1650 01:09:18,810 --> 01:09:20,270 Uh-oh. 1651 01:09:20,270 --> 01:09:23,350 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1652 01:09:23,350 --> 01:09:26,005 1653 01:09:26,005 --> 01:09:27,630 Eu acho que você tem que sacrificar-se. 1654 01:09:27,630 --> 01:09:30,372 [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1655 01:09:30,372 --> 01:09:30,872 Rápido! 1656 01:09:30,872 --> 01:09:34,848 1657 01:09:34,848 --> 01:09:38,824 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1658 01:09:38,824 --> 01:09:44,288 1659 01:09:44,288 --> 01:09:44,788 Agradável. 1660 01:09:44,788 --> 01:09:52,240 1661 01:09:52,240 --> 01:09:52,740 Isso está ok. 1662 01:09:52,740 --> 01:09:53,770 Você vai buscá-la. 1663 01:09:53,770 --> 01:09:56,304 Sim sim! 1664 01:09:56,304 --> 01:09:58,256 Muito agradável. 1665 01:09:58,256 --> 01:10:01,184 >> [APLAUSO] 1666 01:10:01,184 --> 01:10:02,160 1667 01:10:02,160 --> 01:10:05,576 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1668 01:10:05,576 --> 01:10:09,480 1669 01:10:09,480 --> 01:10:10,940 >> Agradável! 1670 01:10:10,940 --> 01:10:14,370 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1671 01:10:14,370 --> 01:10:39,050 1672 01:10:39,050 --> 01:10:39,550 Entendi. 1673 01:10:39,550 --> 01:10:41,510 Vamos! 1674 01:10:41,510 --> 01:10:43,470 Segundo ao último nível. 1675 01:10:43,470 --> 01:10:46,900 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1676 01:10:46,900 --> 01:10:49,588 1677 01:10:49,588 --> 01:10:50,580 >> Tudo certo. 1678 01:10:50,580 --> 01:10:54,052 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1679 01:10:54,052 --> 01:11:00,992 1680 01:11:00,992 --> 01:11:01,492 Sim. 1681 01:11:01,492 --> 01:11:06,230 1682 01:11:06,230 --> 01:11:08,020 Bom uso de variáveis ​​aqui. 1683 01:11:08,020 --> 01:11:09,770 [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1684 01:11:09,770 --> 01:11:10,770 Sim. 1685 01:11:10,770 --> 01:11:14,743 [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1686 01:11:14,743 --> 01:11:16,707 1687 01:11:16,707 --> 01:11:17,689 Agradável. 1688 01:11:17,689 --> 01:11:21,126 [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1689 01:11:21,126 --> 01:11:23,581 1690 01:11:23,581 --> 01:11:24,570 Está certo. 1691 01:11:24,570 --> 01:11:25,770 Temos de chegar ao fim. 1692 01:11:25,770 --> 01:11:26,270 Lá. 1693 01:11:26,270 --> 01:11:27,010 Oh! 1694 01:11:27,010 --> 01:11:29,980 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1695 01:11:29,980 --> 01:11:32,160 1696 01:11:32,160 --> 01:11:34,866 >> Pode executar tarde hoje, mas que vai valer a pena. 1697 01:11:34,866 --> 01:11:38,200 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1698 01:11:38,200 --> 01:11:39,640 1699 01:11:39,640 --> 01:11:42,520 >> Você pode fazê-lo! 1700 01:11:42,520 --> 01:11:43,480 sim! 1701 01:11:43,480 --> 01:11:46,278 >> [APLAUSO] 1702 01:11:46,278 --> 01:11:47,230 1703 01:11:47,230 --> 01:11:50,086 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1704 01:11:50,086 --> 01:11:51,470 >> Este é realmente difícil. 1705 01:11:51,470 --> 01:11:54,070 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1706 01:11:54,070 --> 01:11:57,458 1707 01:11:57,458 --> 01:11:59,000 >> Vamos dar-lhe mais duas vidas. 1708 01:11:59,000 --> 01:11:59,968 Consegues fazê-lo? 1709 01:11:59,968 --> 01:12:03,356 >> [MUSIC - MC Hammer, "U não pode tocar  ESTA"] 1710 01:12:03,356 --> 01:12:06,744 1711 01:12:06,744 --> 01:12:07,244 >> Tudo certo. 1712 01:12:07,244 --> 01:12:09,160 Como sobre uma grande rodada de aplausos, no entanto. 1713 01:12:09,160 --> 01:12:10,800 Você chegou ao segundo ao último nível. 1714 01:12:10,800 --> 01:12:11,723 Obrigado. 1715 01:12:11,723 --> 01:12:14,964 >> [Aplausos] 1716 01:12:14,964 --> 01:12:15,890 1717 01:12:15,890 --> 01:12:19,600 >> Portanto, esta é apenas para dizer o quanto você pode fazer com estes tipos de coisas. 1718 01:12:19,600 --> 01:12:21,892 E perceber, também, que quando peças do puzzle não exist-- 1719 01:12:21,892 --> 01:12:24,891 e, na verdade, isso vai ser um das potências com o primeiro problema 1720 01:12:24,891 --> 01:12:27,080 conjuntos e é beyond-- realmente criar o seu próprio. 1721 01:12:27,080 --> 01:12:28,860 E este é apenas um trecho de um dos exemplos 1722 01:12:28,860 --> 01:12:30,230 você vai ser capaz de jogar com online, onde 1723 01:12:30,230 --> 01:12:33,380 se você não ter construído em risco algo como uma peça de quebra-cabeça da tosse, 1724 01:12:33,380 --> 01:12:35,470 você pode realmente fazer isso sozinho. 1725 01:12:35,470 --> 01:12:37,387 >> E então tudo isso e muito mais espera. 1726 01:12:37,387 --> 01:12:39,470 E só para pintar uma final foto de fato o que é 1727 01:12:39,470 --> 01:12:43,120 à frente na loja para a classe para você, baseado em algumas fotos de colegas 1728 01:12:43,120 --> 01:12:46,970 passado, permitam-me que diminua as luzes uma última vez e mostrar-lhe CS50. 1729 01:12:46,970 --> 01:12:49,580 1730 01:12:49,580 --> 01:12:53,038 >> [REPRODUÇÃO DE MÚSICA] 1731 01:12:53,038 --> 01:14:38,210 1732 01:14:38,210 --> 01:14:38,860 >> Tudo certo. 1733 01:14:38,860 --> 01:14:41,540 Isso é tudo para CS50. 1734 01:14:41,540 --> 01:14:44,964 O bolo é agora servido. 1735 01:14:44,964 --> 01:14:50,610 1736 01:14:50,610 --> 01:14:53,960 >> [REPRODUÇÃO DE MÚSICA] 1737 01:14:53,960 --> 01:15:07,624