1 00:00:00,000 --> 00:00:09,840 2 00:00:09,840 --> 00:00:10,824 >> [REPRODUCIÓN DE VIDEO] 3 00:00:10,824 --> 00:00:13,284 >> [CAR PORTA pechando] 4 00:00:13,284 --> 00:00:15,744 >> [CAR MOTOR DE PARTIDA] 5 00:00:15,744 --> 00:00:19,188 >> [Música tocando] 6 00:00:19,188 --> 00:00:20,172 7 00:00:20,172 --> 00:00:24,516 >> -Mover Dereita xunto en busca de bos momentos e boas novas. 8 00:00:24,516 --> 00:00:26,871 Con bos amigos que non pode perder. 9 00:00:26,871 --> 00:00:28,755 >> -Este Podería ser un hábito. 10 00:00:28,755 --> 00:00:32,460 >> Imos bate -Opportunity só estender a man e agarralo. 11 00:00:32,460 --> 00:00:32,960 -Si! 12 00:00:32,960 --> 00:00:34,920 -xunto Imos nab-lo. 13 00:00:34,920 --> 00:00:37,370 -Imos Camiñar engate, autobús ou taxi amarelo-lo. 14 00:00:37,370 --> 00:00:38,840 -Dammit. 15 00:00:38,840 --> 00:00:40,800 -Estamos En movemento o tempo. 16 00:00:40,800 --> 00:00:43,750 -Footloose E extravagante. 17 00:00:43,750 --> 00:00:45,960 -Getting Alí é a metade da diversión. 18 00:00:45,960 --> 00:00:47,718 Veña compartir comigo. 19 00:00:47,718 --> 00:00:49,654 >> -Estamos En movemento o tempo. 20 00:00:49,654 --> 00:00:52,558 >> -Estamos Indo para compartir a carga. 21 00:00:52,558 --> 00:00:57,604 >> -Nós Non precisa dun mapa para obter este concerto na estrada. 22 00:00:57,604 --> 00:01:00,520 Ei Fozzy, quero que Xire á esquerda se chegar a unha bifurcación na estrada. 23 00:01:00,520 --> 00:01:01,020 Si, señor. 24 00:01:01,020 --> 00:01:03,334 Xire á esquerda na bifurcación na estrada. 25 00:01:03,334 --> 00:01:05,222 Xire á esquerda. 26 00:01:05,222 --> 00:01:07,582 >> -Eu Non creo niso. 27 00:01:07,582 --> 00:01:11,720 >> -Cruising Dereita xunto atopamos as luces na estrada. 28 00:01:11,720 --> 00:01:13,664 >> -E O seu camiño ou o meu camiño. 29 00:01:13,664 --> 00:01:16,154 >> -Entón Confiar na miña navegación. 30 00:01:16,154 --> 00:01:21,134 >> Estrelas -Movie con coches chamativos e da vida coa capota inclinada. 31 00:01:21,134 --> 00:01:23,126 >> -Estamos Atacando os grandes montes. 32 00:01:23,126 --> 00:01:24,122 >> -Si, Tempestade é certo. 33 00:01:24,122 --> 00:01:25,160 Se é nevar? 34 00:01:25,160 --> 00:01:26,220 >> Non, eu non penso así. 35 00:01:26,220 --> 00:01:28,505 >> -Mover Dereita xunto. 36 00:01:28,505 --> 00:01:30,980 >> -Footloose E extravagante. 37 00:01:30,980 --> 00:01:32,960 >> -Vostede É preparado para o gran momento. 38 00:01:32,960 --> 00:01:34,445 >> -É Preparado para min? 39 00:01:34,445 --> 00:01:38,900 40 00:01:38,900 --> 00:01:42,860 >> -Mover Dereita xunto. 41 00:01:42,860 --> 00:01:47,315 Seguindo adiante. 42 00:01:47,315 --> 00:01:52,265 Seguindo adiante. 43 00:01:52,265 --> 00:01:56,131 Seguindo adiante. 44 00:01:56,131 --> 00:01:57,380 -Eu Creo que é mellor encostar. 45 00:01:57,380 --> 00:01:58,020 Si, señor. 46 00:01:58,020 --> 00:02:02,475 47 00:02:02,475 --> 00:02:03,960 >> [FIN DE REPRODUCIÓN] 48 00:02:03,960 --> 00:02:07,425 >> [Aplausos] 49 00:02:07,425 --> 00:02:09,405 50 00:02:09,405 --> 00:02:11,930 >> David J. Malan: Este é CS50. 51 00:02:11,930 --> 00:02:15,940 E este é o fin de semana 0, pero o inicio dunha fermosa amizade. 52 00:02:15,940 --> 00:02:18,250 Estamos tan animado para ser aquí na Universidade de Yale 53 00:02:18,250 --> 00:02:21,530 por primeira vez coa nosa SCAZ amigo, e Jason e Andy. 54 00:02:21,530 --> 00:02:24,320 Todos os 40 do TF da do CS50 e CA está aquí en Yale. 55 00:02:24,320 --> 00:02:25,440 E todos vostedes. 56 00:02:25,440 --> 00:02:28,470 E, de feito, probablemente é hora a-- 57 00:02:28,470 --> 00:02:31,914 >> [Aplausos] 58 00:02:31,914 --> 00:02:43,722 59 00:02:43,722 --> 00:02:47,920 >> Así, aínda que a maioría das conferencias estará realmente en Cambridge deste ano, 60 00:02:47,920 --> 00:02:51,250 a realidade é que por deseño, e moi deliberadamente en CS50, 61 00:02:51,250 --> 00:02:54,740 Creo que estamos chegando ao punto tecnoloxicamente, e pedagoxicamente, 62 00:02:54,740 --> 00:02:57,930 onde pode ser un de Ensino Superior experiencia de se involucrar con algunha 63 00:02:57,930 --> 00:02:59,610 de material en liña do curso. 64 00:02:59,610 --> 00:03:02,862 En realidade, o reality-- e eu creo este philosophically-- é que as charlas 65 00:03:02,862 --> 00:03:05,070 non son particularmente medios eficaces para a entrega 66 00:03:05,070 --> 00:03:06,900 información relativamente complexo. 67 00:03:06,900 --> 00:03:09,219 Certamente máis de hora ademais de longos períodos de tempo. 68 00:03:09,219 --> 00:03:11,760 E, de feito cada poucos minutes-- Recordo en college-- 69 00:03:11,760 --> 00:03:14,210 vostede zona fóra por un momento, perda algún tema complexo, 70 00:03:14,210 --> 00:03:16,540 e se foi moi bonito para os próximos 45 minutos. 71 00:03:16,540 --> 00:03:19,414 E a realidade é que se está aquí en New Haven ou Cambridge 72 00:03:19,414 --> 00:03:22,930 ou máis aló, a sinxeleza de a capacidade de facer unha pausa e avance rápido, 73 00:03:22,930 --> 00:03:26,270 rebobinar, Ligazón para relacionado Recursos, transcricións de busca de texto completo 74 00:03:26,270 --> 00:03:29,900 e similares é unha oportunidade que Atrévome a dicir para os nosos alumnos en liña 75 00:03:29,900 --> 00:03:32,530 ben ademais de New Haven, ofrécelles unha oportunidade 76 00:03:32,530 --> 00:03:34,700 para realmente entender o Material conceptual que 77 00:03:34,700 --> 00:03:36,700 introducir en conferencias tanto mellor. 78 00:03:36,700 --> 00:03:39,415 >> Pero en definitiva, CS50, é a experiencia dos estudantes 79 00:03:39,415 --> 00:03:43,099 caracterízase por iso, moito máis por conxuntos de problemas do curso, 80 00:03:43,099 --> 00:03:46,140 ou proxectos de programación semanal, o seccións do curso liderado polo ensino 81 00:03:46,140 --> 00:03:49,600 bolseiros, as horas de expediente nocturno liderado por os asistentes do curso e do ensino 82 00:03:49,600 --> 00:03:52,330 bolseiros e, de feito, tales eventos como CS50 enigma 83 00:03:52,330 --> 00:03:56,500 Día, Hack a Thon do CS50, CS50 o Fair, xantares semanais, e moito máis. 84 00:03:56,500 --> 00:03:59,580 E así se está aquí en Nova Haven, ou sintonizar de lonxe, 85 00:03:59,580 --> 00:04:02,270 hoxe, en Cambridge, e imos velo de novo en breve, 86 00:04:02,270 --> 00:04:04,580 a realidade é que isto é unha ea mesma clase. 87 00:04:04,580 --> 00:04:07,990 E estamos tan animado para estar aquí todos xuntos hoxe. 88 00:04:07,990 --> 00:04:11,110 E así, a finais do semestre, sexa aquí ou lonxe, así 89 00:04:11,110 --> 00:04:14,910 espero que vista orgullosa, feliz, e quizais cun pouco de alivio, 90 00:04:14,910 --> 00:04:19,459 camisa que dá testemuño para ti tomar CS50. 91 00:04:19,459 --> 00:04:21,700 >> Entón, de onde paramos o mércores? 92 00:04:21,700 --> 00:04:24,410 Nós demos un ollo pensamento computacional. 93 00:04:24,410 --> 00:04:27,830 E iso é o que nós cara destilada ciencia da computación ata, polo menos, 94 00:04:27,830 --> 00:04:28,800 por agora. 95 00:04:28,800 --> 00:04:31,990 Pero nós destilada que pouco máis na polo menos tres elementos compoñentes. 96 00:04:31,990 --> 00:04:34,570 >> Insumos, entón o que é o problema que estamos intentando resolver? 97 00:04:34,570 --> 00:04:36,650 As saídas, o que é a responder estamos esperando para comezar? 98 00:04:36,650 --> 00:04:38,210 E a representación de alí. 99 00:04:38,210 --> 00:04:41,870 E non imos vivir aquí en despois en binario, ou incluso ASCII, 100 00:04:41,870 --> 00:04:44,050 e similares tanto, pero si levar para concedida 101 00:04:44,050 --> 00:04:47,520 que podemos representar esta información, porque as partes máis interesante 102 00:04:47,520 --> 00:04:51,010 destes problemas non son só o entradas e saídas, pero os algoritmos 103 00:04:51,010 --> 00:04:53,020 que van a resolver estes problemas. 104 00:04:53,020 --> 00:04:55,120 >> E pode lembrar de o outro día que 105 00:04:55,120 --> 00:04:59,860 tomou un moi tradicional concepto de ollar alguén 106 00:04:59,860 --> 00:05:03,240 nun moi grande libro de teléfono, ou máis xeralmente dixitalmente nos días de hoxe, 107 00:05:03,240 --> 00:05:04,420 só un conxunto moi grande de datos. 108 00:05:04,420 --> 00:05:07,840 A lista de contactos realmente grande, con moitos nomes por orde alfabética. 109 00:05:07,840 --> 00:05:11,310 E entendemos que mentres eu podería abordar este problema simplemente 110 00:05:11,310 --> 00:05:14,520 usando un lineal approach-- páxina por páxina, 111 00:05:14,520 --> 00:05:17,775 ou mesmo dous de nun tempo-- entendemos que o algorithm-- máis intuitiva 112 00:05:17,775 --> 00:05:20,840 só unha especie de dividir e conquistar o problema de novo, e de novo, 113 00:05:20,840 --> 00:05:24,670 e reducir á metade de novo --- con cada tempo deunos este resultado verde. 114 00:05:24,670 --> 00:05:27,080 E é moito máis plana porque suxire 115 00:05:27,080 --> 00:05:29,160 que, aínda que este problema fica cada vez maior, 116 00:05:29,160 --> 00:05:32,470 como é o caso nos días de hoxe con datos conxuntos e reality-- Facebook e Google 117 00:05:32,470 --> 00:05:34,630 resultados de investigación e como-- fai noso algoritmo 118 00:05:34,630 --> 00:05:37,660 realizar a mesma eficacia aqueles con maiores picaduras 119 00:05:37,660 --> 00:05:40,310 como o fixo, aínda coas pequenas mordidas. 120 00:05:40,310 --> 00:05:45,330 >> Agora que levanta a cuestión, o que podemos resolver efectivamente semellante 121 00:05:45,330 --> 00:05:46,820 con este tipo de intuición? 122 00:05:46,820 --> 00:05:48,740 Este tipo de división e conquista? 123 00:05:48,740 --> 00:05:51,029 Ben, nós poderíamos facer algo como este aquí hoxe. 124 00:05:51,029 --> 00:05:52,070 Poderiamos atención. 125 00:05:52,070 --> 00:05:56,102 Entón, talvez como 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- 126 00:05:56,102 --> 00:05:57,560 non vai ser todo o que eficiente. 127 00:05:57,560 --> 00:05:58,990 Entón, agarde, escola primaria. 128 00:05:58,990 --> 00:06:02,770 2, 4, 6, 8, 10, 12, 14, 16, 18 e así por diante. 129 00:06:02,770 --> 00:06:04,140 Pero poderiamos facer algo mellor? 130 00:06:04,140 --> 00:06:06,630 >> Eu estou seguro que eu non podo facelo por min mesmo. 131 00:06:06,630 --> 00:06:09,420 Entón, se vai humor nos para só un momento, trouxo connosco 132 00:06:09,420 --> 00:06:11,640 un algoritmo que é só teño tres etapas, 133 00:06:11,640 --> 00:06:15,130 pero non se require-- non mente-- todos levantarse, 134 00:06:15,130 --> 00:06:15,690 se o faría. 135 00:06:15,690 --> 00:06:23,901 136 00:06:23,901 --> 00:06:29,380 Así, con todo de nós agora de pé, paso un deste algoritmo é o seguinte. 137 00:06:29,380 --> 00:06:31,680 Levante-se e asignar Se o número 1. 138 00:06:31,680 --> 00:06:34,180 Entón, neste momento, literalmente todo nesta sala 139 00:06:34,180 --> 00:06:38,830 esperemos que está a pensar en si mesmos, con todo sen xeito, o número 1. 140 00:06:38,830 --> 00:06:42,020 >> Agora paso dous deste algoritmo é vai implicar o seguinte. 141 00:06:42,020 --> 00:06:44,680 Paso dous, vincular con alguén de pé, 142 00:06:44,680 --> 00:06:47,970 engadir o seu número xuntos, e adoptar a suma como o seu novo número. 143 00:06:47,970 --> 00:06:53,110 144 00:06:53,110 --> 00:06:55,620 Verificación de sanidade rápida. 145 00:06:55,620 --> 00:06:58,180 O número é todo o mundo a pensar agora? 146 00:06:58,180 --> 00:07:01,930 >> Entón 2, agás, quizais, por unha banda, torpe persoa, solitario. 147 00:07:01,930 --> 00:07:04,269 Se temos un número impar de persoas na sala. 148 00:07:04,269 --> 00:07:06,560 Así, unha persoa pode ser o número un, todo ben. 149 00:07:06,560 --> 00:07:09,440 Pero o paso tres aquí, un de que ten que sentir-se. 150 00:07:09,440 --> 00:07:13,620 O outro debe volver á etapa dous, e repetir, se faría. 151 00:07:13,620 --> 00:07:54,430 152 00:07:54,430 --> 00:07:58,240 >> Entón, se aínda de pé, ten que ser entre os que volver á etapa dous. 153 00:07:58,240 --> 00:08:13,910 154 00:08:13,910 --> 00:08:14,574 Continúe indo. 155 00:08:14,574 --> 00:08:20,790 156 00:08:20,790 --> 00:08:22,130 Algunhas persoas aínda en pé. 157 00:08:22,130 --> 00:08:33,590 158 00:08:33,590 --> 00:08:35,614 >> Entón, se aínda de pé, vincular-se con alguén. 159 00:08:35,614 --> 00:08:53,710 160 00:08:53,710 --> 00:08:55,020 Todo ben, diminuíndo para abaixo. 161 00:08:55,020 --> 00:09:06,394 162 00:09:06,394 --> 00:09:07,560 Algunhas persoas aínda en pé. 163 00:09:07,560 --> 00:09:08,600 Vou axudar en caso necesario. 164 00:09:08,600 --> 00:09:11,855 Teña en conta que do takeaway clave aquí é como moito máis rápido do que se trata me conta. 165 00:09:11,855 --> 00:09:15,090 166 00:09:15,090 --> 00:09:16,200 >> Entón imos ver. 167 00:09:16,200 --> 00:09:16,900 Podo axudar. 168 00:09:16,900 --> 00:09:19,425 Entón, o número son aínda está a pensar? 169 00:09:19,425 --> 00:09:20,320 >> Audiencia: Eu son a 44. 170 00:09:20,320 --> 00:09:22,400 >> DAVID J. Malan: 44, entón dalle sentar. 171 00:09:22,400 --> 00:09:23,733 O número que está a pensar? 172 00:09:23,733 --> 00:09:24,840 Audiencia: 74. 173 00:09:24,840 --> 00:09:27,006 >> DAVID J. Malan: 74. 174 00:09:27,006 --> 00:09:28,380 Todo ben, vai adiante e sentar. 175 00:09:28,380 --> 00:09:30,390 Quen máis aínda está de pé? 176 00:09:30,390 --> 00:09:31,550 86. 177 00:09:31,550 --> 00:09:33,340 E é que ninguén aínda está de pé? 178 00:09:33,340 --> 00:09:34,976 >> Cara a un número? 179 00:09:34,976 --> 00:09:37,380 Oín 67. 180 00:09:37,380 --> 00:09:39,370 E, a continuación, na parte superior? 181 00:09:39,370 --> 00:09:40,900 32. 182 00:09:40,900 --> 00:09:44,230 Calquera outra persoa aínda está de pé e pensar nun número? 183 00:09:44,230 --> 00:09:44,730 >> Oh, ola. 184 00:09:44,730 --> 00:09:45,230 Desculpe. 185 00:09:45,230 --> 00:09:48,350 Volvo xa. 186 00:09:48,350 --> 00:09:49,520 42. 187 00:09:49,520 --> 00:09:51,758 Alguén? 188 00:09:51,758 --> 00:09:52,610 >> Audiencia: 47. 189 00:09:52,610 --> 00:09:54,930 >> DAVID J. Malan: 47. 190 00:09:54,930 --> 00:09:57,980 Ten máis alguén aínda de pé que non foi contado? 191 00:09:57,980 --> 00:10:06,450 Así, o número final de persoas nunha sala que ten 497 asentos é-- todos os que 192 00:10:06,450 --> 00:10:10,930 son filled-- é 390. 193 00:10:10,930 --> 00:10:12,230 Entón, iso é gran. 194 00:10:12,230 --> 00:10:16,435 >> En breve, discutir a noción dun erro nun programa de ordenador. 195 00:10:16,435 --> 00:10:19,660 Pero imos volver para que en pouco tempo. 196 00:10:19,660 --> 00:10:22,440 Pero, en teoría, o que pode acontecer só agora? 197 00:10:22,440 --> 00:10:25,930 Así, aínda que houbese tres grandes pasos para este algoritmo, cada un destes 198 00:10:25,930 --> 00:10:27,510 era só unha especie de unha gran operación. 199 00:10:27,510 --> 00:10:31,020 E había esta ciclicidade a el en que, se aínda estaban de pé, 200 00:10:31,020 --> 00:10:34,870 Vostede mantivo pasando de paso 3-2, paso 3-2, paso 3-2. 201 00:10:34,870 --> 00:10:37,330 >> Pero o que continuou a suceder en cada iteración? 202 00:10:37,330 --> 00:10:39,440 Cada ciclo deste loop? 203 00:10:39,440 --> 00:10:41,940 O que estaba a suceder noutros lugares na sala? 204 00:10:41,940 --> 00:10:45,170 Non só o mesmo, pero o que ocorría coa metade de vós? 205 00:10:45,170 --> 00:10:46,170 Sentado. 206 00:10:46,170 --> 00:10:49,710 E así alí mentiras ese insight, moi parecido ao exemplo do libro de teléfono, 207 00:10:49,710 --> 00:10:52,050 en que, se a metade de vostedes son sentando-se cada vez máis, 208 00:10:52,050 --> 00:10:54,560 o problema está comezando con quizais 400 persoas, 209 00:10:54,560 --> 00:10:57,780 a continuación, para 200 persoas, de 100 persoas, logo 50 persoas, e así por diante. 210 00:10:57,780 --> 00:11:00,660 >> E, así, reducir gradualmente en teoría para só unha persoa, 211 00:11:00,660 --> 00:11:02,830 pensando no valor total de todos. 212 00:11:02,830 --> 00:11:05,777 Agora a realidade, algunhas dinámicas sociais, e algúns erros aritméticos 213 00:11:05,777 --> 00:11:07,360 pode contribuír a este erro final. 214 00:11:07,360 --> 00:11:10,300 Pero, en teoría, mentres aínda estaba contando distancia, 215 00:11:10,300 --> 00:11:12,860 tendo varias decenas pasos, ou centos de pasos 216 00:11:12,860 --> 00:11:16,240 para contar-vos, para contar unha sala chea de 500 ou máis persoas 217 00:11:16,240 --> 00:11:20,560 debería ter moito menos pasos, porque só pode dividirse 500 e 1/2 218 00:11:20,560 --> 00:11:21,350 tantas veces. 219 00:11:21,350 --> 00:11:24,120 E así como co teléfono reservar exemplo o outro día, 220 00:11:24,120 --> 00:11:26,740 se temos algo logarítmica por así dicir, 221 00:11:26,740 --> 00:11:28,870 polo cal se fósemos todos operar ao unísono, 222 00:11:28,870 --> 00:11:32,000 e ignorando o erros de suma, que sería de nós 223 00:11:32,000 --> 00:11:34,140 alcanzar exactamente este tipo de tempo de execución? 224 00:11:34,140 --> 00:11:37,900 >> Agora, para ser xusto, tipo de erro, en que aproveitado outro recurso. 225 00:11:37,900 --> 00:11:40,320 Tendo en conta que non é máis que un de min, I aproveitado centos de ti. 226 00:11:40,320 --> 00:11:43,340 Pero pódese dicir que para ser un exemplo de procesamento paralelo, 227 00:11:43,340 --> 00:11:46,400 ou un estado de arte moi en voga onde os ordenadores estes días teñen 228 00:11:46,400 --> 00:11:49,830 múltiples CPUs, ou máis Tecnicamente, máis múltiples núcleos, 229 00:11:49,830 --> 00:11:52,550 e pode realmente facer múltiple cousas á vez, moi parecido contigo 230 00:11:52,550 --> 00:11:54,706 todo o que estamos facendo alí, en paralelo. 231 00:11:54,706 --> 00:11:56,580 Pero lembre que o que nós Tamén fixo o mércores 232 00:11:56,580 --> 00:12:02,640 foi intentar capturar esa intuición e formalizar-lo no código. 233 00:12:02,640 --> 00:12:04,165 Algo así como pseudo-código. 234 00:12:04,165 --> 00:12:07,040 E, de feito, e eu espero que perdoar, é como 80 graos en aquí. 235 00:12:07,040 --> 00:12:09,420 Entón eu vou levar este off para só un pouco. 236 00:12:09,420 --> 00:12:12,410 O que eu penso que ía facer é transición agora a unha aplicación na que 237 00:12:12,410 --> 00:12:16,300 volvemos a involucrar o público, pero escribir un programa en inglés 238 00:12:16,300 --> 00:12:19,537 como sintaxe, coa que a solucionar este problema aquí. 239 00:12:19,537 --> 00:12:20,203 [REPRODUCIÓN DE VIDEO] 240 00:12:20,203 --> 00:12:22,266 Tempo da marmelada de manteiga de cacahuete -É. 241 00:12:22,266 --> 00:12:23,890 A manteiga de cacahuete Tempo de marmelada. 242 00:12:23,890 --> 00:12:25,620 A manteiga de cacahuete Tempo de marmelada. 243 00:12:25,620 --> 00:12:26,320 >> Way ya! 244 00:12:26,320 --> 00:12:26,927 Way ya! 245 00:12:26,927 --> 00:12:27,781 Way ya! 246 00:12:27,781 --> 00:12:28,350 Way ya! 247 00:12:28,350 --> 00:12:29,723 Agora hai que vaia! 248 00:12:29,723 --> 00:12:30,264 Alí vai vostede! 249 00:12:30,264 --> 00:12:30,805 Alí vai vostede! 250 00:12:30,805 --> 00:12:31,710 Alí vai vostede! 251 00:12:31,710 --> 00:12:33,156 Manteiga de cacahuete marmelada! 252 00:12:33,156 --> 00:12:34,602 Manteiga de cacahuete marmelada! 253 00:12:34,602 --> 00:12:36,530 >> Manteiga de cacahuete marmelada! 254 00:12:36,530 --> 00:12:37,494 Manteiga de cacahuete marmelada! 255 00:12:37,494 --> 00:12:38,940 Cacahuete, manteiga de cacahuete marmelada! 256 00:12:38,940 --> 00:12:39,904 Manteiga de cacahuete marmelada! 257 00:12:39,904 --> 00:12:41,840 Marmelada de cacahuete manteiga cun taco de béisbol. 258 00:12:41,840 --> 00:12:42,423 >> [FIN DE REPRODUCIÓN] 259 00:12:42,423 --> 00:12:45,510 DAVID J. Malan: -que vídeo, pero é un pouco viciante, 260 00:12:45,510 --> 00:12:46,540 se non un pouco aburrido. 261 00:12:46,540 --> 00:12:49,623 Pero para facelo, eu penso que estariamos facer é tentar escribir un programa en conxunto, 262 00:12:49,623 --> 00:12:51,870 para o que necesitamos tres voluntarios. 263 00:12:51,870 --> 00:12:54,350 Ten que ser cómodo na cámara e internet. 264 00:12:54,350 --> 00:12:57,820 Sam, imos cara arriba. 265 00:12:57,820 --> 00:12:59,830 Camisa roxa, aquí, imos cara arriba. 266 00:12:59,830 --> 00:13:03,470 >> E a partir de aquí, déixeme ir un pouco máis atrás. 267 00:13:03,470 --> 00:13:05,280 Carmesim e camisas azuis, imos cara arriba. 268 00:13:05,280 --> 00:13:06,980 Perfecto. 269 00:13:06,980 --> 00:13:09,790 Veña agora. 270 00:13:09,790 --> 00:13:12,490 Imos cara arriba, imos cara arriba. 271 00:13:12,490 --> 00:13:13,581 >> E cal é o seu nome? 272 00:13:13,581 --> 00:13:14,080 Erica. 273 00:13:14,080 --> 00:13:15,289 David, pracer en coñece-lo. 274 00:13:15,289 --> 00:13:16,830 Se desexa aproveitar esta sede aquí. 275 00:13:16,830 --> 00:13:17,900 Este é Sam. 276 00:13:17,900 --> 00:13:19,690 >> Cal é o seu nome? 277 00:13:19,690 --> 00:13:20,260 Antonio. 278 00:13:20,260 --> 00:13:21,595 Antonio, pracer en coñece-lo. 279 00:13:21,595 --> 00:13:23,790 Erica e Sam, se quere ter un asento aquí. 280 00:13:23,790 --> 00:13:26,700 O que nós vimos preparados con, como eses caras están descubrindo, 281 00:13:26,700 --> 00:13:30,580 é os ingredientes cos que facer un bocadillos de manteiga de cacahuete e marmelada. 282 00:13:30,580 --> 00:13:33,520 >> Agora, isto pode ser algo que se toma moito para concedida. 283 00:13:33,520 --> 00:13:35,430 Pero demos cada dos nosos tres voluntarios 284 00:13:35,430 --> 00:13:40,500 aqui-- dous voluntarios e Sam aquí, un nacións de pan cada un prato, un coitelo, 285 00:13:40,500 --> 00:13:43,740 un pote de marmelada ou compota, e un pote de manteiga de cacahuete. 286 00:13:43,740 --> 00:13:46,190 E o obxectivo agora é na man será para estes tres 287 00:13:46,190 --> 00:13:48,030 para facer unha manteiga de cacahuete e bocadillos de marmelada. 288 00:13:48,030 --> 00:13:51,000 Pero o que imos facer é esperar o audience-- desde todos vostedes 289 00:13:51,000 --> 00:13:53,710 certamente sabe como facer este tan ben en reality-- 290 00:13:53,710 --> 00:13:56,380 van proporcionar a instrucións paso a paso. 291 00:13:56,380 --> 00:13:57,970 O pseudo-código, se quere. 292 00:13:57,970 --> 00:13:59,922 >> Entón, eu vou desempeñar o papel escriba aquí. 293 00:13:59,922 --> 00:14:02,880 E eu teño unha pequena lista de cousas a facer, e así como cada un, un de cada vez, 294 00:14:02,880 --> 00:14:04,588 chama un potencial instrucional, eu vou 295 00:14:04,588 --> 00:14:06,110 anota-la, repetir-la cando é necesario. 296 00:14:06,110 --> 00:14:09,650 E entón vostedes van facer a manteiga de cacahuete e marmelada bocadillos 297 00:14:09,650 --> 00:14:11,171 só facendo o que se di. 298 00:14:11,171 --> 00:14:12,670 Entón, pense de si mesmos como ordenadores. 299 00:14:12,670 --> 00:14:13,740 >> Só podes facer o que dixo. 300 00:14:13,740 --> 00:14:14,948 Non suposicións, non hai dúbidas. 301 00:14:14,948 --> 00:14:16,660 Só ten que facer iso. 302 00:14:16,660 --> 00:14:20,460 Entón, quen quere arriscar a primeira instrución para facer un bocadillos PBJ? 303 00:14:20,460 --> 00:14:21,460 Na terraza hai. 304 00:14:21,460 --> 00:14:22,801 >> Audiencia: Abre o saco de pan. 305 00:14:22,801 --> 00:14:26,430 >> DAVID J. Malan: Abre a saco de pan, se quere. 306 00:14:26,430 --> 00:14:34,440 307 00:14:34,440 --> 00:14:35,230 Entón imos ver. 308 00:14:35,230 --> 00:14:37,910 Imos facer unha iteración, e obter un pouco máis precisa. 309 00:14:37,910 --> 00:14:39,040 >> Boa forma de comezar aínda. 310 00:14:39,040 --> 00:14:42,340 Paso dous, alguén máis. 311 00:14:42,340 --> 00:14:43,590 Agora ninguén quere ser voluntario. 312 00:14:43,590 --> 00:14:44,616 Paso dous, na fronte. 313 00:14:44,616 --> 00:14:46,532 Audiencia: Abre o interior saco de pan tamén. 314 00:14:46,532 --> 00:14:50,600 DAVID J. Malan: Abre a saco interior do pan ben. 315 00:14:50,600 --> 00:14:51,880 Gran, estamos aprendendo. 316 00:14:51,880 --> 00:14:57,880 317 00:14:57,880 --> 00:14:59,090 Un pouco máis preciso. 318 00:14:59,090 --> 00:15:00,240 Imos comezar este traballo. 319 00:15:00,240 --> 00:15:01,180 Si, na camisa verde. 320 00:15:01,180 --> 00:15:04,608 >> Audiencia: [inaudível] 321 00:15:04,608 --> 00:15:05,108 322 00:15:05,108 --> 00:15:09,040 DAVID J. Malan: Franxas de pan. 323 00:15:09,040 --> 00:15:11,110 Elimina coidadosamente dúas franxas de pan. 324 00:15:11,110 --> 00:15:20,350 325 00:15:20,350 --> 00:15:21,000 Iso é bo. 326 00:15:21,000 --> 00:15:24,300 Paso catro, outra persoa? 327 00:15:24,300 --> 00:15:25,170 Por aquí, si? 328 00:15:25,170 --> 00:15:26,130 >> Audiencia: [inaudível] 329 00:15:26,130 --> 00:15:28,810 >> DAVID J. Malan: Pon o pan no prato. 330 00:15:28,810 --> 00:15:33,490 331 00:15:33,490 --> 00:15:35,290 Paso Cinco? 332 00:15:35,290 --> 00:15:36,020 Paso cinco, si? 333 00:15:36,020 --> 00:15:39,440 >> Audiencia: [inaudível] 334 00:15:39,440 --> 00:15:39,940 335 00:15:39,940 --> 00:15:43,860 DAVID J. Malan: Na parte superior de-- oh, man. 336 00:15:43,860 --> 00:15:46,967 Pon a man encima da manteiga de cacahuete. 337 00:15:46,967 --> 00:15:47,800 Isto é o que eu vou? 338 00:15:47,800 --> 00:15:49,160 >> Audiencia: É, e desapertar. 339 00:15:49,160 --> 00:15:51,370 >> DAVID J. Malan: correo dicilo de novo. 340 00:15:51,370 --> 00:15:52,696 >> Audiencia: [inaudível] 341 00:15:52,696 --> 00:15:57,990 >> DAVID J. Malan: E poñer o tapa á beira da manteiga de cacahuete. 342 00:15:57,990 --> 00:16:00,370 Levemente poñer a man no parte superior de manteiga de cacahuete, 343 00:16:00,370 --> 00:16:03,240 e desapertar, e poñer a tapa á beira da manteiga de cacahuete. 344 00:16:03,240 --> 00:16:14,760 345 00:16:14,760 --> 00:16:16,260 OK, etapa seis. 346 00:16:16,260 --> 00:16:17,520 Paso seis, outra persoa. 347 00:16:17,520 --> 00:16:19,366 Si? 348 00:16:19,366 --> 00:16:22,740 >> Audiencia: [inaudível] 349 00:16:22,740 --> 00:16:29,197 350 00:16:29,197 --> 00:16:30,405 DAVID J. Malan: Diga iso de novo. 351 00:16:30,405 --> 00:16:31,946 Audiencia: Repita o paso cinco novo. 352 00:16:31,946 --> 00:16:37,380 DAVID J. Malan: E repita o paso cinco de novo, 353 00:16:37,380 --> 00:16:39,400 que vai crear un pouco de un problema 354 00:16:39,400 --> 00:16:42,600 Agora, se nós estamos facendo isto paso a paso. 355 00:16:42,600 --> 00:16:44,640 Entón agora imos voltar á etapa cinco. 356 00:16:44,640 --> 00:16:47,760 Levemente poñer a man na parte superior de manteiga de cacahuete e desapertar 357 00:16:47,760 --> 00:16:50,990 e engada a cubrir á beira da manteiga de cacahuete. 358 00:16:50,990 --> 00:16:55,340 A continuación, Manteña a manteiga de cacahuete e repita o paso cinco novo. 359 00:16:55,340 --> 00:16:58,410 >> Entón, imos substituír esa loop infinito, se quere. 360 00:16:58,410 --> 00:17:00,400 Paso sete, outra persoa. 361 00:17:00,400 --> 00:17:02,918 Si, na parte de atrás. 362 00:17:02,918 --> 00:17:06,397 >> Audiencia: [inaudível] 363 00:17:06,397 --> 00:17:16,084 364 00:17:16,084 --> 00:17:17,769 >> DAVID J. Malan: top -En doutro. 365 00:17:17,769 --> 00:17:20,529 >> Audiencia: [inaudível] 366 00:17:20,529 --> 00:17:23,175 >> DAVID J. Malan: No Por outra banda, por outra superior. 367 00:17:23,175 --> 00:17:28,880 368 00:17:28,880 --> 00:17:30,895 Quere só chegar aquí? 369 00:17:30,895 --> 00:17:34,750 Como podo finalizar a instrución? 370 00:17:34,750 --> 00:17:37,790 Qué é o resto da instrución? 371 00:17:37,790 --> 00:17:39,140 >> Audiencia: Ignorando esa parte. 372 00:17:39,140 --> 00:17:41,050 >> DAVID J. Malan: Ignorando esa parte. 373 00:17:41,050 --> 00:17:44,192 374 00:17:44,192 --> 00:17:44,900 Imos comezar de novo. 375 00:17:44,900 --> 00:17:45,400 Paso sete. 376 00:17:45,400 --> 00:17:48,516 377 00:17:48,516 --> 00:17:51,883 >> Audiencia: [inaudível] 378 00:17:51,883 --> 00:17:56,090 >> DAVID J. Malan: Manteña con opóndose hand-- iso é bo. 379 00:17:56,090 --> 00:17:58,544 Este é realmente bo. 380 00:17:58,544 --> 00:18:01,750 >> Audiencia: [inaudível] 381 00:18:01,750 --> 00:18:03,975 >> DAVID J. Malan: E jar-- plástico 382 00:18:03,975 --> 00:18:06,675 >> Audiencia: [inaudível] 383 00:18:06,675 --> 00:18:08,420 >> DAVID J. Malan: E twist-- 384 00:18:08,420 --> 00:18:11,488 >> Audiencia: [inaudível] 385 00:18:11,488 --> 00:18:13,730 >> DAVID J. Malan: Por dous segundos. 386 00:18:13,730 --> 00:18:15,800 Basta abrir o pote de manteiga de cacahuete. 387 00:18:15,800 --> 00:18:19,020 388 00:18:19,020 --> 00:18:20,632 Eu espero que perdoar. 389 00:18:20,632 --> 00:18:21,840 Entón imos supor que chegamos alí. 390 00:18:21,840 --> 00:18:23,240 Abre o bote de manteiga de cacahuete. 391 00:18:23,240 --> 00:18:27,008 392 00:18:27,008 --> 00:18:32,570 >> [Aplausos] 393 00:18:32,570 --> 00:18:34,790 >> DAVID J. Malan: Paso oito, imos aínda. 394 00:18:34,790 --> 00:18:37,510 Paso oito, si, na parte de atrás. 395 00:18:37,510 --> 00:18:38,470 >> Audiencia: [inaudível] 396 00:18:38,470 --> 00:18:44,772 397 00:18:44,772 --> 00:18:45,700 >> DAVID J. Malan: Good. 398 00:18:45,700 --> 00:18:47,040 Paso nove, si? 399 00:18:47,040 --> 00:18:48,924 >> Audiencia: [inaudível] 400 00:18:48,924 --> 00:18:51,567 >> DAVID J. Malan: --out de o pote de manteiga de cacahuete. 401 00:18:51,567 --> 00:18:53,830 Correo e que? 402 00:18:53,830 --> 00:18:54,729 >> Audiencia: [inaudível] 403 00:18:54,729 --> 00:18:58,222 >> DAVID J. Malan: E poñer coitelo de volta en manteiga de cacahuete. 404 00:18:58,222 --> 00:19:11,130 405 00:19:11,130 --> 00:19:12,090 Paso dez. 406 00:19:12,090 --> 00:19:13,050 Paso dez. 407 00:19:13,050 --> 00:19:14,970 >> Audiencia: [inaudível] 408 00:19:14,970 --> 00:19:20,710 >> DAVID J. Malan: Pon o coitelo para fóra, e, a continuación, elimina o selo. 409 00:19:20,710 --> 00:19:23,060 Niza. 410 00:19:23,060 --> 00:19:24,400 Fóra da manteiga de cacahuete. 411 00:19:24,400 --> 00:19:34,490 412 00:19:34,490 --> 00:19:36,406 Todo ben, paso 11. 413 00:19:36,406 --> 00:19:37,322 >> Audiencia: [inaudível] 414 00:19:37,322 --> 00:19:42,520 415 00:19:42,520 --> 00:19:48,164 >> DAVID J. Malan: OK, gris ordenador siga ordenador azul ou vermello. 416 00:19:48,164 --> 00:19:49,631 Bo. 417 00:19:49,631 --> 00:19:53,054 >> [Aplausos] 418 00:19:53,054 --> 00:19:55,920 419 00:19:55,920 --> 00:19:57,170 DAVID J. Malan: Traia connosco para casa. 420 00:19:57,170 --> 00:19:59,570 Máis algunhas etapas. 421 00:19:59,570 --> 00:20:00,250 Cal é o próximo? 422 00:20:00,250 --> 00:20:02,590 Os pasos 12. 423 00:20:02,590 --> 00:20:04,161 Paso 12. 424 00:20:04,161 --> 00:20:05,123 Si? 425 00:20:05,123 --> 00:20:14,262 >> Audiencia: Pon unha das franxas de pan delicada nunha das súas mans. 426 00:20:14,262 --> 00:20:17,550 >> DAVID J. Malan: Unha das súas mans. 427 00:20:17,550 --> 00:20:20,760 E entón, o paso 13. 428 00:20:20,760 --> 00:20:21,260 Si? 429 00:20:21,260 --> 00:20:22,220 >> Audiencia: [inaudível] 430 00:20:22,220 --> 00:20:25,580 431 00:20:25,580 --> 00:20:27,150 >> DAVID J. Malan: Porción -En de pan. 432 00:20:27,150 --> 00:20:29,950 Bo. 433 00:20:29,950 --> 00:20:32,260 Moi bo. 434 00:20:32,260 --> 00:20:34,990 Paso 14, si. 435 00:20:34,990 --> 00:20:38,126 >> Audiencia: Desfacer a etapa 13. 436 00:20:38,126 --> 00:20:39,950 >> DAVID J. Malan: Desfacer a etapa 13. 437 00:20:39,950 --> 00:20:42,690 438 00:20:42,690 --> 00:20:44,770 Imos pasar á marmelada. 439 00:20:44,770 --> 00:20:47,900 É un programa 100- paso, pero estamos estaban na etapa 15. 440 00:20:47,900 --> 00:20:49,210 Si. 441 00:20:49,210 --> 00:20:50,170 >> Audiencia: [inaudível] 442 00:20:50,170 --> 00:20:53,050 443 00:20:53,050 --> 00:20:59,570 >> DAVID J. Malan: 7 a 13 empregando a marmelada, porque aqueles correu tan ben. 444 00:20:59,570 --> 00:21:02,530 Repita os pasos 7 a 13, utilizando a xelea. 445 00:21:02,530 --> 00:21:07,940 Así, comprender a metade inferior da bote da marmelada cunha man enriba. 446 00:21:07,940 --> 00:21:11,970 Por outra banda do outro top, ignorando esta parte, 447 00:21:11,970 --> 00:21:15,430 coller coas mans opostas, a tapa do bote de plástico e 448 00:21:15,430 --> 00:21:18,300 no fondo, e torcer por dous segundos. 449 00:21:18,300 --> 00:21:19,940 A continuación, abra o bote da marmelada. 450 00:21:19,940 --> 00:21:23,290 451 00:21:23,290 --> 00:21:26,580 E, finalmente, imos tratar darnos algo comestible. 452 00:21:26,580 --> 00:21:27,270 Paso 16. 453 00:21:27,270 --> 00:21:35,820 454 00:21:35,820 --> 00:21:37,130 Entón, por que non deixar lo alí. 455 00:21:37,130 --> 00:21:38,879 Moitas grazas a nosos tres voluntarios. 456 00:21:38,879 --> 00:21:41,466 [Aplausos] 457 00:21:41,466 --> 00:21:45,920 458 00:21:45,920 --> 00:21:50,300 >> Temos algo CS50 bola de estrés para ti. 459 00:21:50,300 --> 00:21:54,540 Estaba indo a ser un bocadillos mas-- entón o que 460 00:21:54,540 --> 00:21:57,130 foi o punto de, ademais de ter un pouco de diversión co algoritmo? 461 00:21:57,130 --> 00:22:00,140 Pero a realidade é que, mesmo cando está programando un ordenador, 462 00:22:00,140 --> 00:22:02,050 precisa para ser super necesitas. 463 00:22:02,050 --> 00:22:04,030 Tan complexa e intimidante como o seu propio ordenador 464 00:22:04,030 --> 00:22:06,670 podería moi ben ser para ti, polo menos cando algo dá mal, 465 00:22:06,670 --> 00:22:10,150 a realidade é que é un moi burro dispositivo que foi inventado por nós, seres humanos, 466 00:22:10,150 --> 00:22:13,267 e só pode facer un subconxunto do que fazer-- ás veces certamente faster-- 467 00:22:13,267 --> 00:22:15,100 pero non sabe como facer suposicións. 468 00:22:15,100 --> 00:22:18,070 El non sabe como ser en a mesma lonxitude de onda, como vostede. 469 00:22:18,070 --> 00:22:20,280 >> El só vai facer precisamente o que diga a el. 470 00:22:20,280 --> 00:22:22,070 E vai ser alcanzado, quizais, como comezamos 471 00:22:22,070 --> 00:22:24,770 escribir código real co conxuntos de problemas primeiras e máis aló, 472 00:22:24,770 --> 00:22:27,490 o quão doado é facer un presuposto como un ser humano, 473 00:22:27,490 --> 00:22:31,880 e non anticipar eu teño para xestionar Nese caso, é que se de canto, 474 00:22:31,880 --> 00:22:34,900 por así dicir, que podería moi ben xurdir, por exemplo, Sam tivo a única 475 00:22:34,900 --> 00:22:38,711 jar squeezable de marmelada, mentres todos tiña algúns frascos de vidro como 476 00:22:38,711 --> 00:22:39,210 ben. 477 00:22:39,210 --> 00:22:42,170 Entón, antes de volver a nosa a atención sobre algúns código real, 478 00:22:42,170 --> 00:22:44,680 permita-me presentar o cabezas de curso aquí en Yale. 479 00:22:44,680 --> 00:22:49,058 Os nosos amigos SCAZ, Andy, e Jason para vir e dicir Hola. 480 00:22:49,058 --> 00:22:52,544 >> [Aplausos] 481 00:22:52,544 --> 00:22:58,022 482 00:22:58,022 --> 00:23:01,060 >> SCAZ: Nós perdemos Jason temporalmente. 483 00:23:01,060 --> 00:23:02,440 Ola de novo, todo o mundo. 484 00:23:02,440 --> 00:23:03,610 O meu nome é SCAZ. 485 00:23:03,610 --> 00:23:06,860 Teño ensino na Universidade de Yale desde 2001. 486 00:23:06,860 --> 00:23:10,820 E cando eu non estou ensinando, miña investigación é na área da robótica 487 00:23:10,820 --> 00:23:12,620 e intelixencia artificial. 488 00:23:12,620 --> 00:23:17,700 >> E o anuncio de que teño hoxe é que a partir dun par de semanas, 489 00:23:17,700 --> 00:23:22,170 estaremos levando algún material suplementario para CS50 para falar 490 00:23:22,170 --> 00:23:24,510 sobre o software de intelixencia. 491 00:23:24,510 --> 00:23:28,230 Nós imos falar sobre como lugares como Netflix e Hulu 492 00:23:28,230 --> 00:23:31,780 pode recomendar películas que pode querer asistir. 493 00:23:31,780 --> 00:23:35,710 Onde nós imos falar sobre como coches-condutor menos realmente funcionar. 494 00:23:35,710 --> 00:23:39,020 E nós imos ser capaces de fundamentar isto nos conceptos 495 00:23:39,020 --> 00:23:41,730 que está a aprender nesta clase de hoxe. 496 00:23:41,730 --> 00:23:45,410 >> Porque todas estas cousas son construído sobre a mesma base. 497 00:23:45,410 --> 00:23:47,396 E iso é o que este serie vai explotar. 498 00:23:47,396 --> 00:23:49,520 Entón, eu estou realmente mirando ansioso para ver máis de ti 499 00:23:49,520 --> 00:23:53,260 todo, e vai chegar a ver máis desde todos moi pronto. 500 00:23:53,260 --> 00:23:56,500 Permítanme, a continuación, introducir Jason. 501 00:23:56,500 --> 00:23:57,950 >> JASON: Hola a todos. 502 00:23:57,950 --> 00:23:59,290 O meu nome é Jason. 503 00:23:59,290 --> 00:24:03,540 Eu, por desgraza, foi para Harvard como unha graduación. 504 00:24:03,540 --> 00:24:07,020 Isto vai cortar fóra do fluxo real. 505 00:24:07,020 --> 00:24:09,870 >> E agora eu estou aquí como profesor de o departamento de ciencia da computación. 506 00:24:09,870 --> 00:24:14,825 E eu estou axudando funcionar o curso con SCAZ, David e Andy. 507 00:24:14,825 --> 00:24:17,140 >> Andy: Hey guys. 508 00:24:17,140 --> 00:24:17,980 Andy do meu nome. 509 00:24:17,980 --> 00:24:21,992 Estou realmente a única Yale estudante no escenario no momento. 510 00:24:21,992 --> 00:24:25,464 >> [Aplausos] 511 00:24:25,464 --> 00:24:29,440 512 00:24:29,440 --> 00:24:31,770 >> Estou en Berkeley College, orixinalmente de Solon, Ohio. 513 00:24:31,770 --> 00:24:35,240 514 00:24:35,240 --> 00:24:37,930 E eu era unha desas nenos onde, cando eu vin para Yale, 515 00:24:37,930 --> 00:24:42,030 Realmente penso que eu nunca faría ten que ollar para un número cada vez máis. 516 00:24:42,030 --> 00:24:46,240 E entón eu entender que precisaba ciencia e QR créditos para posgrao. 517 00:24:46,240 --> 00:24:51,340 E así miña primavera calouro, eu tirei unha clase, un CS, introdución CS clase aquí 518 00:24:51,340 --> 00:24:52,230 en Yale. 519 00:24:52,230 --> 00:24:54,710 Eu era como, é dicir como realmente moi legal. 520 00:24:54,710 --> 00:25:01,330 >> E mentres eu realmente acabou declarando como un dos principais asuntos globais, as habilidades 521 00:25:01,330 --> 00:25:04,910 Eu aprendín no CS e programación son así aplicables a calquera campo 522 00:25:04,910 --> 00:25:05,970 escolle facer. 523 00:25:05,970 --> 00:25:09,770 Eo equipo aquí en Yale, fomos tan duro no traballo 524 00:25:09,770 --> 00:25:10,800 para prepararse para vós. 525 00:25:10,800 --> 00:25:13,410 E estamos ansiosos para vê- todo na sección e de oficina horas. 526 00:25:13,410 --> 00:25:14,874 Entón, si. 527 00:25:14,874 --> 00:25:18,178 >> [Aplausos] 528 00:25:18,178 --> 00:25:19,297 529 00:25:19,297 --> 00:25:20,380 DAVID J. Malan: Grazas. 530 00:25:20,380 --> 00:25:22,940 Entón, só tes que antes da clase comezou, tivemos unha oportunidade 531 00:25:22,940 --> 00:25:25,660 para andar en torno ao campus cun teléfono e tomar 532 00:25:25,660 --> 00:25:30,530 algúns selfies en forma de vídeo de verdade miña primeira xira do campus de Yale aquí. 533 00:25:30,530 --> 00:25:35,420 E entón pensamos que ía compartir un duro corte de exactamente isto como SCAZ e Andy 534 00:25:35,420 --> 00:25:37,970 e Jason levoume ao redor do campus. 535 00:25:37,970 --> 00:25:43,662 536 00:25:43,662 --> 00:25:44,328 [REPRODUCIÓN DE VIDEO] 537 00:25:44,328 --> 00:25:47,322 [Sirens] 538 00:25:47,322 --> 00:25:49,318 -David. 539 00:25:49,318 --> 00:25:50,132 -Ben-Benvida a Yale. 540 00:25:50,132 --> 00:25:50,840 -Bom Para velo. 541 00:25:50,840 --> 00:25:52,410 -nice Para velo. 542 00:25:52,410 --> 00:25:53,340 -Podemos Ir nunha xira? 543 00:25:53,340 --> 00:25:56,845 -Imos Facer un paseo. 544 00:25:56,845 --> 00:25:57,523 -road Turnê. 545 00:25:57,523 --> 00:25:59,106 -Este Sinal foi hai moito tempo. 546 00:25:59,106 --> 00:26:00,200 -Whah, CS50. 547 00:26:00,200 --> 00:26:02,978 548 00:26:02,978 --> 00:26:05,293 >> -Hurry! 549 00:26:05,293 --> 00:26:08,970 Vai, vai, vai, vai. 550 00:26:08,970 --> 00:26:12,340 Ten que [inaudível] Harkness Tower. 551 00:26:12,340 --> 00:26:13,850 >> -E Vimos que algunhas veces. 552 00:26:13,850 --> 00:26:16,760 553 00:26:16,760 --> 00:26:20,155 >> [Aplausos] 554 00:26:20,155 --> 00:26:21,130 555 00:26:21,130 --> 00:26:22,890 >> -Olla Para fóra á bicicleta! 556 00:26:22,890 --> 00:26:24,500 Ahh! 557 00:26:24,500 --> 00:26:25,030 Ola Frank. 558 00:26:25,030 --> 00:26:26,314 >> -Cal É para arriba, rapaces? 559 00:26:26,314 --> 00:26:26,855 -Como Está? 560 00:26:26,855 --> 00:26:28,474 -Bom Para velo. 561 00:26:28,474 --> 00:26:29,390 -Welcome Para o vídeo. 562 00:26:29,390 --> 00:26:32,270 Non actúe moi animado. 563 00:26:32,270 --> 00:26:34,502 >> -Eu Amo Silliman. 564 00:26:34,502 --> 00:26:36,430 Ahh! 565 00:26:36,430 --> 00:26:39,780 >> -El Foi preto de tres horas desde Jason tiña sorbete e Nutella. 566 00:26:39,780 --> 00:26:43,189 Entón temos que deixar de volta ao Silliman para un pouco. 567 00:26:43,189 --> 00:26:45,137 >> -Non É mesmo [inaudível] con todo, só o feito de 568 00:26:45,137 --> 00:26:47,270 que teñen aquí é tan incrible. 569 00:26:47,270 --> 00:26:49,830 Cara, non hai Nutella en cada comida. 570 00:26:49,830 --> 00:26:51,830 >> -Houve O ano pasado tamén. 571 00:26:51,830 --> 00:26:54,220 >> -Si. 572 00:26:54,220 --> 00:26:56,440 >> -Diga Moito sobre Yale ata agora. 573 00:26:56,440 --> 00:26:58,485 Pero eu agora que TD alí. 574 00:26:58,485 --> 00:26:59,860 E que se considera fóra do campus. 575 00:26:59,860 --> 00:27:03,659 >> -Aquí Temos arquitectura gótica. 576 00:27:03,659 --> 00:27:04,200 O moi coñecido. 577 00:27:04,200 --> 00:27:06,758 Temos unha arquitectura máis gótico. 578 00:27:06,758 --> 00:27:10,614 E construción, arquitectura máis gótico. 579 00:27:10,614 --> 00:27:11,114 Ola. 580 00:27:11,114 --> 00:27:15,470 Este é o lugar onde estamos tendo o horario de oficina Martes a xoves en Hogwarts, 581 00:27:15,470 --> 00:27:16,922 como [inaudível]. 582 00:27:16,922 --> 00:27:20,620 583 00:27:20,620 --> 00:27:21,120 -Está Ben. 584 00:27:21,120 --> 00:27:22,078 Isto é todo para o paseo. 585 00:27:22,078 --> 00:27:24,030 Estamos en Yale University de Law School, onde 586 00:27:24,030 --> 00:27:25,870 A charla de hoxe está a piques de ter lugar. 587 00:27:25,870 --> 00:27:29,220 Imos cabeza. 588 00:27:29,220 --> 00:27:30,375 >> [FIN DE REPRODUCIÓN] 589 00:27:30,375 --> 00:27:32,370 >> DAVID J. Malan: E que nos trae aquí agora. 590 00:27:32,370 --> 00:27:38,040 591 00:27:38,040 --> 00:27:40,770 Entón, ata agora, temos sido centrados en pseudo-código, 592 00:27:40,770 --> 00:27:42,430 o que é esa sintaxe Inglés-like. 593 00:27:42,430 --> 00:27:45,030 Non ten ningunha especificación prescrita. 594 00:27:45,030 --> 00:27:47,030 É só usa un linguaxe intuitiva se 595 00:27:47,030 --> 00:27:48,950 quero explicar o que quere facer. 596 00:27:48,950 --> 00:27:52,270 >> Pero imos comezar agora a transición ao código, como a maioría da xente diría. 597 00:27:52,270 --> 00:27:54,880 Pero, máis precisamente, algo coñecido como código fonte. 598 00:27:54,880 --> 00:27:58,210 Esta é a linguaxe que os humanos escribir que os ordenadores ultimately-- 599 00:27:58,210 --> 00:28:00,780 posiblemente despois dun certo número de steps-- finalmente entende 600 00:28:00,780 --> 00:28:02,530 a fin de saber como facer algo. 601 00:28:02,530 --> 00:28:05,120 Que viu un reflexo de este quizais o mércores. 602 00:28:05,120 --> 00:28:07,780 >> Este é un exemplo que incrible, underwhelming 603 00:28:07,780 --> 00:28:10,220 cando se executa simplemente di "Ola mundo". 604 00:28:10,220 --> 00:28:13,510 E está escrito nunha linguaxe chamada C, que é sintaticamente moi semellante 605 00:28:13,510 --> 00:28:15,676 para unha morea de outras linguas que pode non saber, 606 00:28:15,676 --> 00:28:18,409 pero pode ter oído falar de como Java, e C ++ e Python e Ruby, 607 00:28:18,409 --> 00:28:21,200 e similares, e, de feito, imos gastar moito do semestre usando C, 608 00:28:21,200 --> 00:28:23,530 e, a continuación, preto do fin do semestre, construíndo sobre el, 609 00:28:23,530 --> 00:28:25,446 e introdución de calquera número de outras linguas. 610 00:28:25,446 --> 00:28:28,810 Entre eles PHP e JavaScript, unha linguaxe de base de datos chamado SQL. 611 00:28:28,810 --> 00:28:31,526 Pero con C, o que nós imos ter ese entendemento desde abaixo 612 00:28:31,526 --> 00:28:33,900 exactamente como os ordenadores funcionan, o que pode facer con eles, 613 00:28:33,900 --> 00:28:37,252 e como pode resolver problemas todo o máis eficazmente por este 614 00:28:37,252 --> 00:28:39,460 estratificación que discutir o mércores, e en pé 615 00:28:39,460 --> 00:28:40,870 sobre os ombreiros dos outros. 616 00:28:40,870 --> 00:28:42,200 Pero máis sobre iso máis para vir. 617 00:28:42,200 --> 00:28:46,650 >> Hoxe miramos para un ambiente máis simple, pero unha fundamentalmente idéntico 618 00:28:46,650 --> 00:28:49,970 ambiente coñecido como Scratch, nosos amigos no MIT Media Lab. 619 00:28:49,970 --> 00:28:52,570 Este é un gráfico linguaxe de programación, risco, 620 00:28:52,570 --> 00:28:54,330 a través do cal pode arrastrar e soltar cousas que 621 00:28:54,330 --> 00:28:57,430 parecer pezas do puzzle que única interlock faise 622 00:28:57,430 --> 00:28:59,872 sentido lóxico ou programática para facelo. 623 00:28:59,872 --> 00:29:02,330 Pero só pode permitir manter unha conversa sobre todo 624 00:29:02,330 --> 00:29:04,604 da mesma programación fundamentos que algúns de vós 625 00:29:04,604 --> 00:29:06,520 xa debería saber, que moitos de vostedes quizais non 626 00:29:06,520 --> 00:29:09,670 sabe algo sen ter que se atol, francamente, 627 00:29:09,670 --> 00:29:13,150 no intelectualmente sintaxe desinteressante do punto e coma, 628 00:29:13,150 --> 00:29:14,950 e parénteses, e cita, e semellantes. 629 00:29:14,950 --> 00:29:16,910 Todos os cales, a principios diante, son unha distracción 630 00:29:16,910 --> 00:29:20,322 para o que son interesantes e ideas xenuinamente útiles. 631 00:29:20,322 --> 00:29:22,280 Entón, imos dar unha rápida mirar para o ambiente 632 00:29:22,280 --> 00:29:24,180 aquí, para que vostede sabe o que o espera. 633 00:29:24,180 --> 00:29:28,060 E, de feito, entre os xogos que pode xogar son algúns programas escritos 634 00:29:28,060 --> 00:29:30,810 por propios ex-alumnos do CS50. 635 00:29:30,810 --> 00:29:36,200 Un deles, eu mesmo, eu vou ser un agasallo escrita na escola de posgrao para min. 636 00:29:36,200 --> 00:29:39,030 >> Se eu puidese tomar un voluntario que está disposto a xogar 637 00:29:39,030 --> 00:29:40,420 un xogo por primeira vez. 638 00:29:40,420 --> 00:29:40,920 Claro. 639 00:29:40,920 --> 00:29:41,690 Imos cara arriba. 640 00:29:41,690 --> 00:29:42,565 Cal é o seu nome? 641 00:29:42,565 --> 00:29:43,372 >> Audiencia: Angela. 642 00:29:43,372 --> 00:29:44,830 DAVID J. Malan: Angela, imos cara arriba. 643 00:29:44,830 --> 00:29:47,220 Entón Raspadinha foi para fóra por algúns anos. 644 00:29:47,220 --> 00:29:49,960 E cando estaba na facultade, Estaba cruz rexistradas no MIT, 645 00:29:49,960 --> 00:29:53,392 tendo profesor de Mitchel Resnick de curso sobre tecnoloxías educativas. 646 00:29:53,392 --> 00:29:56,350 E nós estabamos entre os primeiros estudantes do mundo para realmente beta 647 00:29:56,350 --> 00:29:57,120 Risco de proba. 648 00:29:57,120 --> 00:30:00,090 E o meu proxecto era o que Angela xa ofreceu graciosamente 649 00:30:00,090 --> 00:30:02,060 a peza chamada Oscartime. 650 00:30:02,060 --> 00:30:04,507 >> Entón, eu estou indo a ir adiante e dobre clic na icona aquí. 651 00:30:04,507 --> 00:30:07,590 Abrirá unha programación ambiente que pronto imos mergullo. 652 00:30:07,590 --> 00:30:09,720 Eu estou indo a full-screen Lo para Angela, aquí. 653 00:30:09,720 --> 00:30:12,490 Eu estou indo a bater o verde bandeira en só un momento. 654 00:30:12,490 --> 00:30:15,130 E a continuación, un lote enteiro de lixo vai caer do ceo. 655 00:30:15,130 --> 00:30:17,830 E vai usar o rato aquí realmente arrastrar e soltar 656 00:30:17,830 --> 00:30:20,169 o lixo en latas de lixo de Oscar. 657 00:30:20,169 --> 00:30:23,210 Entón, se quere ir adiante e prema a bandeira verde, o xogo vai comezar. 658 00:30:23,210 --> 00:30:26,890 >> [Música tocando] 659 00:30:26,890 --> 00:30:29,980 >> Oh, eu amo lixo. 660 00:30:29,980 --> 00:30:34,840 Algo sucia ou Sombrío ou empoeirados. 661 00:30:34,840 --> 00:30:39,300 Algo irregular ou podre, é oxidado. 662 00:30:39,300 --> 00:30:43,155 Si, eu amo lixo. 663 00:30:43,155 --> 00:30:45,530 Se realmente quere ver algo inútil, mire para isto. 664 00:30:45,530 --> 00:30:49,570 Teño aquí unha zapatilla iso é esfarrapado e desgastado. 665 00:30:49,570 --> 00:30:53,750 É todo cheo de buratos detén e os lazos son rasgadas. 666 00:30:53,750 --> 00:30:57,590 Un agasallo da miña nai o día en que nacín. 667 00:30:57,590 --> 00:30:59,434 Eu adoro iso, porque it's-- 668 00:30:59,434 --> 00:31:02,600 DAVID J. Malan: --green estes días só estar xogando todo no lixo. 669 00:31:02,600 --> 00:31:04,312 E así que un dos Fez-- propio equipo do CS50 670 00:31:04,312 --> 00:31:06,270 Jordan, que pode atender today-- ten, de feito, 671 00:31:06,270 --> 00:31:08,030 actualizado este para tempos de hoxe. 672 00:31:08,030 --> 00:31:10,800 E entón permitan-me a abrir un remix en vez de Angela. 673 00:31:10,800 --> 00:31:13,600 E nós imos xogar iso en vez de algúns momentos onde agora está 674 00:31:13,600 --> 00:31:16,600 terá que decidir entre si xogar algo no lixo, 675 00:31:16,600 --> 00:31:19,050 ou reciclar-lo ou compostaxe-lo. 676 00:31:19,050 --> 00:31:21,280 Polo tanto, hai un pouco de presión sobre vostede para obter 677 00:31:21,280 --> 00:31:28,040 este dereito na fronte da súa 392 a 497 compañeiros aquí no hall, 678 00:31:28,040 --> 00:31:28,724 se o faría. 679 00:31:28,724 --> 00:31:29,390 [REPRODUCIÓN DE VIDEO] 680 00:31:29,390 --> 00:31:32,540 [Música tocando] 681 00:31:32,540 --> 00:31:36,280 Oh Eu amo lixo. 682 00:31:36,280 --> 00:31:40,840 Algo sucia ou Sombrío ou empoeirados. 683 00:31:40,840 --> 00:31:44,910 Algo irregular ou podre ou enferrujado. 684 00:31:44,910 --> 00:31:48,830 Si, eu amo lixo. 685 00:31:48,830 --> 00:31:51,480 >> Se realmente quere ver algo inútil, mire para isto. 686 00:31:51,480 --> 00:31:55,540 Teño aquí unha zapatilla iso é esfarrapado e desgastado. 687 00:31:55,540 --> 00:31:59,440 É todo cheo de buratos e os lazos son rasgadas. 688 00:31:59,440 --> 00:32:03,762 Un agasallo da miña nai o día en que nacín. 689 00:32:03,762 --> 00:32:07,630 Eu quero iso porque é lixo. 690 00:32:07,630 --> 00:32:11,570 >> Oh, eu amo lixo. 691 00:32:11,570 --> 00:32:15,512 Algo sucia ou Sombrío, ou empoeirados. 692 00:32:15,512 --> 00:32:20,200 Algo irregular ou podre ou enferrujado. 693 00:32:20,200 --> 00:32:23,856 Si, eu amo lixo. 694 00:32:23,856 --> 00:32:26,246 Aquí está máis algunhas cousas podres. 695 00:32:26,246 --> 00:32:28,240 Teño aquí algúns newspaper-- 696 00:32:28,240 --> 00:32:28,889 >> [FIN DE REPRODUCIÓN] 697 00:32:28,889 --> 00:32:30,680 DAVID J. Malan: --are realmente compostáveis. 698 00:32:30,680 --> 00:32:32,790 Pero gracias a nosa voluntario, Angela. 699 00:32:32,790 --> 00:32:37,920 Temos unha bola de estrés para ti aquí tamén. 700 00:32:37,920 --> 00:32:38,790 Entón, grazas. 701 00:32:38,790 --> 00:32:40,250 >> Entón, este foi escrito por min. 702 00:32:40,250 --> 00:32:44,324 Pero agora, un por un ex-alumno real que aplicou este, que é un xogo. 703 00:32:44,324 --> 00:32:46,490 Todo nesta lingua chamada Cero, que veremos en breve 704 00:32:46,490 --> 00:32:47,850 pelar as capas de. 705 00:32:47,850 --> 00:32:49,940 Pero se tivésemos como-- como sobre outro voluntario? 706 00:32:49,940 --> 00:32:50,440 Dereita. 707 00:32:50,440 --> 00:32:50,970 >> Imos cara arriba. 708 00:32:50,970 --> 00:32:52,070 Cal é o seu nome? 709 00:32:52,070 --> 00:32:52,570 Glance? 710 00:32:52,570 --> 00:32:53,280 Tiro. 711 00:32:53,280 --> 00:32:54,082 Tiro, imos alí cara arriba. 712 00:32:54,082 --> 00:32:54,790 Pracer en coñece lo. 713 00:32:54,790 --> 00:32:56,170 Veña deste xeito. 714 00:32:56,170 --> 00:32:59,940 Entón este pode ter un tema familiar para algúns de vós. 715 00:32:59,940 --> 00:33:02,180 Pero vai ver tamén que pode haber interaccións, 716 00:33:02,180 --> 00:33:05,242 en que podería realmente ser a papel do personaxe movendo arredor. 717 00:33:05,242 --> 00:33:05,950 Pracer en coñece lo. 718 00:33:05,950 --> 00:33:06,470 David. 719 00:33:06,470 --> 00:33:10,464 >> Eu doulle, Pikachu. 720 00:33:10,464 --> 00:33:12,380 Instrucións quere sobre para vir na pantalla. 721 00:33:12,380 --> 00:33:16,070 Pero en definitiva, vai quere incorporarse o material saborosa, 722 00:33:16,070 --> 00:33:18,827 e evitar as bombas e outras cousas. 723 00:33:18,827 --> 00:33:19,910 Cos cursores enteiramente. 724 00:33:19,910 --> 00:33:21,320 Entón bateu a barra de espazo. 725 00:33:21,320 --> 00:33:21,820 -Pikachu. 726 00:33:21,820 --> 00:33:23,480 DAVID J. Malan: Catch as cousas á esquerda, 727 00:33:23,480 --> 00:33:24,938 non incorporarse as cousas á dereita. 728 00:33:24,938 --> 00:33:27,576 729 00:33:27,576 --> 00:34:44,540 >> [Música tocando] 730 00:34:44,540 --> 00:34:46,332 >> Así, unha última aquí. 731 00:34:46,332 --> 00:34:48,040 Se puidésemos ter unha máis voluntario aquí. 732 00:34:48,040 --> 00:34:50,760 Pensamos en recrear algo de-- no shirt-- amarelo 733 00:34:50,760 --> 00:34:53,110 desde mércores. 734 00:34:53,110 --> 00:34:54,540 Cal é o seu nome? 735 00:34:54,540 --> 00:34:57,090 Mary, veña ata Mary. 736 00:34:57,090 --> 00:35:01,340 >> E lembro o mércores introducimos a noción de par, e lámpadas binarios. 737 00:35:01,340 --> 00:35:03,930 Este é de feito un momento implantación dese mesmo interface 738 00:35:03,930 --> 00:35:07,360 que tivemos no iPad coa luz lámpadas, pero aquí rendeu dixital. 739 00:35:07,360 --> 00:35:11,220 E en vez de facer un estrés ball-- bo coñecer ti, David. 740 00:35:11,220 --> 00:35:14,600 Trouxo algúns luz lámpadas de Cambridge. 741 00:35:14,600 --> 00:35:18,650 >> Se pode, premendo sobre os lámpadas para transformalo los dentro e fóra, 742 00:35:18,650 --> 00:35:29,510 vir cara arriba co binario representación de dicir 256. 743 00:35:29,510 --> 00:35:32,500 E vai ver no medio, a conta actual. 744 00:35:32,500 --> 00:35:33,690 De xeito que un está conectado. 745 00:35:33,690 --> 00:35:34,810 Así, o bit máis á esquerda está activada. 746 00:35:34,810 --> 00:35:36,016 >> MARIA: Si, [inaudível] 747 00:35:36,016 --> 00:35:39,292 748 00:35:39,292 --> 00:35:41,280 >> DAVID J. Malan: Ben, polo que temos apenas-- oh. 749 00:35:41,280 --> 00:35:42,780 Polo tanto, esta é a columna 128. 750 00:35:42,780 --> 00:35:44,460 Entón, nós estamos ata 128. 751 00:35:44,460 --> 00:35:46,769 Temos chegar a 256. 752 00:35:46,769 --> 00:35:48,560 E pode xogar en e fóra, non é gran cousa. 753 00:35:48,560 --> 00:35:53,700 Ou pode bater que 128 máis veces, se queres. 754 00:35:53,700 --> 00:35:56,310 >> Todo ben, bo. 755 00:35:56,310 --> 00:35:58,090 24. 756 00:35:58,090 --> 00:35:59,790 Si, achegando. 757 00:35:59,790 --> 00:36:02,105 Máis preto! 758 00:36:02,105 --> 00:36:05,980 Oh, cal é o problema, entón? 759 00:36:05,980 --> 00:36:07,510 Entón, cal é o problema? 760 00:36:07,510 --> 00:36:10,040 >> Entón, o que necesitamos resolver este problema? 761 00:36:10,040 --> 00:36:11,060 Entón, necesitamos outro bocado. 762 00:36:11,060 --> 00:36:12,770 E iso é perfectamente razoable, en realidade, non? 763 00:36:12,770 --> 00:36:15,800 Se desexa contar dende o número 1 a 2 a 3 a 4 a 5, 6, 7, 8, 9 764 00:36:15,800 --> 00:36:18,880 para realmente pasar a 10, é Vai ter un bit adicional. 765 00:36:18,880 --> 00:36:21,240 Entón imos realmente rebobinar aquí, e vir cara arriba 766 00:36:21,240 --> 00:36:23,790 com-- que foi obviamente deseñado para ser un set up. 767 00:36:23,790 --> 00:36:25,590 >> Non pode facer 256 con só unha lámpada. 768 00:36:25,590 --> 00:36:29,290 Así como sobre simplemente o número 50? 769 00:36:29,290 --> 00:36:29,977 Número 50. 770 00:36:29,977 --> 00:36:34,550 771 00:36:34,550 --> 00:36:35,100 Excelente. 772 00:36:35,100 --> 00:36:39,050 Un gran aplauso para Maria e dela tamén. 773 00:36:39,050 --> 00:36:41,840 Grazas. 774 00:36:41,840 --> 00:36:45,570 >> Polo tanto, este topic-- intencional como foi-- que vai realmente volver a ocorrer. 775 00:36:45,570 --> 00:36:50,020 O maior valor que pode representar con oito bits, ou un byte, 776 00:36:50,020 --> 00:36:51,750 é de feito 256. 777 00:36:51,750 --> 00:36:55,770 Pero non se comezar contando desde 0, coma nós 778 00:36:55,770 --> 00:36:58,060 parecen seguir facendo por todos os bits off. 779 00:36:58,060 --> 00:37:01,530 Pero agora imos mergullo na subxacente implantación deste ambiente, 780 00:37:01,530 --> 00:37:03,200 e provocar unha separación de algunhas destas ideas. 781 00:37:03,200 --> 00:37:06,350 >> Entón, nun momento en que está a piques de ver unha algúns fundamentos de programación diferentes. 782 00:37:06,350 --> 00:37:08,080 A primeira das cales nós chamaremos comunicado. 783 00:37:08,080 --> 00:37:09,360 Tipo de verbos, se quere. 784 00:37:09,360 --> 00:37:09,960 Accións. 785 00:37:09,960 --> 00:37:11,180 Cousas que deben ser feitas. 786 00:37:11,180 --> 00:37:13,430 >> E nun momento en que podes ver bloques que algo así. 787 00:37:13,430 --> 00:37:14,940 Diga "Ola mundo", por exemplo. 788 00:37:14,940 --> 00:37:16,330 Ou esperar un segundo. 789 00:37:16,330 --> 00:37:17,834 Ou xogar Meow son. 790 00:37:17,834 --> 00:37:20,500 E de feito o ambiente no que nós imos estar facendo iso 791 00:37:20,500 --> 00:37:21,610 chámase risco. 792 00:37:21,610 --> 00:37:25,060 >> E se eu puxar arriba sen risco pre-carga de calquera código real, 793 00:37:25,060 --> 00:37:27,830 imos ter un rápido ollar para este interface de usuario, por así dicir. 794 00:37:27,830 --> 00:37:29,730 Os controis cos que nos relacionamos. 795 00:37:29,730 --> 00:37:32,840 Na esquina superior esquerda do aquí pantalla, por baixo dos menús, 796 00:37:32,840 --> 00:37:34,650 temos a fase, por así dicir. 797 00:37:34,650 --> 00:37:36,550 Entón Scratch é o que imos chamar Sprite. 798 00:37:36,550 --> 00:37:37,520 É un personaxe. 799 00:37:37,520 --> 00:37:40,660 >> E, pode ser controlada pola escribir programas contra el. 800 00:37:40,660 --> 00:37:43,950 E vai ser capaz de subir e baixar e á esquerda e á dereita neste ambiente, 801 00:37:43,950 --> 00:37:46,075 non só movendo o rato, pero de forma programática. 802 00:37:46,075 --> 00:37:48,930 Podo dicirlle andar á dereita, a pé esquerda, arriba, abaixo ou similares. 803 00:37:48,930 --> 00:37:51,440 E podo presentar outro sprites ou caracteres ben. 804 00:37:51,440 --> 00:37:54,616 >> De feito, na parte inferior aquí é onde podes ver a lista de sprites. 805 00:37:54,616 --> 00:37:56,865 Polo momento, eu só teño un, pero podo crear máis, 806 00:37:56,865 --> 00:37:58,880 e eles van aparecer exactamente alí abaixo. 807 00:37:58,880 --> 00:38:02,630 Entón, se recuar por un momento, como Oscartime-- por exemplo, Oscar, 808 00:38:02,630 --> 00:38:04,590 na parte esquerda, o lixo pode, era un Sprite. 809 00:38:04,590 --> 00:38:07,450 E a cousa no medio, o Caixa de Reciclaxe, foi outro Sprite. 810 00:38:07,450 --> 00:38:09,300 E o composto bin foi outro Sprite. 811 00:38:09,300 --> 00:38:11,790 E cada peza de lixo ou materiais reciclables 812 00:38:11,790 --> 00:38:14,590 que foi caendo do ceo é tamén un Sprite, cada un dos cales 813 00:38:14,590 --> 00:38:16,150 foi programado individualmente. 814 00:38:16,150 --> 00:38:17,040 >> Como programar? 815 00:38:17,040 --> 00:38:20,180 Ben, aquí á dereita banda é a área de scripts. 816 00:38:20,180 --> 00:38:22,930 E é aí onde podemos arrastrar e soltar pezas do puzzle. 817 00:38:22,930 --> 00:38:26,066 Unha semana, que vai ser onde nós equivalentemente escribir código 818 00:38:26,066 --> 00:38:28,940 con máis de un teclado, pero a hoxe vai ser arrastrando e soltando 819 00:38:28,940 --> 00:38:31,680 pezas do puzzle, o paletas para os que poden todos 820 00:38:31,680 --> 00:38:33,190 pode atopar aquí no medio. 821 00:38:33,190 --> 00:38:35,190 Efectivamente, no medio aquí hai un grupo enteiro 822 00:38:35,190 --> 00:38:37,910 das categorías de puzzle pezas ou bloques. 823 00:38:37,910 --> 00:38:42,500 Un está relacionado ao movemento, ollar, son, unha pluma indo para arriba e abaixo, 824 00:38:42,500 --> 00:38:43,860 de datos, control de eventos. 825 00:38:43,860 --> 00:38:45,654 Non é así seguro aínda o que todo isto significa, 826 00:38:45,654 --> 00:38:47,820 pero vai ver que eles teñen foron ben categorizadas. 827 00:38:47,820 --> 00:38:50,680 E para escribir un programa en Cero, imos facer exactamente isto. 828 00:38:50,680 --> 00:38:53,480 >> Vou comezar baixo Eventos e arrastra este aquí. 829 00:38:53,480 --> 00:38:55,470 Cando a bandeira verde premendo. 830 00:38:55,470 --> 00:38:56,704 Agora, por que un? 831 00:38:56,704 --> 00:38:59,120 Ben lembrar que os nosos voluntarios veu á tona, a cousa que eu primeiro 832 00:38:59,120 --> 00:39:02,017 ou o que fixen foi facer clic nese verde bandeira na esquina superior dereita. 833 00:39:02,017 --> 00:39:03,600 E iso só significa que iniciar o programa. 834 00:39:03,600 --> 00:39:06,560 >> Así, cando este evento ocorre, o que quero facer? 835 00:39:06,560 --> 00:39:10,070 Eu estou indo a ir baixo Looks, e eu vou facer "dicir Hola." 836 00:39:10,070 --> 00:39:14,000 E eu vou cambiar isto e dicir algo así como "Ola Yale." 837 00:39:14,000 --> 00:39:16,970 E agora eu estou indo a zoom fóra, prema na bandeira verde, 838 00:39:16,970 --> 00:39:19,050 e listo, eu escribín un programa. 839 00:39:19,050 --> 00:39:20,990 Non é todo o que emocionante aínda, pero esta 840 00:39:20,990 --> 00:39:23,195 é exactamente onde cada daqueles autor comezou, 841 00:39:23,195 --> 00:39:25,740 ambos con Pikachu, eo lámpadas binarios e Oscartime, 842 00:39:25,740 --> 00:39:26,890 e tantos outros exemplos. 843 00:39:26,890 --> 00:39:29,150 >> Comeza super sinxelo, e entón comeza a capa, 844 00:39:29,150 --> 00:39:31,046 e engadir recursos e funcións. 845 00:39:31,046 --> 00:39:32,920 Entón, cales son esas capas vai consistir? 846 00:39:32,920 --> 00:39:36,086 Así, ademais de declaracións, imos tamén ten cousas que son pouco máis fancily 847 00:39:36,086 --> 00:39:38,910 chamado Boolean Expressions, despois de alguén chamado bool. 848 00:39:38,910 --> 00:39:42,820 E unha expresión booleana é simplemente un expresión que é verdadeira ou falsa, 849 00:39:42,820 --> 00:39:45,740 si ou non, 1 ou 0. 850 00:39:45,740 --> 00:39:47,480 >> Calquera opostos polares así. 851 00:39:47,480 --> 00:39:48,902 É certa ou non. 852 00:39:48,902 --> 00:39:51,360 Pero nós tamén estamos indo a ver Os que pode ter esta aparencia. 853 00:39:51,360 --> 00:39:52,925 Así, por exemplo, é o rato para abaixo? 854 00:39:52,925 --> 00:39:54,550 Son unha especie de preguntas, se quere. 855 00:39:54,550 --> 00:39:57,650 >> O rato é ou abaixo, verdade ou non é, falsa. 856 00:39:57,650 --> 00:39:59,990 1 ou 0, se quixeren, tende a ser o mapeamento. 857 00:39:59,990 --> 00:40:01,740 Certo é 1, falsa é 0. 858 00:40:01,740 --> 00:40:03,740 Ben que sobre menos que iso? 859 00:40:03,740 --> 00:40:05,400 Ou ben, iso é menos que iso? 860 00:40:05,400 --> 00:40:06,650 Isto é unha cuestión de sorte. 861 00:40:06,650 --> 00:40:09,140 >> E se pór dous números alí, sexa x 862 00:40:09,140 --> 00:40:12,010 será menor que ou Y igual a y, ou maior que Y, 863 00:40:12,010 --> 00:40:14,635 pero este bloque veremos, é só vai responder á pregunta, 864 00:40:14,635 --> 00:40:15,810 este é menos que iso? 865 00:40:15,810 --> 00:40:17,650 Tamén pode ver algo como isto. 866 00:40:17,650 --> 00:40:18,790 Tocando punteiros de rato. 867 00:40:18,790 --> 00:40:21,610 Así, en cero, pode pedir a cuestión, é o Sprite 868 00:40:21,610 --> 00:40:22,800 tocar o punteiro do rato? 869 00:40:22,800 --> 00:40:26,040 Noutras palabras, é o que paira cursor sobre a tapa, ou o equivalente? 870 00:40:26,040 --> 00:40:28,100 >> Imos ver as cousas anding xuntos. 871 00:40:28,100 --> 00:40:30,970 Podes facer dúas preguntas, e asegúrese de que ambos 872 00:40:30,970 --> 00:40:34,920 darlle si ou certas respostas antes tomar a decisión de facer algo. 873 00:40:34,920 --> 00:40:36,709 Pero entón como tomar decisións? 874 00:40:36,709 --> 00:40:38,000 Ben, temos estas condicions. 875 00:40:38,000 --> 00:40:40,041 >> E vimos isto na nosa exemplo do libro de teléfono. 876 00:40:40,041 --> 00:40:41,900 Mirando cara á esquerda ou axeitado para Mike Smith. 877 00:40:41,900 --> 00:40:45,140 E na condición, facer algo potencialmente 878 00:40:45,140 --> 00:40:47,240 unha expresión booleana é certa. 879 00:40:47,240 --> 00:40:48,720 >> E, de feito, teña en conta as formas agora. 880 00:40:48,720 --> 00:40:52,250 Hai ese espazo reservado agora sobre a sobrecarga onde podemos fit-- 881 00:40:52,250 --> 00:40:54,532 se eu recuar unha slide-- que forma. 882 00:40:54,532 --> 00:40:55,740 Non é o mesmo tamaño. 883 00:40:55,740 --> 00:40:58,400 E, de feito, vai ver que Cero redimensiona as cousas de forma dinámica 884 00:40:58,400 --> 00:41:01,479 encaixar pezas de puzzle, pero o forma é que é importante. 885 00:41:01,479 --> 00:41:03,270 Esa cousa parece que, e de feito é 886 00:41:03,270 --> 00:41:05,410 aproximadamente a mesma forma que debe caber dentro. 887 00:41:05,410 --> 00:41:09,520 E se queremos facer algo un ou outro camiño, se é entón, 888 00:41:09,520 --> 00:41:12,080 temos este puzzle peza en risco tamén. 889 00:41:12,080 --> 00:41:17,450 >> Agora supoñamos que quería facer if, else, ou outra cousa. 890 00:41:17,450 --> 00:41:20,120 Noutras palabras, un garfo de tres vías no camiño. 891 00:41:20,120 --> 00:41:22,656 Ben, o que pode facer só mirando para iso? 892 00:41:22,656 --> 00:41:25,030 Podo tomar esta parte do enigma, e non parece encaixar, 893 00:41:25,030 --> 00:41:27,670 pero, de novo, vai Raspadinha o re-size moi ben para nós. 894 00:41:27,670 --> 00:41:29,940 Podería comezar a capa isto xuntos. 895 00:41:29,940 --> 00:41:32,900 >> Entón agora eu teño unha de tres vías fork se iso é verdade, facelo. 896 00:41:32,900 --> 00:41:36,560 Else if esa outra cousa é verdade, ir por este camiño, entón ir esta outra forma. 897 00:41:36,560 --> 00:41:39,200 E en The Muppet da película, o bifurcación na estrada, por así dicir, 898 00:41:39,200 --> 00:41:42,610 entre Yale ou Stanford, estaba exactamente aquel, só dúas condicións. 899 00:41:42,610 --> 00:41:45,190 Ou ir por este camiño, senón ir por ese camiño. 900 00:41:45,190 --> 00:41:46,940 >> Ben, loops tamén existen na programación. 901 00:41:46,940 --> 00:41:49,100 E usamos estes xa en clase e no código pseudocódigo, 902 00:41:49,100 --> 00:41:51,060 e, por suposto, aqueles Programas de raspadinhas para sempre. 903 00:41:51,060 --> 00:41:53,730 Cero ten esa peza do puzzle que só vai deixar que facer algo para sempre. 904 00:41:53,730 --> 00:41:55,688 E ás veces quere facer algo para sempre. 905 00:41:55,688 --> 00:41:58,810 Non é necesariamente un erro, é porque quere un reloxo para continuar, 906 00:41:58,810 --> 00:42:00,730 ou un xogo para seguir xogando. 907 00:42:00,730 --> 00:42:04,800 Ou pode especificar un número finito de pasos, como acontece con este bloque de repetición aquí, 908 00:42:04,800 --> 00:42:06,550 que repetirá algo 10 veces. 909 00:42:06,550 --> 00:42:08,560 Podemos definir variables, veremos en breve. 910 00:42:08,560 --> 00:42:12,300 E con variables, semellante en espírito a álxebra, como x ou y, ou z. 911 00:42:12,300 --> 00:42:16,390 É algo simbólico que pode almacenar algún valor, algunha peza de información, 912 00:42:16,390 --> 00:42:18,320 que pode querer para lembrar para máis tarde. 913 00:42:18,320 --> 00:42:21,080 >> Mellor exemplo diso pode ser un xogo onde ten unha puntuación, 914 00:42:21,080 --> 00:42:22,080 como en Pikachu. 915 00:42:22,080 --> 00:42:25,180 Cantos anacos de bolo e outros enfeites colleu? 916 00:42:25,180 --> 00:42:29,340 Ben, isto pode ser unha variable chamado puntuación que comeza en 0. 917 00:42:29,340 --> 00:42:32,400 E, a continuación, cada vez que pego un parte de bolo ou doces, ou similares, 918 00:42:32,400 --> 00:42:33,720 é incrementado. 919 00:42:33,720 --> 00:42:35,990 El engádese a un de cada vez. 920 00:42:35,990 --> 00:42:38,450 E tendas para que unha variable dun peza de información como esta. 921 00:42:38,450 --> 00:42:41,450 Despois, hai arrays, e nós viremos de volta para estes nunha semana ou dúas veces, 922 00:42:41,450 --> 00:42:44,900 pero unha matriz é como unha especie de inventario ou unha mochila, dentro 923 00:42:44,900 --> 00:42:46,940 de que pode poñer as cousas virtuais. 924 00:42:46,940 --> 00:42:49,852 El permite que almacenar máis dunha peza de información. 925 00:42:49,852 --> 00:42:51,810 E iso pode ser útil no xogo, é 926 00:42:51,810 --> 00:42:53,630 tipo de sendeirismo arredor incorporarse cousas. 927 00:42:53,630 --> 00:42:55,879 E quizais quere manter todos estes anacos de bolo 928 00:42:55,879 --> 00:42:58,260 arredor, e non só comer Los un despois do outro. 929 00:42:58,260 --> 00:43:00,010 E despois hai unha columbófilo construción imos 930 00:43:00,010 --> 00:43:02,932 vir a chamadas funcións ou procesos. 931 00:43:02,932 --> 00:43:04,640 E aínda que imos máis rápido aquí, imos 932 00:43:04,640 --> 00:43:07,345 ver que estes son moi solución natural para problemas 933 00:43:07,345 --> 00:43:08,470 que imos atopar. 934 00:43:08,470 --> 00:43:10,220 Como os nosos programas comezan quedando maior imos 935 00:43:10,220 --> 00:43:12,640 comezar a notar patróns en o código que estamos escribindo, 936 00:43:12,640 --> 00:43:14,556 as pezas do puzzle que estamos arrastrando e soltando. 937 00:43:14,556 --> 00:43:18,240 E así que entender-se a facer algo novo e de novo, ou peor aínda 938 00:43:18,240 --> 00:43:21,400 copia e programación colando código que escribiu, 939 00:43:21,400 --> 00:43:23,612 isto pode ser un oportunidade de fatorar 940 00:43:23,612 --> 00:43:25,820 o que quere que manteña copia e pegar, e colocando- 941 00:43:25,820 --> 00:43:27,430 en algo chamado "función". 942 00:43:27,430 --> 00:43:29,690 Pero máis sobre aqueles en gran máis detalles antes de tempo. 943 00:43:29,690 --> 00:43:31,314 >> E despois hai aínda recursos máis extravagantes. 944 00:43:31,314 --> 00:43:34,100 Para aqueles de vostedes máis cómodo, ou tomar APCS ou equivalente, 945 00:43:34,100 --> 00:43:37,600 Cero, en realidade, soporta cousas como fíos e eventos e moito máis. 946 00:43:37,600 --> 00:43:39,840 Entón, entende que ten un límite máximo bastante elevado, 947 00:43:39,840 --> 00:43:42,540 aínda que sexa tamén moi amplamente accesible para as persoas 948 00:43:42,540 --> 00:43:44,460 que nunca programou antes. 949 00:43:44,460 --> 00:43:47,130 Entón, en realidade, imos dar un ollo nun programa simple ou dous. 950 00:43:47,130 --> 00:43:49,920 >> Xa mirou como nós pode dicir Ola co Scratch. 951 00:43:49,920 --> 00:43:52,800 Deixe-me ir adiante e abrir unha programiña máis interesante 952 00:43:52,800 --> 00:43:54,100 que escribín con antelación. 953 00:43:54,100 --> 00:43:56,430 E este seu chamado Pet a Cat. 954 00:43:56,430 --> 00:43:58,954 Todos estes programas serán dispoñible na páxina web da CS50. 955 00:43:58,954 --> 00:43:59,870 De feito, xa está aí. 956 00:43:59,870 --> 00:44:01,190 >> Entón podes descargar eles, e xogar con eles, 957 00:44:01,190 --> 00:44:03,850 e con Conxunto de problemas 0, o que é tamén na páxina web do curso, 958 00:44:03,850 --> 00:44:05,516 vostede Recoméndaselle camiñar por estes. 959 00:44:05,516 --> 00:44:07,820 E ademais, temos unha número de vídeos pé-through 960 00:44:07,820 --> 00:44:10,951 en liña en que eu e O equipo de CS50 verdadeiramente camiñar 961 00:44:10,951 --> 00:44:14,200 a través de cada un destes exemplos a unha moito máis ritmo máis lento, unha forwardable moi rápido, 962 00:44:14,200 --> 00:44:18,530 ou ritmo rewindable, de modo que pode andar a través destes no seu lecer tamén. 963 00:44:18,530 --> 00:44:20,330 Entón aquí está o cero á esquerda. 964 00:44:20,330 --> 00:44:22,920 Aquí está o programa á dereita que eu xa prefabricados. 965 00:44:22,920 --> 00:44:24,880 Entón deixe-me facer zoom sobre o tema. 966 00:44:24,880 --> 00:44:28,780 E podería alguén en inglés, sabendo o que sabe, só a partir de agora como 967 00:44:28,780 --> 00:44:31,650 de como funciona a Raspadinha, especie de dicir nunha frase en inglés ou sentenza, 968 00:44:31,650 --> 00:44:35,450 o que fai deste programa, ao parecer, facer? 969 00:44:35,450 --> 00:44:36,836 >> Si, na camisa laranxa. 970 00:44:36,836 --> 00:44:40,804 >> Audiencia: [inaudível] 971 00:44:40,804 --> 00:44:41,796 972 00:44:41,796 --> 00:44:44,980 >> DAVID J. Malan: Si, o seu cursor está en risco o gato, 973 00:44:44,980 --> 00:44:46,220 tocar un son miando. 974 00:44:46,220 --> 00:44:47,870 Pero teña en conta como nos expresamos iso. 975 00:44:47,870 --> 00:44:49,980 Hai aparentemente un loop de alí, para sempre. 976 00:44:49,980 --> 00:44:53,000 E despois hai unha condición, a expresión se. 977 00:44:53,000 --> 00:44:55,090 E colectivamente, o que os quere dicir? 978 00:44:55,090 --> 00:44:57,210 Isto significa que este programa só está sempre correndo, 979 00:44:57,210 --> 00:44:59,510 e iso sempre esperando e observando e escoitando 980 00:44:59,510 --> 00:45:01,730 para eu movo o rato sobre o gato. 981 00:45:01,730 --> 00:45:04,810 >> Xa que cada vez que fago isto, como vostede propón, que vai facer iso. 982 00:45:04,810 --> 00:45:06,475 Déixeme comezar o programa. 983 00:45:06,475 --> 00:45:08,350 Nada parece ser pasando, pero teña en conta como 984 00:45:08,350 --> 00:45:10,152 que destacaron agora nunha liña amarela. 985 00:45:10,152 --> 00:45:11,360 Isto significa só que está correndo. 986 00:45:11,360 --> 00:45:13,770 E porque hai un forever loop, que aínda está en execución. 987 00:45:13,770 --> 00:45:19,610 >> Entón deixe-me ir meu cursor sobre Raspadinha. [Meow] [Meow] E se eu movelo fóra, 988 00:45:19,610 --> 00:45:25,444 [Meow] Agora, para, mais o programa de aínda en execución. [Meow] E así, encantador. 989 00:45:25,444 --> 00:45:28,550 [Meow] Entón, imos abrir un pouco máis avanzado 990 00:45:28,550 --> 00:45:32,620 exemplo chamado Non pet o gato. 991 00:45:32,620 --> 00:45:35,805 >> E agora imos ver o que acontece aquí. [Meow] miar. 992 00:45:35,805 --> 00:45:39,297 Entón é un pouco sobre piloto automático, se quere. 993 00:45:39,297 --> 00:45:39,880 --pet o gato. 994 00:45:39,880 --> 00:45:42,820 Eu me pregunta por que. 995 00:45:42,820 --> 00:45:45,389 [ROAR] [Meow] Entón, como funciona isto? 996 00:45:45,389 --> 00:45:47,930 Ben, pode tipo de razón polo que intuitivamente, quizais. 997 00:45:47,930 --> 00:45:49,346 >> Pero imos ollar para o código real. 998 00:45:49,346 --> 00:45:51,819 Entón, de novo, cando a bandeira verde é premendo, facelo para sempre. 999 00:45:51,819 --> 00:45:53,110 O que quere facer para sempre? 1000 00:45:53,110 --> 00:45:56,150 Ben, se tocar rato punteiro, a continuación, xoga 1001 00:45:56,150 --> 00:46:00,270 un son que está aparentemente chamado Lion 5, que está dentro deste proxecto, máis 1002 00:46:00,270 --> 00:46:03,010 xogar miado de son, e entón esperar dous segundos, para 1003 00:46:03,010 --> 00:46:04,510 que non está miando sen parar. 1004 00:46:04,510 --> 00:46:07,650 De feito, pode comezar moi rápido para irritar-se e os seus compañeiros de cuarto. 1005 00:46:07,650 --> 00:46:08,690 >> Imos eliminar este bloque. 1006 00:46:08,690 --> 00:46:10,580 E entender o que é agradable sobre Raspadinha. 1007 00:46:10,580 --> 00:46:13,070 As cousas simplemente tipo de arrastre e soltar e intertravamento. 1008 00:46:13,070 --> 00:46:14,980 Entón, de novo, ela crece para cubrir o que quere. 1009 00:46:14,980 --> 00:46:20,118 Pero se eu eliminar iso, e, a continuación, xogo da batida, [COMPUTER blip SOUND] 1010 00:46:20,118 --> 00:46:22,904 >> -É Tipo de tropezar en si, porque é literalmente 1011 00:46:22,904 --> 00:46:23,820 facendo o que estou dicindo. 1012 00:46:23,820 --> 00:46:27,080 Está dicindo para sempre xogar ese son, pero Non estou dándolle a oportunidade de rematar. 1013 00:46:27,080 --> 00:46:28,205 E para que sería un erro. 1014 00:46:28,205 --> 00:46:30,700 E é por iso que tivemos esta cousa aquí agora. 1015 00:46:30,700 --> 00:46:34,030 Entón imos realmente comezar a partir scratch-- especie de xogo de palabras lixeiramente intended-- 1016 00:46:34,030 --> 00:46:36,450 en que temos agora o movemento gato. 1017 00:46:36,450 --> 00:46:38,130 >> Entón, eu vou facelo en tempo real. 1018 00:46:38,130 --> 00:46:40,910 Eu estou indo a facer zoom aquí, só para me fale sobre eventos. 1019 00:46:40,910 --> 00:46:42,000 E bandeira verde premendo. 1020 00:46:42,000 --> 00:46:43,410 E hai outras formas para iniciar os scripts. 1021 00:46:43,410 --> 00:46:44,920 Estamos indo para mantelo simple aquí. 1022 00:46:44,920 --> 00:46:48,049 >> E agora eu estou indo a ir adiante e ir baixo control. 1023 00:46:48,049 --> 00:46:50,590 E, de novo, se esquecer de onde as cousas están, basta con premer en torno, 1024 00:46:50,590 --> 00:46:52,048 e, finalmente, atopalos de novo. 1025 00:46:52,048 --> 00:46:53,680 Entón, quero sempre facer o que? 1026 00:46:53,680 --> 00:46:58,650 Quero usar o bloque de movemento Sei que hai, mover 10 pasos. 1027 00:46:58,650 --> 00:47:02,016 >> Entón, imos ver que pasa aquí se eu xogar este xogo. 1028 00:47:02,016 --> 00:47:03,390 Afortunadamente non ir lonxe de máis. 1029 00:47:03,390 --> 00:47:05,190 Podo aínda tipo de agarralo lo polo rabo e puxa-lo de volta. 1030 00:47:05,190 --> 00:47:07,860 Pero o programa aínda está en execución, polo que é tipo de loitar contra min. 1031 00:47:07,860 --> 00:47:10,870 Pero sería moito legal se eu condicional solucionar isto no código. 1032 00:47:10,870 --> 00:47:12,800 >> Porque este é não-- de feito, este é realmente 1033 00:47:12,800 --> 00:47:15,770 non un xogo divertido para calquera persoa de calquera idade. 1034 00:47:15,770 --> 00:47:18,915 Entón, imos tentar corrixir isto ter algún tipo de condicións. 1035 00:47:18,915 --> 00:47:21,670 Entón, eu estou indo a ir en virtude De control e, a continuación, se. 1036 00:47:21,670 --> 00:47:22,660 Gústame esta idea. 1037 00:47:22,660 --> 00:47:27,470 Entón, despois de mover 10 pasos, se-- déixeme sentir onde eu son. 1038 00:47:27,470 --> 00:47:30,799 Eu estou indo a ir baixo Sensing, e entón parece que podo ir aquí. 1039 00:47:30,799 --> 00:47:31,840 remar para os xogos de forma. 1040 00:47:31,840 --> 00:47:34,380 >> Tamaño non fai, pero é vai medrar para cubrir. 1041 00:47:34,380 --> 00:47:35,984 E agora este é un pequeno menú. 1042 00:47:35,984 --> 00:47:38,650 E agora rato pointer-- non quere o rato, quero a bordo. 1043 00:47:38,650 --> 00:47:41,700 Entón Scratch é intelixente dabondo para saber cando un Sprite está tocando a bordo. 1044 00:47:41,700 --> 00:47:44,360 O que quero que realmente fai? 1045 00:47:44,360 --> 00:47:46,025 >> Deixe-me ir adiante e cambiar movemento. 1046 00:47:46,025 --> 00:47:46,940 Vostede sabe o que? 1047 00:47:46,940 --> 00:47:49,242 Eu estou indo a telo virar. 1048 00:47:49,242 --> 00:47:51,200 Así, a 15 graos non é realmente me vai axudar. 1049 00:47:51,200 --> 00:47:53,990 Quero que Xire se e ir por outro camiño. 1050 00:47:53,990 --> 00:47:57,740 >> Entón, imos ver que pasa aquí, se eu acertar Xoga agora. 1051 00:47:57,740 --> 00:48:01,520 OK, unha especie de idiota mirando, pero está facendo exactamente o que eu dixen. 1052 00:48:01,520 --> 00:48:03,540 E está xirando todo o sprite. 1053 00:48:03,540 --> 00:48:04,900 Agora non é que podo fixar iso. 1054 00:48:04,900 --> 00:48:06,691 E eu non sabía como para solucionar isto en primeiro lugar. 1055 00:48:06,691 --> 00:48:09,190 Eu medio que tiven que futz arredor e ver o mellor xeito de facelo. 1056 00:48:09,190 --> 00:48:12,630 Pero se eu for a-- vexamos, movemento. 1057 00:48:12,630 --> 00:48:14,050 Oh, eu atope este. 1058 00:48:14,050 --> 00:48:15,660 De feito, de axuste da rotación Style. 1059 00:48:15,660 --> 00:48:18,431 Esquerda, dereita, ou non xire, ou todos arredor. 1060 00:48:18,431 --> 00:48:19,930 E parece que é o que quero. 1061 00:48:19,930 --> 00:48:22,920 E eu vou poñer este non é o meu loop, porque eu non teño definir 1062 00:48:22,920 --> 00:48:24,487 o modelo de rotación múltiples veces. 1063 00:48:24,487 --> 00:48:27,570 Vou poñelas na parte superior de este programa para ser definido de novo, 1064 00:48:27,570 --> 00:48:28,670 e, a continuación, lembra. 1065 00:48:28,670 --> 00:48:30,340 E agora eu vou tentar iso de novo. 1066 00:48:30,340 --> 00:48:32,520 Deixe-me deixar o programa. 1067 00:48:32,520 --> 00:48:34,050 >> E agora que fixa ese erro. 1068 00:48:34,050 --> 00:48:35,700 Entón, eu estou mellorando de forma iterativa enriba deste. 1069 00:48:35,700 --> 00:48:37,900 O programa está a recibir un pouco máis complexa e maior, 1070 00:48:37,900 --> 00:48:40,810 pero eu estou tomando pasos de bebé por así dicir, e pequenas mordidas fóra do problema 1071 00:48:40,810 --> 00:48:42,010 para obtelo cada vez mellor. 1072 00:48:42,010 --> 00:48:43,260 Pero iso, tamén, é unha especie de coxo. 1073 00:48:43,260 --> 00:48:43,900 >> Vostede sabe o que? 1074 00:48:43,900 --> 00:48:49,860 Será que pedir a alguén cun realmente bo, voz asustado quere vir cara arriba? 1075 00:48:49,860 --> 00:48:51,210 Alguén cunha voz. 1076 00:48:51,210 --> 00:48:54,070 1077 00:48:54,070 --> 00:48:54,570 Uh, si. 1078 00:48:54,570 --> 00:48:55,550 Imos cara arriba. 1079 00:48:55,550 --> 00:48:57,990 Coa camisa verde. 1080 00:48:57,990 --> 00:49:01,530 >> Así, verifícase aí é outra diversión cousas, estética e sons parecidos. 1081 00:49:01,530 --> 00:49:02,290 Aquí está o miado. 1082 00:49:02,290 --> 00:49:04,000 Eu prema no separador Sons. 1083 00:49:04,000 --> 00:49:08,730 [Meow] Hai o miado. [Meow] [Meow] [Meow] --actually algo marca 1084 00:49:08,730 --> 00:49:10,310 da nosa propia aquí. 1085 00:49:10,310 --> 00:49:13,120 >> Entón, imos facer exactamente isto. 1086 00:49:13,120 --> 00:49:17,670 En vez de usar este son gato, imos dalle aquí, e cal é o seu nome? 1087 00:49:17,670 --> 00:49:18,850 Nick, pracer en coñece-lo. 1088 00:49:18,850 --> 00:49:19,350 É David. 1089 00:49:19,350 --> 00:49:21,474 Entón, nun momento, eu vou para acertar o botón Record. 1090 00:49:21,474 --> 00:49:23,240 E se pode só berrar para o portátil, 1091 00:49:23,240 --> 00:49:26,140 "ouch", como se só orientado á parede, 1092 00:49:26,140 --> 00:49:28,180 que será moi apreciado. 1093 00:49:28,180 --> 00:49:29,660 1, 2. 1094 00:49:29,660 --> 00:49:31,470 >> NICK: Ouch! 1095 00:49:31,470 --> 00:49:32,470 DAVID J. Malan: Awesome. 1096 00:49:32,470 --> 00:49:34,410 E agora pode facer un pouco de edición aquí. 1097 00:49:34,410 --> 00:49:35,910 Vai se librar das partes tranquilos. 1098 00:49:35,910 --> 00:49:37,000 E eu creo que iso é bo. 1099 00:49:37,000 --> 00:49:37,690 Moitas grazas. 1100 00:49:37,690 --> 00:49:38,315 >> NICK: Pracer. 1101 00:49:38,315 --> 00:49:43,277 1102 00:49:43,277 --> 00:49:45,110 DAVID J. Malan: Teño só renomeou "ouch" 1103 00:49:45,110 --> 00:49:46,901 pero agora eu vou volver meus scripts. 1104 00:49:46,901 --> 00:49:49,810 E noten hai de feito son aquí. 1105 00:49:49,810 --> 00:49:53,520 E eu estou indo a ir adiante e reproducir o son ouch, 1106 00:49:53,520 --> 00:49:56,991 e eu vou facer iso está tocando só nos bordos. 1107 00:49:56,991 --> 00:49:58,740 E entón eu vou telo virar. 1108 00:49:58,740 --> 00:50:00,250 Entón, imos ver que pasa aquí. 1109 00:50:00,250 --> 00:50:01,728 Imos pantalla completa. 1110 00:50:01,728 --> 00:50:02,394 [REPRODUCIÓN DE VIDEO] 1111 00:50:02,394 --> 00:50:03,790 -Ouch! 1112 00:50:03,790 --> 00:50:05,290 Ouch! 1113 00:50:05,290 --> 00:50:06,790 Ouch! 1114 00:50:06,790 --> 00:50:07,790 Ouch! 1115 00:50:07,790 --> 00:50:09,160 Ouch! 1116 00:50:09,160 --> 00:50:10,780 Ouch! 1117 00:50:10,780 --> 00:50:11,587 Ouch! 1118 00:50:11,587 --> 00:50:12,086 Ouch! 1119 00:50:12,086 --> 00:50:12,492 >> [FIN DE REPRODUCIÓN] 1120 00:50:12,492 --> 00:50:14,490 >> DAVID J. Malan: Entón entender que estamos quedando un pouco de sorte. 1121 00:50:14,490 --> 00:50:17,110 Eu estou indo a telo de movemento como 100 chanzos de cada vez. 1122 00:50:17,110 --> 00:50:21,790 O efecto do que agora vai para ser-- [COMPUTADOR glitch SOUND] Entón, 1123 00:50:21,790 --> 00:50:22,490 dentro da razón. 1124 00:50:22,490 --> 00:50:25,470 Así, a oportunidade de refinar esta aínda máis se realmente queremos. 1125 00:50:25,470 --> 00:50:27,340 >> Entón agora imos introducir outro concepto. 1126 00:50:27,340 --> 00:50:30,660 Para me deixar ir nunha chamada Contando ovellas e uso algo 1127 00:50:30,660 --> 00:50:31,610 chamado dunha variable. 1128 00:50:31,610 --> 00:50:34,700 Este é un carneiro pequeno encantador, e I cambiou o seu traxe por así dicir. 1129 00:50:34,700 --> 00:50:37,450 Así, aínda que o estándar é unha gato, pode subir, pode debuxar, 1130 00:50:37,450 --> 00:50:40,020 pode facer calquera número de caracteres no seu sprite. 1131 00:50:40,020 --> 00:50:43,740 Aquí está o programa que se vai facer o que en inglés? 1132 00:50:43,740 --> 00:50:47,110 >> Baseado novo en exactamente o que sabe agora. 1133 00:50:47,110 --> 00:50:48,230 O que este programa fai? 1134 00:50:48,230 --> 00:50:50,740 1135 00:50:50,740 --> 00:50:53,500 Si, vai contar. 1136 00:50:53,500 --> 00:50:55,842 Un número cada vez. 1137 00:50:55,842 --> 00:50:57,550 Temos visto ten este contador set. 1138 00:50:57,550 --> 00:50:59,380 >> Non sei o que é iso, pero quizais sexa unha variable. 1139 00:50:59,380 --> 00:51:00,740 É só un recipiente, x ou y. 1140 00:51:00,740 --> 00:51:04,290 Pero o contador de palabras é máis descritivo que x ou y do matemático. 1141 00:51:04,290 --> 00:51:06,560 Así, podemos usar palabras en inglés para as cousas. 1142 00:51:06,560 --> 00:51:08,490 Para sempre, só significa seguir facendo iso. 1143 00:51:08,490 --> 00:51:10,020 >> Diga balcón. 1144 00:51:10,020 --> 00:51:11,270 Agora que proviña iso? 1145 00:51:11,270 --> 00:51:13,240 Ben, resulta que contador é unha variable. 1146 00:51:13,240 --> 00:51:15,645 Polo tanto, é só un puzzle peza que eu creei con antelación. 1147 00:51:15,645 --> 00:51:18,020 E aínda que isto ocorre non ser igual aquí, 1148 00:51:18,020 --> 00:51:20,540 normalmente diría algo así como Ola aquí. 1149 00:51:20,540 --> 00:51:23,610 >> Tamén pode arrastrar unha variable de xeito que é o que se está dixo. 1150 00:51:23,610 --> 00:51:26,170 Entón eu esperar por un segundo, eu cambiar o contador por un, 1151 00:51:26,170 --> 00:51:27,940 incrementa-lo engadindo un. 1152 00:51:27,940 --> 00:51:32,407 Así que o efecto neto é esta ovella conta encantador. 1153 00:51:32,407 --> 00:51:33,615 Aínda que está contando a si mesmo. 1154 00:51:33,615 --> 00:51:36,642 1155 00:51:36,642 --> 00:51:38,350 Agora é moi rápido se ve aburrido 1156 00:51:38,350 --> 00:51:40,900 porque vai facelo verdadeiramente para sempre, 1157 00:51:40,900 --> 00:51:44,240 pero iso é o que o O proxecto de programa prescribe. 1158 00:51:44,240 --> 00:51:48,090 Imos agora tratar outro exemplo que utiliza unha variable. 1159 00:51:48,090 --> 00:51:51,140 Este chamado Hi Hi Hi, que non queda aburrido rapidamente. 1160 00:51:51,140 --> 00:51:52,987 Agora este ten dous scripts. 1161 00:51:52,987 --> 00:51:54,570 E entón, de novo, estamos dando pasos de bebé. 1162 00:51:54,570 --> 00:51:57,236 >> Comezamos con algo super pequeno, engade a el, engadido a el. 1163 00:51:57,236 --> 00:51:59,750 Agora quero facer algo aínda máis dinámico, 1164 00:51:59,750 --> 00:52:02,950 entón eu quero estar escoitando para dúas cousas diferentes á vez. 1165 00:52:02,950 --> 00:52:05,420 Así, á esquerda, cando bandeira verde é premendo, 1166 00:52:05,420 --> 00:52:08,100 Eu definir unha variable que escribín con antelación chamado silenciado. 1167 00:52:08,100 --> 00:52:09,700 E eu arbitrariamente definir como 0. 1168 00:52:09,700 --> 00:52:13,290 Entón Raspadinha non ten certa e falso, pero ten 0 e 1. 1169 00:52:13,290 --> 00:52:15,270 >> Entón eu podo achegar esa mesma idea. 1170 00:52:15,270 --> 00:52:21,110 E, a continuación, sempre, se a barra de espazo é presionado, a continuación, estableza a variable a 0. 1171 00:52:21,110 --> 00:52:21,810 Ou arrepentido. 1172 00:52:21,810 --> 00:52:25,920 O espazo é presionada, e se silenciado, a variable, é 0, 1173 00:52:25,920 --> 00:52:29,950 a continuación, definir silenciado a 1, máis silenciado definir a 0. 1174 00:52:29,950 --> 00:52:32,370 Isto parece unha especie de como estamos só facendo e desfacendo traballo. 1175 00:52:32,370 --> 00:52:33,130 >> Pero o que é o efecto? 1176 00:52:33,130 --> 00:52:35,588 Cada vez que eu bater a barra de espazo, o que pasa co meu variable 1177 00:52:35,588 --> 00:52:38,150 silenciado chamado, loxicamente? 1178 00:52:38,150 --> 00:52:39,100 Tipo de queda invertida. 1179 00:52:39,100 --> 00:52:41,035 Cambia de 0 a 1, ou 1-0. 1180 00:52:41,035 --> 00:52:43,035 Por iso, tomou a poucas cuadras para expresar iso, pero todo 1181 00:52:43,035 --> 00:52:47,280 Eu estou facendo está alternando o estado de esta variable de 0 ou 1, ou 0 ou 1 1182 00:52:47,280 --> 00:52:48,530 cada vez que eu bater a barra de espazo. 1183 00:52:48,530 --> 00:52:49,905 Agora aquí, o que está facendo isto? 1184 00:52:49,905 --> 00:52:53,400 Para sempre, se silenciado é 0, polo que se silenciado é falsa. 1185 00:52:53,400 --> 00:52:57,910 Entón, se non está silenciado, é a Semántica alí, xogar león mar son, 1186 00:52:57,910 --> 00:53:00,810 e pensar hi hi hi para dous segundo, agarde dous segundos. 1187 00:53:00,810 --> 00:53:02,710 Entón, observe agora estes guións son efectivamente 1188 00:53:02,710 --> 00:53:07,100 indo para executar en paralelo para que se poida estar escoitando a acción, o outro 1189 00:53:07,100 --> 00:53:09,010 para tomar unha decisión con base nesa acción. 1190 00:53:09,010 --> 00:53:10,655 E pode facelo para sempre. 1191 00:53:10,655 --> 00:53:12,638 >> [LEÓN DE MAR Barking] 1192 00:53:12,638 --> 00:53:14,852 >> [LEÓN DE MAR Barking] 1193 00:53:14,852 --> 00:53:20,050 >> Vai facelo para sempre e [LEÓN DE MAR Barking] como eu acaba de facer. 1194 00:53:20,050 --> 00:53:23,010 E agora que aínda está en execución pero eu teño "silenciado" o xogo. 1195 00:53:23,010 --> 00:53:27,260 [LEÓN DE MAR Barking] E iso é todo isto cara fai agora tamén. 1196 00:53:27,260 --> 00:53:28,660 >> Imos abrir outro exemplo aquí. 1197 00:53:28,660 --> 00:53:31,840 Déixeme entrar Eventos, e agora este encantador tamén. 1198 00:53:31,840 --> 00:53:34,130 Pero teña en conta que ten dous sprites. 1199 00:53:34,130 --> 00:53:37,520 Polo tanto, non só dous scripts con un Sprite, pero dous sprites. 1200 00:53:37,520 --> 00:53:40,750 E se eu premer sobre o individuo azul como eu xa ten, eu vexo que como un programa 1201 00:53:40,750 --> 00:53:43,790 Se aquí que, literalmente, só di este, cando recibir un evento, 1202 00:53:43,790 --> 00:53:45,620 dicir "Polo" por dous segundos. 1203 00:53:45,620 --> 00:53:48,460 >> Entón, se xa xogou en unha piscina, o xogo Marco Polo, 1204 00:53:48,460 --> 00:53:52,500 se o script laranxa cara é calquera indicación, aparentemente 1205 00:53:52,500 --> 00:53:57,380 cada vez que eu bater a barra de espazo, o que é a cara laranxa vai facer? 1206 00:53:57,380 --> 00:53:58,642 El vai dicir "Marco". 1207 00:53:58,642 --> 00:53:59,850 E entón que é un novo bloque. 1208 00:53:59,850 --> 00:54:02,409 Non vimos isto antes, pero difundir un acontecemento. 1209 00:54:02,409 --> 00:54:04,200 E eu podería chamalo nada evento que queremos. 1210 00:54:04,200 --> 00:54:06,033 >> Nós imos voltar a este quizais antes de tempo. 1211 00:54:06,033 --> 00:54:08,410 Pero a transmitir un evento é un xeito para unha entidade gráfica 1212 00:54:08,410 --> 00:54:11,836 para falar con outro por esencialmente unha mensaxe de pasalo. 1213 00:54:11,836 --> 00:54:12,960 Non é unha mensaxe que ve. 1214 00:54:12,960 --> 00:54:14,130 Non é algo visual. 1215 00:54:14,130 --> 00:54:17,370 É unha especie de un mensaje do ordenador que o outro cara está agardando as. 1216 00:54:17,370 --> 00:54:21,210 Porque, en realidade, a cara azul, recordo non ten bandeira verde cando premendo. 1217 00:54:21,210 --> 00:54:23,290 >> En vez diso, ten, cando recibir un evento. 1218 00:54:23,290 --> 00:54:26,850 Cando se entregou esta nota en clase, por así dicir, debe dicir "Polo". 1219 00:54:26,850 --> 00:54:30,200 E así, o efecto neto é que cando eu bateu a bandeira verde, nada acontece. 1220 00:54:30,200 --> 00:54:34,940 Pero cando bati a barra de espazo, el di "Marco", el responde con "Polo". 1221 00:54:34,940 --> 00:54:38,350 Pero a única entidade gráfica que eu son interactuar con é o laranxa. 1222 00:54:38,350 --> 00:54:40,980 Polo tanto, esta é unha forma de tipo de pasar mensaxes entre sprites 1223 00:54:40,980 --> 00:54:43,210 e te-los comunicar un co outro. 1224 00:54:43,210 --> 00:54:46,280 >> Agora imos ollar a unha última un aquí chamados segmentos. 1225 00:54:46,280 --> 00:54:49,370 E entender iso por xoga-lo. 1226 00:54:49,370 --> 00:54:51,184 Entón, estas son dúas sprites. 1227 00:54:51,184 --> 00:54:52,600 O paxaro é especie de voar arredor. 1228 00:54:52,600 --> 00:54:53,310 Está saltando. 1229 00:54:53,310 --> 00:54:55,890 Non hai "ouch" pero mesma idea. 1230 00:54:55,890 --> 00:54:58,230 >> Pero o gato parece moi intelixente. 1231 00:54:58,230 --> 00:55:01,010 Qué é o gato aparentemente facendo? 1232 00:55:01,010 --> 00:55:03,430 E esperar por el. 1233 00:55:03,430 --> 00:55:05,010 Qué é o gato aparentemente facendo? 1234 00:55:05,010 --> 00:55:07,740 Non é só ir. 1235 00:55:07,740 --> 00:55:09,860 >> Está seguindo o paxaro. 1236 00:55:09,860 --> 00:55:13,920 E así, ao parecer, hai un xeito cunha combinación de bloques de aquí- 1237 00:55:13,920 --> 00:55:15,760 e imos ollar para o gato rápido real. 1238 00:55:15,760 --> 00:55:20,270 Para sempre, se tocar paxaro, a continuación, xoga o son Lion 4, o que quere que sexa. 1239 00:55:20,270 --> 00:55:21,360 Ouvimo-lo unha vez. 1240 00:55:21,360 --> 00:55:25,431 Se non, apuntan paxaro, e dar un paso. 1241 00:55:25,431 --> 00:55:27,680 Agora, o feito de que é un paso é o que dá o paxaro 1242 00:55:27,680 --> 00:55:29,850 un pouco de vantaxe inicialmente, pero en vez 1243 00:55:29,850 --> 00:55:32,980 facer esta 10, por exemplo, tan que cada iteración do bucle de que é 1244 00:55:32,980 --> 00:55:34,100 movendo 10 pasos de tempo. 1245 00:55:34,100 --> 00:55:35,280 Entón, máis espazo. 1246 00:55:35,280 --> 00:55:36,650 Imos ver que pasa a continuación. 1247 00:55:36,650 --> 00:55:38,740 [LION ROAR] Non todo o que moito mellor. 1248 00:55:38,740 --> 00:55:41,460 Entón agora imos tratar de mellorar sobre estes un pouco de forma iterativa, 1249 00:55:41,460 --> 00:55:43,330 e volver para que noción dunha función. 1250 00:55:43,330 --> 00:55:46,580 >> E, de feito un dos fundamentais takeaways do deseño de clase. 1251 00:55:46,580 --> 00:55:49,560 Non só escribir programas que funcionen e que son correctos, pero están ben 1252 00:55:49,560 --> 00:55:50,080 deseñados. 1253 00:55:50,080 --> 00:55:54,349 E deseño é moito máis subjetivo, e vai estar mellor para el ao longo do tempo. 1254 00:55:54,349 --> 00:55:57,390 Pero imos dar algúns pasos de bebé na dirección comezando cun programa que funciona, 1255 00:55:57,390 --> 00:55:59,310 absolutamente, pero non é moi bo. 1256 00:55:59,310 --> 00:56:00,650 Non é moi ben escrito. 1257 00:56:00,650 --> 00:56:03,830 >> Entón aquí está un programa que fai isto. 1258 00:56:03,830 --> 00:56:08,060 Tos, tose, tose. 1259 00:56:08,060 --> 00:56:09,880 O que o programa se parece? 1260 00:56:09,880 --> 00:56:11,330 Parece correcto para min. 1261 00:56:11,330 --> 00:56:13,370 É dicir sofá por un segundo, el espera. 1262 00:56:13,370 --> 00:56:14,515 >> A continuación, el di que de novo, el espera. 1263 00:56:14,515 --> 00:56:16,056 A continuación, el di que de novo, el espera. 1264 00:56:16,056 --> 00:56:18,770 E, a continuación, o programa implicitamente remata, porque non hai loop. 1265 00:56:18,770 --> 00:56:21,325 Pero por que este é un programa mal escrito? 1266 00:56:21,325 --> 00:56:22,950 Aínda que nunca programado antes? 1267 00:56:22,950 --> 00:56:25,240 Como, o que esfrega o forma incorrecta, se cadra aquí? 1268 00:56:25,240 --> 00:56:26,016 Si? 1269 00:56:26,016 --> 00:56:29,278 >> Audiencia: [inaudível] 1270 00:56:29,278 --> 00:56:29,950 1271 00:56:29,950 --> 00:56:30,950 DAVID J. Malan: Exactamente. 1272 00:56:30,950 --> 00:56:32,700 Está repetindo Se unha e outra vez. 1273 00:56:32,700 --> 00:56:36,190 E, literalmente, Copiei e colei dous deses bloques de novo e de novo. 1274 00:56:36,190 --> 00:56:39,237 E iso é o tipo de sanidade comprobar que ten que facer. 1275 00:56:39,237 --> 00:56:39,820 Agarde un minuto. 1276 00:56:39,820 --> 00:56:41,070 Debo realmente estar facendo iso? 1277 00:56:41,070 --> 00:56:43,610 Entón o que é iso o que está a solución obvia, quizais? 1278 00:56:43,610 --> 00:56:44,680 Ter algún tipo de loop. 1279 00:56:44,680 --> 00:56:46,860 E eu non lembro ben que a peza do puzzle é, 1280 00:56:46,860 --> 00:56:48,810 pero se eu ollar para o próxima iteración aquí, 1281 00:56:48,810 --> 00:56:50,560 de feito, non hai só o loop para sempre, 1282 00:56:50,560 --> 00:56:52,560 hai algúns repetir varias veces. 1283 00:56:52,560 --> 00:56:54,080 E así eu especifiquei tres. 1284 00:56:54,080 --> 00:56:57,839 E agora entender o que máis axustado, como moito máis sucinta este programa é. 1285 00:56:57,839 --> 00:56:59,630 E nun certo sentido, como moito máis sostible. 1286 00:56:59,630 --> 00:57:02,840 Se eu queira cambiar a palabra de tose a outra cousa, 1287 00:57:02,840 --> 00:57:07,530 como achoo, como se estivese espirros. 1288 00:57:07,530 --> 00:57:09,770 Entón eu mudalo nun lugar, e non tres. 1289 00:57:09,770 --> 00:57:12,050 Polo tanto, esta xa se sente como un pouco mellor deseño. 1290 00:57:12,050 --> 00:57:14,610 Déixeme tose vez aberto 2, o noso terceiro exemplo. 1291 00:57:14,610 --> 00:57:17,670 >> Observe como un científico da computación, Comezar a contar a 0, tipicamente. 1292 00:57:17,670 --> 00:57:20,950 Agora, iso parece un pouco asustado no en primeiro lugar, pero o efecto é o mesmo. 1293 00:57:20,950 --> 00:57:22,590 Tos, tose, tose. 1294 00:57:22,590 --> 00:57:26,920 Pero o que parece ser fundamentalmente nova na parte superior do programa? 1295 00:57:26,920 --> 00:57:28,670 Eu eliminar a palabra. 1296 00:57:28,670 --> 00:57:29,830 >> Eu eliminar a espera. 1297 00:57:29,830 --> 00:57:32,370 E o que eu teño conectado no seu canto? 1298 00:57:32,370 --> 00:57:32,890 Unha función. 1299 00:57:32,890 --> 00:57:33,670 Un bloque de tose. 1300 00:57:33,670 --> 00:57:35,410 Quero dicir, a verdade, paréceme tipo de un idiota se eu non fixese só 1301 00:57:35,410 --> 00:57:37,285 comezar co bloque que é aparentemente chamado 1302 00:57:37,285 --> 00:57:38,894 "tose", se iso é todo o que quero que faga. 1303 00:57:38,894 --> 00:57:40,310 Pero iso non existe no scratch. 1304 00:57:40,310 --> 00:57:43,396 En vez eu fun a unha no paleta chamada máis bloques aquí, 1305 00:57:43,396 --> 00:57:46,270 e eu arrastrar esta gran cousa roxa aquí que me permite definir unha función. 1306 00:57:46,270 --> 00:57:48,240 É, esencialmente, déixame crear o meu propio puzzle 1307 00:57:48,240 --> 00:57:51,280 peza que pode ser chamado de calquera cousa que eu quere, que pode facer o que queira, 1308 00:57:51,280 --> 00:57:52,360 pero dálle un nome. 1309 00:57:52,360 --> 00:57:57,050 Tanto me dá unha nova, parte do enigma vermello que agora fai todo o que eu diga a el para facer. 1310 00:57:57,050 --> 00:58:01,060 Polo tanto, esta peza roxa aquí corresponde a este aquí. 1311 00:58:01,060 --> 00:58:01,960 >> E o que fai? 1312 00:58:01,960 --> 00:58:03,930 Di tose por un segundo, e entón el espera. 1313 00:58:03,930 --> 00:58:07,330 E agora eu teño a sorte de creado miña propia parte do enigma feito a pedido, 1314 00:58:07,330 --> 00:58:10,040 de xeito que se comporta exactamente do mesmo xeito. 1315 00:58:10,040 --> 00:58:11,130 Entón eu podo seguir facendo iso. 1316 00:58:11,130 --> 00:58:14,421 E, de feito, non vai ser máis e máis oportunidades para a modularização, 1317 00:58:14,421 --> 00:58:16,630 e para capas, complexidade enriba do outro. 1318 00:58:16,630 --> 00:58:18,547 Pero esa idea básica, de feito en problema, dixo 0. 1319 00:58:18,547 --> 00:58:20,338 O que vai ser reto que facer é 1320 00:58:20,338 --> 00:58:23,810 facer a descarga do risco, ou só usalo na web, e só divertirse con el. 1321 00:58:23,810 --> 00:58:26,056 Nós imos dar-lle un conxunto de necesidades, tendo un son, 1322 00:58:26,056 --> 00:58:27,430 e un certo número de pezas do puzzle. 1323 00:58:27,430 --> 00:58:28,480 Pero vai facer exactamente isto. 1324 00:58:28,480 --> 00:58:31,771 E vai entender que está indo quere dar algúns pasos de bebé, inicialmente, 1325 00:58:31,771 --> 00:58:33,690 ata que o seu programa recibe máis e máis complexa. 1326 00:58:33,690 --> 00:58:36,010 Pero tendo en conta que é o mellor maneira que eu podería facelo? 1327 00:58:36,010 --> 00:58:39,210 Pode evitar este instinto quizais, para copiar e pegar? 1328 00:58:39,210 --> 00:58:41,850 >> Pero antes do Conxunto de problemas 0, e antes de pechar, 1329 00:58:41,850 --> 00:58:44,980 penso que ía levar ata un máis voluntario se puidésemos, 1330 00:58:44,980 --> 00:58:46,820 para un programa final que é quizais o máis 1331 00:58:46,820 --> 00:58:49,150 montaxe de todo, dado lugar de hoxe. 1332 00:58:49,150 --> 00:58:50,298 Imos cara a abaixo. 1333 00:58:50,298 --> 00:58:51,234 Si. 1334 00:58:51,234 --> 00:58:52,170 Si. 1335 00:58:52,170 --> 00:58:53,431 Cal é o seu nome? 1336 00:58:53,431 --> 00:58:53,930 Uh-oh. 1337 00:58:53,930 --> 00:58:57,820 1338 00:58:57,820 --> 00:58:59,010 Iso é OK. 1339 00:58:59,010 --> 00:59:01,230 Ambos veñen abaixo. 1340 00:59:01,230 --> 00:59:05,520 E eu teño que tratar con isto de algunha maneira dentro dese próximos dez segundos. 1341 00:59:05,520 --> 00:59:06,550 Entón veña abaixo. 1342 00:59:06,550 --> 00:59:08,370 Imos cara a abaixo. 1343 00:59:08,370 --> 00:59:13,250 >> Déixeme vir aquí enriba. 1344 00:59:13,250 --> 00:59:16,050 Imos alí. 1345 00:59:16,050 --> 00:59:16,685 Todo ben. 1346 00:59:16,685 --> 00:59:21,360 1347 00:59:21,360 --> 00:59:22,360 Imos ver aquí. 1348 00:59:22,360 --> 00:59:25,735 Entón, observe ben rápido aquí, se desexa vir enriba. 1349 00:59:25,735 --> 00:59:28,650 1350 00:59:28,650 --> 00:59:29,926 >> Nós imos facer dúas roldas de agasallo. 1351 00:59:29,926 --> 00:59:30,800 E cal é o seu nome? 1352 00:59:30,800 --> 00:59:31,270 >> Sabrina: Sabrina. 1353 00:59:31,270 --> 00:59:32,060 >> DAVID J. Malan: Sabrina e? 1354 00:59:32,060 --> 00:59:32,622 >> Ying GEI: Ying Gee. 1355 00:59:32,622 --> 00:59:33,360 >> DAVID J. Malan: Ying Gee. 1356 00:59:33,360 --> 00:59:34,276 Pracer en coñece-los. 1357 00:59:34,276 --> 00:59:34,970 David. 1358 00:59:34,970 --> 00:59:38,785 Así, o noso último exemplo é aquí O xogo máis difícil do chamado Ivy. 1359 00:59:38,785 --> 00:59:41,160 E por que non temos que facer Nivel 1 e Nivel 2 fai. 1360 00:59:41,160 --> 00:59:43,350 >> E imos ver como lonxe ademais de que realmente ir. 1361 00:59:43,350 --> 00:59:45,855 Escrito por un estudante o ano pasado, remixada por min 1362 00:59:45,855 --> 00:59:48,840 de xeito que este ía sobre ben en New Haven. 1363 00:59:48,840 --> 00:59:53,180 E douvos un xogo que vai involucrar movendo as frechas para arriba e abaixo, 1364 00:59:53,180 --> 00:59:55,771 e quedando Yale para a liña de chegada. 1365 00:59:55,771 --> 00:59:56,270 Aquí imos nós. 1366 00:59:56,270 --> 00:59:56,759 >> [REPRODUCIÓN DE VIDEO] 1367 00:59:56,759 --> 00:59:58,092 >> [MUSIC - NFL ON FOX música tema] 1368 00:59:58,092 --> 00:59:59,369 1369 00:59:59,369 --> 01:00:01,160 [MUSIC - MC Hammer, "U PODE NON TOQUE  ESTE "] 1370 01:00:01,160 --> 01:00:04,590 1371 01:00:04,590 --> 01:00:07,900 >> -u Non pode tocar iso. 1372 01:00:07,900 --> 01:00:11,634 U non pode tocar neste. 1373 01:00:11,634 --> 01:00:14,252 Non pode tocar nisto. 1374 01:00:14,252 --> 01:00:19,490 Meu, meu, meu, a miña música me bate tan duro, faime dicir, oh, meu señor. 1375 01:00:19,490 --> 01:00:22,927 Grazas por me bendicir cun mente para rimar e dous pés hype. 1376 01:00:22,927 --> 01:00:24,891 >> Isto é bo cando vostede sabe que está abaixo. 1377 01:00:24,891 --> 01:00:26,855 A homeboy narcótico super do Oaktown. 1378 01:00:26,855 --> 01:00:31,274 E eu son coñecido como tal e esta unha batida uh, non pode tocar. 1379 01:00:31,274 --> 01:00:34,672 Eu dixen que homeboy U non pode tocar neste. 1380 01:00:34,672 --> 01:00:38,656 Si, é así que nós estamos vivindo e vostede sabe U non pode tocar neste. 1381 01:00:38,656 --> 01:00:40,135 >> Olle nos meus ollos, cara. 1382 01:00:40,135 --> 01:00:43,093 U non pode tocar neste. 1383 01:00:43,093 --> 01:00:44,572 Yo, déixeme rebentar as letras de funky. 1384 01:00:44,572 --> 01:00:45,363 U non pode tocar neste. 1385 01:00:45,363 --> 01:00:46,544 Novos patadas e pantalóns frescas. 1386 01:00:46,544 --> 01:00:48,627 >> Lle gusta diso e vostede sabe que quere bailar. 1387 01:00:48,627 --> 01:00:51,967 Entón, saír do seu asento e estar unha nena mosca e incorporarse este ritmo. 1388 01:00:51,967 --> 01:00:55,911 Mentres está rodando en espera bombear un pouco bit e que saiban o que está pasando. 1389 01:00:55,911 --> 01:00:56,890 Así. 1390 01:00:56,890 --> 01:00:57,390 Así. 1391 01:00:57,390 --> 01:00:59,362 >> Frío nunha misión tan tire de volta. 1392 01:00:59,362 --> 01:01:04,785 Deixe-os saber que é máis e este é un movemento uh non pode tocar. 1393 01:01:04,785 --> 01:01:07,743 Eu, eu dixen que U non pode tocar neste. 1394 01:01:07,743 --> 01:01:09,222 Por que parado alí home? 1395 01:01:09,222 --> 01:01:10,208 U non pode tocar neste. 1396 01:01:10,208 --> 01:01:13,200 >> Eu, soar na escola campá, otários. 1397 01:01:13,200 --> 01:01:14,005 U non pode tocar neste. 1398 01:01:14,005 --> 01:01:18,326 Déame unha canción, un ritmo tornando- suar é iso que eu estou dándolles agora. 1399 01:01:18,326 --> 01:01:21,805 Eles saben que cando fala sobre o Martelo fala sobre un show que é sensacionalistas. 1400 01:01:21,805 --> 01:01:24,290 E cantantes son axustado suando así paso-los un micrófono. 1401 01:01:24,290 --> 01:01:27,272 >> Ou unha cinta para saber o que que vai tomar e agora 1402 01:01:27,272 --> 01:01:29,260 vai queimar as cartas. 1403 01:01:29,260 --> 01:01:32,739 Lexítimos tanto traballo duro ou así como pode saír. 1404 01:01:32,739 --> 01:01:37,709 Porque sabe que U non pode tocar neste. 1405 01:01:37,709 --> 01:01:41,599 U non pode tocar neste. 1406 01:01:41,599 --> 01:01:42,182 Rompe-lo para abaixo. 1407 01:01:42,182 --> 01:01:56,095 1408 01:01:56,095 --> 01:01:56,595 Pare. 1409 01:01:56,595 --> 01:01:57,095 Tempo do martelo. 1410 01:01:57,095 --> 01:01:59,577 Vaia co fluxo nunha rolda se non pode moverse para este 1411 01:01:59,577 --> 01:02:01,068 entón probablemente están mortos. 1412 01:02:01,068 --> 01:02:04,547 Entón balance súa man no o aire [inaudível] 1413 01:02:04,547 --> 01:02:08,026 >> É dicir, para unha danza ao gañador iso e está indo para obter máis fino. 1414 01:02:08,026 --> 01:02:12,996 Move desprace o garupa só para un minuto, imos todos facer a colisión. 1415 01:02:12,996 --> 01:02:13,990 Si. 1416 01:02:13,990 --> 01:02:14,984 U non pode tocar neste. 1417 01:02:14,984 --> 01:02:17,966 1418 01:02:17,966 --> 01:02:19,457 >> U non pode tocar neste. 1419 01:02:19,457 --> 01:02:23,433 É mellor que sensacionalismo neno U non pode tocar neste. 1420 01:02:23,433 --> 01:02:24,924 Anel de volta da escola campá in. 1421 01:02:24,924 --> 01:02:25,918 Rompe-lo para abaixo. 1422 01:02:25,918 --> 01:02:38,837 1423 01:02:38,837 --> 01:02:39,337 Pare. 1424 01:02:39,337 --> 01:02:40,828 Tempo do martelo 1425 01:02:40,828 --> 01:02:42,816 >> DAVID J. Malan: Isto é todo para CS50! 1426 01:02:42,816 --> 01:02:45,301 Moitas grazas por unirse a nós! 1427 01:02:45,301 --> 01:02:47,786 Vexo vostede por aí. 1428 01:02:47,786 --> 01:02:48,611 >> [FIN DE REPRODUCIÓN] 1429 01:02:48,611 --> 01:02:49,277 [REPRODUCIÓN DE VIDEO] 1430 01:02:49,277 --> 01:02:52,259 [MUSIC - "Seinfeld" música-tema] 1431 01:02:52,259 --> 01:02:53,860 Ei David. 1432 01:02:53,860 --> 01:02:54,500 Ei, David. 1433 01:02:54,500 --> 01:02:55,912 Como vai isto? 1434 01:02:55,912 --> 01:02:58,078 >> -Bom Traballo, hoxe. 1435 01:02:58,078 --> 01:03:00,952 -Entón Xa penso sobre o que vai facer para as bromas fóra? 1436 01:03:00,952 --> 01:03:03,207 Non, eu non teño nada. 1437 01:03:03,207 --> 01:03:07,550 -O Se-- o que se esta é a broma? 1438 01:03:07,550 --> 01:03:08,970 -Como, Desembalar carrinhos? 1439 01:03:08,970 --> 01:03:11,430 Uh-huh. 1440 01:03:11,430 --> 01:03:13,890 Vostede sabe, é sobre nada. 1441 01:03:13,890 --> 01:03:17,559 >> -Entón Gústalle, ningunha historia, ningún conflito, ningunha resolución. 1442 01:03:17,559 --> 01:03:18,350 Non estou entendendo. 1443 01:03:18,350 --> 01:03:20,542 Sobre o que é entón? 1444 01:03:20,542 --> 01:03:23,510 >> -Nada. 1445 01:03:23,510 --> 01:03:27,427 >> -Entón Temos a broma é sobre nada, e non temos actores. 1446 01:03:27,427 --> 01:03:28,510 Quen vai estar nesa? 1447 01:03:28,510 --> 01:03:29,010 >> -Non, Non, non. 1448 01:03:29,010 --> 01:03:31,310 Quero dicir, eu vou estar nel. 1449 01:03:31,310 --> 01:03:32,109 >> -Vostede Vai estar nel? 1450 01:03:32,109 --> 01:03:32,608 -Si! 1451 01:03:32,608 --> 01:03:34,903 A xente está sempre dicindo me que eu son un personaxe. 1452 01:03:34,903 --> 01:03:36,029 >> Ben, quero dicir, é verdade. 1453 01:03:36,029 --> 01:03:37,445 Pero quen máis vai estar nel? 1454 01:03:37,445 --> 01:03:38,660 Non pode simplemente ser ti. 1455 01:03:38,660 --> 01:03:47,240 >> -Vostede Vai estar nel, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, 1456 01:03:47,240 --> 01:03:51,120 David, todo o mundo. 1457 01:03:51,120 --> 01:03:53,630 >> -Entón É sobre todo, e todo o mundo está nel? 1458 01:03:53,630 --> 01:03:54,530 >> -absolutamente Nada. 1459 01:03:54,530 --> 01:03:58,730 1460 01:03:58,730 --> 01:04:00,580 >> -Isto É ridículo.