1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK] 2 00:00:32,435 --> 00:00:35,429 [Música - "Happy Together" As tartarugas] 3 00:01:27,330 --> 00:01:30,170 DAVID Malan: Hoxe, comezamos a nosa explotación do 4 00:01:30,170 --> 00:01:32,710 fundamentos da ciencia da computación e nosa introdución, 5 00:01:32,710 --> 00:01:35,070 Agora, coa técnica de programación, sendo que é 6 00:01:35,070 --> 00:01:36,260 só un exemplo. 7 00:01:36,260 --> 00:01:39,600 Pero, na mesma liña de resolución de problemas, sabe que 8 00:01:39,600 --> 00:01:42,080 Día CS50 do enigma tradicional é mañá. 9 00:01:42,080 --> 00:01:45,190 Se aínda non deu RSVP para este evento, pode ir 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Pode traer equipos de dous, tres ou catro. 12 00:01:50,940 --> 00:01:53,080 Será desafiado con problemas como o que viu 13 00:01:53,080 --> 00:01:54,190 alí enriba no comezo. 14 00:01:54,190 --> 00:01:57,000 Todos os novos problemas deste ano se participou o ano pasado, e 15 00:01:57,000 --> 00:01:59,680 terá unha oportunidade tras gañar algúns premios fabulosos. 16 00:01:59,680 --> 00:02:02,750 Entre eles, un Wii e algúns certificados de presente e como, 17 00:02:02,750 --> 00:02:05,650 todo ao mesmo tempo saír con CS50 alumnos e compañeiros 18 00:02:05,650 --> 00:02:07,720 e pizza e Facebook. 19 00:02:07,720 --> 00:02:10,430 Entón máis sobre iso mañá, se desexa. 20 00:02:10,430 --> 00:02:13,330 >> Este é, entón, CS50, para aqueles de vostedes unirse a nós para o 21 00:02:13,330 --> 00:02:14,510 primeira vez. 22 00:02:14,510 --> 00:02:18,030 E sabemos que este curso é particularmente determinado a conseguir 23 00:02:18,030 --> 00:02:22,605 través deste curso ao seu fin, en que punto se 24 00:02:22,605 --> 00:02:24,270 vai ter non só unha comprensión destes 25 00:02:24,270 --> 00:02:26,450 fundamentos da ciencia da computación, pero vai ter 26 00:02:26,450 --> 00:02:29,120 este conxunto de habilidades moi práctico, que pode levar a 27 00:02:29,120 --> 00:02:31,370 seu propio departamento, se é ciencias de enxeñería, 28 00:02:31,370 --> 00:02:33,570 matemática aplicada, as ciencias físicas, naturais 29 00:02:33,570 --> 00:02:34,780 ciencia, ou semellante. 30 00:02:34,780 --> 00:02:37,030 En realidade, o que é tan emocionante sobre ciencia da computación estes 31 00:02:37,030 --> 00:02:39,900 días é que é tan aplicable a 32 00:02:39,900 --> 00:02:40,990 todos os tipos de campos. 33 00:02:40,990 --> 00:02:46,210 E aínda que hoxe, imos só rabuñar a superficie dun 34 00:02:46,210 --> 00:02:49,020 linguaxe de programación moi tradicional coñecida como C, imos 35 00:02:49,020 --> 00:02:51,040 en vez ollar para algo chamado Scratch, algo 36 00:02:51,040 --> 00:02:53,420 que esa historia de amor cookie foi aplicado por un dos seus 37 00:02:53,420 --> 00:02:57,020 antecesores nos últimos anos, para contar historias, para crear xogos, 38 00:02:57,020 --> 00:03:00,060 para crear arte interactiva, e para realmente comezar a involucrar noso 39 00:03:00,060 --> 00:03:02,240 mente en torno a algunhas das construcións fundamentais que 40 00:03:02,240 --> 00:03:05,390 subxacentes a programación, pero nun contexto, como podes ver, que é 41 00:03:05,390 --> 00:03:09,140 moito menos asustado, iso é moito menos misterioso, que vai ver 42 00:03:09,140 --> 00:03:10,140 antes do tempo. 43 00:03:10,140 --> 00:03:12,410 E entender, tamén, para aqueles de vostedes só unirse a nós esta 44 00:03:12,410 --> 00:03:16,170 semestre, as frases en que estamos encerrados charla do mércores, 45 00:03:16,170 --> 00:03:20,260 non é tan importante cando rematar en relación ao seu 46 00:03:20,260 --> 00:03:22,950 compañeiros nesta clase, pero onde, ata o final do semestre 47 00:03:22,950 --> 00:03:27,190 a semana 11, acaban-se mesmo en relación a este mesmo día. 48 00:03:27,190 --> 00:03:32,000 >> Entón, sen máis delongas, este é tamén de notar que 49 00:03:32,000 --> 00:03:34,450 os menos cómodos, aqueles en algún lugar no medio, son 50 00:03:34,450 --> 00:03:36,825 tamén, polo proxecto do curso, non a calquera inconveniente 51 00:03:36,825 --> 00:03:38,760 vis-á-vis os máis cómodos 52 00:03:38,760 --> 00:03:39,920 que vén a este clase. 53 00:03:39,920 --> 00:03:41,810 Como podes ver ao longo das semanas que virán, temos diferentes 54 00:03:41,810 --> 00:03:44,600 pistas para o fondo volta dispares, seccións para aqueles 55 00:03:44,600 --> 00:03:46,500 menos cómodos, máis cómodo, os algures 56 00:03:46,500 --> 00:03:47,250 no medio. 57 00:03:47,250 --> 00:03:49,520 Como podes ver este fin de semana e na próxima semana, dúas versións 58 00:03:49,520 --> 00:03:52,410 a maioría dos conxuntos de problemas, tanto na edición estándar e hacker así 59 00:03:52,410 --> 00:03:55,390 que todos poden se auto-seleccionar o camiño co que 60 00:03:55,390 --> 00:03:56,615 son máis cómodos. 61 00:03:56,615 --> 00:03:58,770 >> Entón, hoxe, nós mergullo neste programación 62 00:03:58,770 --> 00:04:00,060 linguaxe chamada scratch. 63 00:04:00,060 --> 00:04:02,250 É unha linguaxe de programación gráfica, e aínda ten o 64 00:04:02,250 --> 00:04:04,500 mesmas características dalgunhas das linguaxes de alto nivel que imos 65 00:04:04,500 --> 00:04:07,050 explotar máis tarde no semestre, entre elas C e 66 00:04:07,050 --> 00:04:08,670 JavaScript e PHP. 67 00:04:08,670 --> 00:04:11,890 Pero iso vai permitir previr algunhas das distraccións 68 00:04:11,890 --> 00:04:14,890 no inicio da sintaxe, cousas como punto e coma, parénteses, 69 00:04:14,890 --> 00:04:17,720 e outros detalles secretos que, a primeira vista, non só 70 00:04:17,720 --> 00:04:19,916 en todo intelectualmente interesante e tenden a entrar en 71 00:04:19,916 --> 00:04:22,310 o camiño de unha comprensión fundamental. 72 00:04:22,310 --> 00:04:24,870 En termos de estrutura de soporte de agora á fronte, está realizada 73 00:04:24,870 --> 00:04:27,570 ferramenta, CS50 discutir, que será comunicada no seu curso 74 00:04:27,570 --> 00:04:30,320 web aínda hoxe, é o foro de discusión en liña en 75 00:04:30,320 --> 00:04:32,480 que vai ser capaz de facer preguntas uns dos outros e 76 00:04:32,480 --> 00:04:35,020 persoal, e é tamén unha ferramenta, como veremos a próxima semana, 77 00:04:35,020 --> 00:04:37,240 que nós imos usar bastante integratedly en 78 00:04:37,240 --> 00:04:38,780 horario de oficina tamén. 79 00:04:38,780 --> 00:04:41,670 En realidade, o horario de expediente comezar o luns, e, francamente, o primeiro 80 00:04:41,670 --> 00:04:43,930 semana do horario de oficina é fundamental bastante baixa. 81 00:04:43,930 --> 00:04:46,820 >> Eu non creo que vai atopar todo o que Scratch inaccesible. 82 00:04:46,820 --> 00:04:48,930 É bastante auto-explicativo, como veremos, e así o que 83 00:04:48,930 --> 00:04:51,380 imos usalo para hoxe é de extraer algunhas das 84 00:04:51,380 --> 00:04:53,990 ideas fundamentais, que, a continuación, continuar durante o 85 00:04:53,990 --> 00:04:54,900 resto do semestre. 86 00:04:54,900 --> 00:04:57,980 Pero a partir Luns, ás 8:00 PM través 23:00 será 87 00:04:57,980 --> 00:05:01,530 o horario de expediente en Annenberg máis de pausa cerebro. 88 00:05:01,530 --> 00:05:04,490 Paso dúas comezará esta noite, entón nalgún momento deste 89 00:05:04,490 --> 00:05:07,260 fin de semana, ir cs50.net/section, e vai 90 00:05:07,260 --> 00:05:08,530 ser feitas unha serie de preguntas. 91 00:05:08,530 --> 00:05:10,290 Entre eles, como describiría o seu 92 00:05:10,290 --> 00:05:12,040 nivel de confort a partir de hoxe? 93 00:05:12,040 --> 00:05:14,450 Non hai ningunha regra dura e rápida como a que está en que balde. 94 00:05:14,450 --> 00:05:17,170 É exactamente o tipo de cousas que probablemente sabe, se 95 00:05:17,170 --> 00:05:20,280 están entre os menos cómodos ou doutra forma. 96 00:05:20,280 --> 00:05:21,350 >> E agora, orientacións. 97 00:05:21,350 --> 00:05:24,020 A especificación do conxunto de problemas para esta semana, tanto por defecto 98 00:05:24,020 --> 00:05:28,560 e edición de hackers iguais, conectado neste cs50.net partir de agora. 99 00:05:28,560 --> 00:05:31,500 E vai ver que a primeira destas edicións, a 100 00:05:31,500 --> 00:05:33,940 edición estándar a cada semana, é acompañado por algo que 101 00:05:33,940 --> 00:05:36,550 chamar un paso a paso de código, unha sesión liderada por un dos 102 00:05:36,550 --> 00:05:39,100 compañeiros de curso de ensino para oriente-lo, proporcionar 103 00:05:39,100 --> 00:05:42,290 consellos sobre, e se por un camiño particular cando se trata 104 00:05:42,290 --> 00:05:44,150 para iniciar eses conxuntos de problemas. 105 00:05:44,150 --> 00:05:46,790 Así, con cada un destes conxuntos de problema, se está sempre querendo 106 00:05:46,790 --> 00:05:50,250 para si mesmo, onde eu comezo, comeza con estes 107 00:05:50,250 --> 00:05:50,890 orientacións. 108 00:05:50,890 --> 00:05:53,450 E, de feito, permitan-me presentar Zamyla Chan, este 109 00:05:53,450 --> 00:05:55,870 compañeiro de anos de ensino que estará levando cada 110 00:05:55,870 --> 00:05:56,910 unha desas orientacións. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Aplausos] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA Chan: ¡Ah, ola, todos. 114 00:06:03,975 --> 00:06:05,130 O meu nome é Zamyla. 115 00:06:05,130 --> 00:06:08,250 Eu son un Júnior de enxeñería estudar na Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Pero eu tentar encaixar como cursos de informática moitas ciencia como eu 117 00:06:10,890 --> 00:06:13,350 Pode, por iso que eu estou realmente animado para ser líder esta 118 00:06:13,350 --> 00:06:14,590 orientacións do ano. 119 00:06:14,590 --> 00:06:16,950 Paso a paso, para min, eran unha parte esencial da miña CS50 120 00:06:16,950 --> 00:06:17,910 experiencia. 121 00:06:17,910 --> 00:06:22,710 Durante o paso a paso, para cada p-set, imos pasar por 122 00:06:22,710 --> 00:06:25,580 o conxunto de problemas xuntos, ollar sobre os problemas, tipo de 123 00:06:25,580 --> 00:06:27,360 dividídelos en mordidas gerenciáveis. 124 00:06:27,360 --> 00:06:28,990 Vou che dar consellos, técnicas, para obter 125 00:06:28,990 --> 00:06:30,820 a través de e comezando. 126 00:06:30,820 --> 00:06:33,510 Espero ver todos vostedes nas orientacións. 127 00:06:33,510 --> 00:06:34,720 Se non pode facelo en persoa, entón 128 00:06:34,720 --> 00:06:36,580 por favor, poñerse en sintonía liña. 129 00:06:36,580 --> 00:06:36,840 >> DAVID Malan: Excelente. 130 00:06:36,840 --> 00:06:37,950 Grazas, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Entón entender que orientacións son, de feito, o venres 132 00:06:40,870 --> 00:06:43,110 tarde, pero este é deliberadamente por proxecto de xeito que 133 00:06:43,110 --> 00:06:45,750 mesmo se prefire non asistir ás clases o venres 134 00:06:45,750 --> 00:06:48,490 tarde, os vídeos serán todos ata o máis rapidamente sobre 135 00:06:48,490 --> 00:06:48,990 o fin de semana. 136 00:06:48,990 --> 00:06:51,880 Así, entender que cs50.net serán todos do Zamyla 137 00:06:51,880 --> 00:06:53,130 orientacións. 138 00:06:54,800 --> 00:06:56,890 E que non hai data e hora de hoxe, 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 E algúns dos compañeiros de ensino tamén teñen preparado 141 00:07:00,080 --> 00:07:03,250 algunhas observacións para ti en rebeldía a darlle un pouco de 142 00:07:03,250 --> 00:07:06,760 perspectiva sobre o que a súa experiencia que entra e 143 00:07:06,760 --> 00:07:08,990 saíndo do CS50 como era. 144 00:07:08,990 --> 00:07:11,250 Entón, se puidésemos reducir as luces por só un momento, eu darlle 145 00:07:11,250 --> 00:07:18,100 algúns dos funcionarios do CS50. 146 00:07:18,100 --> 00:07:20,440 >> Jackson Steinkamp: Eu levei CS50 o ano pasado como un calouro na 147 00:07:20,440 --> 00:07:22,880 caer, e é absolutamente estoupou miña mente. 148 00:07:22,880 --> 00:07:25,090 Eu nunca tomara clases de programación antes, 149 00:07:25,090 --> 00:07:26,380 e nunca entrou con calquera ciencia da computación 150 00:07:26,380 --> 00:07:27,320 experiencia. 151 00:07:27,320 --> 00:07:29,240 E, así, eu oín o zunido sobre a clase e 152 00:07:29,240 --> 00:07:30,050 decidiu levala. 153 00:07:30,050 --> 00:07:31,780 >> Julia MITELMAN: Foi moi divertido, moi envolvente. 154 00:07:31,780 --> 00:07:33,480 Eu aínda ata hoxe - 155 00:07:33,480 --> 00:07:36,560 Eu só vin recentemente eu teño o disco que David nos deu 156 00:07:36,560 --> 00:07:38,140 no noso primeiro día de clase. 157 00:07:38,140 --> 00:07:40,020 Eu tiña colgado na miña parede. 158 00:07:40,020 --> 00:07:42,410 Este é, probablemente, un pouco nerd, pero eu desliguei na miña 159 00:07:42,410 --> 00:07:46,930 parede durante a clase como un recordatorio de como foi legal. 160 00:07:46,930 --> 00:07:49,240 >> Travis Downs: É tan embaraçoso. 161 00:07:49,240 --> 00:07:50,770 >> Jackson Steinkamp: Ciencia da Computación é algo que 162 00:07:50,770 --> 00:07:52,370 que tentar mesmo se non é un para 163 00:07:52,370 --> 00:07:54,980 as ciencias tradicionais. 164 00:07:54,980 --> 00:07:58,510 É a súa propia experiencia, e CS50 vai asegurarse de que vostede é 165 00:07:58,510 --> 00:08:01,520 soportado ben con ela co seu verdadeiro exército de TFS. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: Tomei isto como un calouro, e entón eu fixen unha morea 167 00:08:03,700 --> 00:08:04,215 de novos amigos. 168 00:08:04,215 --> 00:08:07,170 Eu tamén fun presentado a esta concentración toda e 169 00:08:07,170 --> 00:08:10,770 escola enteira de enxeñería, e por iso eu recomendo 170 00:08:10,770 --> 00:08:14,360 e a benvida á nosa familia CS50. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv Yacoby: CS50 só ensina a usar ferramentas 172 00:08:17,510 --> 00:08:19,210 que son amplamente accesibles. 173 00:08:19,210 --> 00:08:21,840 Só precisa dun portátil, precisa dun navegador web, e 174 00:08:21,840 --> 00:08:26,030 Necesitamos aprender a escribir un código, e realmente pode construír 175 00:08:26,030 --> 00:08:27,400 cousas legais. 176 00:08:27,400 --> 00:08:31,660 >> Karen Xiao: É tan legal ser capaz de facer algo 177 00:08:31,660 --> 00:08:34,580 e as persoas usalo e as persoas velo, e iso é 178 00:08:34,580 --> 00:08:35,900 o que realmente adoro. 179 00:08:35,900 --> 00:08:37,429 >> Tim McLaughlin: - un sentido de comunidade, eu creo que, neste 180 00:08:37,429 --> 00:08:39,470 naturalmente máis do que calquera outro curso que fixen ata agora. 181 00:08:39,470 --> 00:08:41,350 Non está só tomando outro - 182 00:08:41,350 --> 00:08:42,740 non está enchendo outro requisito. 183 00:08:42,740 --> 00:08:45,310 Vostede non está indo só para conferencias e indo á sección. 184 00:08:45,310 --> 00:08:49,630 Pero está facendo toneladas de cousas que son todos sobre 185 00:08:49,630 --> 00:08:51,560 programación e todo sobre tecnoloxía, pero non 186 00:08:51,560 --> 00:08:53,090 realmente se sente como unha clase maior parte do tempo. 187 00:08:53,090 --> 00:08:55,012 >> Downs Travis: E o primeiro día, eles distribuíron bolo, e 188 00:08:55,012 --> 00:08:56,215 I foi inmediatamente vendido. 189 00:08:56,215 --> 00:08:57,822 >> Jacob PRITT: doces e pizza gratis. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA Chan: - independentemente do seu nivel de interese, eu creo que 191 00:08:59,820 --> 00:09:05,170 que CS50, vai divertirse, e vai ser intelectualmente 192 00:09:05,170 --> 00:09:06,070 estimulada. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-Smith: É sempre unha festa na aula, e é unha 194 00:09:07,926 --> 00:09:09,990 festa cada noite traballando no seu p-set. 195 00:09:09,990 --> 00:09:11,880 >> Jackson Steinkamp: Cada vez que termine un conxunto de problemas, 196 00:09:11,880 --> 00:09:13,710 Vai sentirse como rematar un proxecto. 197 00:09:13,710 --> 00:09:16,580 >> Melissa NIU: Foi o primeiro ano, e eu estaba feito compras. 198 00:09:16,580 --> 00:09:19,030 Eu tiña os meus catro clases listo, e eu estaba en Annenberg. 199 00:09:19,030 --> 00:09:21,670 E eu topar con un amigo, e el di: Ola, eu estou a mercar 200 00:09:21,670 --> 00:09:24,330 esta clase chamada CS50, e ten que vir comigo. 201 00:09:24,330 --> 00:09:28,150 Acabou levándoo a caída, e despois de que a clase, eu 202 00:09:28,150 --> 00:09:30,510 penso que quizais eu vou menor no CS. 203 00:09:30,510 --> 00:09:33,760 Pero aquí estou eu, tres anos despois, aínda estudando ordenador 204 00:09:33,760 --> 00:09:36,680 ciencia e realmente facelo como un gran, e eu amei cada 205 00:09:36,680 --> 00:09:37,780 momento da mesma. 206 00:09:37,780 --> 00:09:39,030 >> ROB BOWDEN: Eu non teño idea. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Imos ver. 208 00:09:48,060 --> 00:09:49,200 >> Melissa NIU: loucura. 209 00:09:49,200 --> 00:09:50,610 >> COLUMNA 1: Eu sinto que eu quedaría moi clichê. 210 00:09:50,610 --> 00:09:52,530 Eu tiña acaba de dicir, como impresionante. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv Yacoby: Accesibilidade. 212 00:09:53,540 --> 00:09:55,080 >> Jacob PRITT: doces e pizza gratis. 213 00:09:55,080 --> 00:09:57,310 >> Travis Downs: Non se pode desactivar unha clase que distribúe bolo. 214 00:09:57,310 --> 00:09:58,510 >> Tim McLaughlin: Enerxética. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Shekhawat: esencial. 216 00:10:00,040 --> 00:10:02,636 >> ROB BOWDEN: Deixe-me pensar unha resposta. 217 00:10:02,636 --> 00:10:04,480 Eu creo que eu teño algo. 218 00:10:04,480 --> 00:10:07,092 Oh, Deus. 219 00:10:07,092 --> 00:10:13,370 Si, o meu nome é Rob Bowden, e este é o CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Aplausos] 221 00:10:20,810 --> 00:10:23,390 DAVID Malan: Todo ben, entón imos comezar a pintar un cadro 222 00:10:23,390 --> 00:10:26,230 da dirección en que podemos ir, e imos introducir 223 00:10:26,230 --> 00:10:28,190 este concepto aquí coñecido como pseudocódigo. 224 00:10:28,190 --> 00:10:29,560 Así, non é un pseudocódigo programación 225 00:10:29,560 --> 00:10:30,810 linguaxe en si. 226 00:10:30,810 --> 00:10:33,250 Non é nada técnico, por si só, pero é só unha especie de 227 00:10:33,250 --> 00:10:36,490 xeito xeral de expresar con bastante precisión, 228 00:10:36,490 --> 00:10:39,730 algoritmicamente bastante, bastante processualmente, pero sen 229 00:10:39,730 --> 00:10:42,570 ter que se preocupar co idioma que está expresando 230 00:10:42,570 --> 00:10:43,150 dentro 231 00:10:43,150 --> 00:10:46,280 É un modelo de Inglés e linguaxes de programación con 232 00:10:46,280 --> 00:10:48,790 que ocorrer de estar familiar, para que poidamos comezar 233 00:10:48,790 --> 00:10:50,600 escribir este tipo de cousas, como imos nós. 234 00:10:50,600 --> 00:10:54,450 E, de feito, José, eu podería pedir-lle enriba do escenario para ser 235 00:10:54,450 --> 00:10:55,490 escriba aquí? 236 00:10:55,490 --> 00:11:00,130 Eu teño ido á fronte aquí con antelación e esquecido de poñer 237 00:11:00,130 --> 00:11:02,920 nalgunhas medias hoxe, e este vai ser entre os nosos máis 238 00:11:02,920 --> 00:11:03,780 exemplos ridículos. 239 00:11:03,780 --> 00:11:04,580 >> Agora, eu teño de ti aquí. 240 00:11:04,580 --> 00:11:05,630 Vou facer parte medias. 241 00:11:05,630 --> 00:11:08,040 Polo tanto, temos aquí un bloque de borrador pouco. 242 00:11:08,040 --> 00:11:09,940 Este é literalmente só TextEdit en un Mac 243 00:11:09,940 --> 00:11:12,270 Non estamos realmente indo para escribir un programa executable, pero 244 00:11:12,270 --> 00:11:14,220 Nós só estamos indo para comezar a esbozar baseada en pseudocódigo 245 00:11:14,220 --> 00:11:17,830 nalgúns dos consellos que fornecer para min aquí. 246 00:11:17,830 --> 00:11:20,760 Entón, aquí está a miña pila de medias en casa. 247 00:11:20,760 --> 00:11:23,320 Eu non teño medias cando espertar pola mañá, e agora 248 00:11:23,320 --> 00:11:26,280 Cómpre escribir un programa, un algoritmo do tipo, co cal 249 00:11:26,280 --> 00:11:27,900 para obter estas medias nos meus pés. 250 00:11:27,900 --> 00:11:30,860 E ao longo do camiño, imos ver se a xente tropezar, ou atopar, 251 00:11:30,860 --> 00:11:32,860 algunhas das ideas que vai ter que comezar a 252 00:11:32,860 --> 00:11:35,470 pensar moito máis en serio cando a programación 253 00:11:35,470 --> 00:11:37,950 para que os seus programas non se comportan así como desexado. 254 00:11:37,950 --> 00:11:39,580 >> Entón eu sentir aquí. 255 00:11:39,580 --> 00:11:41,180 Eu teño a miña pila de medias. 256 00:11:41,180 --> 00:11:43,780 Cal é a primeira cousa que un ser humano racional faría 257 00:11:43,780 --> 00:11:46,600 facer cando o obxectivo é poñer un par de medias? 258 00:11:46,600 --> 00:11:49,190 Alguén me dea un paso, e só un paso. 259 00:11:49,190 --> 00:11:49,796 Si? 260 00:11:49,796 --> 00:11:50,690 Audiencia: Dobre abaixo. 261 00:11:50,690 --> 00:11:54,290 DAVID Malan: Dobre abaixo, todo ben. 262 00:11:54,290 --> 00:11:55,540 Paso dous. 263 00:11:59,975 --> 00:12:00,645 Paso dous. 264 00:12:00,645 --> 00:12:01,840 Audiencia: Tome a súa media. 265 00:12:01,840 --> 00:12:03,220 DAVID Malan: Tome a súa media. 266 00:12:03,220 --> 00:12:07,610 Ok, ambigüidade tan leve aquí, e este é un dos primeiros 267 00:12:07,610 --> 00:12:09,380 pedras de tropezo que estamos supostos deliberadamente 268 00:12:09,380 --> 00:12:10,290 atopar aquí. 269 00:12:10,290 --> 00:12:14,110 É un pouco ambigua, entón tome a súa media. 270 00:12:14,110 --> 00:12:17,425 Todo ben, vou levar un regalo, pero un ordenador, entender en só un 271 00:12:17,425 --> 00:12:20,420 pouco, non vai ter este tipo de instinto humano só 272 00:12:20,420 --> 00:12:21,490 escoller o máis próximo. 273 00:12:21,490 --> 00:12:23,590 Nós imos ter que empezar, en pouco tempo, expresando 274 00:12:23,590 --> 00:12:24,610 nos máis precisamente. 275 00:12:24,610 --> 00:12:26,600 >> Todo ben, entón o segundo paso é obter o seu pé de media. 276 00:12:26,600 --> 00:12:27,520 Imos leva-lo. 277 00:12:27,520 --> 00:12:28,620 Etapa tres. 278 00:12:28,620 --> 00:12:29,532 Na parte de atrás. 279 00:12:29,532 --> 00:12:30,900 Audiencia: Atopar un par correspondente. 280 00:12:30,900 --> 00:12:32,060 DAVID Malan: Atopar parella. 281 00:12:32,060 --> 00:12:34,740 Ok, entón iso é bo. 282 00:12:34,740 --> 00:12:35,650 Eu tiña que escoller esa media. 283 00:12:35,650 --> 00:12:39,200 Así, o obxectivo é atopar unha media correspondencia, agora, pero o que 284 00:12:39,200 --> 00:12:39,990 que significa isto? 285 00:12:39,990 --> 00:12:42,130 Un ser humano razoable estar, así como o mércores, cando eu só 286 00:12:42,130 --> 00:12:44,700 sabía como atopar Mike Smith, un libro de teléfono, só unha especie de 287 00:12:44,700 --> 00:12:45,640 foi co seu instinto. 288 00:12:45,640 --> 00:12:49,220 Pero aquí, é, obviamente, esta media aquí, pero un ordenador 289 00:12:49,220 --> 00:12:51,350 Non vai ser tan instintivo. 290 00:12:51,350 --> 00:12:53,830 Un ordenador vai ter un conxunto de bits, coma nós 291 00:12:53,830 --> 00:12:55,380 discutido o mércores, e eses son 292 00:12:55,380 --> 00:12:56,710 organizada de algunha maneira na memoria. 293 00:12:56,710 --> 00:13:00,400 Pero o punto é que un computador ten só a capacidade de 294 00:13:00,400 --> 00:13:03,390 mirar para as cousas dunha vez, e de feito, aínda que 295 00:13:03,390 --> 00:13:05,980 humanos - aínda que se sente como eu olhei para abaixo e unha división 296 00:13:05,980 --> 00:13:08,900 segundo despois sei onde o troco, meu cerebro e os ollos 297 00:13:08,900 --> 00:13:12,000 presuntamente fixo un rápido roçar deses medias, e despois pechada 298 00:13:12,000 --> 00:13:13,400 para o que está en cuestión. 299 00:13:13,400 --> 00:13:15,780 >> Entón, se imos ser aínda máis deliberada agora como un ordenador, 300 00:13:15,780 --> 00:13:17,780 como fago para atopar ese par de correspondencia? 301 00:13:17,780 --> 00:13:18,890 Ben, temos que só. 302 00:13:18,890 --> 00:13:21,440 Temos que quizais loop sobre esta confusión de medias en 303 00:13:21,440 --> 00:13:25,760 piso en que eu digo algo para cada media, procura-lo 304 00:13:25,760 --> 00:13:30,195 Se, e se a mesma forma e tamaño como o outro, entón 305 00:13:30,195 --> 00:13:32,150 punto, punto, punto, imos continuar a historia. 306 00:13:32,150 --> 00:13:34,430 Así, para cada media, así que eu incorporarse un regalo. 307 00:13:34,430 --> 00:13:36,520 Eu comprobar que é igual a este. 308 00:13:36,520 --> 00:13:38,250 Non é, por iso eu coloque de lado lado. 309 00:13:38,250 --> 00:13:39,220 Entón eu iterar novo. 310 00:13:39,220 --> 00:13:40,340 É este un igual? 311 00:13:40,340 --> 00:13:42,010 Non, non é, entón eu poñelas de lado. 312 00:13:42,010 --> 00:13:42,710 É este? 313 00:13:42,710 --> 00:13:43,200 Non 314 00:13:43,200 --> 00:13:43,670 Ese? 315 00:13:43,670 --> 00:13:44,520 N, e así por diante. 316 00:13:44,520 --> 00:13:48,730 E entón, finalmente, espero, vou atopar ese media aquí. 317 00:13:48,730 --> 00:13:51,350 Entón, se é o mesmo, tamaño, tome. 318 00:13:51,350 --> 00:13:53,980 >> E agora, cal sería o noso seguinte paso aquí? 319 00:13:53,980 --> 00:13:54,402 Si? 320 00:13:54,402 --> 00:13:56,090 Audiencia: Identificar a dereita da esquerda. 321 00:13:56,090 --> 00:13:58,980 DAVID Malan: Ok, identificar dereita e esquerda, de modo 322 00:13:58,980 --> 00:14:01,870 Afortunadamente, este tipo de obras. 323 00:14:01,870 --> 00:14:04,020 Un pouco simétrica, ou eu só canso desa forma. 324 00:14:04,020 --> 00:14:07,020 Todo ben, entón eu identifiquei o dereito. 325 00:14:07,020 --> 00:14:09,980 E agora, antes de proseguir, deixe-me apuntar que José 326 00:14:09,980 --> 00:14:12,890 facendo aquí como unha especie de programador verso. 327 00:14:12,890 --> 00:14:15,800 Entón, de novo, non hai unha forma de facelo, pero ademais de só 328 00:14:15,800 --> 00:14:18,480 numeración das liñas, Joseph xa comezou a facer iso 329 00:14:18,480 --> 00:14:19,460 especie de retirada. 330 00:14:19,460 --> 00:14:21,950 En realidade, esta é unha convención moi común na programación, 331 00:14:21,950 --> 00:14:26,110 polo que, cando fai algo iterativo, looping estilo, como 332 00:14:26,110 --> 00:14:28,480 estamos implicando coa frase Inglés "para cada 333 00:14:28,480 --> 00:14:31,090 Media, "a convención en pseudocódigo e, como veremos, 334 00:14:31,090 --> 00:14:33,410 linguaxes de programación normal, é só guión. 335 00:14:33,410 --> 00:14:36,240 Prema a barra de espazo, algunhas veces, prema a tecla Tab ou similar, 336 00:14:36,240 --> 00:14:40,660 para que aninhada debaixo "para cada media" é o anaco de 337 00:14:40,660 --> 00:14:43,430 cousas que cómpre facer, como resultado dese loop. 338 00:14:43,430 --> 00:14:45,940 Entón, iso é todo o que está transmitindo semanticamente. 339 00:14:45,940 --> 00:14:48,620 Agora, con todo, o "Si é a mesma forma e tamaño," o 340 00:14:48,620 --> 00:14:51,590 feito de que "Take it" é recuado aínda significa só 341 00:14:51,590 --> 00:14:54,370 esa é a única cousa que ten que facer esa condición, 342 00:14:54,370 --> 00:14:59,770 se ese sector, que bifurcación na estrada, é de feito realidade. 343 00:14:59,770 --> 00:15:02,130 >> Entón, agora aquí, estamos en catro etapas, identificar dereita e esquerda. 344 00:15:02,130 --> 00:15:03,410 Eu identifiquei dereita. 345 00:15:03,410 --> 00:15:05,150 Me dea o paso cinco. 346 00:15:05,150 --> 00:15:07,880 E, tecnicamente, é realmente chamar 347 00:15:07,880 --> 00:15:09,510 para cada cousa - 348 00:15:09,510 --> 00:15:11,450 vostede probabelmente debería numerar tódalas liñas 349 00:15:11,450 --> 00:15:12,190 imos facelo. 350 00:15:12,190 --> 00:15:14,006 José: [inaudível] 351 00:15:14,006 --> 00:15:14,610 DAVID Malan: [inaudível]? 352 00:15:14,610 --> 00:15:16,070 Ok, todo ben, todo ben, imos facer do seu xeito. 353 00:15:16,070 --> 00:15:19,590 Todo ben, entón paso cinco, como é que imos facer a media dereita? 354 00:15:19,590 --> 00:15:22,310 Como debemos proceder seguinte visita? 355 00:15:22,310 --> 00:15:22,730 Si? 356 00:15:22,730 --> 00:15:24,300 Audiencia: Levante a perna dereita. 357 00:15:24,300 --> 00:15:27,100 DAVID Malan: Levante a perna dereita, todo ben. 358 00:15:27,100 --> 00:15:29,330 Paso seis? 359 00:15:29,330 --> 00:15:30,728 Rapidamente. 360 00:15:30,728 --> 00:15:31,202 Si 361 00:15:31,202 --> 00:15:33,100 Audiencia: Buscar unha extrema aberta do media. 362 00:15:33,100 --> 00:15:34,440 DAVID Malan: Ok, atopar a extrema aberta do media. 363 00:15:34,440 --> 00:15:34,840 Tan bo. 364 00:15:34,840 --> 00:15:37,180 Entón, aquí, honesta, un instinto moi común sería só 365 00:15:37,180 --> 00:15:39,880 poñer media dereita, pero que tamén é bastante ambigua. 366 00:15:39,880 --> 00:15:42,750 A menos que o ordenador ou humano sabe exactamente o que iso significa, 367 00:15:42,750 --> 00:15:45,160 non vai ser para executar esta, por iso aquí, eu teño 368 00:15:45,160 --> 00:15:46,520 atopou a apertura do stock. 369 00:15:46,520 --> 00:15:48,222 Paso sete? 370 00:15:48,222 --> 00:15:49,700 Audiencia: Preme os dedos dos pés. 371 00:15:49,700 --> 00:15:51,070 DAVID Malan: dedos Touch. 372 00:15:51,070 --> 00:15:53,546 Ok, entón agora nós imos - 373 00:15:53,546 --> 00:15:56,480 Todo ben, eu vou tomar algunhas liberdades aquí. 374 00:15:56,480 --> 00:15:57,110 Grazas. 375 00:15:57,110 --> 00:15:59,210 Paso oito? 376 00:15:59,210 --> 00:16:00,060 Engade media. 377 00:16:00,060 --> 00:16:02,060 Ok, entón agora eu creo que estamos preto o suficiente para clasificarse para tomar 378 00:16:02,060 --> 00:16:03,480 iso na casa. 379 00:16:03,480 --> 00:16:05,980 Todo ben, entón este sobe. 380 00:16:05,980 --> 00:16:07,950 Vou tomar algunhas liberdades coa que significa, en realidade. 381 00:16:07,950 --> 00:16:08,920 Pon a media en. 382 00:16:08,920 --> 00:16:10,853 Todo ben, agora o paso nove? 383 00:16:10,853 --> 00:16:11,740 Audiencia: Coloca o pé. 384 00:16:11,740 --> 00:16:12,510 DAVID Malan: Grazas. 385 00:16:12,510 --> 00:16:15,610 Paso nove, puxo o pé para abaixo, e agora podemos repetir. 386 00:16:15,610 --> 00:16:19,540 Así, presuntamente, agora podemos ir ao paso 10 e dicir identificar 387 00:16:19,540 --> 00:16:21,960 deixou media, pero iso é probablemente xa feito. 388 00:16:21,960 --> 00:16:24,100 >> E entón, podo clasificar de repetir estes pasos. 389 00:16:24,100 --> 00:16:25,260 Pero este tipo de petición de principio. 390 00:16:25,260 --> 00:16:28,100 Antes, a última vez que quería repetir algo, nós 391 00:16:28,100 --> 00:16:30,730 fixo iso de forma iterativa, de novo e de novo, un FOR 392 00:16:30,730 --> 00:16:32,660 Cada loop por así dicir. 393 00:16:32,660 --> 00:16:36,420 Será que ten sentido usar un circuíto para tratar cos dous 394 00:16:36,420 --> 00:16:38,470 á esquerda e á media non? 395 00:16:38,470 --> 00:16:40,460 Porque parece que estas operacións son moi 396 00:16:40,460 --> 00:16:43,090 idénticas, excepto polo feito de que un comeza aquí e un 397 00:16:43,090 --> 00:16:44,850 comeza aquí? 398 00:16:44,850 --> 00:16:47,400 Nós loop, ou imos só manter as medidas de escritura 399 00:16:47,400 --> 00:16:48,745 10 e 11 e 12? 400 00:16:48,745 --> 00:16:50,540 Audiencia: Bucle. 401 00:16:50,540 --> 00:16:52,240 >> DAVID Malan: Ok, entón loop. 402 00:16:52,240 --> 00:16:54,730 En realidade, eu podería dicir só continuar. 403 00:16:54,730 --> 00:16:55,720 Entón, por que é este o caso? 404 00:16:55,720 --> 00:16:57,940 Ben, este é realmente o primeiro da nosa non obvio 405 00:16:57,940 --> 00:17:01,210 decisións de proxecto e, de feito, unha das métricas coas que 406 00:17:01,210 --> 00:17:03,990 imos comezar a avaliar, para nós e para ti, o 407 00:17:03,990 --> 00:17:06,780 calidade dun programa é o quão ben deseñado que é. 408 00:17:06,780 --> 00:17:09,619 Xa fixo a cantidade mínima de traballo necesario para 409 00:17:09,619 --> 00:17:12,480 facer o traballo o máis axiña, tanto en termos de 410 00:17:12,480 --> 00:17:15,430 o seu tempo ou en termos de tempo de funcionamento do ordenador? 411 00:17:15,430 --> 00:17:17,589 Cantas operacións que hai que para facer? 412 00:17:17,589 --> 00:17:20,180 Entón, sen dúbida, esta é unha oportunidade para un loop porque 413 00:17:20,180 --> 00:17:22,829 así que eu comezar a copiar e pegar, como Joseph efectivamente 414 00:17:22,829 --> 00:17:25,010 ía comezar a facer nun momento, está perdendo o seu tipo de 415 00:17:25,010 --> 00:17:27,140 tempo, e está sendo dobremente significativo. 416 00:17:27,140 --> 00:17:30,260 >> Pero, ao mesmo tempo, trátase realmente só dous especial 417 00:17:30,260 --> 00:17:31,890 casos, á esquerda e á dereita. 418 00:17:31,890 --> 00:17:34,930 E que, antes, eu podería ter 10 ou 20 ou máis medias en 419 00:17:34,930 --> 00:17:37,960 unha pila, el definitivamente non ten sentido ter 50 liñas de 420 00:17:37,960 --> 00:17:40,180 código dicindo comprobar esta media, así que a próxima, 421 00:17:40,180 --> 00:17:41,300 entón a próxima. 422 00:17:41,300 --> 00:17:43,450 Aquí, é un pouco menos evidente, e quere propoñer 423 00:17:43,450 --> 00:17:44,390 que podería ir de calquera maneira. 424 00:17:44,390 --> 00:17:46,720 Podiamos ter ese ciclo, aínda que só lazos 425 00:17:46,720 --> 00:17:50,620 dúas veces, ou podemos simplemente copiar e pegar un pouco 426 00:17:50,620 --> 00:17:53,270 aquí, a fin de comezar o traballo feito. 427 00:17:53,270 --> 00:17:55,210 Pero este programa é buggy, por así dicir. 428 00:17:55,210 --> 00:17:59,120 Pode ter algúns erros, erros, ou casos de canto, para 429 00:17:59,120 --> 00:18:00,860 falar, que realmente non prevista. 430 00:18:00,860 --> 00:18:03,400 Nada deu mal desta vez, pero o que podería ter dado mal 431 00:18:03,400 --> 00:18:06,100 durante a execución deste programa? 432 00:18:06,100 --> 00:18:07,040 Audiencia: Non ten ningún medias. 433 00:18:07,040 --> 00:18:08,980 >> DAVID Malan: Entón non pode haber medias hai ningunha. 434 00:18:08,980 --> 00:18:10,380 Entón, imos considerar que no caso de canto. 435 00:18:10,380 --> 00:18:14,670 Entón, se nós podería rolar para atrás ata o primeiro paso, entón o primeiro paso foi 436 00:18:14,670 --> 00:18:16,540 combar-se para que o check-out. 437 00:18:16,540 --> 00:18:21,250 Paso dous, incorporarse súa media, pero a continuación, atopar medias combinando, 438 00:18:21,250 --> 00:18:22,420 identificar dereito. 439 00:18:22,420 --> 00:18:25,050 Nós medio que fixo unha morea de casos, e dicir, 440 00:18:25,050 --> 00:18:27,720 francamente, porque o programa ás veces falla. 441 00:18:27,720 --> 00:18:30,240 Se o desenvolvedor, fixeron certos presupostos, como 442 00:18:30,240 --> 00:18:33,000 certamente non vai ser medias ou, certamente, alí vai 443 00:18:33,000 --> 00:18:35,310 para ser deixado en memoria do ordenador, certamente non vai 444 00:18:35,310 --> 00:18:37,420 ser espazo libre en disco no disco duro - 445 00:18:37,420 --> 00:18:39,040 Ben, se fai esas premisas, e que non é, 446 00:18:39,040 --> 00:18:41,880 En realidade, a realidade, quen sabe ás veces o que o equipo de 447 00:18:41,880 --> 00:18:42,520 vai facer? 448 00:18:42,520 --> 00:18:44,450 E ás veces, cando comeza a bola de praia fiación ou 449 00:18:44,450 --> 00:18:47,750 O Windows conxelado ou similar, que é precisamente porque algúns 450 00:18:47,750 --> 00:18:50,980 programador non adiantou os casos chamados de canto. 451 00:18:50,980 --> 00:18:53,050 O que máis podería ter dado mal neste programa? 452 00:18:53,050 --> 00:18:53,330 Si? 453 00:18:53,330 --> 00:18:55,950 >> Audiencia: Non ten unha perna dereita e un na perna esquerda. 454 00:18:55,950 --> 00:18:58,920 DAVID Malan: Ok, pode non ter tanto perna dun dereito e un 455 00:18:58,920 --> 00:19:01,940 perna esquerda, e por iso este programa pode non ser universalmente 456 00:19:01,940 --> 00:19:02,590 aplicable. 457 00:19:02,590 --> 00:19:03,658 Outros? 458 00:19:03,658 --> 00:19:05,650 Audiencia: Pode ter pego unha media orfo. 459 00:19:05,650 --> 00:19:07,970 DAVID Malan: Eu podería ter pego unha media orfo, xa que logo, un 460 00:19:07,970 --> 00:19:11,250 de non-casamento media que só non ten irmáns, porque eu teño 461 00:19:11,250 --> 00:19:13,650 perdeu, está rasgado, é na lavado aínda, ou algo semellante. 462 00:19:13,650 --> 00:19:15,550 De xeito que, tamén, non foi tratado. 463 00:19:15,550 --> 00:19:15,790 Si? 464 00:19:15,790 --> 00:19:17,510 Audiencia: Vostede xa debe ter medias. 465 00:19:17,510 --> 00:19:19,050 DAVID Malan: Eu xa podería medias. 466 00:19:19,050 --> 00:19:20,080 Eu realmente non verificar. 467 00:19:20,080 --> 00:19:23,350 Se non ten medias, a continuación, proceder para facer 468 00:19:23,350 --> 00:19:24,330 liña de un e dous. 469 00:19:24,330 --> 00:19:24,980 E iso podería acontecer. 470 00:19:24,980 --> 00:19:26,880 Durmir con medias e similares, así 471 00:19:26,880 --> 00:19:28,860 que, tamén, un caso de esquina moi razoable. 472 00:19:28,860 --> 00:19:29,630 E quizais outro? 473 00:19:29,630 --> 00:19:31,310 Audiencia: A media é de dentro para fóra. 474 00:19:31,310 --> 00:19:34,000 DAVID Malan: Entón, a media é de dentro para fóra, por iso fixemos ningún erro 475 00:19:34,000 --> 00:19:35,330 comprobar, en definitiva. 476 00:19:35,330 --> 00:19:38,550 Non comprobar o estado do mundo é como esperamos. 477 00:19:38,550 --> 00:19:41,310 Non comprobar se realmente atopamos o que está a procurar. 478 00:19:41,310 --> 00:19:43,310 >> E aínda que esta é unha especie de exemplo ridículo 479 00:19:43,310 --> 00:19:46,110 envolvendo medias, ao final do día, é dicir exactamente o 480 00:19:46,110 --> 00:19:48,740 tipo de mentalidade que precisa ter ao escribir programas, 481 00:19:48,740 --> 00:19:51,740 mesmo en cero, así como en C, en JavaScript, en PHP, 482 00:19:51,740 --> 00:19:53,920 porque se non, os seus programas exhiben a 483 00:19:53,920 --> 00:19:56,980 equivalente que bola de praia fiación ou só producir 484 00:19:56,980 --> 00:19:58,210 resultados imprecisos. 485 00:19:58,210 --> 00:20:00,250 Grazas tantos aquí para o noso escriba de Joseph. 486 00:20:00,250 --> 00:20:05,060 [Aplausos] 487 00:20:05,060 --> 00:20:06,850 >> DAVID Malan: Todo ben, entón o que é, en 488 00:20:06,850 --> 00:20:08,230 feito, un programa de ordenador? 489 00:20:08,230 --> 00:20:09,670 Ben, imos dar unha rápida ollo a unha 490 00:20:09,670 --> 00:20:11,100 un representante aquí. 491 00:20:11,100 --> 00:20:15,260 Polo tanto, este é un programa escrito nunha linguaxe chamada C. C é 492 00:20:15,260 --> 00:20:17,830 bastante antigas estes días, pero moitas novas linguaxes son construídas 493 00:20:17,830 --> 00:20:18,460 enriba dela. 494 00:20:18,460 --> 00:20:21,180 En realidade, PHP, unha das linguaxes de web-centric imos 495 00:20:21,180 --> 00:20:24,050 empregar para finais do prazo, ela ten o que se chama 496 00:20:24,050 --> 00:20:27,550 intérprete, un programa que está escrito en C, pero máis sobre iso 497 00:20:27,550 --> 00:20:28,690 en moitas semanas a partir de agora. 498 00:20:28,690 --> 00:20:30,840 Pero este programa, e iso é o que significa escribir un 499 00:20:30,840 --> 00:20:32,880 programa, aínda que moi simple. 500 00:20:32,880 --> 00:20:35,540 Temos algunha sintaxe críptica aquí, pero pode 501 00:20:35,540 --> 00:20:38,340 probablemente creo que, mesmo se nunca programou antes, o que 502 00:20:38,340 --> 00:20:39,750 este programa fai. 503 00:20:39,750 --> 00:20:43,640 En realidade, eu non sei o que printf é, pero certamente imprimir 504 00:20:43,640 --> 00:20:45,700 evoca a idea de imprimir algo. 505 00:20:45,700 --> 00:20:48,590 E entón si, este programa vai finalmente para imprimir 506 00:20:48,590 --> 00:20:50,250 as palabras "Ola, mundo". 507 00:20:50,250 --> 00:20:53,390 >> Agora, se ten un Mac ou PC ou un ordenador con Linux, as probabilidades 508 00:20:53,390 --> 00:20:55,550 son, polo menos, se baixou algún libremente 509 00:20:55,550 --> 00:20:58,000 software dispoñible, podería ter sido escrita de programas en 510 00:20:58,000 --> 00:21:00,310 seu propio ordenador portátil por un bo tempo agora. 511 00:21:00,310 --> 00:21:03,040 Mac OS, por exemplo, hai un programa chamado 512 00:21:03,040 --> 00:21:05,340 Terminal que ven con un Mac, que normalmente é a súa 513 00:21:05,340 --> 00:21:07,550 Utilidades da carpeta, e que, xeralmente abre un negro e 514 00:21:07,550 --> 00:21:09,820 branca ou unha ventá en branco e negro en que ten un 515 00:21:09,820 --> 00:21:11,410 ventá na que podes escribir ordes. 516 00:21:11,410 --> 00:21:13,060 Polo tanto, esta é realmente unha reminiscencia do que os ordenadores 517 00:21:13,060 --> 00:21:15,100 adoitaba ser antes gráfica de usuario 518 00:21:15,100 --> 00:21:16,710 interfaces, as interfaces gráficas, veu xunto. 519 00:21:16,710 --> 00:21:19,200 Agora, en Windows, ten un mecanismo semellante na forma 520 00:21:19,200 --> 00:21:20,130 do ventá de consola. 521 00:21:20,130 --> 00:21:23,430 >> Pero o que eu vou facer aquí é abrirse, digamos, 522 00:21:23,430 --> 00:21:26,580 TextEdit de novo, entón o mesmo programa que estaba usando para 523 00:21:26,580 --> 00:21:28,870 Nun momento pseudocódigo atrás, e eu estou indo a ir adiante e 524 00:21:28,870 --> 00:21:30,080 escribir o meu primeiro programa. 525 00:21:30,080 --> 00:21:34,030 Engadir stdio.h, o que iso significa, int main 526 00:21:34,030 --> 00:21:36,880 baleiro, o que iso significa, e despois no medio aquí, 527 00:21:36,880 --> 00:21:40,560 printf ("Ola, mundo".). E entón cita preto, 528 00:21:40,560 --> 00:21:42,340 pechar parénteses, punto e coma. 529 00:21:42,340 --> 00:21:44,460 Agora eu estou indo a ir adiante e bateu Command-S. Vou 530 00:21:44,460 --> 00:21:47,650 para ir adiante e salva este como hello.c, para a convención en 531 00:21:47,650 --> 00:21:50,530 no mundo da programación C é o nome do ficheiro de punto c. 532 00:21:50,530 --> 00:21:52,880 Vou só poñer no directorio John Harvard Casa, 533 00:21:52,880 --> 00:21:56,370 aquí, faga clic en Gardar, e agora eu estou indo a ir a esta 534 00:21:56,370 --> 00:21:59,110 ventá de terminal, que de novo é o poder branco e negro 535 00:21:59,110 --> 00:22:00,860 onde eu poida executar comandos. 536 00:22:00,860 --> 00:22:04,550 >> Podo realizar programas, escribindo o seu nome, e non por 537 00:22:04,550 --> 00:22:06,710 dobre clic iconas no sentido usual. 538 00:22:06,710 --> 00:22:10,590 Pero a cousa é o C é que unha lingua como o primeiro C 539 00:22:10,590 --> 00:22:13,150 vén desta forma, algo chamado código fonte. 540 00:22:13,150 --> 00:22:15,400 Algo que parece un pouco como o inglés, pero é 541 00:22:15,400 --> 00:22:17,980 definitivamente menos como o inglés que un pseudocódigo José 542 00:22:17,980 --> 00:22:18,930 momento atrás. 543 00:22:18,930 --> 00:22:20,560 É un pouco máis escuro. 544 00:22:20,560 --> 00:22:22,830 Parece seguir algúns patróns ou normas. 545 00:22:22,830 --> 00:22:25,300 O feito de eu ter chaves, comas, multimedia, 546 00:22:25,300 --> 00:22:28,240 claves ángulo, se sente como un ordenador veu con esa 547 00:22:28,240 --> 00:22:29,250 tipo de linguaxe. 548 00:22:29,250 --> 00:22:32,010 Pero se eu for, agora, para esta xanela de terminal, que pode executar un 549 00:22:32,010 --> 00:22:35,250 de mando que vai converter ese código fonte é 550 00:22:35,250 --> 00:22:36,610 algo chamado de código obxecto. 551 00:22:36,610 --> 00:22:39,690 Isto vai converterse Inglés sintaxe semellante a ceros 552 00:22:39,690 --> 00:22:41,760 e uns, os mesmos tipos de ceros e uns, nós 553 00:22:41,760 --> 00:22:42,820 falou sobre mércores. 554 00:22:42,820 --> 00:22:44,810 Agora, eu estou indo a executar un comando chamado Clang. 555 00:22:44,810 --> 00:22:47,750 Máis sobre iso nas próximas semanas, pero é un programa con 556 00:22:47,750 --> 00:22:52,330 que podo converter hello.c nun monte 557 00:22:52,330 --> 00:22:53,640 de ceros e uns. 558 00:22:53,640 --> 00:22:54,950 >> Agora, eu executar este comando. 559 00:22:54,950 --> 00:22:57,940 Xa corrín Clang, e entón eu dixen-se en facer este ficheiro 560 00:22:57,940 --> 00:23:00,630 chamado hello.c, que eu creei un momento atrás, e 561 00:23:00,630 --> 00:23:02,090 nada parece ocorrer. 562 00:23:02,090 --> 00:23:05,550 Pero, en realidade, se eu coloque arredor do meu directorio home, quere ver 563 00:23:05,550 --> 00:23:09,620 que este programa a.out estupidamente chamado agora existe. 564 00:23:09,620 --> 00:23:12,250 Este é só o nome estándar para un programa ao escribir en 565 00:23:12,250 --> 00:23:15,140 C. Podemos substituír este, eventualmente, pero é o a.out 566 00:23:15,140 --> 00:23:18,340 nome do programa que eu só convertidos en ceros e uns. 567 00:23:18,340 --> 00:23:21,490 E agora que está ceros e uns, o meu Mac, neste caso, ou 568 00:23:21,490 --> 00:23:24,670 PC con Windows, pode entenderse os bits, os 569 00:23:24,670 --> 00:23:25,410 ceros e uns. 570 00:23:25,410 --> 00:23:29,130 E entón cando presione Enter, eu vexo "Ola, mundo!" 571 00:23:29,130 --> 00:23:31,270 >> Pero é un pouco buggy. 572 00:23:31,270 --> 00:23:34,110 Eu non sabía ben dicir "Ola, mundo: aire: -! Jharvard". O aire é 573 00:23:34,110 --> 00:23:35,020 o nome do meu ordenador. 574 00:23:35,020 --> 00:23:37,730 Jharvard é o nome da conta, entón o que eu claramente 575 00:23:37,730 --> 00:23:41,070 omitir do programa? 576 00:23:41,070 --> 00:23:42,480 Algún tipo de salto de liña. 577 00:23:42,480 --> 00:23:45,150 Eu non bati o equivalente a intro ou o retorno de coche, 578 00:23:45,150 --> 00:23:47,760 e isto é, de novo, proba do feito de que ordenadores pode 579 00:23:47,760 --> 00:23:49,800 só facer o que lles din que facer. 580 00:23:49,800 --> 00:23:52,400 E o feito de eu non dicir ao ordenador mover o 581 00:23:52,400 --> 00:23:53,860 cursor á seguinte liña - 582 00:23:53,860 --> 00:23:55,200 Ben, iso certamente non vai só facelo 583 00:23:55,200 --> 00:23:56,750 presunçosamente para min. 584 00:23:56,750 --> 00:24:00,860 Entón, se eu volver para o meu programa, e digo \ n - 585 00:24:00,860 --> 00:24:03,180 Entón, \ n, como veremos en breve, é o camiño da 586 00:24:03,180 --> 00:24:06,910 representando cousas estrañas como novos carácteres de liña, cousas 587 00:24:06,910 --> 00:24:08,840 que doutra forma sería o resultado da 588 00:24:08,840 --> 00:24:09,940 preme a tecla Enter. 589 00:24:09,940 --> 00:24:11,730 Pero, polo de agora, só sei que bater a tecla Intro se 590 00:24:11,730 --> 00:24:14,170 só facer o noso código parecer estraño, para que o mundo decidiu, vostede sabe 591 00:24:14,170 --> 00:24:16,580 o que, para manter as cousas máis bonitas, para mantelo en liña, imos 592 00:24:16,580 --> 00:24:19,070 só dicir \ n representa unha nova liña. 593 00:24:19,070 --> 00:24:22,260 Deixe-me volver a gardar o meu arquivo, volva para a xanela do terminal, e 594 00:24:22,260 --> 00:24:25,290 re-executar a.out, Intro. 595 00:24:25,290 --> 00:24:28,374 Aínda buggy, pero por que? 596 00:24:28,374 --> 00:24:29,750 >> Audiencia: [inaudível] 597 00:24:29,750 --> 00:24:31,540 DAVID Malan: Si, por iso eu teño recopila-lo. 598 00:24:31,540 --> 00:24:34,610 Entón, para compilar un programa só significa convertelo lo de fonte 599 00:24:34,610 --> 00:24:37,660 código para código obxecto do código fonte, para ceros e uns. 600 00:24:37,660 --> 00:24:40,830 Agora, o simple feito de eu acertar Aforrar neste TextEdit non 601 00:24:40,830 --> 00:24:43,450 tendo sobre os ceros e uns, porque eu teño primeiro 602 00:24:43,450 --> 00:24:48,260 diga Clang hey, eu mudei as liñas de código, o 603 00:24:48,260 --> 00:24:49,040 código fonte. 604 00:24:49,040 --> 00:24:51,010 Debe rexenerar a.out. 605 00:24:51,010 --> 00:24:52,990 Nada parece acontecer, pero en un ordenador, 606 00:24:52,990 --> 00:24:55,820 na liña de comandos, por así dicir, cando nada pasa, 607 00:24:55,820 --> 00:24:57,510 que normalmente significa que está todo ben. 608 00:24:57,510 --> 00:24:59,040 Cando algo pasa, iso significa 609 00:24:59,040 --> 00:25:00,420 vostede romper todo, en xeral. 610 00:25:00,420 --> 00:25:04,020 >> Entón, imos agora ir a.out, e de feito agora, eu teño "Ola, 611 00:25:04,020 --> 00:25:04,440 mundo ". 612 00:25:04,440 --> 00:25:05,990 E agora, o que pasa con eses ceros e uns? 613 00:25:05,990 --> 00:25:07,520 Onde, de feito, son os? 614 00:25:07,520 --> 00:25:10,710 Ben, eu non podo realmente só tipo de fuçar moi 615 00:25:10,710 --> 00:25:11,210 eficazmente. 616 00:25:11,210 --> 00:25:12,650 Deixe-me abrir o editor de texto. 617 00:25:12,650 --> 00:25:14,060 Aquí está a.out. 618 00:25:14,060 --> 00:25:17,390 Deixe-me ir adiante e abrir isto, e este é, aparentemente, o que o meu 619 00:25:17,390 --> 00:25:19,080 programa parece. 620 00:25:19,080 --> 00:25:21,570 Entón, eu abrín, non hello.c, pero a.out. 621 00:25:21,570 --> 00:25:23,960 Pero este non é realmente o que o meu programa realmente é. 622 00:25:23,960 --> 00:25:26,450 Claramente, este é un tipo de carácteres alfabéticos. 623 00:25:26,450 --> 00:25:28,670 Eu non vexo ningún ceros e uns, pero este é 624 00:25:28,670 --> 00:25:30,780 porque a.out é un programa. 625 00:25:30,780 --> 00:25:33,540 Ceros e uns - pero TextEdit, como o nome suxire, é 626 00:25:33,540 --> 00:25:37,130 así como o bloque de notas de Windows, é só un editor de texto, polo que é 627 00:25:37,130 --> 00:25:39,730 confundindo todos estes ceros e uns como 628 00:25:39,730 --> 00:25:41,870 se fosen, o que? 629 00:25:41,870 --> 00:25:43,380 Caracteres ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Entón, recordo o mércores, só veu con esa 631 00:25:45,020 --> 00:25:48,740 cartografía arbitrario de números, ou bits, para letras do 632 00:25:48,740 --> 00:25:51,690 alfabeto e signos de puntuación e afíns. 633 00:25:51,690 --> 00:25:54,920 Entón TextEdit, que é un editor de texto e interpretar mal 634 00:25:54,920 --> 00:25:57,270 Estes estándares de ceros e uns que son supostos ser 635 00:25:57,270 --> 00:25:59,990 palabras de impresión como "Ola Mundo". É exhibídelos 636 00:25:59,990 --> 00:26:02,150 como ASCII, e é por iso que parece un pouco confuso. 637 00:26:02,150 --> 00:26:04,910 Agora, hai algúns consellos de corrección aquí. 638 00:26:04,910 --> 00:26:08,090 Teña en conta destacar, hai unha pitada de verdade "Ola, 639 00:26:08,090 --> 00:26:10,810 mundo ", en algún lugar en que o programa é 640 00:26:10,810 --> 00:26:12,120 a frase que escribiu. 641 00:26:12,120 --> 00:26:14,610 Pero imos adiante e ver agora con un programa diferente. 642 00:26:14,610 --> 00:26:17,420 Este non é que imos usar, que moitas veces, pero tamén ven con 643 00:26:17,420 --> 00:26:19,970 un Mac e vai estar dentro do aparello CS50. 644 00:26:19,970 --> 00:26:23,940 Deixe-me ir adiante e abrir un programa chamado XXD. 645 00:26:23,940 --> 00:26:26,530 >> Volver o día, a maioría dos programas foron nomeados bastante enigmaticamente, 646 00:26:26,530 --> 00:26:28,200 e así a tendencia continúa. 647 00:26:28,200 --> 00:26:31,160 Pero B significa cuspir fóra este programa como binario. 648 00:26:31,160 --> 00:26:32,330 Non executa-lo. 649 00:26:32,330 --> 00:26:35,770 Amosar-me como ceros e uns, e este é o C 650 00:26:35,770 --> 00:26:37,190 programa que acaba de escribir. 651 00:26:37,190 --> 00:26:39,920 Agora, eu, como un ser humano aquí, eu sinceramente non teño idea do que 652 00:26:39,920 --> 00:26:42,230 Estes varios patróns de ceros e uns representan. 653 00:26:42,230 --> 00:26:45,320 Volver o día, eu, cos meus tarxetas perfurados ou similares, sería 654 00:26:45,320 --> 00:26:48,080 realmente ten que buscar o que estes varios patróns de 655 00:26:48,080 --> 00:26:51,560 01111000, realmente representan. 656 00:26:51,560 --> 00:26:54,390 Ou peor, eu tería que facer a perforación ou a creación 657 00:26:54,390 --> 00:26:56,130 destes patróns de ceros e uns. 658 00:26:56,130 --> 00:27:00,410 Pero, por agora, asumir a fe que unha CPU, Intel Inside, así 659 00:27:00,410 --> 00:27:03,440 para falar, dentro de todos os nosos ordenadores estes días, sabe 660 00:27:03,440 --> 00:27:05,100 como interpretar estes ceros e uns. 661 00:27:05,100 --> 00:27:07,010 E algúns ceros e uns significan impresión. 662 00:27:07,010 --> 00:27:09,040 Algúns ceros e uns significa reproducir un son. 663 00:27:09,040 --> 00:27:13,630 Algúns ceros e uns significa tomar a entrada do usuario a partir dun teclado. 664 00:27:13,630 --> 00:27:15,960 Hai todo tipo de patróns diferentes, pero, afortunadamente, 665 00:27:15,960 --> 00:27:19,680 como seres humanos, en xeral, só precisa se preocupar coa programación en 666 00:27:19,680 --> 00:27:21,270 este nivel moi elevado. 667 00:27:21,270 --> 00:27:24,320 E noutras clases CS pode mergullar máis fondo e ollar 668 00:27:24,320 --> 00:27:26,820 en cousas como os ceros e uns, ou 669 00:27:26,820 --> 00:27:28,000 outras cousas aínda. 670 00:27:28,000 --> 00:27:29,210 >> Entón agora imos converter este. 671 00:27:29,210 --> 00:27:32,550 Imos pasar moi rapidamente para lonxe de C e pasar algo un 672 00:27:32,550 --> 00:27:36,390 pouco máis cómodo, un pouco máis emocionante, en que 673 00:27:36,390 --> 00:27:39,340 podemos volver nosas animacións e sons e afíns que 674 00:27:39,340 --> 00:27:40,940 claramente escapar nós neste 675 00:27:40,940 --> 00:27:42,480 Interface moi primitiva. 676 00:27:42,480 --> 00:27:46,430 Polo tanto, este mesmo programa en C pode ser representada, xa neste 677 00:27:46,430 --> 00:27:50,060 linguaxe de programación chamada Scratch deste xeito. 678 00:27:50,060 --> 00:27:54,230 Isto é o equivalente a este programa Ola Mundo escrito 679 00:27:54,230 --> 00:27:57,370 este enigma linguaxe de estilo peza chamada scratch. 680 00:27:57,370 --> 00:28:00,600 Entón deixe-me ir adiante e abrir este programa moito. 681 00:28:00,600 --> 00:28:01,850 É de novo chamado Scratch. 682 00:28:01,850 --> 00:28:03,880 El está dispoñible gratuitamente, e esta é a mesma cousa que 683 00:28:03,880 --> 00:28:05,120 comezou hoxe en. 684 00:28:05,120 --> 00:28:07,790 >> Entón, iso aquí é cero, e está dividido en algúns 685 00:28:07,790 --> 00:28:09,700 pezas diferentes. 686 00:28:09,700 --> 00:28:12,690 Na dereita arriba, temos unha chamada fase, e 687 00:28:12,690 --> 00:28:13,670 de feito, que é onde os cookies 688 00:28:13,670 --> 00:28:15,440 realizado só un pouco atrás. 689 00:28:15,440 --> 00:28:19,660 E en que estadio están as cousas chamadas de sprites, caracteres ou 690 00:28:19,660 --> 00:28:21,030 obxectos ou entidades. 691 00:28:21,030 --> 00:28:23,320 Isto realmente non importa como vostede pensa deles, pero eles 692 00:28:23,320 --> 00:28:26,740 son programables, cousas mobles e, neste caso, a 693 00:28:26,740 --> 00:28:30,730 programa que o noso alumnado escribiu ten unha parella de gingerbread 694 00:28:30,730 --> 00:28:32,990 galletas, un par de galletas circulares, todo un conxunto de 695 00:28:32,990 --> 00:28:35,430 corazóns, unha morea de lentes. 696 00:28:38,170 --> 00:28:42,420 Debido a iso, el ou ela é capaz de programar cada un destes 697 00:28:42,420 --> 00:28:44,720 caracteres individuais por separado. 698 00:28:44,720 --> 00:28:46,480 >> Agora, o que iso supón para programar estes personaxes? 699 00:28:46,480 --> 00:28:49,440 Ben, deixe-me ir adiante e prema en este cookie man esquerda 700 00:28:49,440 --> 00:28:51,830 e vaia á esquerda arriba aquí. 701 00:28:51,830 --> 00:28:53,670 Na esquina superior esquerda da pantalla do meu agora é o 702 00:28:53,670 --> 00:28:55,280 así chamada área de scripts. 703 00:28:55,280 --> 00:28:58,790 Esta é unha especie de lousa en branco, inicialmente, sobre o cal podo 704 00:28:58,790 --> 00:29:01,540 arrastrar e soltar pezas do puzzle que, francamente, facer 705 00:29:01,540 --> 00:29:03,020 exactamente o que eles din. 706 00:29:03,020 --> 00:29:05,820 Arriba desta pila de pezas de puzzle é a palabra 707 00:29:05,820 --> 00:29:09,340 Cando premendo Bandeira Verde, e se non entendeu antes, 708 00:29:09,340 --> 00:29:12,300 do xeito que eu comece a música premendo cookie foi, literalmente, 709 00:29:12,300 --> 00:29:13,320 unha bandeira verde. 710 00:29:13,320 --> 00:29:16,590 De modo que parte do enigma na esquina superior esquerda hai significa que cando o 711 00:29:16,590 --> 00:29:19,780 click humanos a bandeira verde, pasou a formar 712 00:29:19,780 --> 00:29:21,110 as seguintes cousas. 713 00:29:21,110 --> 00:29:23,330 >> Agora, o que biscoito continuar a facer? 714 00:29:23,330 --> 00:29:25,810 Eu realmente non sei como interpretar isto aínda, pero o 715 00:29:25,810 --> 00:29:29,220 biscoito aparentemente definir a súa ranura para cero, entón esperou 716 00:29:29,220 --> 00:29:31,740 tres segundos, a continuación, cambiou o seu grupo a un, entón 717 00:29:31,740 --> 00:29:33,590 esperou un segundo, a continuación, cambiou o seu 718 00:29:33,590 --> 00:29:35,100 suco de volta a un. 719 00:29:35,100 --> 00:29:37,373 E entón, que realmente parece un pouco de un erro, non debe 720 00:29:37,373 --> 00:29:39,440 ten que cambiar a súa rutina e outra vez a menos que sexa 721 00:29:39,440 --> 00:29:43,380 sendo substituida noutro lugar, pero esta serie de pasos é o que está 722 00:29:43,380 --> 00:29:46,800 ditando a conduta deste cookie particular. 723 00:29:46,800 --> 00:29:49,180 Entón, imos realmente rolar cara atrás e non mirar para algo 724 00:29:49,180 --> 00:29:50,430 tan complexa aínda. 725 00:29:50,430 --> 00:29:52,260 Deixe-me ir adiante e vai File, New, 726 00:29:52,260 --> 00:29:53,560 e ter unha ficha limpa. 727 00:29:53,560 --> 00:29:56,590 >> Entón, agora, realmente ter unha área de script baleiro, un escenario baleiro, 728 00:29:56,590 --> 00:29:59,380 co noso Scratch Sprite estándar, e na parte superior esquerda 729 00:29:59,380 --> 00:30:01,670 na miña pantalla que eu teño a paleta de todos os seus 730 00:30:01,670 --> 00:30:03,400 dispoñibles pezas do puzzle. 731 00:30:03,400 --> 00:30:06,300 E non vai pasar case que moitas destas cousas 732 00:30:06,300 --> 00:30:09,470 hoxe, porque, unha vez máis, a maioría son auto-explicativo, pero imos 733 00:30:09,470 --> 00:30:12,370 tentar categoriza-los e apuntar as semellanzas 734 00:30:12,370 --> 00:30:15,380 con estas linguas futuras que imos mergullar. 735 00:30:15,380 --> 00:30:19,180 E na parte superior esquerda aquí é a primeira bandeira verde cando premendo, 736 00:30:19,180 --> 00:30:22,170 entón deixe-me arrastrar esta aquí, ampliar un pouco. 737 00:30:22,170 --> 00:30:25,780 E se eu premer na bandeira verde, nada realmente acontece porque 738 00:30:25,780 --> 00:30:29,360 Eu non anexo calquera lóxica, calquera declaración por así dicir, a 739 00:30:29,360 --> 00:30:31,040 que a bandeira verde, entón deixe-me ir ata a 740 00:30:31,040 --> 00:30:32,500 Categorías máis aquí. 741 00:30:32,500 --> 00:30:34,840 Actualmente estou na categoría de control. 742 00:30:34,840 --> 00:30:37,630 Estou en vez de ir a descender para a categoría parecer, e 743 00:30:37,630 --> 00:30:39,970 Hai unha morea de cousas aquí que dicir Diga, 744 00:30:39,970 --> 00:30:43,110 Debería, cambio de cor do traxe Switch,. 745 00:30:43,110 --> 00:30:44,860 >> Así, pode facer cousas tolas con traxes e 746 00:30:44,860 --> 00:30:45,870 sons e outros semellantes. 747 00:30:45,870 --> 00:30:49,970 Deixe-me ir adiante e dicir Diga, e agora entender como eu arrastrar 748 00:30:49,970 --> 00:30:52,940 e soltar esta peza de puzzle, vai querer bloquear 749 00:30:52,940 --> 00:30:55,010 na forma correspondente. 750 00:30:55,010 --> 00:30:58,020 Entón, cando eu ir adiante e deixar de ir a miña rato, eles traban 751 00:30:58,020 --> 00:31:01,770 xuntos, e agora eu fose ata aquí e prema na bandeira verde, 752 00:31:01,770 --> 00:31:05,910 o gato, de feito dicir Ola, porque iso é o que está dentro 753 00:31:05,910 --> 00:31:06,980 desta caixa branca. 754 00:31:06,980 --> 00:31:08,900 Veremos en breve que esta caixa branca é o que se denomina 755 00:31:08,900 --> 00:31:10,250 argumento, ou un parámetro. 756 00:31:10,250 --> 00:31:12,560 É un xeito de cambiar o comportamento, neste caso, unha 757 00:31:12,560 --> 00:31:15,070 enigma, pero quero dicir exactamente o que eu dixen 758 00:31:15,070 --> 00:31:18,610 antes, dicir Hola, mundo, agora podo volver aquí, 759 00:31:18,610 --> 00:31:21,990 Xoga e "Ola, mundo" é o que se di. 760 00:31:21,990 --> 00:31:24,340 >> Entón, nós estamos literalmente a programación agora. 761 00:31:24,340 --> 00:31:27,540 Non é todo o que convincente dun programa, pero polo menos 762 00:31:27,540 --> 00:31:30,140 é un pouco de algo máis convincente do que parece, a 763 00:31:30,140 --> 00:31:31,300 A primeira vista, coma este. 764 00:31:31,300 --> 00:31:34,190 E podemos moi rapidamente obter aínda máis expresiva 765 00:31:34,190 --> 00:31:36,600 porque en cero, como en outras linguas, hai todo 766 00:31:36,600 --> 00:31:40,010 tipo de declaracións, non só dicir algo ou impresión, pero 767 00:31:40,010 --> 00:31:42,650 podes facer cousas como esperar, como acabamos de ver coa 768 00:31:42,650 --> 00:31:44,240 o cookie, un determinado número de segundos. 769 00:31:44,240 --> 00:31:46,440 Vostede pode reproducir sons no ámbito do scratch só 770 00:31:46,440 --> 00:31:49,050 como pode nun partido normal de son programa de ordenador. 771 00:31:49,050 --> 00:31:52,440 Podes comprobar o que son chamados de expresións booleanas. 772 00:31:52,440 --> 00:31:55,630 Entón, agora, imos comezar a engadir ao noso kit de ferramentas algunha terminoloxía 773 00:31:55,630 --> 00:31:58,840 que, en realidade, refírese ao exemplo que José e eu fixen 774 00:31:58,840 --> 00:32:00,080 aquí coas medias. 775 00:32:00,080 --> 00:32:03,040 Entón declaracións son só declaracións de feitos. 776 00:32:03,040 --> 00:32:04,160 Facelo. 777 00:32:04,160 --> 00:32:07,370 Unha directiva para o sprite, ou eu humano a, para facer algo. 778 00:32:07,370 --> 00:32:10,420 Unha expresión booleana é algo que ten un valor, unha 779 00:32:10,420 --> 00:32:14,580 chamado valor de verdade, que é tanto un cero ou un, falso ou 780 00:32:14,580 --> 00:32:17,890 certo ou desactivar, si ou non. 781 00:32:17,890 --> 00:32:19,730 Isto realmente non importa como vostede pensa sobre iso, pero é un 782 00:32:19,730 --> 00:32:20,700 estado binario. 783 00:32:20,700 --> 00:32:22,610 Como Nate discutido en vídeo de mércores, dous 784 00:32:22,610 --> 00:32:23,570 cousas distintas. 785 00:32:23,570 --> 00:32:25,740 >> Así, en scratch, expresións booleanas ocorrer a ollar 786 00:32:25,740 --> 00:32:28,910 como eses obxectos azuis aquí, e neste caso, a cuestión 787 00:32:28,910 --> 00:32:30,960 marca implica que está facendo unha pregunta. 788 00:32:30,960 --> 00:32:34,250 É o gato ou o sprite, tocando o punteiro do rato? 789 00:32:34,250 --> 00:32:36,580 Polo tanto, este é só un exemplo dun bloque Scratch que está a suceder 790 00:32:36,580 --> 00:32:39,950 que nos permitan comprobar si ou non, é o rato tocando o 791 00:32:39,950 --> 00:32:40,790 Sprite na pantalla? 792 00:32:40,790 --> 00:32:42,840 E iso pode ser útil se o quere facer as cousas 793 00:32:42,840 --> 00:32:43,820 co rato. 794 00:32:43,820 --> 00:32:46,470 Ademais de expresións booleanas, temos cousas 795 00:32:46,470 --> 00:32:49,110 como é o rato para abaixo, de xeito que pode detectar o tipo de 796 00:32:49,110 --> 00:32:50,200 cuestionar tamén. 797 00:32:50,200 --> 00:32:52,590 Podemos facer matemáticas, se realmente quere, e non hai 798 00:32:52,590 --> 00:32:55,170 usos realmente máis atractivas para este que só pura 799 00:32:55,170 --> 00:32:56,400 aritmética, como imos ver. 800 00:32:56,400 --> 00:32:59,690 Pseudo aleatoriedade e facer o seu programa parecen pensar 801 00:32:59,690 --> 00:33:03,490 ou comportarse de forma diferente en base a uns valores aparentemente aleatorios, 802 00:33:03,490 --> 00:33:06,610 e entón temos cousas como expresións booleanas como AND. 803 00:33:06,610 --> 00:33:08,830 Entón, se realmente quere revisar dous valores, veremos 804 00:33:08,830 --> 00:33:11,110 Raspe que podemos realmente comprobar se este é 805 00:33:11,110 --> 00:33:13,190 certo e iso é verdade. 806 00:33:13,190 --> 00:33:15,300 Por exemplo, no caso das medias, que podería ter a 807 00:33:15,300 --> 00:33:19,045 moi final a pregunta se é na media esquerda e dereita zócolo 808 00:33:19,045 --> 00:33:20,610 é sobre, saia. 809 00:33:20,610 --> 00:33:22,710 Está todo feito para o día, de xeito que sería unha 810 00:33:22,710 --> 00:33:24,300 oportunidade para iso. 811 00:33:24,300 --> 00:33:27,740 >> Entón, imos adiante e tratar de remendos algúns destes xuntos 812 00:33:27,740 --> 00:33:31,570 e ir a un par de exemplos máis 813 00:33:31,570 --> 00:33:32,610 convincente do que este. 814 00:33:32,610 --> 00:33:35,770 Entón deixe-me ir adiante aquí e abrir algúns dos exemplos 815 00:33:35,770 --> 00:33:38,350 que sempre estará na páxina web do curso, así como, e 816 00:33:38,350 --> 00:33:39,870 abrir hello2. 817 00:33:39,870 --> 00:33:42,910 Así, en hello2 aquí temos un programa que está facendo algúns 818 00:33:42,910 --> 00:33:46,290 as cousas, pero non está facendo iso de forma tan eficaz como poderiamos. 819 00:33:46,290 --> 00:33:48,900 Entón, aquí di "Ola, mundo" por un segundo e entón espera 820 00:33:48,900 --> 00:33:49,450 por un segundo. 821 00:33:49,450 --> 00:33:51,720 E despois fai iso de novo, e despois fai iso de novo. 822 00:33:51,720 --> 00:33:55,530 Entón, se eu premer na bandeira verde, Scratch di "Ola, mundo. 823 00:33:55,530 --> 00:33:57,160 Ola, mundo. 824 00:33:57,160 --> 00:34:00,080 Ola, mundo ". E este é, obviamente, candidato agora 825 00:34:00,080 --> 00:34:00,860 mellora. 826 00:34:00,860 --> 00:34:03,070 >> Cal é a mellora marxinal, Esperanza, podemos 827 00:34:03,070 --> 00:34:07,610 agora facer scratch se apoia o concepto de? 828 00:34:07,610 --> 00:34:08,310 Algún tipo de lazo. 829 00:34:08,310 --> 00:34:10,960 Algún tipo de repetición, agora sería bo, entón deixe-me 830 00:34:10,960 --> 00:34:11,920 realmente tentar iso. 831 00:34:11,920 --> 00:34:13,870 Deixe-me realmente ir e pasar iso. 832 00:34:13,870 --> 00:34:16,449 Entón aviso pode separar bloques tan facilmente como pode engadir ao 833 00:34:16,449 --> 00:34:17,420 anexo-los. 834 00:34:17,420 --> 00:34:20,730 Deixe-me ir baixo control, desprácese aquí, e de feito, 835 00:34:20,730 --> 00:34:24,000 hai esa peza do puzzle aquí Repeat, e sempre e 836 00:34:24,000 --> 00:34:24,870 Para sempre. 837 00:34:24,870 --> 00:34:28,500 Polo tanto, hai unha serie de formas de expresar construcións de iteração 838 00:34:28,500 --> 00:34:29,340 en scratch. 839 00:34:29,340 --> 00:34:31,730 O que eu probablemente quere aquí non é para sempre, porque eu só 840 00:34:31,730 --> 00:34:34,639 quere que isto ocorre tres veces, pero, probablemente, repetir. 841 00:34:34,639 --> 00:34:38,449 Entón deixe-me arrastrar Repita aquí, arrastre e solte-o, e 842 00:34:38,449 --> 00:34:42,530 agora, en vez de dicir "Ola, mundo" tres veces, 843 00:34:42,530 --> 00:34:44,230 déixenme arrastrar esta parte do enigma aquí. 844 00:34:44,230 --> 00:34:46,610 E aínda que non parece encaixar, o programa é intelixente 845 00:34:46,610 --> 00:34:48,920 o suficiente para entender que vai medrar para cubrir, por iso é o 846 00:34:48,920 --> 00:34:51,270 formas materia que, non o tamaño absoluto. 847 00:34:51,270 --> 00:34:54,030 Deixe-me cambiar a repetición para tres, e agora déixeme ir 848 00:34:54,030 --> 00:34:56,560 adiante e arrastrar agarde un segundo de alí tamén. 849 00:34:56,560 --> 00:34:59,220 Vai sacar en tan ben, e agora eu estou indo a arrastrar 850 00:34:59,220 --> 00:35:01,370 estes faces por aquí e simplemente xoga-los fora, porque eu 851 00:35:01,370 --> 00:35:02,710 non precisamos máis deles. 852 00:35:02,710 --> 00:35:05,920 Deixe-me o zoom e prema na bandeira verde agora, e temos 853 00:35:05,920 --> 00:35:09,600 mesmo programa, pero, como eu Prevín antes, mellor 854 00:35:09,600 --> 00:35:12,200 concibida, xa podes imaxinar o quão malo este programa 855 00:35:12,200 --> 00:35:14,410 sería, certamente, esteticamente, se tivese que 856 00:35:14,410 --> 00:35:16,640 comezar a copiar e pegar, copiar e pegar, ou 857 00:35:16,640 --> 00:35:20,020 arrastrando e soltando as mesmas cousas danado de novo e de novo. 858 00:35:20,020 --> 00:35:22,260 >> Agora, simplemente dicindo cousas na pantalla, imprimindo o 859 00:35:22,260 --> 00:35:25,350 pantalla realmente non todo o que emocionante, entón imos abrir unha 860 00:35:25,350 --> 00:35:26,580 varianza terceiro aquí. 861 00:35:26,580 --> 00:35:29,810 E agora, como podes ver, iso vai rapidamente tornar-se irritante - 862 00:35:29,810 --> 00:35:30,850 [Meow] 863 00:35:30,850 --> 00:35:31,940 DAVID Malan: - pero é tamén unha especie de bonito. 864 00:35:31,940 --> 00:35:35,244 [Meow] 865 00:35:35,244 --> 00:35:37,460 DAVID Malan: Ok, entón mellor, e nós certamente pode usar isto 866 00:35:37,460 --> 00:35:41,060 mesma transición chunking isto nun looping 867 00:35:41,060 --> 00:35:43,520 estrutura, pero imos facelo máis interesante aínda. 868 00:35:43,520 --> 00:35:47,480 >> Deixe-me ir á fronte e abrir unha variación cuarto aquí, onde 869 00:35:47,480 --> 00:35:50,020 levar as cousas un paso adiante. 870 00:35:50,020 --> 00:35:54,450 Así, de acordo con este, parvo que esta é a primeira 871 00:35:54,450 --> 00:35:58,530 relance, o que é este programa vai facer? 872 00:35:58,530 --> 00:35:59,790 Vai Meow unha vez. 873 00:35:59,790 --> 00:36:00,160 Por que? 874 00:36:00,160 --> 00:36:03,340 Ben, se é, tanto como sei, sempre menos que dous. 875 00:36:03,340 --> 00:36:04,890 Non hai noción de aleatoriedade aquí. 876 00:36:04,890 --> 00:36:07,240 Teño literalmente hard-Coded un e dous, pero esta é unha 877 00:36:07,240 --> 00:36:10,370 exemplo, agora realmente usar unha expresión booleana. 878 00:36:10,370 --> 00:36:13,650 Moi parecido como fixo José no seu pseudocódigo, o descenso SE 879 00:36:13,650 --> 00:36:17,170 atopar medias combinando entón faga o seguinte, temos aquí 880 00:36:17,170 --> 00:36:19,750 unha expresión un é menor que dous entón - 881 00:36:19,750 --> 00:36:21,820 e de feito temos ata un pouco de retirada, 882 00:36:21,820 --> 00:36:24,480 onde o vermello é lixeiramente recuado para a dereita - 883 00:36:24,480 --> 00:36:26,600 Entón está indo xogar o miado de son. 884 00:36:26,600 --> 00:36:30,060 Agora, neste caso, que un é sempre menor que dous, de xeito que este 885 00:36:30,060 --> 00:36:31,970 é unha especie de pérdida dunha condición. 886 00:36:31,970 --> 00:36:34,890 Pero nós imos ser capaces, como veremos, para conectar en outras cousas 887 00:36:34,890 --> 00:36:37,420 estes espazos reservados, onde un e dous son agora. 888 00:36:37,420 --> 00:36:41,340 Entón, imos agora avanzar exemplo cinco destes varios 889 00:36:41,340 --> 00:36:45,850 Olas e ollar para o que este programa vai facer. 890 00:36:45,850 --> 00:36:48,710 >> Entón, agora, nunha frase Inglés, como que 891 00:36:48,710 --> 00:36:51,460 programa comportarse? 892 00:36:51,460 --> 00:36:52,950 Audiencia: Meows metade do tempo. 893 00:36:52,950 --> 00:36:55,380 DAVID Malan: a metade do Meow do tempo, polo que esta é unha forma de 894 00:36:55,380 --> 00:36:56,700 transmitir unha idea moi simple. 895 00:36:56,700 --> 00:36:59,400 Aínda que aconteza estar usando algunhas desigualdades aquí 896 00:36:59,400 --> 00:37:01,860 nalgúns números, isto é realmente só un programática 897 00:37:01,860 --> 00:37:09,490 Así, de forma precisa, de dicir se a moeda der cara, ir 898 00:37:09,490 --> 00:37:10,270 adiante e Miau. 899 00:37:10,270 --> 00:37:13,540 Ou, inversamente, a aproveitar coroa, non Meow. 900 00:37:13,540 --> 00:37:15,110 E, neste caso, como é que imos expresar isto? 901 00:37:15,110 --> 00:37:17,950 Imos escoller un número aleatorio de 1 a 10, e iso 902 00:37:17,950 --> 00:37:21,110 número é menor que 6, vai adiante e Miau. 903 00:37:21,110 --> 00:37:22,260 E como este aquí? 904 00:37:22,260 --> 00:37:24,620 Ben, de novo, observar só o arrastrar e soltar e 905 00:37:24,620 --> 00:37:26,190 cousas encaixe. 906 00:37:26,190 --> 00:37:28,020 >> Entón, agora imos ver se esta aleatoriedade funciona. 907 00:37:28,020 --> 00:37:29,845 Deixe-me ir adiante e prema na bandeira verde. 908 00:37:29,845 --> 00:37:31,120 [Meow] 909 00:37:31,120 --> 00:37:32,000 DAVID Malan: Okay. 910 00:37:32,000 --> 00:37:33,430 [Meow] 911 00:37:33,430 --> 00:37:35,260 DAVID Malan: Okay. 912 00:37:35,260 --> 00:37:38,510 Ok, bo, entón temos cabezas, as cabezas, colas de forma eficaz. 913 00:37:38,510 --> 00:37:39,295 Colas. 914 00:37:39,295 --> 00:37:39,590 [Meow] 915 00:37:39,590 --> 00:37:41,829 DAVID Malan: Heads. 916 00:37:41,829 --> 00:37:43,220 [Meow] 917 00:37:43,220 --> 00:37:44,040 DAVID Malan: Excelente. 918 00:37:44,040 --> 00:37:46,220 É sempre difícil cando comeza só estatisticamente malo 919 00:37:46,220 --> 00:37:48,510 correr, e todos os xefes, e o programa realmente non 920 00:37:48,510 --> 00:37:49,230 funcionar como sería de esperar. 921 00:37:49,230 --> 00:37:51,210 Pero esta vez, funcionou, e parece que temos, se nós 922 00:37:51,210 --> 00:37:53,830 isto, un número infinito de veces, a probabilidade do 50%. 923 00:37:53,830 --> 00:37:56,950 Agora, de novo, non tan interesante, só facendo gatos 924 00:37:56,950 --> 00:37:59,840 Miau, entón imos ver se non podemos avanzar este un pouco máis 925 00:37:59,840 --> 00:38:01,820 aquí na versión seis. 926 00:38:01,820 --> 00:38:05,620 Entón, agora temos a versión realmente irritante - 927 00:38:05,620 --> 00:38:08,215 [Miados cada poucos segundos] 928 00:38:08,215 --> 00:38:10,640 DAVID Malan: - e isto é o que se coñece, en xeral, como un 929 00:38:10,640 --> 00:38:11,670 loop infinito. 930 00:38:11,670 --> 00:38:14,190 >> Lazo tan infinita neste caso se sente mal. 931 00:38:14,190 --> 00:38:16,970 É definitivamente vai comezar a soar mal, e aínda infinita 932 00:38:16,970 --> 00:38:18,740 loops non son sempre malas. 933 00:38:18,740 --> 00:38:20,910 Podes pensar en contexto de programas de ordenador onde 934 00:38:20,910 --> 00:38:22,910 realmente quere un loop infinito? 935 00:38:22,910 --> 00:38:23,691 Si? 936 00:38:23,691 --> 00:38:26,520 Audiencia: Cando quere comprobar unha condición. 937 00:38:26,520 --> 00:38:28,240 DAVID Malan: Ok, cando quere manter a verificación de unha condición? 938 00:38:28,240 --> 00:38:29,190 Como o que? 939 00:38:29,190 --> 00:38:30,440 Audiencia: [inaudível] 940 00:38:36,060 --> 00:38:38,170 DAVID Malan: Ok, bo, entón se tiña algún programa, algúns 941 00:38:38,170 --> 00:38:40,440 tipo de cousas de automatización residencial, onde pretende constantemente 942 00:38:40,440 --> 00:38:41,980 monitor é algo que o caso. 943 00:38:41,980 --> 00:38:42,850 Son as luces? 944 00:38:42,850 --> 00:38:45,020 Son as luces, porque se cadra ten un axustado dunha decena, e 945 00:38:45,020 --> 00:38:47,360 quere que eles para saír, quizais sexa necesario facer algo 946 00:38:47,360 --> 00:38:48,290 novo e de novo. 947 00:38:48,290 --> 00:38:50,540 E, de feito, fala de temporizadores, calquera de vostedes que 948 00:38:50,540 --> 00:38:53,100 reloxos no seu ordenador ou reloxos dixitais, que é unha 949 00:38:53,100 --> 00:38:54,210 loop infinito. 950 00:38:54,210 --> 00:38:56,980 El segue a actualizar a hora, porque é constantemente 951 00:38:56,980 --> 00:38:59,750 comprobación e control e verificación ten o tempo cambiou, 952 00:38:59,750 --> 00:39:01,000 e si, oh, meu deus. 953 00:39:03,670 --> 00:39:04,740 O reloxo é finalmente alterada. 954 00:39:04,740 --> 00:39:07,020 Precisa amosar que o valor para ti. 955 00:39:07,020 --> 00:39:10,880 Así, mentres a maioría dos lazos de tempo infinitos son un erro, 956 00:39:10,880 --> 00:39:13,950 ou polo menos unha decisión de deseño pobre, ás veces eles fan 957 00:39:13,950 --> 00:39:14,785 teñen o seu valor. 958 00:39:14,785 --> 00:39:18,170 >> Ben, imos avanzar aínda máis aquí para hello7. 959 00:39:18,170 --> 00:39:20,410 Polo tanto, agora o programa vai ser un pouco máis interactivo. 960 00:39:20,410 --> 00:39:23,120 Deixe-me achegar aquí, e de novo, iso é o que é bo 961 00:39:23,120 --> 00:39:23,640 sobre o scratch. 962 00:39:23,640 --> 00:39:26,760 E nós imos usalo para ser claro, scratch, só hoxe e en 963 00:39:26,760 --> 00:39:27,780 problema da próxima semana definido. 964 00:39:27,780 --> 00:39:31,920 Pero o luns, nós mergullo en C. Este programa aquí, fai, 965 00:39:31,920 --> 00:39:33,190 para sempre, a continuación. 966 00:39:33,190 --> 00:39:35,890 Se tocar o punteiro do rato - agora, quen é o 967 00:39:35,890 --> 00:39:36,420 contexto aquí? 968 00:39:36,420 --> 00:39:39,670 Ben, previo aviso e que quen está seleccionado para abaixo aquí no fondo 969 00:39:39,670 --> 00:39:43,060 dereito é o gato, Sprite un, así que estes scripts, este 970 00:39:43,060 --> 00:39:45,720 programa, aplícase especificamente a el. 971 00:39:45,720 --> 00:39:48,950 Entón, se o gato está tocando o punteiro do rato, a continuación, que vai 972 00:39:48,950 --> 00:39:51,350 para xogar este e esperar dous segundos, e 973 00:39:51,350 --> 00:39:53,030 Repita ad nauseum. 974 00:39:53,030 --> 00:39:55,360 >> Entón, imos adiante e bateu xogo. 975 00:39:55,360 --> 00:39:57,580 Nada acontece, pero se eu queira o pet 976 00:39:57,580 --> 00:39:59,310 gato agora, podo simplemente. 977 00:39:59,310 --> 00:40:01,130 [Meow] 978 00:40:01,130 --> 00:40:02,244 DAVID Malan: encantador. 979 00:40:02,244 --> 00:40:05,956 [Meow] 980 00:40:05,956 --> 00:40:08,750 DAVID Malan: Ok, menos chat, pero tamén está molestar, 981 00:40:08,750 --> 00:40:11,480 entón imos seguir adiante e ver se non podemos inxectar 982 00:40:11,480 --> 00:40:12,460 unha lóxica pouco máis. 983 00:40:12,460 --> 00:40:14,300 Ese foi o exemplo sete. 984 00:40:14,300 --> 00:40:16,090 >> Aquí no exemplo oito, imos 985 00:40:16,090 --> 00:40:18,670 introducir unha condición else. 986 00:40:18,670 --> 00:40:21,440 Así como un garfo literal na estrada, en que pode ir 987 00:40:21,440 --> 00:40:24,260 cara á esquerda ou pode ir á dereita, unha condición nunha programación 988 00:40:24,260 --> 00:40:28,120 linguaxe como scratch, ou, como veremos C, pode permitir que 989 00:40:28,120 --> 00:40:32,230 ir nunha dirección ou outra a través dun IF else construír. 990 00:40:32,230 --> 00:40:35,160 Entón, literalmente, se tocar punteiro do rato, esta 991 00:40:35,160 --> 00:40:38,680 vai xogar algún son, senón que vai xogar este outro 992 00:40:38,680 --> 00:40:39,800 Meow, son. 993 00:40:39,800 --> 00:40:42,510 Agora, se pode deducir o nome deses sons, pode 994 00:40:42,510 --> 00:40:45,310 adiviñar o que este programa está destinado a conxurar 995 00:40:45,310 --> 00:40:46,250 a idea de. 996 00:40:46,250 --> 00:40:48,742 Este gato é miando feliz. 997 00:40:48,742 --> 00:40:49,230 [Meow] 998 00:40:49,230 --> 00:40:51,410 DAVID Malan: Afortunadamente, pero non fai 999 00:40:51,410 --> 00:40:52,926 moi gusta de ser tocado. 1000 00:40:52,926 --> 00:40:54,550 [Ruge] 1001 00:40:54,550 --> 00:40:57,500 DAVID Malan: Entón agora temos un gato que vai berrar con vostede. 1002 00:40:57,500 --> 00:41:00,570 >> Todo ben, ben, un último exemplo cos gatos aquí, e 1003 00:41:00,570 --> 00:41:02,920 Imos versión aberta nove deste aquí. 1004 00:41:02,920 --> 00:41:06,190 Entón, agora temos o seguinte son máis irritante que eu podería 1005 00:41:06,190 --> 00:41:11,630 atopar, por iso temos unha morsa ou un león mariño aquí quen vai 1006 00:41:11,630 --> 00:41:13,222 faga o seguinte. 1007 00:41:13,222 --> 00:41:20,870 [Casca selo] 1008 00:41:20,870 --> 00:41:23,310 DAVID Malan: Ok, entón iso vai continuar ata que descubrir como 1009 00:41:23,310 --> 00:41:24,640 este programa. 1010 00:41:24,640 --> 00:41:28,560 Entón, esta vez, este animal ten dous scripts, eo que é 1011 00:41:28,560 --> 00:41:31,050 interesante aquí é que estes scripts están indo para executar 1012 00:41:31,050 --> 00:41:32,260 en paralelo. 1013 00:41:32,260 --> 00:41:35,340 Entón, porque eles comezan ambos cunha bandeira verde premendo, 1014 00:41:35,340 --> 00:41:38,080 é como ir como este, e ambos os programas comezan a funcionar-lo 1015 00:41:38,080 --> 00:41:41,370 Unha vez máis, mesmo se eles están looping para sempre. 1016 00:41:41,370 --> 00:41:44,420 Así, no guión arriba, eu teño un pouco de lóxica. 1017 00:41:44,420 --> 00:41:49,275 Que recursos que proporcionan ata alí? 1018 00:41:49,275 --> 00:41:50,740 [Casca selo] 1019 00:41:50,740 --> 00:41:51,670 Audiencia: [inaudível] 1020 00:41:51,670 --> 00:41:53,295 DAVID Malan: Si é o que? 1021 00:41:53,295 --> 00:41:53,760 [Casca selo] 1022 00:41:53,760 --> 00:41:55,852 Audiencia: Se mudo a cero, vai continuar xogando o 1023 00:41:55,852 --> 00:41:58,410 soar. [Casca selo] 1024 00:41:58,410 --> 00:41:58,940 DAVID Malan: Ok, moi bo. 1025 00:41:58,940 --> 00:42:01,960 Entón, se silenciado, o que é iso, esa cousa laranxa é cero, 1026 00:42:01,960 --> 00:42:05,370 ENTÓN reproducir o son do león de mar e pensar "Oh, 1027 00:42:05,370 --> 00:42:06,770 ola, "por dous segundos. 1028 00:42:06,770 --> 00:42:09,380 Agora, eu non sei o que é silenciado, pero cero evoca a 1029 00:42:09,380 --> 00:42:11,230 idea de teito ou apagado. 1030 00:42:11,230 --> 00:42:14,490 Entón, se silenciado é falsa, polo que, se non silenciado, 1031 00:42:14,490 --> 00:42:15,660 seguir xogando o son. 1032 00:42:15,660 --> 00:42:17,350 Todo ben, ben, como é que imos desactivar esta cousa? 1033 00:42:17,350 --> 00:42:19,310 >> Ben, imos ollar para o segundo guión alí. 1034 00:42:19,310 --> 00:42:22,130 O segundo guión di silenciado definir a cero. 1035 00:42:22,130 --> 00:42:25,180 Obsérvese tamén é laranxa, entón o que fai é arañazos cores 1036 00:42:25,180 --> 00:42:27,400 bloques da mesma cor, se é unha especie 1037 00:42:27,400 --> 00:42:28,850 de relacionados loxicamente. 1038 00:42:28,850 --> 00:42:32,850 Así como a top se silenciado era laranxa, entón é silenciado aquí 1039 00:42:32,850 --> 00:42:34,060 mencionado no bloque de laranxa. 1040 00:42:34,060 --> 00:42:36,170 Pero este é un asignacións de variables, así como en 1041 00:42:36,170 --> 00:42:39,170 álxebra, ten X e Y e Z, en programación que ten 1042 00:42:39,170 --> 00:42:41,440 variables, pero son xeralmente - 1043 00:42:41,440 --> 00:42:42,580 Imos facer unha pausa por un momento e figura como 1044 00:42:42,580 --> 00:42:44,280 para deter este latidos. 1045 00:42:44,280 --> 00:42:45,480 Como podo facer iso? 1046 00:42:45,480 --> 00:42:46,480 [Casca selo] 1047 00:42:46,480 --> 00:42:47,920 DAVID Malan: Okay. 1048 00:42:47,920 --> 00:42:49,490 El parou. Okay. 1049 00:42:49,490 --> 00:42:52,230 >> Así como na álxebra ten variables x, y, e z, pero en 1050 00:42:52,230 --> 00:42:55,260 programación, tendo variables como x, y, e z é xeralmente 1051 00:42:55,260 --> 00:42:57,330 desaprovado porque non está en todos os expresivo. 1052 00:42:57,330 --> 00:43:00,070 Eles non teñen ningún significado semántico calquera, por iso a maioría en 1053 00:43:00,070 --> 00:43:02,110 linguaxes de programación, as variables poden ter plena 1054 00:43:02,110 --> 00:43:05,270 nomes verdadeiros ou palabras ou frases, como mudo, para dicir 1055 00:43:05,270 --> 00:43:06,030 o que eles fan. 1056 00:43:06,030 --> 00:43:09,380 Polo tanto, este segundo guión tamén estaba escoitando sempre, e el dixo 1057 00:43:09,380 --> 00:43:12,100 a clave, o espazo tecla do teclado, é 1058 00:43:12,100 --> 00:43:13,370 presionado, punto de interrogación. 1059 00:43:13,370 --> 00:43:16,300 Polo tanto, hai unha condición cunha expresión booleana que é 1060 00:43:16,300 --> 00:43:19,010 vai responder a unha pregunta ou a verdade ou falso, 1061 00:43:19,010 --> 00:43:22,880 entón eu teño dentro do que se a tecla de espazo é presionada e 1062 00:43:22,880 --> 00:43:28,020 Se está silenciado é cero, establecer silenciado a un, Else definir silenciado a cero. 1063 00:43:28,020 --> 00:43:30,510 Entón garfo este outro na estrada, e observe como eu teño 1064 00:43:30,510 --> 00:43:33,500 aniñados os dous, se as condicións, é unha forma de comprobar se o 1065 00:43:33,500 --> 00:43:36,610 Bar de espazo presionada porque se é así, ou eu quero ir a ese 1066 00:43:36,610 --> 00:43:38,000 ou aquel camiño. 1067 00:43:38,000 --> 00:43:40,210 E como fago para inverter o valor do cambio? 1068 00:43:40,210 --> 00:43:41,410 Eu teño que comprobar é cero? 1069 00:43:41,410 --> 00:43:45,890 Se é así, facelo unha, senón facelo, polo tanto, cero a cambiar 1070 00:43:45,890 --> 00:43:47,670 seus dous estados. 1071 00:43:47,670 --> 00:43:50,030 >> Todo ben, entón temos, entón algúns deles fundamentais 1072 00:43:50,030 --> 00:43:50,540 construtos. 1073 00:43:50,540 --> 00:43:52,810 Temos expresións booleanas, e entender, tamén, estes son 1074 00:43:52,810 --> 00:43:54,050 non todos os que non familiares. 1075 00:43:54,050 --> 00:43:56,730 En realidade, aquí está unha imaxe rápida de Harvard curso CS50 1076 00:43:56,730 --> 00:43:59,740 ferramenta de compras, e calquera sitio aí fóra que ten caixas 1077 00:43:59,740 --> 00:44:02,420 e caída baixos realmente, todo ese tempo, está a usar 1078 00:44:02,420 --> 00:44:03,430 Expresións booleanas. 1079 00:44:03,430 --> 00:44:05,760 Neste caso aquí, se fai clic no cadro ao lado 1080 00:44:05,760 --> 00:44:08,620 curso maior ou igual a 4,5, ou mesmo a carón 1081 00:44:08,620 --> 00:44:11,200 facultade, está especificando unha expresión booleana. 1082 00:44:11,200 --> 00:44:14,780 B-me cursos para os que esta expresión é verdadeira. 1083 00:44:14,780 --> 00:44:17,080 Ou á dereita, non entra en conflito con cursos que eu son 1084 00:44:17,080 --> 00:44:20,440 tomar, se está marcada, entón si, quere comprobar 1085 00:44:20,440 --> 00:44:22,890 esta condición, máis quere ignorar. 1086 00:44:22,890 --> 00:44:25,170 Expresións tan booleanas son unha especie de todos os lados, pero cando 1087 00:44:25,170 --> 00:44:28,080 nós poñer-los en condicións, se as condicións, se 1088 00:44:28,080 --> 00:44:30,480 Elses, ou podemos mesmo simular máis profundo 1089 00:44:30,480 --> 00:44:32,830 niveis, IF Else IF else - 1090 00:44:32,830 --> 00:44:34,430 de xeito que é unha especie de estado ternário. 1091 00:44:34,430 --> 00:44:36,920 Pode ir por este camiño ou esta forma ou este camiño. 1092 00:44:36,920 --> 00:44:39,680 Podemos manter as cousas de nidificación para ir en direccións diferentes. 1093 00:44:39,680 --> 00:44:41,800 >> Entón Scratch ten eses lazos, como sempre. 1094 00:44:41,800 --> 00:44:44,750 El ten esas características como Repeat 10, algúns 1095 00:44:44,750 --> 00:44:46,260 número finito de veces. 1096 00:44:46,260 --> 00:44:49,040 Temos a posibilidade agora para definir variables, polo tanto, neste caso 1097 00:44:49,040 --> 00:44:51,810 Eu xa declarou, por exemplo, unha variable chamada medias. 1098 00:44:51,810 --> 00:44:54,340 Eu inicializar a 0, e iso é aínda outra dirección 1099 00:44:54,340 --> 00:44:56,940 que podería levar ata aquí con Joseph, en que talvez 1100 00:44:56,940 --> 00:45:00,150 só manter o control de tantas medias eu teño en e pechar 1101 00:45:00,150 --> 00:45:03,490 o programa cando o valor desa variable é 2. 1102 00:45:03,490 --> 00:45:05,660 Iso sería unha outra forma de tipo de xeneralización que 1103 00:45:05,660 --> 00:45:08,820 problema e facer algo de novo e de novo. 1104 00:45:08,820 --> 00:45:12,080 Ben, imos adiante e agora introducir algunhas cousas novas. 1105 00:45:12,080 --> 00:45:14,100 Entón, aqueles de vostedes coa experiencia de programación previa vontade 1106 00:45:14,100 --> 00:45:17,120 sei que unha morea de linguas teñen matrices ou vectores ou 1107 00:45:17,120 --> 00:45:19,970 listas, e, de feito, Scratch ten algo como isto, tamén. 1108 00:45:19,970 --> 00:45:22,510 Entón imos ver se non podemos levar as cousas para o seguinte nivel aquí. 1109 00:45:22,510 --> 00:45:24,920 Se eu tivera a posibilidade, agora, con estas pezas do puzzle para 1110 00:45:24,920 --> 00:45:29,080 engadir algo, como unha palabra ou un número, a unha variable, podo 1111 00:45:29,080 --> 00:45:30,550 comezar a acumular cousas. 1112 00:45:30,550 --> 00:45:33,630 E esta é, en realidade, a propósito bonitas para cousas como xogos, 1113 00:45:33,630 --> 00:45:35,810 role-playing games onde é o tipo de sendeirismo arredor 1114 00:45:35,810 --> 00:45:38,600 un mundo de fantasía coleccionar cousas, incorporarse cousas, 1115 00:45:38,600 --> 00:45:39,900 gañando puntos, ou similar. 1116 00:45:39,900 --> 00:45:42,310 Pode querer manter o control de calquera tipo de inventario, e 1117 00:45:42,310 --> 00:45:45,180 de feito, iso é o que un dos nosos ex-alumnos aquí fixo 1118 00:45:45,180 --> 00:45:47,750 algo chamado Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Entón deixe-me ir adiante e abrir esta cousa aquí, e en 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, temos ese mundo enriba. 1121 00:45:56,260 --> 00:45:58,820 Entón deixe-me ir adiante e prema na bandeira verde. 1122 00:45:58,820 --> 00:46:01,040 Aviso na esquina superior esquerda é unha especie de inventario. 1123 00:46:01,040 --> 00:46:04,110 Que é aplicado en scratch como o que nós imos chamar unha matriz ou 1124 00:46:04,110 --> 00:46:06,890 unha lista, e agora temos esta pequena animación. 1125 00:46:06,890 --> 00:46:10,440 Así como nós comezamos máis cedo, con esta historia de amor cookie, 1126 00:46:10,440 --> 00:46:13,320 e, entón, avanzou para gatos e leóns mariños, agora podemos ter 1127 00:46:13,320 --> 00:46:15,100 cousas que son aínda máis interactivo. 1128 00:46:15,100 --> 00:46:18,250 E ese cara azul, podo comezar a moverse en torno a súa 1129 00:46:18,250 --> 00:46:19,500 pequena casa aquí. 1130 00:46:19,500 --> 00:46:22,570 Polo tanto, parece que ten unha saída aquí, entón eu estou usando 1131 00:46:22,570 --> 00:46:25,260 as teclas de frechas para arriba, para abaixo, de esquerda a dereita. 1132 00:46:25,260 --> 00:46:28,370 E agora eu estou fóra, entón imos o que eu teño aquí. 1133 00:46:28,370 --> 00:46:30,920 Parece que unha laranxa, e de feito, así que eu Preme na 1134 00:46:30,920 --> 00:46:33,110 laranxa, el está se estatelou no meu inventario. 1135 00:46:33,110 --> 00:46:35,640 Se eu pasar por aquí para as cereixas, agora eu teño algo 1136 00:46:35,640 --> 00:46:36,760 outra cousa no meu inventario. 1137 00:46:36,760 --> 00:46:39,100 E iso é todo bo e bonito, pero pensar en como agora este 1138 00:46:39,100 --> 00:46:39,840 é aplicado. 1139 00:46:39,840 --> 00:46:42,490 Ben, nós temos esa noción da lista, e que é, aparentemente, un 1140 00:46:42,490 --> 00:46:45,470 peza do puzzle que acaba de dicir o que quere engadir a el, engade 1141 00:46:45,470 --> 00:46:46,950 laranxa, engade cereixas. 1142 00:46:46,950 --> 00:46:48,540 Agora, o que é ese cara azul facendo? 1143 00:46:48,540 --> 00:46:49,810 Ben, el é un sprite. 1144 00:46:49,810 --> 00:46:52,190 E, presuntamente, a laranxa e as cereixas - 1145 00:46:52,190 --> 00:46:54,140 eles mesmos eran sprites separados. 1146 00:46:54,140 --> 00:46:56,980 E usando condicións en expresións booleanas, os 1147 00:46:56,980 --> 00:47:00,530 estudante foi, probablemente, capaz de expresar cara azul é 1148 00:47:00,530 --> 00:47:04,590 cereixas tocando a continuación, engade as cereixas palabra ao seu 1149 00:47:04,590 --> 00:47:07,890 inventario, e despois tamén ocultar o sprite cereixa. 1150 00:47:07,890 --> 00:47:10,600 Entón, debaixo do capó, hai probablemente aínda é unha cereixa 1151 00:47:10,600 --> 00:47:11,350 Sprite alí. 1152 00:47:11,350 --> 00:47:14,160 Nós só dixo que se fai efectivamente invisible. 1153 00:47:14,160 --> 00:47:16,340 >> Agora, se eu continuar a andar por aquí, tamén podemos facelo 1154 00:47:16,340 --> 00:47:19,150 cousa proximal, onde podo ir e ler a tarxeta. 1155 00:47:19,150 --> 00:47:23,170 Entón, cara azul tocando sinal, podemos ter este bloque Say 1156 00:47:23,170 --> 00:47:26,455 así como o gato nos falou en palabras, Ola, antes, "Got 1157 00:47:26,455 --> 00:47:26,880 algunhas froitas? 1158 00:47:26,880 --> 00:47:29,290 Trae-o para o lugar de froitas. "Todo ben, agora, ao parecer, 1159 00:47:29,290 --> 00:47:30,550 Eu teño as miñas indicacións. 1160 00:47:30,550 --> 00:47:33,050 Eu podo ir ata aquí para o lugar de froitas, aliñar-me se 1161 00:47:33,050 --> 00:47:33,740 coa porta. 1162 00:47:33,740 --> 00:47:35,390 Agora, eu estou aquí. 1163 00:47:35,390 --> 00:47:38,120 Eu podo ir ata o home no balcón. 1164 00:47:38,120 --> 00:47:40,330 Detecta que estou preto del, por iso non ten que ser 1165 00:47:40,330 --> 00:47:46,780 bastante idéntica tocar, e eu gañei o partido. 1166 00:47:46,780 --> 00:47:49,890 Polo tanto, temos Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Así, podemos facer cousas aínda máis avanzados do que iso. 1168 00:47:52,200 --> 00:47:53,200 Podemos engadir sons. 1169 00:47:53,200 --> 00:47:54,610 Podemos engadir aleatoriedade pseudo. 1170 00:47:54,610 --> 00:47:56,260 Podemos engadir complexidade. 1171 00:47:56,260 --> 00:47:58,490 Deixe-me ir á fronte aquí, e en vez de facelo só, 1172 00:47:58,490 --> 00:48:01,240 deixe-me amosar-lle unha das propostas máis sofisticadas 1173 00:48:01,240 --> 00:48:06,640 Temos o ano pasado a partir dun certo alguén chamado Blake. 1174 00:48:06,640 --> 00:48:08,910 Podemos ter un voluntario que é cómodo aparecendo en 1175 00:48:08,910 --> 00:48:12,600 cámara e para xogar un partido? 1176 00:48:12,600 --> 00:48:13,450 Que tal alí? 1177 00:48:13,450 --> 00:48:15,380 Imos cara arriba. 1178 00:48:15,380 --> 00:48:19,680 Todo ben, entón o partido que ten só inconsciente 1179 00:48:19,680 --> 00:48:20,780 se ofreceu para xogar - 1180 00:48:20,780 --> 00:48:25,910 [Aplausos] 1181 00:48:25,910 --> 00:48:28,610 DAVID Malan: - é algo do pasado chamado 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Cal é o seu nome? 1183 00:48:30,100 --> 00:48:30,730 Encaixe: Encaixe. 1184 00:48:30,730 --> 00:48:31,050 DAVID Malan: Redna? 1185 00:48:31,050 --> 00:48:32,530 Encaixe: É como Brenda cun b. 1186 00:48:32,530 --> 00:48:33,190 DAVID Malan: Ok, renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Pracer de coñece lo. 1189 00:48:34,580 --> 00:48:38,690 >> Entón, aquí en "Frogger", e se puidésemos aumentar o volume só 1190 00:48:38,690 --> 00:48:39,780 un pouco, é esta pequena 1191 00:48:39,780 --> 00:48:41,010 ra verde na parte inferior. 1192 00:48:41,010 --> 00:48:43,940 Podes utilizar a esquerda, dereita, arriba e abaixo, eo seu obxectivo é 1193 00:48:43,940 --> 00:48:46,510 atravesar a rúa, cruzar o río, e tocar as almofadas de lírio 1194 00:48:46,510 --> 00:48:47,760 na parte superior. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Un máis t - 1197 00:48:54,630 --> 00:48:56,400 refacer, todo ben? 1198 00:48:56,400 --> 00:48:58,890 Imos deixar de éxito. 1199 00:48:58,890 --> 00:49:00,140 Ninguén viu iso. 1200 00:49:10,470 --> 00:49:12,930 [Aplausos] 1201 00:49:17,023 --> 00:49:17,850 [Aplausos] 1202 00:49:17,850 --> 00:49:19,341 DAVID Malan: Yeah. 1203 00:49:19,341 --> 00:49:20,832 Moi ben feito. 1204 00:49:20,832 --> 00:49:22,082 Excelente, grazas. 1205 00:49:27,300 --> 00:49:29,430 >> Así que houbo Frogger. Agora que sabe o que ten 1206 00:49:29,430 --> 00:49:32,170 quedou-se en un voluntario máis para un diferente 1207 00:49:32,170 --> 00:49:34,910 xogo presentado por outro alumno. 1208 00:49:34,910 --> 00:49:35,560 Queres vir enriba? 1209 00:49:35,560 --> 00:49:36,576 Cal é o seu nome? 1210 00:49:36,576 --> 00:49:37,000 Richard: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID Malan: Richard. 1212 00:49:37,420 --> 00:49:39,732 Todo ben, Richard, veña. 1213 00:49:39,732 --> 00:49:42,187 [Aplausos] 1214 00:49:45,140 --> 00:49:47,030 DAVID Malan: Ten algo que vai soar 1215 00:49:47,030 --> 00:49:54,180 familiarizados en breve, polo que aquí están as súas instrucións. 1216 00:49:54,180 --> 00:49:56,580 Entón, nun momento, algunhas pezas de puzzle vai rolar para arriba 1217 00:49:56,580 --> 00:49:58,150 a partir da pantalla que parecen ou deixou 1218 00:49:58,150 --> 00:49:59,450 ou dereita cara arriba ou cara abaixo. 1219 00:49:59,450 --> 00:50:01,230 Vai ter que bater as teclas de frechas de tal forma 1220 00:50:01,230 --> 00:50:04,540 que corresponde a estas pezas do puzzle se aliñados con 1221 00:50:04,540 --> 00:50:05,720 os espazos reservados na parte superior. 1222 00:50:05,720 --> 00:50:07,500 Entón, cando ve unha frecha cara á esquerda, e que sexa aliñado coa esquerda 1223 00:50:07,500 --> 00:50:09,260 frecha, preme a frecha esquerda. 1224 00:50:09,260 --> 00:50:10,866 Pode comezar. 1225 00:50:10,866 --> 00:50:13,674 [Música - "máis forte" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 DAVID Malan: Todos todo, dereito de palmas para Richard. 1227 00:51:23,470 --> 00:51:26,082 [Aplausos] 1228 00:51:32,426 --> 00:51:33,720 DAVID Malan: Moi ben feito. 1229 00:51:33,720 --> 00:51:34,110 Grazas. 1230 00:51:34,110 --> 00:51:37,104 [Aplausos] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID Malan: diversión Entón e, aparentemente, unha especie de 1232 00:51:44,330 --> 00:51:46,590 intimidador como podería ser a de implementar algo 1233 00:51:46,590 --> 00:51:49,550 aparentemente texto coma este, entendemos que o alumno 1234 00:51:49,550 --> 00:51:51,450 non existe e só escribir todo isto dunha vez. 1235 00:51:51,450 --> 00:51:54,200 En vez diso, pode romper un problema aparentemente tan complexo 1236 00:51:54,200 --> 00:51:56,840 como esta en anacos moi pequenos, e iso tamén é 1237 00:51:56,840 --> 00:51:57,560 vai ser un tema. 1238 00:51:57,560 --> 00:52:00,490 A peor cousa que pode facer por escrito un programa en máis calquera 1239 00:52:00,490 --> 00:52:03,480 linguaxe é sentir, ser moi animado, escribir o 1240 00:52:03,480 --> 00:52:07,200 maldita cousa toda, e despois só espero que funciona pola 1241 00:52:07,200 --> 00:52:08,510 Cando termine de escribir. 1242 00:52:08,510 --> 00:52:10,920 En vez diso, o proceso de programación debe, xeralmente, 1243 00:52:10,920 --> 00:52:13,440 ser moi criterioso, moi interactivo, no que só 1244 00:52:13,440 --> 00:52:16,955 definir pasos moi pequenos para si mesmos, anacos pequenos 1245 00:52:16,955 --> 00:52:20,070 quere morder, e para que teña estes sanidade 1246 00:52:20,070 --> 00:52:21,740 cheques, Marcos pouco que pode coñecer. 1247 00:52:21,740 --> 00:52:24,170 E entón construír enriba da xente para crear máis 1248 00:52:24,170 --> 00:52:25,400 cousas sofisticadas aínda. 1249 00:52:25,400 --> 00:52:26,820 >> Así, por exemplo, como poderiamos ir sobre 1250 00:52:26,820 --> 00:52:28,380 implementación dun partido como este? 1251 00:52:28,380 --> 00:52:30,160 Ben, francamente, eu certamente comezar só 1252 00:52:30,160 --> 00:52:32,260 apoiando unha tecla de cada vez. 1253 00:52:32,260 --> 00:52:34,840 Nós só implementar o soporte para a frecha esquerda. 1254 00:52:34,840 --> 00:52:37,610 Así, o alumno tiña de algunha maneira crear en Photoshop, ou en 1255 00:52:37,610 --> 00:52:40,340 Rascar a usar o editor de pouco gráfica, unha 1256 00:52:40,340 --> 00:52:42,680 clave de frecha que se parece o un na parte superior á esquerda, só 1257 00:52:42,680 --> 00:52:43,910 o espazo reservado gris. 1258 00:52:43,910 --> 00:52:46,610 A continuación, o alumno tiña que descubrir o que x, y coordinar a 1259 00:52:46,610 --> 00:52:48,380 puxo, onde poñelas na ventá. 1260 00:52:48,380 --> 00:52:50,730 0, 0 está aquí enriba, entón tes que descubrir o número de 1261 00:52:50,730 --> 00:52:53,690 píxeles ou puntos para compensar a frecha de 1262 00:52:53,690 --> 00:52:54,800 a parte superior da pantalla. 1263 00:52:54,800 --> 00:52:57,040 E entón, xa que é no lugar, o programa non fai realmente 1264 00:52:57,040 --> 00:53:00,380 facer nada aínda, entón tes que entón dun sprite segundo, para 1265 00:53:00,380 --> 00:53:04,470 exemplo, unha frecha verde que tamén é apuntar cara á esquerda, e 1266 00:53:04,470 --> 00:53:06,710 entón precisa comezar a escribir algúns guións para iso. 1267 00:53:06,710 --> 00:53:09,310 >> E entender, se cadra, que isto comezaron a chegar en 1268 00:53:09,310 --> 00:53:11,470 velocidades distintas, e as cores estaban en diferentes 1269 00:53:11,470 --> 00:53:13,750 locais, e iso é porque o estudante usou un pouco de 1270 00:53:13,750 --> 00:53:14,990 aleatoriedade pseudo. 1271 00:53:14,990 --> 00:53:17,440 E por casualidade pseudo, eu só quero dicir escoller un número 1272 00:53:17,440 --> 00:53:20,230 entre algo e algo, porque pode 1273 00:53:20,230 --> 00:53:22,890 iniciar a cousas do mapa, como se o número é entre un e 1274 00:53:22,890 --> 00:53:24,940 cinco, así, imos facer a cousa verde. 1275 00:53:24,940 --> 00:53:28,290 Se está entre 6 e 10, imos facer a peza do puzzle 1276 00:53:28,290 --> 00:53:29,730 vermello. 1277 00:53:29,730 --> 00:53:31,840 Mentres ten unha forma de xerar algún tipo de 1278 00:53:31,840 --> 00:53:34,730 aleatoriedade, entón podes tomar decisións en base a que 1279 00:53:34,730 --> 00:53:35,260 aleatoriedade. 1280 00:53:35,260 --> 00:53:37,490 E eu sigo dicindo pseudo chou, porque hai unha 1281 00:53:37,490 --> 00:53:38,390 pequeno segredo porco. 1282 00:53:38,390 --> 00:53:41,130 Ordenadores non pode vir ata con números aleatorios. 1283 00:53:41,130 --> 00:53:42,800 Eles só poden facer o que lles está dito, porque 1284 00:53:42,800 --> 00:53:44,110 son feitos polo home dispositivos. 1285 00:53:44,110 --> 00:53:45,880 Eles non poden simplemente creo que un número como nós, seres humanos 1286 00:53:45,880 --> 00:53:46,960 sinto que podemos. 1287 00:53:46,960 --> 00:53:50,970 Un ordenador ten que facer algo matemático para conxurar o 1288 00:53:50,970 --> 00:53:53,970 ilusión número matemático, ás veces utilizando o 1289 00:53:53,970 --> 00:53:57,420 día actual de tempo como unha entrada para descubrir o que 1290 00:53:57,420 --> 00:53:59,570 número de volver, pero máis sobre iso noutro momento. 1291 00:53:59,570 --> 00:54:02,060 Por agora, só sei que podemos xerar aleatoriedade pseudo. 1292 00:54:02,060 --> 00:54:04,610 >> Polo tanto, unha vez que teño a capacidade para a frecha para a esquerda para comezar 1293 00:54:04,610 --> 00:54:07,990 aparecendo en distintos momentos e en diferentes velocidades, a continuación, 1294 00:54:07,990 --> 00:54:10,230 Podo volver e engadir algúns deles, se as condicións. 1295 00:54:10,230 --> 00:54:14,950 Se este sprite está tocando o outro, ea frecha esquerda 1296 00:54:14,950 --> 00:54:16,330 tecla foi presionada - 1297 00:54:16,330 --> 00:54:17,900 así tres condicións nese caso. 1298 00:54:17,900 --> 00:54:20,750 Podo usar isto e bloquear, se cadra, nese caso - 1299 00:54:20,750 --> 00:54:23,210 Entón eu quero ir adiante e incrementar o panel. 1300 00:54:23,210 --> 00:54:25,130 E na parte superior, temos unha puntuación, temos Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, Bo, e Boo. 1302 00:54:26,510 --> 00:54:29,810 Polo tanto, non hai, ao parecer, cinco variables que este alumno 1303 00:54:29,810 --> 00:54:32,220 usado para manter o control desas varias métricas. 1304 00:54:32,220 --> 00:54:34,180 Así, en breve, o resultado final é incrible. 1305 00:54:34,180 --> 00:54:37,320 É divertido, é divertido de xogar, é envolvente, pero iso non é 1306 00:54:37,320 --> 00:54:38,380 onde o alumno comezou. 1307 00:54:38,380 --> 00:54:42,210 El ou ela comezou nun conxunto menor de etapas. 1308 00:54:42,210 --> 00:54:44,470 >> Entón, cales son algúns outros bloques de construción que podemos 1309 00:54:44,470 --> 00:54:45,760 tecer a estes programas? 1310 00:54:45,760 --> 00:54:48,750 Ben, hai outro concepto na maioría das linguas, 1311 00:54:48,750 --> 00:54:50,730 Raspe entre eles, coñecidos como fíos. 1312 00:54:50,730 --> 00:54:54,660 Así, un ordenador non pode realmente moi facer varias cousas nun 1313 00:54:54,660 --> 00:54:56,730 tempo, polo menos, xeralmente non. 1314 00:54:56,730 --> 00:54:59,930 En vez diso, un ordenador xeralmente só ten unha CPU, e aínda 1315 00:54:59,930 --> 00:55:02,230 Aínda que os computadores son super rápido e pode, polo tanto, 1316 00:55:02,230 --> 00:55:04,740 crear a ilusión de facer varias cousas ao mesmo tempo - 1317 00:55:04,740 --> 00:55:06,180 comprobar o seu e-mail, recibindo un instante 1318 00:55:06,180 --> 00:55:07,770 mensaxe, a impresión dun documento - 1319 00:55:07,770 --> 00:55:11,530 realmente, un ordenador é só ir de impresión para IMing 1320 00:55:11,530 --> 00:55:15,160 de correo-e para atrás e para atrás e para adiante e cara atrás tan rápido que 1321 00:55:15,160 --> 00:55:18,170 lentas humanos witted simplemente non entender que é realmente 1322 00:55:18,170 --> 00:55:21,240 execución destes programas un pouco de cada vez. 1323 00:55:21,240 --> 00:55:23,960 Agora, este un pouco de un branco mentir estes días, porque hoxe en día, 1324 00:55:23,960 --> 00:55:26,740 moitos dos nosos ordenadores son o que son chamados de multi-core, así 1325 00:55:26,740 --> 00:55:29,760 ten unha CPU, pero varios núcleos, que é como 1326 00:55:29,760 --> 00:55:31,760 ter múltiples procesadores. 1327 00:55:31,760 --> 00:55:35,020 >> E así, ás veces, os computadores poden realmente facer moitas cousas 1328 00:55:35,020 --> 00:55:38,500 de cada vez, pero, xeralmente, no marco dun programa, programas 1329 00:55:38,500 --> 00:55:40,200 contar con estas cousas chamadas threads. 1330 00:55:40,200 --> 00:55:43,160 Polo tanto, un debate é como unha especie de programa en miniatura, que pode 1331 00:55:43,160 --> 00:55:46,540 coexistir con outro programa en miniatura e pode ser executado 1332 00:55:46,540 --> 00:55:51,250 en paralelo, ou polo menos pode ser executado baixo a ilusión de que 1333 00:55:51,250 --> 00:55:52,990 eles están executando simultaneamente. 1334 00:55:52,990 --> 00:55:55,060 Entón arañazos soporta esas cousas chamadas threads. 1335 00:55:55,060 --> 00:55:57,580 Pode ter varios scripts de execución dunha vez, así como nós 1336 00:55:57,580 --> 00:56:00,220 fixo o león mariño, e iso nos permite realmente 1337 00:56:00,220 --> 00:56:03,620 entón interaccións entre eses sprites. 1338 00:56:03,620 --> 00:56:09,910 Deixe-me ir adiante aquí e tirar para arriba, imos dicir, temas e 1339 00:56:09,910 --> 00:56:11,870 xogar este como segue. 1340 00:56:11,870 --> 00:56:13,950 Temos dous sprites, cada un dos cales veremos 1341 00:56:13,950 --> 00:56:15,720 ten só un guión. 1342 00:56:15,720 --> 00:56:18,000 E en conta que parece haber algunha intelixencia no 1343 00:56:18,000 --> 00:56:21,335 gato en un regalo, porque está quedando máis preto - 1344 00:56:21,335 --> 00:56:21,730 [Ruge] 1345 00:56:21,730 --> 00:56:24,540 DAVID Malan: - e máis preto do paxariño. 1346 00:56:24,540 --> 00:56:26,570 >> Entón, como é o funcionamento paxaro? 1347 00:56:26,570 --> 00:56:28,200 Ben, imos dar un ollo no primeiro paxaro. 1348 00:56:28,200 --> 00:56:31,220 O guión paxaro dixo cando a bandeira verde é premendo, vai para o x 1349 00:56:31,220 --> 00:56:34,020 é igual a 115 negativo e y é igual a 150. 1350 00:56:34,020 --> 00:56:37,010 Entón, eu só descubrir un lugar ao chou onde eu quería que o 1351 00:56:37,010 --> 00:56:39,580 paxaro para comezar, e eu só xogou el alí por defecto. 1352 00:56:39,580 --> 00:56:42,800 Entón, para sempre se non tocar gato, entón este é un diferente 1353 00:56:42,800 --> 00:56:45,080 tipo de construción de loop, pero a idea aínda, facelo de novo e 1354 00:56:45,080 --> 00:56:45,780 novo e de novo. 1355 00:56:45,780 --> 00:56:49,410 Sempre que non está tocando o gato, mover tres etapas, e 1356 00:56:49,410 --> 00:56:51,680 se está na beira do salto, onde é unha especie de 1357 00:56:51,680 --> 00:56:53,320 reflexión no sentido de billar. 1358 00:56:53,320 --> 00:56:56,140 Entón é así que o ave está movendo en torno a tipo de 1359 00:56:56,140 --> 00:56:58,890 aparentemente de forma aleatoria, pero é só porque está saltando 1360 00:56:58,890 --> 00:57:00,170 as paredes, neste caso. 1361 00:57:00,170 --> 00:57:03,170 >> Agora o gato, pola súa banda, é unha especie de trampa. 1362 00:57:03,170 --> 00:57:05,520 O gato, cando a bandeira verde é premendo, si, comeza en 1363 00:57:05,520 --> 00:57:07,390 algún lugar, un lugar ao chou - 1364 00:57:07,390 --> 00:57:09,590 polo menos en parte, de acordo coa elección 1365 00:57:09,590 --> 00:57:11,430 bloque verde chou alí - 1366 00:57:11,430 --> 00:57:14,660 e sempre tocando o paxaro, reproducir o son do león, 1367 00:57:14,660 --> 00:57:15,790 e, a continuación, deixar o script. 1368 00:57:15,790 --> 00:57:18,560 Entón, cando dixo que rematar, ou saír antes, hai un puzzle 1369 00:57:18,560 --> 00:57:20,600 peza en scratch que só vai matar o programa que 1370 00:57:20,600 --> 00:57:22,900 punto, porque é unha especie de lóxica feito. 1371 00:57:22,900 --> 00:57:25,030 Pero se non, aquí, entender o que vai ocorrer. 1372 00:57:25,030 --> 00:57:28,470 Punto para o movemento de aves e un paso. 1373 00:57:28,470 --> 00:57:31,390 Polo tanto, este punto para ave é unha especie de vantaxe o gato 1374 00:57:31,390 --> 00:57:34,640 ten en que é lucrando co paxaro en movemento, e podemos 1375 00:57:34,640 --> 00:57:37,370 agora facer este programa aínda máis interesante. 1376 00:57:37,370 --> 00:57:41,520 En vez de mover un paso de cada vez por ciclo de CPU, por 1377 00:57:41,520 --> 00:57:44,280 folga toque das campás, por así dicir, deixe-me ir adiante e 1378 00:57:44,280 --> 00:57:47,350 mover, digamos, cinco chanzos de cada vez, como o gato. 1379 00:57:47,350 --> 00:57:51,120 Faga clic en Executar, e agora realmente atopa-lo rapidamente. 1380 00:57:51,120 --> 00:57:55,620 Se dobrar este máis de 10 pasos, especie de pasa 1381 00:57:55,620 --> 00:57:56,370 axeitado para el. 1382 00:57:56,370 --> 00:57:57,750 Agora, podemos dar o paxaro, 1383 00:57:57,750 --> 00:57:59,540 quizais, un pouco de vantaxe. 1384 00:57:59,540 --> 00:58:02,370 Imos para o paxaro e dicir en vez de avanzar tres pasos, 1385 00:58:02,370 --> 00:58:07,140 imos pasar-lle 30 pasos. 1386 00:58:07,140 --> 00:58:08,700 Pero aínda foi pego no final. 1387 00:58:08,700 --> 00:58:10,430 >> Entón, aquí, temos dous segmentos. 1388 00:58:10,430 --> 00:58:13,230 É detido en scratch con dous guións e dous 1389 00:58:13,230 --> 00:58:16,150 sprites, pero a idea noutros idiomas é que pode 1390 00:58:16,150 --> 00:58:19,220 escribir, esencialmente, moitos programas coma este e ter 1391 00:58:19,220 --> 00:58:22,950 Los funcionar de verdade, ou imaginariamente, en paralelo. 1392 00:58:22,950 --> 00:58:25,280 >> Agora, hai tamén este concepto na programación coñecida como 1393 00:58:25,280 --> 00:58:28,010 eventos, e iso é algo que non vai ver o C, os 1394 00:58:28,010 --> 00:58:30,500 lingua coñecida como C. Veremos isto en dirección ao fin do semestre 1395 00:58:30,500 --> 00:58:33,240 en programación web, cando introducimos o JavaScript eo 1396 00:58:33,240 --> 00:58:36,970 noción de páxinas web de construción que son dinámicos e interactuar 1397 00:58:36,970 --> 00:58:37,710 cos usuarios. 1398 00:58:37,710 --> 00:58:40,430 Polo tanto, neste caso, temos un exemplo moi sinxelo de dous 1399 00:58:40,430 --> 00:58:43,860 sprites, neno e nena, cada un dos cales coas súas respectivas 1400 00:58:43,860 --> 00:58:48,040 temas, pero de algunha maneira eses dous están inter-comunicación de forma 1401 00:58:48,040 --> 00:58:49,490 de algo chamado eventos. 1402 00:58:49,490 --> 00:58:52,750 Entón deixe-me ir adiante aquí e zoom e guión do neno, 1403 00:58:52,750 --> 00:58:54,050 que se parece con isto. 1404 00:58:54,050 --> 00:58:57,510 Cando premendo bandeira verde, para sempre facer o seguinte. 1405 00:58:57,510 --> 00:59:01,510 Se o espazo de clave, ou a barra de espazo, é presionado, din 1406 00:59:01,510 --> 00:59:03,900 Marco por dous segundos, que é puramente estético na 1407 00:59:03,900 --> 00:59:06,860 pantalla, un globo de fala pouco, pero despois transmitir. 1408 00:59:06,860 --> 00:59:09,240 >> Entón transmisión é outra peza Scratch que é 1409 00:59:09,240 --> 00:59:12,050 representativo dunha clase de función de programación 1410 00:59:12,050 --> 00:59:15,080 que permite que programas diferentes, liñas diferentes, 1411 00:59:15,080 --> 00:59:17,120 Para comunicarse entre, dalgunha forma, enviar 1412 00:59:17,120 --> 00:59:18,520 mensaxes, un para o outro. 1413 00:59:18,520 --> 00:59:21,930 Pasando un anaco de papel na aula é unha especie de baixa tecnoloxía 1414 00:59:21,930 --> 00:59:22,700 equivalente. 1415 00:59:22,700 --> 00:59:24,300 Entón transmisión de evento. 1416 00:59:24,300 --> 00:59:26,210 Podo enviar esta mensaxe, eo evento palabra 1417 00:59:26,210 --> 00:59:27,270 é totalmente arbitraria. 1418 00:59:27,270 --> 00:59:30,000 Cero ás veces ten esas caída baixos, entón eu só veu 1419 00:59:30,000 --> 00:59:33,230 con unha palabra aleatoria como evento, porque agora, o que o neno fai 1420 00:59:33,230 --> 00:59:36,600 cando premer a clave é que transmite este evento. 1421 00:59:36,600 --> 00:59:39,270 E se eu ollar agora no guión da nena, o seu guión é 1422 00:59:39,270 --> 00:59:42,690 super sinxelo, porque todo o que ela precisa facer é non actuar cando 1423 00:59:42,690 --> 00:59:44,100 a bandeira verde é premendo. 1424 00:59:44,100 --> 00:59:47,910 Ela e deseñados para a acción cando recibe pecha comiñas, 1425 00:59:47,910 --> 00:59:51,210 "Evento", e nese punto, se está escoitando, por tanto, para 1426 00:59:51,210 --> 00:59:52,960 o evento chamado de novo e de novo. 1427 00:59:52,960 --> 00:59:55,790 Así que recibe este evento, vai berrar 1428 00:59:55,790 --> 00:59:57,680 Polo por dous segundos. 1429 00:59:57,680 --> 01:00:01,090 >> E así pode talvez deducir exactamente o que o 1430 01:00:01,090 --> 01:00:03,190 preto resultado vai ser. 1431 01:00:03,190 --> 01:00:04,910 Deixe-me faga clic na bandeira verde. 1432 01:00:04,910 --> 01:00:06,610 Nada acontece porque eu teño que facer o que? 1433 01:00:06,610 --> 01:00:07,310 Audiencia: barra de espazo. 1434 01:00:07,310 --> 01:00:08,630 DAVID Malan: barra de espazo. 1435 01:00:08,630 --> 01:00:11,990 Neno di Marco, rapaza di Polo. 1436 01:00:11,990 --> 01:00:13,670 Pero isto non é codificado por si só. 1437 01:00:13,670 --> 01:00:16,740 Isto é inter-comunicación entre os scripts, entón agora nós 1438 01:00:16,740 --> 01:00:19,240 teñen a capacidade de facer programas máis complexos, onde 1439 01:00:19,240 --> 01:00:22,830 estes dous son de algunha maneira inter-comunicación. 1440 01:00:22,830 --> 01:00:25,260 >> Así, en que dirección podemos levar isto? 1441 01:00:25,260 --> 01:00:28,260 Ben, o conxunto de problemas 0, realmente, o obxectivo é 1442 01:00:28,260 --> 01:00:29,830 divírtete co scratch. 1443 01:00:29,830 --> 01:00:32,440 Para a edición de hacker, vai divertirse en vez cun máis 1444 01:00:32,440 --> 01:00:35,850 versión sofisticada do scratch chamado BYOB, build 1445 01:00:35,850 --> 01:00:38,040 Seus propios bloques, pero a idea é a mesma. 1446 01:00:38,040 --> 01:00:38,780 Vai ser capaz - 1447 01:00:38,780 --> 01:00:39,710 Si, iso foi deliberado. 1448 01:00:39,710 --> 01:00:42,450 Ela veu de Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB é a versión pirata edición desta, pero ambos 1450 01:00:45,200 --> 01:00:48,180 demografía, Standard Edition e edición de hacker que logo, o 1451 01:00:48,180 --> 01:00:50,940 obxectivo en mans para a próxima semana é realmente só a mergullo en 1452 01:00:50,940 --> 01:00:53,050 profunda, ensuciar as mans coa programación, e facer 1453 01:00:53,050 --> 01:00:55,240 algo interesante, facer algo interactivo, faga 1454 01:00:55,240 --> 01:00:58,020 algo artístico, facer algo divertido para realmente 1455 01:00:58,020 --> 01:01:01,020 demostrar, de xeito que ata o final da semana, ten un proxecto, 1456 01:01:01,020 --> 01:01:03,770 non só para o seu pset CS50 primeiro, pero vai ter un 1457 01:01:03,770 --> 01:01:05,620 pouco algo que pode amosar na Annenberg para 1458 01:01:05,620 --> 01:01:08,830 amigos ou incluso a familia por medio de carga para o sitio web do MIT. 1459 01:01:08,830 --> 01:01:11,760 E como eu dixo o mércores, esperamos que o 90% da clase, 1460 01:01:11,760 --> 01:01:13,970 xeralmente, para facer as edicións estándar. 1461 01:01:13,970 --> 01:01:16,660 Entenda que hai tamén esta saída para os que 1462 01:01:16,660 --> 01:01:18,990 poderían atopa-se un pouco aburrido co básico 1463 01:01:18,990 --> 01:01:21,650 e realmente quere mergullo e crear unha visión que xa 1464 01:01:21,650 --> 01:01:25,380 ten con fondo antes neste máis agradable 1465 01:01:25,380 --> 01:01:26,240 ambiente. 1466 01:01:26,240 --> 01:01:29,030 >> Entón deixe-me tirar para arriba outro exemplo que un dos nosos ex- 1467 01:01:29,030 --> 01:01:33,830 alumnos aquí fixo e dicir algo a través da música. 1468 01:01:33,830 --> 01:01:37,430 Que do mesmo xeito, como este xoga, pense sobre como ir sobre 1469 01:01:37,430 --> 01:01:40,520 implementación deste programa usando precisamente estes mesmos 1470 01:01:40,520 --> 01:01:44,180 bloques de construción, un pouco de aleatoriedade, e un pseudo 1471 01:01:44,180 --> 01:01:46,010 pouco de canción familiar. 1472 01:01:46,010 --> 01:01:47,910 Se puidésemos aumentar o volume un pouco? 1473 01:01:47,910 --> 01:01:49,160 [Música - "Está chovendo homes" The Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID Malan: Isto é todo para CS50. 1475 01:03:03,930 --> 01:03:05,860 Vemos que o luns. 1476 01:03:05,860 --> 01:03:21,152 [Aplausos]