1 00:00:00,000 --> 00:00:10,980 >> [MUSIQUE LECTURE] 2 00:00:10,980 --> 00:00:13,260 >> -Alright! 3 00:00:13,260 --> 00:00:16,400 >> -C'est CS50. 4 00:00:16,400 --> 00:00:18,220 >> -C'est CS50. 5 00:00:18,220 --> 00:00:19,324 >> -C'est CS50. 6 00:00:19,324 --> 00:00:20,615 [MUSIQUE - Azalea Iggy, «fantaisie»] 7 00:00:20,615 --> 00:00:29,925 8 00:00:29,925 --> 00:00:33,570 >> -Mon Meilleur souvenir de CS50 était quand je suis allé à Puzzle Day. 9 00:00:33,570 --> 00:00:35,797 >> -Probablement Juste le temps passé à travailler sur des ensembles de problèmes 10 00:00:35,797 --> 00:00:38,630 avec mes amis et les gens qui Wold éventuellement devenir mes blockmates. 11 00:00:38,630 --> 00:00:40,421 >> -Mon Meilleur souvenir de CS50 est le Hackathon. 12 00:00:40,421 --> 00:00:41,630 -Le CS50 Hackathon. 13 00:00:41,630 --> 00:00:42,130 >> -Hackathon. 14 00:00:42,130 --> 00:00:42,800 >> -Hackathon. 15 00:00:42,800 --> 00:00:43,300 -Hackathon. 16 00:00:43,300 --> 00:00:43,883 -Le Hackathon 17 00:00:43,883 --> 00:00:45,027 -ROB Bowden. 18 00:00:45,027 --> 00:00:46,110 Juste tout autour de lui. 19 00:00:46,110 --> 00:00:47,401 >> [MUSIQUE - Azalea Iggy, «fantaisie»] 20 00:00:47,401 --> 00:00:56,790 21 00:00:56,790 --> 00:01:02,512 >> -Mon Meilleur souvenir, c'est quand je suis sur stade et j'ai joué le rôle prestigieux 22 00:01:02,512 --> 00:01:04,220 un noeud de [? dans le Lié?] [? Liste. ?] 23 00:01:04,220 --> 00:01:08,470 >> -Lorsque Nous avons tous eu l'espace libre Dropbox et David était comme, regardez sous vos sièges. 24 00:01:08,470 --> 00:01:10,520 Et c'était comme, l'espace pour tout le monde! 25 00:01:10,520 --> 00:01:11,811 >> [MUSIQUE - Azalea Iggy, «fantaisie»] 26 00:01:11,811 --> 00:01:20,940 27 00:01:20,940 --> 00:01:22,830 >> -Mon Conseils pour toute étudiant entrant serait 28 00:01:22,830 --> 00:01:26,170 être vraiment travailler sur P-ensembles avec des amis. 29 00:01:26,170 --> 00:01:27,960 >> Heures -Bureaux est beaucoup votre ami. 30 00:01:27,960 --> 00:01:30,870 >> -Assurez Le maximum de votre expérience et rencontrer autant de personnes que vous le pouvez. 31 00:01:30,870 --> 00:01:32,390 >> -Ne Avoir peur de demander de l'aide. 32 00:01:32,390 --> 00:01:33,890 -Démarrez Les P-ensembles au début de la semaine. 33 00:01:33,890 --> 00:01:36,723 -Je Pense que la chose la plus importante est de profiter de toutes les ressources 34 00:01:36,723 --> 00:01:37,950 qui a CS50. 35 00:01:37,950 --> 00:01:39,960 >> -Allez Les heures de bureau au début de la semaine. 36 00:01:39,960 --> 00:01:41,430 >> Regarder -Definitely les shorts. 37 00:01:41,430 --> 00:01:42,989 >> -Ne Tergiverser sur vos P-ensembles. 38 00:01:42,989 --> 00:01:45,780 -Assurez Que vous trouverez un grand groupe de personnes pour travailler sur P-ensembles avec. 39 00:01:45,780 --> 00:01:48,530 Vous pouvez avoir beaucoup de plaisir et faire le travail ensemble. 40 00:01:48,530 --> 00:01:50,370 >> -Ne Peur de vous pousser. 41 00:01:50,370 --> 00:01:52,080 Optez pour l'édition de pirate parfois. 42 00:01:52,080 --> 00:01:55,410 >> -Ecrivez Choses sur papier avant vous touchez jamais votre ordinateur. 43 00:01:55,410 --> 00:01:58,380 >> -CS50 Est vraiment très bien à fournir des moyens pour obtenir de l'aide. 44 00:01:58,380 --> 00:02:01,134 >> -Mon Un conseil, c'est le sommeil. 45 00:02:01,134 --> 00:02:02,050 Quelqu'un at-il dit cela? 46 00:02:02,050 --> 00:02:04,100 Le sommeil, c'est sûr. 47 00:02:04,100 --> 00:02:08,919 Il est facile de ne pas le faire, mais vous avez à faire, je pense. 48 00:02:08,919 --> 00:02:12,982 >> -I Dirait vraiment être préparé mentalement parce que vous allez l'aimer. 49 00:02:12,982 --> 00:02:14,273 [MUSIQUE - Azalea Iggy, «fantaisie»] 50 00:02:14,273 --> 00:02:17,750 51 00:02:17,750 --> 00:02:18,940 >> -C'est CS50. 52 00:02:18,940 --> 00:02:22,090 53 00:02:22,090 --> 00:02:23,066 >> -C'est CS50. 54 00:02:23,066 --> 00:02:26,400 55 00:02:26,400 --> 00:02:26,989 >> -C'est CS50. 56 00:02:26,989 --> 00:02:28,280 [MUSIQUE - Azalea Iggy, «fantaisie»] 57 00:02:28,280 --> 00:02:31,290 58 00:02:31,290 --> 00:02:31,964 >> -C'est CS50. 59 00:02:31,964 --> 00:02:36,020 60 00:02:36,020 --> 00:02:42,270 >> [Applaudissements] 61 00:02:42,270 --> 00:02:46,040 >> DAVID J. Malan: C'est donc CS50 et c'est la fin de la semaine 0. 62 00:02:46,040 --> 00:02:48,770 Et ce n'était que quelques-uns du personnel de CS50 qui 63 00:02:48,770 --> 00:02:51,100 vous attendent non seulement dans les sections et les heures de bureau, mais, 64 00:02:51,100 --> 00:02:54,390 aussi, ce week-end à CS50 Puzzle Day. 65 00:02:54,390 --> 00:02:56,410 Qui, encore une fois, n'est pas tout sur la programmation. 66 00:02:56,410 --> 00:02:59,710 En effet, il est prévu que vous n'auront pas à programmer quoi, 67 00:02:59,710 --> 00:03:03,780 mais plutôt de résoudre les problèmes à l'aide intelligence et amis à vos côtés. 68 00:03:03,780 --> 00:03:06,400 >> Nous serons rejoints par certains de nos amis de Facebook-- 69 00:03:06,400 --> 00:03:08,980 si vous vous inscrivez ici-- qui depuis plusieurs années, 70 00:03:08,980 --> 00:03:11,450 ont été effectivement écrit ces défis avec nous. 71 00:03:11,450 --> 00:03:14,822 Et donc, ils seront les en fin de compte en cours d'exécution Jour de puzzle. 72 00:03:14,822 --> 00:03:17,530 Et oui, vous serez mis au défi avec exactement le genre de choses 73 00:03:17,530 --> 00:03:20,520 et les problèmes que les gens de Facebook aiment à penser. 74 00:03:20,520 --> 00:03:21,860 Donc, c'est demain. 75 00:03:21,860 --> 00:03:25,980 Inscrivez-vous à cs50.harvard.edu/register. 76 00:03:25,980 --> 00:03:28,120 >> Maintenant un mot sur un couple du personnel en particulier. 77 00:03:28,120 --> 00:03:30,090 Ce ici est Ansel Duff, qui est en fait un 78 00:03:30,090 --> 00:03:33,860 des co-auteurs de ces binaire ampoules que nous avons vu mercredi, 79 00:03:33,860 --> 00:03:36,710 en plus de son propre Dan Bradley CS50. 80 00:03:36,710 --> 00:03:40,094 Ansel Duff était également un ancien freshman advisee de la mine il ya 3 ans 81 00:03:40,094 --> 00:03:41,760 et il a même fait construit ce pupitre. 82 00:03:41,760 --> 00:03:45,330 Il est parti à faire sciences de l'ingénieur et plus encore. 83 00:03:45,330 --> 00:03:49,279 Maintenant, son image ici est en fait Ansel il ya 3 ans à la CS50 Hackathon 84 00:03:49,279 --> 00:03:51,820 quand il a emprunté l'un de nos ballons, collés à son ordinateur portable, 85 00:03:51,820 --> 00:03:55,240 et, pour la prochaine 12 quelque étrange heures, concentré sur son projet final, 86 00:03:55,240 --> 00:03:59,150 prendre des pauses que pour ouvrir sacs de bonbons au Hackathon. 87 00:03:59,150 --> 00:04:02,210 >> Mais il est allé sur, plus récemment, à passer cet été passé avec nous, 88 00:04:02,210 --> 00:04:05,270 depuis CS50 pour son personnel, et Maintenant, les étudiants ce semestre, 89 00:04:05,270 --> 00:04:06,770 a sa propre imprimante 3D. 90 00:04:06,770 --> 00:04:10,180 Et en un mot un imprimantes 3D est un dispositif qui ressemble tout à fait comme ça. 91 00:04:10,180 --> 00:04:15,700 Vous remplissez avec une bobine de plastique qui est fondu par le dispositif 92 00:04:15,700 --> 00:04:18,940 et vous construire des choses littéralement de rien. 93 00:04:18,940 --> 00:04:22,660 Tout comme une imprimante à jet d'encre, vous commencez cracher petits points de plastique 94 00:04:22,660 --> 00:04:24,990 qui forment ensemble à former des objets entiers. 95 00:04:24,990 --> 00:04:28,430 Et si Ansel, par exemple, plus tôt cet été, a un iPhone 5 96 00:04:28,430 --> 00:04:30,722 et a décidé qu'il voulait vraiment pour le soutenir sur son bureau. 97 00:04:30,722 --> 00:04:32,638 Mais il ne voulait pas sortir et d'acheter quelque chose 98 00:04:32,638 --> 00:04:36,030 sur l'Apple Store ou similaires, de sorte qu'il assis et a commencé à dessiner quelque chose. 99 00:04:36,030 --> 00:04:38,280 Il a pris quelques mesures quant à l'épaisseur 100 00:04:38,280 --> 00:04:41,270 et la largeur de son iPhone était, il a dessiné cette image ici, 101 00:04:41,270 --> 00:04:43,870 il a décidé qu'il voulait d'avoir une inclinaison de 75 degrés 102 00:04:43,870 --> 00:04:46,150 comme il fixait lui sur son bureau il. 103 00:04:46,150 --> 00:04:50,440 Il se tourna ensuite ce, à l'aide logiciels, dans un modèle CAO 3D 104 00:04:50,440 --> 00:04:52,400 qui avait l'air un peu quelque chose comme ça. 105 00:04:52,400 --> 00:04:55,940 Et puis il a procédé, en fin de compte, pour réellement créer. 106 00:04:55,940 --> 00:05:00,250 Donc, en fait, si quelqu'un d'entre vous ici, peut-être de suite que je peux jeter à, ont 107 00:05:00,250 --> 00:05:06,780 an-- nous avons là des gens avec iPhone 5, et ici nous avons deux autres. 108 00:05:06,780 --> 00:05:10,650 109 00:05:10,650 --> 00:05:17,037 >> Maintenant, ne pas être en reste, CS50 propre Cheng Gong a également mis cet été 110 00:05:17,037 --> 00:05:19,870 de construire un certain nombre de choses et, en fait, pour des raisons qui sont encore 111 00:05:19,870 --> 00:05:23,970 claire, a été lentement l'impression d'une armée d'éléphants 112 00:05:23,970 --> 00:05:27,250 avec bras articulés et les troncs. 113 00:05:27,250 --> 00:05:32,515 Un couple qui sont en fait ici si n'importe qui maintenant like-- un éléphant. 114 00:05:32,515 --> 00:05:35,650 115 00:05:35,650 --> 00:05:40,522 Bien,. mais ce que Cheng a également fait pour nous, c'est très gentiment qu'il a mis en place une caméra 116 00:05:40,522 --> 00:05:42,230 parce que l'éléphant, croyez-le ou pas, 117 00:05:42,230 --> 00:05:44,690 prend un peu de deux ans et heures et demie à imprimer. 118 00:05:44,690 --> 00:05:47,840 Même le stand iPhone a pris une heure et demie à imprimer. 119 00:05:47,840 --> 00:05:51,490 Et ce que Cheng allé de l'avant et a fait a été mis en place un bel appareil photo à l'avant 120 00:05:51,490 --> 00:05:55,580 de cette imprimante 3D, filmé pendant une heure et demi que la conception d'Ansel imprimé. 121 00:05:55,580 --> 00:05:58,090 Nous avons ajouté un peu sexy à musique dans l'ordre 122 00:05:58,090 --> 00:06:00,570 pour vous donner ce à regarder comment fonctionne l'impression 3D. 123 00:06:00,570 --> 00:06:02,494 Et même si ce est fait en matière plastique, 124 00:06:02,494 --> 00:06:05,160 réaliser que si c'est un domaine de vous intéresser académique, 125 00:06:05,160 --> 00:06:07,120 il ya des gens, parmi Jennifer Lewis eux ici 126 00:06:07,120 --> 00:06:09,036 à l'École de Ingénierie, qui sont en fait 127 00:06:09,036 --> 00:06:10,920 à travailler sur l'impression 3D objets de plastique. 128 00:06:10,920 --> 00:06:14,150 Mais même, de plus en plus, les matières biologiques à résoudre 129 00:06:14,150 --> 00:06:16,530 problèmes physiologiques sur les humains. 130 00:06:16,530 --> 00:06:19,944 Mais voici un petit quelque chose de CS50. 131 00:06:19,944 --> 00:06:31,625 >> [LOUD MÉCANIQUE BRUITS] 132 00:06:31,625 --> 00:06:34,250 DAVID J. Malan: Il ne semble pas quelque chose comme ça dans la réalité, 133 00:06:34,250 --> 00:06:37,240 mais c'est bien plus cool à regarder à cette vitesse, et de ce son. 134 00:06:37,240 --> 00:06:40,000 >> Maintenant, le mercredi, comment avons-nous d'abord ici? 135 00:06:40,000 --> 00:06:43,345 Nous avons commencé à parler de l'ordinateur demandé la science et nous de quoi il s'agissait. 136 00:06:43,345 --> 00:06:46,470 Et il s'agit d'un certain nombre de choses, et il ya tellement de directions différentes 137 00:06:46,470 --> 00:06:48,477 dans lequel vous pouvez vous diriger après un parcours comme CS50. 138 00:06:48,477 --> 00:06:50,810 En fait, si vous avez pris un de ces guides non officiels 139 00:06:50,810 --> 00:06:54,080 CS extérieur, le livret nous avons fourni, que vous soyez 140 00:06:54,080 --> 00:06:57,150 envisagez de prendre juste CS50, ou peut-être faire un secondaire, 141 00:06:57,150 --> 00:06:59,557 ou peut-être même concentration dans CS, ne parcourir que. 142 00:06:59,557 --> 00:07:01,390 Et vous verrez un diagramme vers l'extrémité que 143 00:07:01,390 --> 00:07:04,950 vous montre les différentes directions CS que vous pouvez partir en. 144 00:07:04,950 --> 00:07:09,030 >> Mais pour aujourd'hui, nous allons nous concentrer, à nouveau, sur vraiment l'un des points de vue fondamentaux, 145 00:07:09,030 --> 00:07:11,500 peut-être, où vous avez entrées aux problèmes, 146 00:07:11,500 --> 00:07:13,430 vous avez sorties problèmes, et vous avez 147 00:07:13,430 --> 00:07:17,420 algorithmes avec lesquels créer les sorties de ces entrées. 148 00:07:17,420 --> 00:07:20,330 Et un exemple, était de Bien sûr, ce livre de téléphone ici. 149 00:07:20,330 --> 00:07:24,180 Et nous avons utilisé comme exemple pour aller par un algorithme qui était correct. 150 00:07:24,180 --> 00:07:26,490 Et puis un autre a été correct, mais un peu plus vite. 151 00:07:26,490 --> 00:07:29,448 Et puis un autre qui était un peu plus dramatique, mais fondamentalement 152 00:07:29,448 --> 00:07:30,000 plus rapide. 153 00:07:30,000 --> 00:07:32,720 >> Droite, ce téléphone livre nous selon comptait environ 1000 pages. 154 00:07:32,720 --> 00:07:36,200 Et combien de fois ai-je eu déchirer le livre de téléphone dans la moitié 155 00:07:36,200 --> 00:07:39,930 de trouver quelqu'un comme Mike Smith, au maximum, en 1000 pages livre? 156 00:07:39,930 --> 00:07:41,040 Ainsi, 10 donner ou prendre. 157 00:07:41,040 --> 00:07:45,050 Et une fois que j'ai déchiré cette chose dans la moitié, ou tout simplement, avec plus de maturité, 158 00:07:45,050 --> 00:07:48,490 divisé en deux, c'est seulement 10 pages sur 1000. 159 00:07:48,490 --> 00:07:51,470 Et si on extrapole, un peu irréaliste pour un livre de téléphone, 160 00:07:51,470 --> 00:07:56,540 mais si ce livre de téléphone avait quelque 4 milliard de pages en elle, si bien 161 00:07:56,540 --> 00:07:59,680 lourd physiquement, combien de fois ne vous divisez un 4 milliards 162 00:07:59,680 --> 00:08:01,460 page de livre de téléphone dans la moitié? 163 00:08:01,460 --> 00:08:03,035 Il s'agit donc d'32, donner ou prendre. 164 00:08:03,035 --> 00:08:07,090 Et donc 32 fois seulement, sur de 4 milliards de pages, peut 165 00:08:07,090 --> 00:08:08,700 vous trouvez quelqu'un comme Mike Smith. 166 00:08:08,700 --> 00:08:09,740 Et c'est l'efficacité. 167 00:08:09,740 --> 00:08:12,130 C'est un bon algorithme, disons-le. 168 00:08:12,130 --> 00:08:14,480 >> Mais alors que nous sommes passés d' pour essayer de formaliser. 169 00:08:14,480 --> 00:08:16,100 Et j'ai proposé ce code pseudo. 170 00:08:16,100 --> 00:08:17,800 Code Pseudocode n'est pas quelque chose formelle. 171 00:08:17,800 --> 00:08:18,880 Ce n'est pas quelque chose que vous mémoriser. 172 00:08:18,880 --> 00:08:21,588 C'est juste quelque chose que vous exprimez assez intuitivement en utilisant l'anglais, 173 00:08:21,588 --> 00:08:24,990 ou toute autre langue vraiment, transmet vos idées de façon succincte. 174 00:08:24,990 --> 00:08:26,990 Mais ce qui est essentiel sur code de pseudo-code qui est vous 175 00:08:26,990 --> 00:08:30,331 essayer d'anticiper tous les cas possibles qui pourraient se produire. 176 00:08:30,331 --> 00:08:33,080 Et en effet, dans ce pseudo- code, il y avait en réalité trois cas 177 00:08:33,080 --> 00:08:34,700 chaque fois que je divise le livre de téléphone. 178 00:08:34,700 --> 00:08:36,006 Mike pourrait être à la gauche. 179 00:08:36,006 --> 00:08:37,130 Mike peut-être vers la droite. 180 00:08:37,130 --> 00:08:39,240 Ou il pourrait être à droite sur la page, je suis sur. 181 00:08:39,240 --> 00:08:42,110 Ou un quatrième cas de coin, pour ainsi dire. 182 00:08:42,110 --> 00:08:46,470 Un mauvais scénario pourrait être un desquelles: ce qui se passe? 183 00:08:46,470 --> 00:08:48,860 Mike n'est tout simplement pas dans le livre de téléphone du tout. 184 00:08:48,860 --> 00:08:52,720 >> Et lorsque les programmes crash-- quand Mac et logiciel PC qui vous les gars vous l'exécutez 185 00:08:52,720 --> 00:08:56,400 sur vos ordinateurs, parfois pend ou ferme de façon inattendue, 186 00:08:56,400 --> 00:08:59,770 Cela signifie généralement que quelques programmeur, certains humain comme vous bientôt, 187 00:08:59,770 --> 00:09:01,650 juste foiré et a fait une erreur. 188 00:09:01,650 --> 00:09:05,207 N'a peut-être pas s'attendre à ce que peut-être il n'est pas Mike Smith dans l'annuaire téléphonique. 189 00:09:05,207 --> 00:09:08,040 Et si vous ne pas écrire code pour gérer ce genre de situations, 190 00:09:08,040 --> 00:09:09,890 généralement imprévisibles choses peuvent se produire. 191 00:09:09,890 --> 00:09:10,960 Votre appareil peut geler. 192 00:09:10,960 --> 00:09:11,730 Il peut redémarrer. 193 00:09:11,730 --> 00:09:12,889 Le programme peut cesser de fumer. 194 00:09:12,889 --> 00:09:14,722 Et si tous ces stupidités que vous pouvez 195 00:09:14,722 --> 00:09:18,030 ont rencontré dans votre effectif vie simplement en utilisant les ordinateurs, 196 00:09:18,030 --> 00:09:20,710 sera de plus juste explicables par cette intuition 197 00:09:20,710 --> 00:09:24,920 et cette compréhension de ce qui est passe réellement sous le capot. 198 00:09:24,920 --> 00:09:27,329 >> Maintenant, nous allons essayer de prendre un coup d'oeil à un problème plus général. 199 00:09:27,329 --> 00:09:29,120 Plutôt que de prendre présence dans un endroit comme 200 00:09:29,120 --> 00:09:32,230 ce qui serait assez lent en faire un, deux, trois, quatre. 201 00:09:32,230 --> 00:09:34,070 Ou peut-être deux, quatre, six, huit. 202 00:09:34,070 --> 00:09:36,080 Concentrons-nous plutôt sur comment nous pourrions officialiser 203 00:09:36,080 --> 00:09:39,400 l'algorithme du procédé par que nous pourrions prendre les présences. 204 00:09:39,400 --> 00:09:42,290 Et le long du chemin, nous allons commencer d'appliquer une certaine nomenclature 205 00:09:42,290 --> 00:09:47,130 que nous utilisons aujourd'hui, alors que nous avons effectivement commencer à programmer dans un langage. 206 00:09:47,130 --> 00:09:50,910 Je vous donne maintenant, une vidéo de quatre minutes que nous mettons ensemble avec nos amis 207 00:09:50,910 --> 00:09:52,820 de TED, l'organisation. 208 00:09:52,820 --> 00:09:56,380 Lequel nous avons fourni un script et ils ont apporté leurs animateurs à supporter, 209 00:09:56,380 --> 00:10:00,970 et effectivement créé une 2D animation de ce qu'est un algorithme est. 210 00:10:00,970 --> 00:10:02,776 Si nous pouvions éteindre les lumières. 211 00:10:02,776 --> 00:10:06,664 >> [MUSIQUE LECTURE] 212 00:10:06,664 --> 00:10:17,890 213 00:10:17,890 --> 00:10:19,140 Narrateur: Qu'est-ce qu'un algorithme? 214 00:10:19,140 --> 00:10:21,620 En informatique, un algorithme est un ensemble 215 00:10:21,620 --> 00:10:24,840 des instructions résoudre certains pas-à-pas de problème. 216 00:10:24,840 --> 00:10:27,310 En général, les algorithmes sont exécuté par les ordinateurs, 217 00:10:27,310 --> 00:10:29,365 mais nous les humains avons algorithmes ainsi. 218 00:10:29,365 --> 00:10:31,240 Par exemple, comment vous allez sur le décompte des 219 00:10:31,240 --> 00:10:32,990 le nombre de personnes dans une chambre? 220 00:10:32,990 --> 00:10:36,840 Eh bien, si vous êtes comme moi, vous auriez probablement pointer à chaque personne une à la fois 221 00:10:36,840 --> 00:10:38,370 et à compter à partir de zéro. 222 00:10:38,370 --> 00:10:41,200 Un, deux, trois, quatre, et ainsi de suite. 223 00:10:41,200 --> 00:10:42,410 Eh bien, c'est un algorithme. 224 00:10:42,410 --> 00:10:45,820 En fait, nous allons essayer de l'exprimer une peu plus formellement dans le code de pseudo-code. 225 00:10:45,820 --> 00:10:48,940 Syntaxe anglaise comme ça ressemble à un langage de programmation. 226 00:10:48,940 --> 00:10:50,880 >> Soit n égal à 0. 227 00:10:50,880 --> 00:10:55,210 Pour chaque personne dans la chambre, mettre n égal à n + 1. 228 00:10:55,210 --> 00:10:56,790 Comment interpréter le pseudo? 229 00:10:56,790 --> 00:10:59,490 Eh bien une ligne déclare, pour ainsi dire, une variable 230 00:10:59,490 --> 00:11:02,880 appelé n et initialise sa valeur à 0 Cette juste 231 00:11:02,880 --> 00:11:05,080 signifie que le à partir de notre algorithme, 232 00:11:05,080 --> 00:11:07,910 la chose avec laquelle nous sommes le comptage a une valeur de 0. 233 00:11:07,910 --> 00:11:10,860 Après tout, avant que nous commençons à compter nous n'avons pas encore compté rien. 234 00:11:10,860 --> 00:11:13,580 Appeler cette variable n n'est qu'une convention. 235 00:11:13,580 --> 00:11:15,130 J'aurais pu appeler le plus de rien. 236 00:11:15,130 --> 00:11:17,460 Maintenant aligner deux demarks le début d'une boucle, 237 00:11:17,460 --> 00:11:20,550 une séquence d'étapes qui seront répéter un nombre de fois. 238 00:11:20,550 --> 00:11:24,130 Ainsi, dans notre exemple, l'étape que nous sommes prise est compter les gens dans la salle. 239 00:11:24,130 --> 00:11:26,260 Sous la deuxième ligne est la ligne qui décrit trois 240 00:11:26,260 --> 00:11:28,400 exactement comment nous allons compter sur. 241 00:11:28,400 --> 00:11:31,720 L'indentation implique que c'est la troisième ligne qui se répétera. 242 00:11:31,720 --> 00:11:35,190 Donc, avec le code de pseudo-code est dicton est que, après à partir de 0 243 00:11:35,190 --> 00:11:38,940 pour chaque personne dans le chambre que nous allons augmenter n par 1 244 00:11:38,940 --> 00:11:41,310 Maintenant, est-ce correct algorithme? 245 00:11:41,310 --> 00:11:42,820 Eh bien nous allons taper sur un peu. 246 00:11:42,820 --> 00:11:45,520 >> Ne fonctionne s'il existe des deux personnes dans la salle? 247 00:11:45,520 --> 00:11:46,420 Voyons. 248 00:11:46,420 --> 00:11:48,500 Dans une ligne on initialise n à 0. 249 00:11:48,500 --> 00:11:51,910 Pour chacun de ces deux personnes, on incrémente alors n par 1. 250 00:11:51,910 --> 00:11:55,570 Ainsi, dans le premier voyage à travers le boucle, on met à jour n de 0 à 1. 251 00:11:55,570 --> 00:11:59,320 Sur le deuxième voyage à travers cette même boucle, nous mettons à jour n de 1 à 2. 252 00:11:59,320 --> 00:12:02,850 Et donc, par cet algorithme de Finalement, n est égal à 2, qui 253 00:12:02,850 --> 00:12:04,950 en effet correspond au numéro de personnes dans la salle. 254 00:12:04,950 --> 00:12:06,040 Jusqu'ici, tout va bien. 255 00:12:06,040 --> 00:12:07,870 >> Comment parler d'un cas de coin bien? 256 00:12:07,870 --> 00:12:11,090 Supposons qu'il existe 0 personnes dans le room-- à côté de moi, qui est 257 00:12:11,090 --> 00:12:12,420 faire le comptage. 258 00:12:12,420 --> 00:12:15,380 Dans une ligne, on initialise à nouveau n à 0. 259 00:12:15,380 --> 00:12:17,810 Cette fois, cependant, la ligne trois n'exécute pas du tout 260 00:12:17,810 --> 00:12:19,610 comme il n'y a pas une personne dans la pièce. 261 00:12:19,610 --> 00:12:23,540 Et si n reste à 0, ce qui correspond en effet le nombre de personnes dans la salle. 262 00:12:23,540 --> 00:12:24,670 Assez simple, non? 263 00:12:24,670 --> 00:12:27,880 Mais compter les gens un par un est assez inefficace, trop, non? 264 00:12:27,880 --> 00:12:29,160 Nous pouvons certainement faire mieux. 265 00:12:29,160 --> 00:12:33,440 Pourquoi ne pas compter deux personnes à la fois, au lieu de compter un, deux, trois, 266 00:12:33,440 --> 00:12:36,470 quatre, cinq, six, sept, huit, et ainsi de suite. 267 00:12:36,470 --> 00:12:39,106 Pourquoi ne pas compter deux, quatre, six, huit, et ainsi de suite? 268 00:12:39,106 --> 00:12:40,670 Il semble encore plus rapide. 269 00:12:40,670 --> 00:12:41,940 Et ce n'est sûrement. 270 00:12:41,940 --> 00:12:44,490 >> Exprimons cette optimisation dans le code de pseudo-code. 271 00:12:44,490 --> 00:12:46,040 Soit n égal à 0. 272 00:12:46,040 --> 00:12:50,760 Pour chaque paire de personnes, salle, mettre n égal à n + 2. 273 00:12:50,760 --> 00:12:52,360 Assez simple changement, non? 274 00:12:52,360 --> 00:12:56,560 Plutôt que de compter les gens un à la fois, on place compter les deux à la fois. 275 00:12:56,560 --> 00:12:59,240 Cet algorithme de, donc, deux fois plus rapide que la précédente. 276 00:12:59,240 --> 00:13:00,530 Mais est-il exact? 277 00:13:00,530 --> 00:13:01,160 Voyons. 278 00:13:01,160 --> 00:13:03,580 Ne fonctionne s'il existe des deux personnes dans la salle? 279 00:13:03,580 --> 00:13:05,800 Dans une ligne, on initialise n à 0. 280 00:13:05,800 --> 00:13:09,160 Pour cela une paire de personnes, on incrémente alors n par 2. 281 00:13:09,160 --> 00:13:11,910 Et si par cet algorithme de fin n est 2, qui 282 00:13:11,910 --> 00:13:13,910 en effet correspond au numéro de personnes dans la salle. 283 00:13:13,910 --> 00:13:16,610 >> Supposons ensuite que il ya zéro personnes dans la salle. 284 00:13:16,610 --> 00:13:19,080 Dans une ligne on initialise n à 0. 285 00:13:19,080 --> 00:13:21,260 Comme précédemment, la ligne de trois n'exécute pas tout 286 00:13:21,260 --> 00:13:25,270 car il n'y a pas de paires de personnes dans la salle, et si n reste 0. 287 00:13:25,270 --> 00:13:27,840 Ce qui correspond en effet la nombre de personnes dans la salle. 288 00:13:27,840 --> 00:13:30,520 Mais que faire si il ya trois personnes dans la salle? 289 00:13:30,520 --> 00:13:32,380 Comment cet algorithme tarif? 290 00:13:32,380 --> 00:13:35,710 Voyons, dans une ligne, on initialise n à 0. 291 00:13:35,710 --> 00:13:39,140 Pour une paire de ces personnes, on incrémente alors n par 2. 292 00:13:39,140 --> 00:13:40,050 Mais alors quoi? 293 00:13:40,050 --> 00:13:42,340 Il n'y a pas un autre plein paire de personnes dans la salle, 294 00:13:42,340 --> 00:13:44,430 si la deuxième ligne ne s'applique plus. 295 00:13:44,430 --> 00:13:48,790 Et si à la fin de cet algorithme, n est encore 2 qui n'est pas correct. 296 00:13:48,790 --> 00:13:52,070 En effet cet algorithme dit de buggy parce qu'elle a une erreur. 297 00:13:52,070 --> 00:13:54,070 >> Passons en réparation avec une certaine nouveau code de pseudo-code. 298 00:13:54,070 --> 00:13:56,110 Soit n égal à 0. 299 00:13:56,110 --> 00:14:00,790 Pour chaque paire de personnes, salle, mis N égal à n + 2. 300 00:14:00,790 --> 00:14:05,410 Si une personne reste non apparié, définir N égal à n + 1. 301 00:14:05,410 --> 00:14:09,340 Pour résoudre ce problème particulier, nous avons introduit dans la quatrième ligne une condition, 302 00:14:09,340 --> 00:14:12,120 autrement connu comme un succursales, qui n'exécute 303 00:14:12,120 --> 00:14:14,890 si il ya une personne que nous ne pouvait pas associer avec un autre. 304 00:14:14,890 --> 00:14:17,140 Et maintenant, si il ya un, ou trois, 305 00:14:17,140 --> 00:14:21,550 ou tout nombre impair de personnes dans la salle, cet algorithme va maintenant les compter. 306 00:14:21,550 --> 00:14:22,810 Pouvons-nous faire mieux? 307 00:14:22,810 --> 00:14:25,890 Eh bien, nous avons pu compter trois, ou quatre, ou même cinq ans et des dizaines, 308 00:14:25,890 --> 00:14:29,390 mais au-delà, il va y avoir un peu difficile à point. 309 00:14:29,390 --> 00:14:32,900 >> A la fin de la journée, si exécuté par des ordinateurs ou des êtres humains, 310 00:14:32,900 --> 00:14:34,870 algorithmes sont juste un ensemble d'instructions 311 00:14:34,870 --> 00:14:36,560 qui pour résoudre les problèmes. 312 00:14:36,560 --> 00:14:38,360 Ce sont seulement trois. 313 00:14:38,360 --> 00:14:41,860 Que voulez-vous problème résoudre avec un algorithme? 314 00:14:41,860 --> 00:14:44,261 >> DAVID J. Malan: Donc, délibérément, un programme très simple, 315 00:14:44,261 --> 00:14:46,260 un algorithme très simple, pour réaliser quelque chose 316 00:14:46,260 --> 00:14:48,280 très simple, en comptant le nombre de personnes dans la salle. 317 00:14:48,280 --> 00:14:50,370 >> Mais nous allons démêler représentant une partie de l' 318 00:14:50,370 --> 00:14:52,870 dispose ici qui sont en fait va être utile, même quand 319 00:14:52,870 --> 00:14:54,880 la mise en oeuvre de la plupart complexe de logiciel. 320 00:14:54,880 --> 00:14:58,060 Ainsi, par exemple, dans cette première ligne, nous avons ce que nous appelons la variable, 321 00:14:58,060 --> 00:15:01,040 et de l'algèbre, vous êtes généralement familier avec x et y 322 00:15:01,040 --> 00:15:02,930 et z parfois, et ainsi de suite. 323 00:15:02,930 --> 00:15:05,770 Mais dans la programmation, les variables sont encore, à la fin de la journée, 324 00:15:05,770 --> 00:15:06,680 très similaire à celui. 325 00:15:06,680 --> 00:15:09,910 Mais c'est peut-être plus simple de penser d'une variable comme un récipient. 326 00:15:09,910 --> 00:15:13,520 Et, de fait, c'est un certain nombre de bits mis en place en quelque sorte dans votre disque dur 327 00:15:13,520 --> 00:15:16,410 ou dans la mémoire de votre ordinateur, mais plus que dans l'avenir. 328 00:15:16,410 --> 00:15:17,670 C'est juste un conteneur. 329 00:15:17,670 --> 00:15:20,310 Et si vous dites quelque chose comme laisser n égal à 0, 330 00:15:20,310 --> 00:15:24,310 Eh bien c'est comme appeler ce verre bol ici n, juste un nom arbitraire, 331 00:15:24,310 --> 00:15:26,230 et ne mettant rien en elle d'abord. 332 00:15:26,230 --> 00:15:28,940 Ainsi, la valeur de cette bol en ce moment est nul. 333 00:15:28,940 --> 00:15:31,380 Et bien sûr, si vous percevez dans une ligne suivante, 334 00:15:31,380 --> 00:15:35,070 réellement augmenter certains de ligne code, comme dans cette troisième ligne ici, 335 00:15:35,070 --> 00:15:39,857 par 1, c'est à dire ce qui est le la valeur actuelle de n, il est à 0, plus 1, 336 00:15:39,857 --> 00:15:41,690 mettre quelque chose comme un balle de ping pong ici. 337 00:15:41,690 --> 00:15:45,140 Maintenant, la valeur de cette variables est tout simplement 1. 338 00:15:45,140 --> 00:15:50,064 Et vous pourriez très vite extrapoler, mais maintenant c'est 2, maintenant c'est 3, et ainsi de suite. 339 00:15:50,064 --> 00:15:51,230 Donc, c'est tout une variable est. 340 00:15:51,230 --> 00:15:53,740 C'est une pièce de stockage à effectivement stocker des données. 341 00:15:53,740 --> 00:15:55,050 Pour l'instant c'est une balle de ping-pong. 342 00:15:55,050 --> 00:15:55,883 Là, il s'agit d'un nombre. 343 00:15:55,883 --> 00:15:58,910 Mais il pourrait être les mots d'une dictionnaire, comme le correcteur orthographique 344 00:15:58,910 --> 00:16:02,300 J'ai fait allusion à mercredi pour l'un des ensembles de problèmes de l'an dernier. 345 00:16:02,300 --> 00:16:05,640 >> Maintenant, une autre idée clé, que, de même est assez intuitif je prétendre, 346 00:16:05,640 --> 00:16:06,690 est celle d'une boucle. 347 00:16:06,690 --> 00:16:08,930 Et la boucle dans le processus de compter tout le monde 348 00:16:08,930 --> 00:16:12,540 est, bien sûr, faire la même chose chose de nouveau et soit une again-- 349 00:16:12,540 --> 00:16:14,140 à la fois ou deux à la fois. 350 00:16:14,140 --> 00:16:17,690 Et vous pouvez l'exprimer en anglais, ou code de pseudo-code, dans un certain nombre de façons, 351 00:16:17,690 --> 00:16:21,560 mais en utilisant cette préposition "pour" est un moyen très courant de le faire. 352 00:16:21,560 --> 00:16:24,460 Pour chaque personne dans la salle, le faire. 353 00:16:24,460 --> 00:16:25,350 Encore et encore. 354 00:16:25,350 --> 00:16:27,700 Et le fait que c'est retrait, la troisième ligne, 355 00:16:27,700 --> 00:16:29,840 signifie simplement que ce vous êtes censé faire 356 00:16:29,840 --> 00:16:33,490 est la substance qui est en retrait en dessous du seuil de deux lui-même. 357 00:16:33,490 --> 00:16:35,590 Juste une convention humaine, mais une commune 358 00:16:35,590 --> 00:16:39,010 comme nous le verrons dans plus réelle langages de programmation de niveau. 359 00:16:39,010 --> 00:16:41,870 >> Maintenant un peu plus intéressant est quand vous arrivez dans une affaire de coin. 360 00:16:41,870 --> 00:16:43,970 Par exemple, un coin cas, c'est quand il 361 00:16:43,970 --> 00:16:48,060 étaient trois personnes, ou cinq, ou sept, ou tout nombre impair de personnes dans la salle, 362 00:16:48,060 --> 00:16:51,630 parce que faire que par deux freins éventuellement parce que vous allez 363 00:16:51,630 --> 00:16:54,265 manquer quelqu'un, soit à la très début ou à la fin 364 00:16:54,265 --> 00:16:55,390 selon la façon dont vous le faites. 365 00:16:55,390 --> 00:16:59,800 Et si, maintenant, j'ai cette branche, ou état, si une personne reste, 366 00:16:59,800 --> 00:17:04,490 alors allez-y et gérer qu'un personne solitaire qui n'a pas obtenu 367 00:17:04,490 --> 00:17:05,690 jumelé avec quelqu'un d'autre. 368 00:17:05,690 --> 00:17:09,030 C'est ce que nous appellerions un état, ou une branche. 369 00:17:09,030 --> 00:17:11,500 >> Par code pseudo plus généralement peut être 370 00:17:11,500 --> 00:17:13,730 écrit pour résoudre un certain nombre de problèmes. 371 00:17:13,730 --> 00:17:16,490 Et ce que je pensais que nous serions faire ici, c'est de prendre un moment 372 00:17:16,490 --> 00:17:20,089 d'inviter dirons-nous CS50 de posséder Rob Bowden sur scène 373 00:17:20,089 --> 00:17:25,040 d'être rejoint par deux bénévoles, qui n'ont aucune idée ce qui attend. 374 00:17:25,040 --> 00:17:26,890 Une main descendit dès que j'ai dit ça. 375 00:17:26,890 --> 00:17:28,700 Que diriez-vous sur le terminer ici, venez sur place. 376 00:17:28,700 --> 00:17:33,040 Et que diriez-vous de plus loin, que diriez-vous de façon à l'arrière. 377 00:17:33,040 --> 00:17:35,200 Rangée arrière, de venir sur place avec vos mains. 378 00:17:35,200 --> 00:17:36,475 Bon, et quel est votre nom? 379 00:17:36,475 --> 00:17:36,960 >> ANITA: Anita. 380 00:17:36,960 --> 00:17:37,655 >> DAVID J. Malan: Anita. 381 00:17:37,655 --> 00:17:38,613 Ok, nice to meet you. 382 00:17:38,613 --> 00:17:41,010 Permettez-moi de vous présenter à Rob Bowden. 383 00:17:41,010 --> 00:17:42,890 C'est Anita. 384 00:17:42,890 --> 00:17:44,033 Et quel est votre nom? 385 00:17:44,033 --> 00:17:44,800 >> Kiersten: Kiersten 386 00:17:44,800 --> 00:17:46,020 >> DAVID J. Malan: Kiersten. 387 00:17:46,020 --> 00:17:49,790 Kiersten, venez sur place et rencontrer Rob Bowden et Anita. 388 00:17:49,790 --> 00:17:51,036 Ravi de vous rencontrer. 389 00:17:51,036 --> 00:17:52,160 Kiersten: Ravi de vous rencontrer. 390 00:17:52,160 --> 00:17:53,368 DAVID J. Malan: Très bien, Rob. 391 00:17:53,368 --> 00:17:54,650 ROB BOWDEN: Ravi de vous rencontrer. 392 00:17:54,650 --> 00:17:55,566 DAVID J. Malan: Anita. 393 00:17:55,566 --> 00:17:56,520 Kiersten: Salut Anita. 394 00:17:56,520 --> 00:17:58,686 DAVID J. Malan: Et votre plusieurs centaines de camarades de classe. 395 00:17:58,686 --> 00:18:02,490 Donc, maintenant laissez-moi aller de l'avant et tire juste un programme simple ici 396 00:18:02,490 --> 00:18:05,690 sur Mac OS que vous me laissez effectivement noter quelques notes en bas. 397 00:18:05,690 --> 00:18:09,570 Et si vous voulez les gars à prendre chacun un position à l'une de ces écoles là-bas, 398 00:18:09,570 --> 00:18:16,360 laissez-moi aller de l'avant et commence une liste code pseudo, si vous voulez. 399 00:18:16,360 --> 00:18:19,970 Et ce que je veux faire ici, en fin de compte est de type pour vous 400 00:18:19,970 --> 00:18:22,470 des instructions que notre les membres du public sont en fait 401 00:18:22,470 --> 00:18:23,569 aller à réciter pour nous. 402 00:18:23,569 --> 00:18:25,860 Permettez-moi d'aller de l'avant et juste changer pour une liste numérotée 403 00:18:25,860 --> 00:18:27,720 pour correspondre à ce que nous faisions là. 404 00:18:27,720 --> 00:18:30,990 Et ce que je vais faire avec votre aide, est d'écrire un programme 405 00:18:30,990 --> 00:18:34,620 en pseudo-code, avec lequel ces gars-là vont 406 00:18:34,620 --> 00:18:38,150 mettre en oeuvre une cacahuète beurre et sandwich gelée. 407 00:18:38,150 --> 00:18:40,880 Donc, c'est peut-être à propos de montrer une chose que certains d'entre vous 408 00:18:40,880 --> 00:18:44,560 peut-être vu sur internet pour seulement un bref moment ennuyeux. 409 00:18:44,560 --> 00:18:47,650 >> [MUSIQUE BUCKEWHEAT BOYS, "BEURRE D'ARACHIDE  Jelly Time "] 410 00:18:47,650 --> 00:19:08,119 411 00:19:08,119 --> 00:19:08,910 DAVID J. Malan: OK. 412 00:19:08,910 --> 00:19:10,050 C'est assez. 413 00:19:10,050 --> 00:19:12,690 Voici donc en attendant, j'ai une paire de lunettes de Google qui 414 00:19:12,690 --> 00:19:16,500 nous allons mettre sur le propre Rob Bowden CS50 pour voir le monde à travers ses yeux. 415 00:19:16,500 --> 00:19:19,140 Et nous ferons de notre mieux en post production à tisser fait 416 00:19:19,140 --> 00:19:23,100 les images de ce que Rob voit maintenant, dans cette conférence réel 417 00:19:23,100 --> 00:19:26,420 vidéo avec nos deux volontaires à côté de lui. 418 00:19:26,420 --> 00:19:28,480 Donc ce que je vais faire est, je serai la dactylo. 419 00:19:28,480 --> 00:19:31,849 Nous avons pour but ici de en train d'écrire un programme 420 00:19:31,849 --> 00:19:34,640 avec qui faire, en fin de compte, un beurre d'arachide et sandwich à gelée, 421 00:19:34,640 --> 00:19:37,680 mais ces trois vont se comporter comme s'ils étaient des ordinateurs. 422 00:19:37,680 --> 00:19:40,638 Et ordinateurs, à la fin de la journée, sont en fait des dispositifs assez stupides. 423 00:19:40,638 --> 00:19:44,432 Ils sont super rapide, mais ils ne peuvent faire, littéralement, ce qu'on leur dit. 424 00:19:44,432 --> 00:19:46,890 Vous ne pouvez pas dire juste faire une cacahuète beurre et sandwich gelée. 425 00:19:46,890 --> 00:19:48,640 Vous devez les programmer pour le faire. 426 00:19:48,640 --> 00:19:51,420 Vous devez leur dire avec précision ce qu'il faut faire, 427 00:19:51,420 --> 00:19:54,400 moins les choses vont horriblement et, espérons-le, drôlement mal. 428 00:19:54,400 --> 00:19:57,460 >> Donc, avec cela dit, nous avons besoin un appel à partir de l'audience 429 00:19:57,460 --> 00:19:59,440 pour ce qui devrait renforcer un être, si l'objectif ici 430 00:19:59,440 --> 00:20:01,356 est de faire une cacahuète beurre et sandwich gelée. 431 00:20:01,356 --> 00:20:01,910 Oui? 432 00:20:01,910 --> 00:20:03,647 >> PUBLIC: [inaudible] le sac de pain. 433 00:20:03,647 --> 00:20:05,230 DAVID J. Malan: Ouvrez le sac de pain. 434 00:20:05,230 --> 00:20:08,360 Donc, si les trois candidats serait voulez poursuivre à faire littéralement. 435 00:20:08,360 --> 00:20:12,394 Ouvrez le sac de pain. 436 00:20:12,394 --> 00:20:15,810 >> [PUBLIC rire] 437 00:20:15,810 --> 00:20:20,717 438 00:20:20,717 --> 00:20:22,300 DAVID J. Malan: Donc, nous allons travailler là-dessus. 439 00:20:22,300 --> 00:20:23,180 Bien. 440 00:20:23,180 --> 00:20:25,400 Donc, la deuxième étape, how-- Prenons cet autre. 441 00:20:25,400 --> 00:20:26,480 Oui, à l'avant. 442 00:20:26,480 --> 00:20:27,240 >> PUBLIC: [inaudible] le pain. 443 00:20:27,240 --> 00:20:27,735 >> DAVID J. Malan: Qu'est-ce que c'est? 444 00:20:27,735 --> 00:20:28,836 >> PUBLIC: Retirer le pain. 445 00:20:28,836 --> 00:20:30,210 DAVID J. Malan: retirer le pain. 446 00:20:30,210 --> 00:20:31,190 De même succinct. 447 00:20:31,190 --> 00:20:33,667 Merci. 448 00:20:33,667 --> 00:20:43,777 >> [Applaudissements] 449 00:20:43,777 --> 00:20:44,860 DAVID J. Malan: C'est tout? 450 00:20:44,860 --> 00:20:48,830 OK, donc la deuxième étape va être retirer le pain. 451 00:20:48,830 --> 00:20:51,790 Bon, quelqu'un veut nous écrire une phrase plus? 452 00:20:51,790 --> 00:20:52,640 Quelqu'un d'autre? 453 00:20:52,640 --> 00:20:53,920 Un peu plus de [inaudible]. 454 00:20:53,920 --> 00:20:54,810 Non, plus rien. 455 00:20:54,810 --> 00:20:56,094 Oui? 456 00:20:56,094 --> 00:20:58,900 >> PUBLIC: Placez deux tranches à côté de l'autre. 457 00:20:58,900 --> 00:21:03,575 >> DAVID J. Malan: Placez deux tranches à côté de l'autre. 458 00:21:03,575 --> 00:21:06,420 >> [PUBLIC rire] 459 00:21:06,420 --> 00:21:09,590 >> DAVID J. Malan: Placez deux tranches à côté de l'autre. 460 00:21:09,590 --> 00:21:11,334 Étape quatre. 461 00:21:11,334 --> 00:21:12,816 Oui? 462 00:21:12,816 --> 00:21:14,792 >> PUBLIC: Prenez votre main et mis à la légère 463 00:21:14,792 --> 00:21:17,756 sur le dessus du couvercle de beurre d'arachide. 464 00:21:17,756 --> 00:21:19,710 >> [PUBLIC rire] 465 00:21:19,710 --> 00:21:21,710 PUBLIC: [inaudible] à côté du beurre d'arachide. 466 00:21:21,710 --> 00:21:21,870 DAVID J. Malan: Quoi? 467 00:21:21,870 --> 00:21:22,520 Le dire. 468 00:21:22,520 --> 00:21:26,308 >> PUBLIC: Dévissez le couvercle et mettre doucement à côté du beurre d'arachide. 469 00:21:26,308 --> 00:21:31,490 >> DAVID J. Malan: Mettez doucement à côté du beurre d'arachide. 470 00:21:31,490 --> 00:21:37,770 471 00:21:37,770 --> 00:21:40,090 OK, le progrès. 472 00:21:40,090 --> 00:21:41,080 Cinquième étape. 473 00:21:41,080 --> 00:21:42,380 Excellente. 474 00:21:42,380 --> 00:21:43,261 Oui? 475 00:21:43,261 --> 00:21:44,163 >> Pick-up couteau. 476 00:21:44,163 --> 00:21:46,380 477 00:21:46,380 --> 00:21:47,630 DAVID J. Malan: Pick up couteau. 478 00:21:47,630 --> 00:21:52,320 479 00:21:52,320 --> 00:21:53,631 OK, l'étape six. 480 00:21:53,631 --> 00:21:54,130 Ouais? 481 00:21:54,130 --> 00:21:56,237 >> PUBLIC: Tenez couteau par le manche. 482 00:21:56,237 --> 00:21:57,945 DAVID J. Malan: Maintenez couteau par le manche. 483 00:21:57,945 --> 00:22:00,710 484 00:22:00,710 --> 00:22:03,230 Maintenir couteau par le manche. 485 00:22:03,230 --> 00:22:04,880 Étape sept. 486 00:22:04,880 --> 00:22:05,692 Oui? 487 00:22:05,692 --> 00:22:10,030 >> PUBLIC: couteau [inaudible] à l'arachide beurre et aussi peu sur [inaudible]. 488 00:22:10,030 --> 00:22:13,070 >> DAVID J. Malan: Mettez couteau in-- je entendu "Placez la lame dans du beurre d'arachide 489 00:22:13,070 --> 00:22:19,500 et prendre aussi peu comme possible. " 490 00:22:19,500 --> 00:22:22,480 Par ailleurs, retirez d'abord le papier. 491 00:22:22,480 --> 00:22:29,320 492 00:22:29,320 --> 00:22:31,890 Très bien, l'étape neuf. 493 00:22:31,890 --> 00:22:34,910 Étape neuf. 494 00:22:34,910 --> 00:22:35,624 Étape neuf. 495 00:22:35,624 --> 00:22:37,290 Nous n'avons pas encore réellement fait un sandwich. 496 00:22:37,290 --> 00:22:37,790 Oui? 497 00:22:37,790 --> 00:22:41,570 PUBLIC: aide d'un couteau à beurre d'arachide, appliquer du beurre d'arachide sur ledit pain. 498 00:22:41,570 --> 00:22:47,440 >> DAVID J. Malan: aide d'un couteau à beurre d'arachide, beurre d'arachide s'applique sur 499 00:22:47,440 --> 00:22:48,736 ledit pain. 500 00:22:48,736 --> 00:22:56,030 >> [PUBLIC rire] 501 00:22:56,030 --> 00:22:59,480 DAVID J. Malan: Très bien l'étape 10. 502 00:22:59,480 --> 00:23:01,762 Étape 10. 503 00:23:01,762 --> 00:23:02,750 Oui? 504 00:23:02,750 --> 00:23:05,220 >> PUBLIC: Goût arachide beurre pour assurer la qualité. 505 00:23:05,220 --> 00:23:15,960 >> [PUBLIC rire] 506 00:23:15,960 --> 00:23:16,960 DAVID J. Malan: Étape 11. 507 00:23:16,960 --> 00:23:19,500 508 00:23:19,500 --> 00:23:21,340 Étape 11. 509 00:23:21,340 --> 00:23:22,101 Étape 11. 510 00:23:22,101 --> 00:23:22,600 Allons. 511 00:23:22,600 --> 00:23:23,099 Ouais? 512 00:23:23,099 --> 00:23:24,208 Là. 513 00:23:24,208 --> 00:23:25,840 >> PUBLIC: Prenez soigneusement gelée. 514 00:23:25,840 --> 00:23:28,220 >> DAVID J. Malan: Prenez soigneusement gelée. 515 00:23:28,220 --> 00:23:29,970 OK, et puis un autre levé la main. 516 00:23:29,970 --> 00:23:32,812 517 00:23:32,812 --> 00:23:33,520 Juste derrière vous. 518 00:23:33,520 --> 00:23:35,761 Ouais, en bleu. 519 00:23:35,761 --> 00:23:40,671 >> PUBLIC: Très bien, retirez couvercle de [inaudible], oui, 520 00:23:40,671 --> 00:23:42,635 retirer le couvercle de la gelée. 521 00:23:42,635 --> 00:23:43,617 >> [PUBLIC rire] 522 00:23:43,617 --> 00:23:44,742 >> DAVID J. Malan: De la gelée. 523 00:23:44,742 --> 00:23:45,581 Ha ha. 524 00:23:45,581 --> 00:23:48,967 >> [PUBLIC rire] 525 00:23:48,967 --> 00:23:49,800 DAVID J. Malan: Et? 526 00:23:49,800 --> 00:23:52,490 PUBLIC: Et à peine balayer toute [inaudible]. 527 00:23:52,490 --> 00:23:59,536 [PUBLIC rire] 528 00:23:59,536 --> 00:24:04,456 PUBLIC: Bien sûr, avant de [inaudible], retirez le papier de la gelée. 529 00:24:04,456 --> 00:24:06,940 DAVID J. Malan: Retirez le papier gelée. 530 00:24:06,940 --> 00:24:08,229 Étape 14. 531 00:24:08,229 --> 00:24:09,020 Nous y sommes presque. 532 00:24:09,020 --> 00:24:09,857 Oui? 533 00:24:09,857 --> 00:24:12,600 >> PUBLIC: bouteille de gelée Inverser avant tout y passe. 534 00:24:12,600 --> 00:24:16,515 >> DAVID J. Malan: Inverser gelée bouteille avant la gelée tombe. 535 00:24:16,515 --> 00:24:19,070 536 00:24:19,070 --> 00:24:19,890 Étape 15. 537 00:24:19,890 --> 00:24:21,130 >> PUBLIC: Remettre le bouchon. 538 00:24:21,130 --> 00:24:22,463 >> DAVID J. Malan: Remettre le bouchon. 539 00:24:22,463 --> 00:24:25,880 540 00:24:25,880 --> 00:24:28,190 Étape 16. 541 00:24:28,190 --> 00:24:28,931 Ouais? 542 00:24:28,931 --> 00:24:29,806 >> PUBLIC: [inaudible] 543 00:24:29,806 --> 00:24:34,109 544 00:24:34,109 --> 00:24:35,400 DAVID J. Malan: le dire. 545 00:24:35,400 --> 00:24:38,100 PUBLIC: Prenez capuchon de votre gelée. 546 00:24:38,100 --> 00:24:39,650 DAVID J. Malan: Off votre gelée. 547 00:24:39,650 --> 00:24:43,720 548 00:24:43,720 --> 00:24:49,510 Donc really-- Oops. 549 00:24:49,510 --> 00:24:50,420 Allons. 550 00:24:50,420 --> 00:24:51,740 Remettre le bouchon. 551 00:24:51,740 --> 00:24:56,660 Mettez cap-- Vous avez dit retirer le capuchon de la gelée. 552 00:24:56,660 --> 00:24:58,950 Sentez-vous comme nous sommes dans une sorte de boucle. 553 00:24:58,950 --> 00:24:59,640 Étape 17. 554 00:24:59,640 --> 00:25:00,398 Oui? 555 00:25:00,398 --> 00:25:02,639 >> PUBLIC: [inaudible] 556 00:25:02,639 --> 00:25:03,930 DAVID J. Malan: le dire. 557 00:25:03,930 --> 00:25:05,150 PUBLIC: [inaudible] 558 00:25:05,150 --> 00:25:07,835 DAVID J. Malan: Retour à step-- 559 00:25:07,835 --> 00:25:10,110 PUBLIC: [inaudible] 560 00:25:10,110 --> 00:25:13,760 DAVID J. Malan: Retirer bouchon de beurre d'arachide. 561 00:25:13,760 --> 00:25:14,492 Oui? 562 00:25:14,492 --> 00:25:16,430 >> PUBLIC: Supprimez toutes les gelée sur le pain. 563 00:25:16,430 --> 00:25:19,040 >> DAVID J. Malan: Supprimez tous la gelée sur le pain. 564 00:25:19,040 --> 00:25:25,372 565 00:25:25,372 --> 00:25:26,830 DAVID J. Malan: Nous y sommes presque. 566 00:25:26,830 --> 00:25:27,800 Étape 19. 567 00:25:27,800 --> 00:25:30,250 >> PUBLIC: Enlever l'excès de gelée. 568 00:25:30,250 --> 00:25:31,720 >> DAVID J. Malan: Haha, la gelée. 569 00:25:31,720 --> 00:25:36,615 >> [Applaudissements] 570 00:25:36,615 --> 00:25:39,240 DAVID J. Malan: Pourquoi ne pas nous-- Un pas de plus pour prendre cette maison. 571 00:25:39,240 --> 00:25:41,720 Un pas de plus et alors nous servons des sandwiches. 572 00:25:41,720 --> 00:25:42,900 Oui? 573 00:25:42,900 --> 00:25:45,570 >> PUBLIC: [inaudible] 574 00:25:45,570 --> 00:25:50,704 >> DAVID J. Malan: Alors que les sandwichs Le tiret let remains-- this-- manger. 575 00:25:50,704 --> 00:25:56,400 >> [Rires du public] 576 00:25:56,400 --> 00:26:00,395 >> DAVID J. Malan: Très bien, merci vous à nos bénévoles ici. 577 00:26:00,395 --> 00:26:06,150 >> [Applaudissements} 578 00:26:06,150 --> 00:26:08,940 >> DAVID J. Malan: Nous avons une belle séparation des cadeaux pour chacun de vous. 579 00:26:08,940 --> 00:26:14,350 Votre propre beurre d'arachide, gelée, et le pain à ramener à la maison en arrière. 580 00:26:14,350 --> 00:26:15,774 Merci. 581 00:26:15,774 --> 00:26:17,118 >> Kiersten: Je vous remercie. 582 00:26:17,118 --> 00:26:18,618 DAVID J. Malan: [inaudible] accueillir. 583 00:26:18,618 --> 00:26:21,849 [Applaudissements] 584 00:26:21,849 --> 00:26:24,390 DAVID J. Malan: Donc, c'est, de Bien sûr, un exemple ridicule. 585 00:26:24,390 --> 00:26:24,890 Droite? 586 00:26:24,890 --> 00:26:28,890 Mais il ne révèle type de la façon dont nous les humains prennent juste la clarté pour acquis. 587 00:26:28,890 --> 00:26:30,890 Et le fait j'ai été parler à un autre être humain, 588 00:26:30,890 --> 00:26:33,300 il ou elle sait exactement ce que vous voulez dire. 589 00:26:33,300 --> 00:26:35,220 >> Ordinateurs ne vont pas de savoir ce que vous entendez, 590 00:26:35,220 --> 00:26:37,430 même en utilisant, en tant que nous sommes sur le point de faire aujourd'hui, 591 00:26:37,430 --> 00:26:42,300 quelque chose dans la programmation Scratch, un frein et la chute, la langue de style de pièce de puzzle. 592 00:26:42,300 --> 00:26:44,310 Même conçu pour les jeunes enfants, vous avez 593 00:26:44,310 --> 00:26:48,726 être si explicite et si littéral ce que vous voulez que votre programme à faire. 594 00:26:48,726 --> 00:26:50,600 Maintenant, en fin de compte, nous sommes va être la programmation 595 00:26:50,600 --> 00:26:53,550 pas dans le code de pseudo-code, Anglais comme syntaxe, 596 00:26:53,550 --> 00:26:56,370 mais le code ou, plus correctement, le code source. 597 00:26:56,370 --> 00:26:59,260 Le code source est simplement la manière de fantaisie pour décrire le code que vous avez réellement 598 00:26:59,260 --> 00:27:01,730 écrire avec un clavier qui est pas en anglais en soi. 599 00:27:01,730 --> 00:27:06,480 C'est en C ou en Java ou C ++ ou quelque chose comme ça, comme nous le verrons bientôt. 600 00:27:06,480 --> 00:27:09,510 >> Et en fait, juste pour effrayer un quelques-uns d'entre vous, à première vue, 601 00:27:09,510 --> 00:27:13,769 il s'agit d'un programme écrit dans un langage appelé C. Mais non effrayer quelques-uns d'entre vous, 602 00:27:13,769 --> 00:27:15,560 vous voulez complètement comprendre ce qui se passe 603 00:27:15,560 --> 00:27:18,980 sur venir lundi prochain quand il vient à quelque chose comme ça. 604 00:27:18,980 --> 00:27:20,510 Franchement, c'est une langue plus. 605 00:27:20,510 --> 00:27:22,430 Il est assez mystérieux, mais il est représentatif 606 00:27:22,430 --> 00:27:26,120 d'un grand nombre de langues de nos jours que avoir beaucoup de parenthèses et bouclés 607 00:27:26,120 --> 00:27:28,630 accolades et guillemets et virgules. 608 00:27:28,630 --> 00:27:30,780 Et beaucoup de ce trucs syntaxique qui n'est pas 609 00:27:30,780 --> 00:27:32,450 du tout intellectuellement intéressant. 610 00:27:32,450 --> 00:27:35,790 En effet, c'est une distraction totale des idées très simples 611 00:27:35,790 --> 00:27:37,370 qui nous pend au nez. 612 00:27:37,370 --> 00:27:41,760 Ce programme, comme vous pourriez le deviner, gravures à écran d'ordinateur de quelqu'un d' 613 00:27:41,760 --> 00:27:44,070 les mots «Bonjour virgule monde." 614 00:27:44,070 --> 00:27:44,860 C'est tout. 615 00:27:44,860 --> 00:27:46,580 Il apparaît donc clairement, il ya beaucoup de choses qui est 616 00:27:46,580 --> 00:27:48,970 de prendre le chemin de une certaine évidence là, 617 00:27:48,970 --> 00:27:52,490 mais ça va glisser très rapidement loin et être totalement intuitive. 618 00:27:52,490 --> 00:27:55,617 >> En effet, ce que nous allons faire aujourd'hui distiller ce assez complexe 619 00:27:55,617 --> 00:27:58,950 programme à la recherche, qui encore une fois vous arriverez de comprendre rapidement, mais à quelque chose 620 00:27:58,950 --> 00:27:59,710 beaucoup plus simple. 621 00:27:59,710 --> 00:28:01,640 Disons simplement que ce que nous entendons. 622 00:28:01,640 --> 00:28:05,590 Tirons une image de ce que nous entendons, par le biais de ces pièces de puzzle ici. 623 00:28:05,590 --> 00:28:09,110 >> C'est donc une programmation langue connue comme Scratch. 624 00:28:09,110 --> 00:28:11,080 Il a été développé par le Media Lab du MIT. 625 00:28:11,080 --> 00:28:14,830 Et ce que vous verrez dans le problème réglé à zéro, qui sera publié plus tard ce soir, 626 00:28:14,830 --> 00:28:18,980 nous aurons vous allez à cet URL ici scratch.mit.edu. 627 00:28:18,980 --> 00:28:20,940 Et ils ont une web interface via laquelle 628 00:28:20,940 --> 00:28:22,540 vous allez écrire votre premier programme. 629 00:28:22,540 --> 00:28:25,330 Ou ceux d'entre vous avant expérience, votre deuxième programme, 630 00:28:25,330 --> 00:28:28,090 mais dans un environnement qui est sans doute un peu mal et qui 631 00:28:28,090 --> 00:28:32,930 vous pousser à créer quelque chose de utilisant cet environnement très visuel. 632 00:28:32,930 --> 00:28:35,940 >> Maintenant, ce que je vais faire ici est d'ouvrir le programme lui-même. 633 00:28:35,940 --> 00:28:41,911 Il existe non seulement en tant que navigateur Web, mais aussi comme un programme téléchargeable 634 00:28:41,911 --> 00:28:44,660 de sorte que vous pouvez réellement utiliser si vous n'avez pas accès à Internet. 635 00:28:44,660 --> 00:28:46,743 Et je vais le faire ici, dans Sanders, juste 636 00:28:46,743 --> 00:28:49,580 dans le cas où le Wi-Fi n'est pas coopérer super bien passé. 637 00:28:49,580 --> 00:28:52,640 Et ce que je vais faire est le point sur quelques caractéristiques de ce programme. 638 00:28:52,640 --> 00:28:55,720 Donc, pour être clair, je dois vous suffit de double cliqué sur l'icône sur mon bureau, 639 00:28:55,720 --> 00:28:59,830 ou de façon équivalente allé scratch.mit.edu, et il est tiré vers le haut de cette fenêtre. 640 00:28:59,830 --> 00:29:01,650 Il s'agit d'un environnement de programmation. 641 00:29:01,650 --> 00:29:04,110 C'est un morceau de logiciel qui certains de nos amis du MIT 642 00:29:04,110 --> 00:29:08,850 a écrit que nous allons nous et vous écrivez programmes dans un langage appelé Scratch. 643 00:29:08,850 --> 00:29:12,010 >> Maintenant, ce qui se passe pour être un chat qui a également été nommé Scratch 644 00:29:12,010 --> 00:29:13,890 et c'est son monde dans lequel il vit. 645 00:29:13,890 --> 00:29:17,175 C'est à ce stade, pour ainsi dire, que rectangle dans le coin supérieur gauche. 646 00:29:17,175 --> 00:29:18,800 Et il n'a pas à ressembler à un chat. 647 00:29:18,800 --> 00:29:20,591 Vous pouvez le faire paraître comme rien et vous 648 00:29:20,591 --> 00:29:23,700 peut avoir beaucoup de ces sprites, caractères, ou d'un programme. 649 00:29:23,700 --> 00:29:27,450 Pendant ce temps, ici à l'extrême droite, est une grande ardoise vierge. 650 00:29:27,450 --> 00:29:30,260 Et c'est là que, dans un moment, nous allons commencer la programmation 651 00:29:30,260 --> 00:29:32,750 par glisser-déposer ces casse-tête graphique 652 00:29:32,750 --> 00:29:35,300 pièces qui sont à droite ici, au milieu. 653 00:29:35,300 --> 00:29:38,140 Et il ya beaucoup plus d'eux que nous passons du temps ici en classe 654 00:29:38,140 --> 00:29:40,080 parce que vous verrez que ils sont tous assez intuitive. 655 00:29:40,080 --> 00:29:41,788 Encore une fois, il est conçu pour les enfants, mais nous 656 00:29:41,788 --> 00:29:45,759 l'utiliser pour démêler certains de ceux idées fondamentales de variables, boucles, 657 00:29:45,759 --> 00:29:48,050 conditions, et, bientôt, les choses comme des fonctions et des événements 658 00:29:48,050 --> 00:29:51,810 et fils et d'autres choses de fantaisie nous obtenir à peu de temps pour créer réellement 659 00:29:51,810 --> 00:29:53,840 quelque chose à partir de zéro. 660 00:29:53,840 --> 00:29:54,810 Jeu de mots. 661 00:29:54,810 --> 00:29:58,740 >> Maintenant, ce que je vais faire ici est cliquez sur pas le mouvement, mais le contrôle. 662 00:29:58,740 --> 00:30:01,400 Et ce n'est qu'un catégorisation des ici-- 663 00:30:01,400 --> 00:30:03,150 et je vois un autre jeu de couleurs de blocs. 664 00:30:03,150 --> 00:30:05,030 Mais remarquez quelques mots familiers. 665 00:30:05,030 --> 00:30:07,830 «Si» et «else if» et «répétition». 666 00:30:07,830 --> 00:30:10,440 Et vous pouvez probablement le deviner c'est penser de la branche, 667 00:30:10,440 --> 00:30:12,870 ou les conditions que nous avons vu, et même la construction de boucle. 668 00:30:12,870 --> 00:30:14,760 Nous avons donc des blocs similaires ici. 669 00:30:14,760 --> 00:30:16,720 Mais le plus intéressant on est celui-là. 670 00:30:16,720 --> 00:30:20,690 Quand ce drapeau vert est cliqué, ce, pour les personnes ayant programmation préalable 671 00:30:20,690 --> 00:30:23,110 l'expérience, est équivalent à une fonction principale. 672 00:30:23,110 --> 00:30:25,300 Mais pour ceux qui ne connaissent, c'est la pièce de puzzle 673 00:30:25,300 --> 00:30:27,320 qui va relancer l'ensemble de notre programme. 674 00:30:27,320 --> 00:30:31,350 Il signifie littéralement quand je vais, dans ce programme, et cliquez sur un flag-- vert 675 00:30:31,350 --> 00:30:35,560 que vous pouvez voir ici, dans la coin supérieur gauche de l'interface utilisateur, 676 00:30:35,560 --> 00:30:38,570 donc voir le drapeau vert à côté du panneau d'arrêt rouge? 677 00:30:38,570 --> 00:30:41,475 Lorsque je clique sur que mon programme va fonctionner. 678 00:30:41,475 --> 00:30:43,850 Maintenant, je vais faire quelque chose super simple avec Scratch. 679 00:30:43,850 --> 00:30:46,640 Je vais aller de l'avant et allez dans le panneau de regards 680 00:30:46,640 --> 00:30:50,010 ici, où j'ai un tas de pièces de puzzle pourpre, 681 00:30:50,010 --> 00:30:53,887 et je vais aller de l'avant et faire quelque chose de super simple, comme, par exemple. 682 00:30:53,887 --> 00:30:55,720 Et remarquez alors-- ce texte dans la case blanche 683 00:30:55,720 --> 00:30:59,290 est editable-- je vais dire "Bonjour tout le monde," tiens juste nous 684 00:30:59,290 --> 00:31:01,470 fait dans ce texte Version il ya un instant. 685 00:31:01,470 --> 00:31:05,920 Et maintenant, si je vais et cliquez sur ce drapeau vert, j'ai maintenant programmé. 686 00:31:05,920 --> 00:31:07,810 Ce n'est pas un particulier programme intéressant, 687 00:31:07,810 --> 00:31:09,760 mais j'ai fait l'ordinateur de faire quelque chose. 688 00:31:09,760 --> 00:31:13,120 J'ai commencé un programme et il fait ce que j'ai dit de faire. 689 00:31:13,120 --> 00:31:16,170 Maintenant, je peux continuer à faire glisser et déposer de plus en plus de ces pièces de puzzle 690 00:31:16,170 --> 00:31:19,220 et ils vont verrouiller, mais nous allons claque la terminologie ici 691 00:31:19,220 --> 00:31:21,680 que nous verrons récurrents tout au long du parcours, 692 00:31:21,680 --> 00:31:24,610 et vraiment tout au long de l'informatique et la programmation en général. 693 00:31:24,610 --> 00:31:27,990 >> Cette "dire" bloc, en violet, nous allons juste commencer à appeler un communiqué. 694 00:31:27,990 --> 00:31:29,240 C'est comme un état de fait. 695 00:31:29,240 --> 00:31:30,380 Pour ce faire. 696 00:31:30,380 --> 00:31:32,590 Donc, c'est une catégorie de instructions que vous 697 00:31:32,590 --> 00:31:36,760 pourraient alimenter un ordinateur dans le cadre d'un programme ou un algorithme. 698 00:31:36,760 --> 00:31:39,270 Et pour être clair, vous avez probablement pris pour acquis 699 00:31:39,270 --> 00:31:41,930 que vous avez des programmes sur votre ordinateur. 700 00:31:41,930 --> 00:31:45,850 Et ils sont un genre d'algorithmes, mais un programme est vraiment un tas d'algorithmes 701 00:31:45,850 --> 00:31:47,160 que certains humains ont écrit. 702 00:31:47,160 --> 00:31:49,040 Ils emballés vers le haut et ils les vendent pour vous, 703 00:31:49,040 --> 00:31:51,330 ou ils ont affiché sur un site Web que vous pouvez télécharger. 704 00:31:51,330 --> 00:31:54,930 Ainsi, un programme est juste un tas ensemble de zéros et de uns 705 00:31:54,930 --> 00:31:56,970 que, en quelque sorte, l'homme créé. 706 00:31:56,970 --> 00:32:00,080 Et ces modèles de zéros et ceux représentent des choses, en fin de compte, 707 00:32:00,080 --> 00:32:04,030 comme ou "play" dire bonjour monde " cette musique "ou" lire cette vidéo " 708 00:32:04,030 --> 00:32:05,129 ou "envoyer un e-mail." 709 00:32:05,129 --> 00:32:06,920 Mais nous y reviendrons dans façon plus détaillée ce que 710 00:32:06,920 --> 00:32:08,780 un programme, c'est quand vous, vous-même, les écrire. 711 00:32:08,780 --> 00:32:11,320 >> Voici un autre déclarer: "Attendez une seconde." 712 00:32:11,320 --> 00:32:14,330 Je n'ai pas utilisé encore, mais si je veux mon programme pour faire une pause pendant un moment 713 00:32:14,330 --> 00:32:16,540 de faire quelque chose, je peux dire que de le faire. 714 00:32:16,540 --> 00:32:18,450 Attendez une seconde. 715 00:32:18,450 --> 00:32:20,150 Maintenant, un autre pourrait être "des sons." 716 00:32:20,150 --> 00:32:23,270 Donc, ce qui est unique à gratter, il a la capacité de jouer des sons. 717 00:32:23,270 --> 00:32:26,130 Ainsi, une déclaration que je pourrais utilisation est, ici, "jouer son." 718 00:32:26,130 --> 00:32:29,530 Pendant ce temps, l'expression booléenne, si c'est un mot amateur 719 00:32:29,530 --> 00:32:34,490 nommé après seulement un gars nommé M. Bool, et tout cela est à propos d'une question. 720 00:32:34,490 --> 00:32:37,470 Vrai ou false-- est la souris vers le bas? 721 00:32:37,470 --> 00:32:41,100 Une expression booléenne est juste une expression en anglais 722 00:32:41,100 --> 00:32:42,860 c'est vrai ou faux. 723 00:32:42,860 --> 00:32:44,140 ON ou OFF. 724 00:32:44,140 --> 00:32:45,130 L'un ou zéro. 725 00:32:45,130 --> 00:32:46,960 Vous pouvez penser que c'est dans un certain nombre de façons, 726 00:32:46,960 --> 00:32:49,220 mais c'est vrai ou ce faux, en fin de compte. 727 00:32:49,220 --> 00:32:52,540 Ainsi, "la souris enfoncé point d'interrogation», ce serait une expression booléenne. 728 00:32:52,540 --> 00:32:54,300 Et vous pouvez en trouver d'autres, peut-être. 729 00:32:54,300 --> 00:32:57,510 Par exemple, "est le nombre de gauche de moins que le bon numéro? " 730 00:32:57,510 --> 00:32:59,410 Cela aussi serait une expression booléenne. 731 00:32:59,410 --> 00:33:01,540 «Moins de» est une expression booléenne. 732 00:33:01,540 --> 00:33:03,280 >> Celui-ci, aussi, «pointeur de la souris se toucher." 733 00:33:03,280 --> 00:33:05,196 Je ne sais pas pourquoi ils appelé pointeur de la souris. 734 00:33:05,196 --> 00:33:08,430 Cela signifie simplement, est le curseur, c'est le la flèche sur l'écran, toucher le chat, 735 00:33:08,430 --> 00:33:09,022 par exemple. 736 00:33:09,022 --> 00:33:10,480 Ou un autre aspect de l'écran. 737 00:33:10,480 --> 00:33:13,710 Et c'est une question, encore une fois, et qui représente une expression booléenne. 738 00:33:13,710 --> 00:33:17,130 Quelque chose que vous pourriez souhaitez utiliser dans un état. 739 00:33:17,130 --> 00:33:19,100 Donc, nous allons y venir dans un instant. 740 00:33:19,100 --> 00:33:20,350 Vous pouvez "et" des choses ensemble. 741 00:33:20,350 --> 00:33:23,099 Donc, si vous voulez vérifier si ce C'est le cas, et c'est le cas, 742 00:33:23,099 --> 00:33:25,580 vous pouvez utiliser un "et" bloc comme ça. 743 00:33:25,580 --> 00:33:26,850 Et voici cette condition. 744 00:33:26,850 --> 00:33:31,290 Remarquez la forme de la petite ouverture dans le haut de cette pièce du puzzle jaune, 745 00:33:31,290 --> 00:33:34,480 c'est qui rappelle la forme que nous venons de le voir, il ya un moment. 746 00:33:34,480 --> 00:33:37,920 Chacune de ces expressions booléennes que ces bords pointus 747 00:33:37,920 --> 00:33:39,030 sur la gauche et la droite. 748 00:33:39,030 --> 00:33:43,140 Et c'est parce que les gens du MIT ont décidé que par les formes de transport visuellement, 749 00:33:43,140 --> 00:33:45,780 vous pouvez sorte de aider les gens, les étudiants et les enfants, 750 00:33:45,780 --> 00:33:47,650 de sorte de remplir les blancs littéralement. 751 00:33:47,650 --> 00:33:49,780 >> Maintenant que puzzle-- que ouverture est un peu petite, 752 00:33:49,780 --> 00:33:52,750 et comme nous le verrons dans le programme, Scratch, il va grandir pour s'adapter. 753 00:33:52,750 --> 00:33:54,830 Il conserve sa forme, en fin de compte. 754 00:33:54,830 --> 00:33:58,350 Donc, une condition nous allons vous décidez "Dois-je faire quelque chose ou pas?" 755 00:33:58,350 --> 00:34:00,470 Une expression booléenne est la question réelle 756 00:34:00,470 --> 00:34:04,100 que vous utilisez pour décider ce que je vais à la gauche ou dois-je aller à droite 757 00:34:04,100 --> 00:34:06,710 quand je rencontre ce soi-disant bifurcation de la route? 758 00:34:06,710 --> 00:34:07,980 Vous pouvez avoir deux branches. 759 00:34:07,980 --> 00:34:10,909 Si quelque chose est vrai, faire ce, sinon aller de cette façon, 760 00:34:10,909 --> 00:34:14,590 ou vous pouvez simplement ne rien faire tout, comme ce bloc implicite. 761 00:34:14,590 --> 00:34:16,360 De même, nous pouvons nid ces choses. 762 00:34:16,360 --> 00:34:20,204 Donc, si vous voulez tripler fourchette dans la route, soit faire ceci ou ceci ou cela, 763 00:34:20,204 --> 00:34:21,870 il vous suffit de nid ces choses ensemble. 764 00:34:21,870 --> 00:34:24,520 Et il commence à faire un peu de laid, éventuellement, à coup sûr, 765 00:34:24,520 --> 00:34:26,120 mais la logique est toujours la même. 766 00:34:26,120 --> 00:34:28,000 Vous pouvez littéralement lire ce haut en bas 767 00:34:28,000 --> 00:34:33,290 et il dit ce qu'il désigne: si ce est vrai, faire cela, sinon si d'autre. 768 00:34:33,290 --> 00:34:36,179 >> Une boucle ne peut pas faire plus simple dans Scratch. 769 00:34:36,179 --> 00:34:37,422 Toujours faire ce qui suit. 770 00:34:37,422 --> 00:34:39,880 Maintenant, vous pourriez pensez-vous pas peut faire beaucoup parce qu'il n'y a pas 771 00:34:39,880 --> 00:34:42,839 l'espace entre le haut et le bas de l'ouverture de pièce de puzzle. 772 00:34:42,839 --> 00:34:45,671 Mais vous verrez Scratch va développer pour s'adapter à autant de pièces de puzzle 773 00:34:45,671 --> 00:34:47,060 que vous voulez entasser là. 774 00:34:47,060 --> 00:34:48,960 Une autre boucle peut être exprimé avec des répétitions. 775 00:34:48,960 --> 00:34:51,590 Si vous savez à l'avance ", je vouloir faire quelque chose 10 fois, " 776 00:34:51,590 --> 00:34:54,010 vous pouvez juste dire Scratch de faire quelque chose 10 fois. 777 00:34:54,010 --> 00:34:57,260 Et, en attendant, nous pouvons avoir des variables. 778 00:34:57,260 --> 00:34:59,572 Alors, voici un arbitraire, c'est orange dans ce cas, 779 00:34:59,572 --> 00:35:00,780 et il s'agit d'une visite éclair. 780 00:35:00,780 --> 00:35:04,540 Encore une fois, vous trouverez ce très accessible une fois que vous commencer à pointer et cliquer. 781 00:35:04,540 --> 00:35:07,930 J'ai nommé ma variable n, mais je aurait nommé il quelque chose que je veux, 782 00:35:07,930 --> 00:35:11,280 et je suis le mettre ici, dans cet exemple arbitraire, à zéro. 783 00:35:11,280 --> 00:35:14,250 >> Maintenant voir un programme comme bonjour monde n'est pas tout ce que convaincante, 784 00:35:14,250 --> 00:35:17,900 nous allons donc ouvrir effectivement quelque chose qu'un ancien étudiant fait. 785 00:35:17,900 --> 00:35:23,100 Permettez-moi aller de l'avant et d'ouvrir, par exemple, celui-là, 786 00:35:23,100 --> 00:35:26,780 pour lesquels j'aimerais d'avoir un bénévole. 787 00:35:26,780 --> 00:35:28,450 Très bien, comment about-- allons-y plus loin. 788 00:35:28,450 --> 00:35:29,240 Oui, venez sur place. 789 00:35:29,240 --> 00:35:30,056 Quel est votre nom? 790 00:35:30,056 --> 00:35:30,635 >> Abby: Abby. 791 00:35:30,635 --> 00:35:32,010 DAVID J. Malan: Abby, venez sur place. 792 00:35:32,010 --> 00:35:35,930 Donc, avez-vous déjà joué ce jeu avant? 793 00:35:35,930 --> 00:35:36,430 ABBY: Non 794 00:35:36,430 --> 00:35:37,370 DAVID J. Malan: Très bien. 795 00:35:37,370 --> 00:35:38,380 David, ravi de vous rencontrer. 796 00:35:38,380 --> 00:35:39,620 Come on over. 797 00:35:39,620 --> 00:35:42,300 Et quel est votre programmation arrière-plan, le cas échéant. 798 00:35:42,300 --> 00:35:43,914 >> ABBY: j'ai appris un certain C ++. 799 00:35:43,914 --> 00:35:45,580 DAVID J. Malan: Vous avez appris quelque C ++. 800 00:35:45,580 --> 00:35:48,382 Et quel est votre jeu jouer arrière-plan? 801 00:35:48,382 --> 00:35:49,505 >> ABBY: Pas beaucoup. 802 00:35:49,505 --> 00:35:51,130 DAVID J. Malan: OK, si nous en prenons. 803 00:35:51,130 --> 00:35:52,700 Alors, voici comment le jeu va travailler. 804 00:35:52,700 --> 00:35:54,510 Je vais aller de l'avant et cliquez sur le drapeau vert, qui 805 00:35:54,510 --> 00:35:55,830 est ici en haut à droite. 806 00:35:55,830 --> 00:35:59,710 Maintenant, votre prédécesseur dans la classe vous a donné quelques instructions ici. 807 00:35:59,710 --> 00:36:02,306 Et dans un moment, il dit "espace pour commencer." 808 00:36:02,306 --> 00:36:03,680 Alors allez-y et appuyez sur la barre d'espace. 809 00:36:03,680 --> 00:36:05,507 >> JEU INFORMATIQUE: Pikachu. 810 00:36:05,507 --> 00:36:08,340 DAVID J. Malan: Et le but est de attraper la nourriture, comme le montre, il 811 00:36:08,340 --> 00:36:09,320 sur la gauche. 812 00:36:09,320 --> 00:36:11,388 Et pour [inaudible] 813 00:36:11,388 --> 00:36:15,356 >> [JEU MUSIQUE LECTURE] 814 00:36:15,356 --> 00:36:27,280 815 00:36:27,280 --> 00:36:29,610 >> DAVID J. Malan: Aww, ainsi, merci pour la lecture. 816 00:36:29,610 --> 00:36:32,800 Nous avons ici un peu séparer cadeau pour vous. 817 00:36:32,800 --> 00:36:35,574 Nous avons CS50 balle anti-stress, si vous souhaitez choisir. 818 00:36:35,574 --> 00:36:36,820 Très bien, bon de vous rencontrer. 819 00:36:36,820 --> 00:36:39,680 Merci d'être venu et de contester. 820 00:36:39,680 --> 00:36:42,410 821 00:36:42,410 --> 00:36:46,910 Donc, nous avons plus de balles anti-stress, de sorte Faisons un exemple de plus à motiver. 822 00:36:46,910 --> 00:36:48,150 Un volontaire? 823 00:36:48,150 --> 00:36:50,510 Très bien, que diriez-vous ici en face. 824 00:36:50,510 --> 00:36:51,250 Quel est votre nom? 825 00:36:51,250 --> 00:36:51,660 >> PHILLIP: Phillip. 826 00:36:51,660 --> 00:36:52,660 >> DAVID J. Malan: Phillip. 827 00:36:52,660 --> 00:36:54,530 Venez sur place, Phillip. 828 00:36:54,530 --> 00:36:57,340 Donc, Phillip va être exposés à un autre jeu 829 00:36:57,340 --> 00:37:00,840 que l'un de vos prédécesseurs écrit dans le cadre du problème mis à zéro, 830 00:37:00,840 --> 00:37:03,510 appelé Hardest Game Ivy. 831 00:37:03,510 --> 00:37:05,980 Et nous verrons en seulement instant ce qui voulait dire par là. 832 00:37:05,980 --> 00:37:07,400 Phillip, nice to meet you. 833 00:37:07,400 --> 00:37:09,060 Quel est votre parcours? 834 00:37:09,060 --> 00:37:10,310 PHILLIP: Fait beaucoup de codage. 835 00:37:10,310 --> 00:37:11,110 Fait un peu de jeu, aussi. 836 00:37:11,110 --> 00:37:11,570 >> DAVID J. Malan: OK. 837 00:37:11,570 --> 00:37:12,620 Vous avez beaucoup de jeu, trop. 838 00:37:12,620 --> 00:37:14,230 Et avez-vous joué à ce jeu avant? 839 00:37:14,230 --> 00:37:14,730 >> PHILLIP: Non 840 00:37:14,730 --> 00:37:16,438 DAVID J. Malan: Tous droite, alors allons-y. 841 00:37:16,438 --> 00:37:18,434 Je vais aller de l'avant et cliquez sur le drapeau vert. 842 00:37:18,434 --> 00:37:24,160 >> [GAME MUSIC] 843 00:37:24,160 --> 00:37:27,770 >> [MUSIQUE MC HAMMER, "U NE PEUT PAS TOUCHER CE"] 844 00:37:27,770 --> 00:38:39,790 845 00:38:39,790 --> 00:38:41,635 >> PHILLIP: [inaudible] 846 00:38:41,635 --> 00:38:42,760 DAVID J. Malan: [inaudible] 847 00:38:42,760 --> 00:38:44,740 PHILLIP: [inaudible] 848 00:38:44,740 --> 00:38:49,056 [Rire] 849 00:38:49,056 --> 00:38:50,680 [MUSIQUE MC HAMMER, "U NE PEUT PAS TOUCHER CE"] 850 00:38:50,680 --> 00:38:52,660 DAVID J. Malan: [inaudible] Labourer à travers elle. 851 00:38:52,660 --> 00:38:54,094 PHILLIP: [inaudible] 852 00:38:54,094 --> 00:38:55,135 DAVID J. Malan: Allez-y. 853 00:38:55,135 --> 00:39:01,570 [MUSIQUE MC HAMMER, "U NE PEUT PAS TOUCHER CE"] 854 00:39:01,570 --> 00:39:15,832 855 00:39:15,832 --> 00:39:16,915 DAVID J. Malan: Très bien. 856 00:39:16,915 --> 00:39:18,400 Félicitations. 857 00:39:18,400 --> 00:39:25,150 >> [Applaudissements] 858 00:39:25,150 --> 00:39:27,330 >> DAVID J. Malan: Nous allons après que plus tard en ligne afin 859 00:39:27,330 --> 00:39:29,820 que vous pouvez remettre à plus tard avec elle ainsi. 860 00:39:29,820 --> 00:39:32,550 Princeton est à côté, après que. 861 00:39:32,550 --> 00:39:35,470 >> Alors maintenant, nous allons effectivement procéder à partir de zéro, 862 00:39:35,470 --> 00:39:39,310 pour ainsi dire, et fait construire jusqu'à nous pouvons démêler certaines de ces idées 863 00:39:39,310 --> 00:39:41,970 et arriver à quelque chose d'encore plus complexe par la fin. 864 00:39:41,970 --> 00:39:45,240 Je vais aller ici et je vais à aller de l'avant et créer un nouveau fichier. 865 00:39:45,240 --> 00:39:47,460 Encore une fois, le jeu de problème marcher vous à travers certaines de ces étapes. 866 00:39:47,460 --> 00:39:49,300 Mais, je n'ai fait feu dans le menu Fichier et je 867 00:39:49,300 --> 00:39:52,760 dit «nouveau», tant comme Microsoft Word, ou tout autre programme de ce genre. 868 00:39:52,760 --> 00:39:56,630 >> Et nous allons aller de l'avant et nous maintenant-- mis en œuvre "Bonjour tout le monde" Il ya un moment, 869 00:39:56,630 --> 00:39:58,410 mais nous allons faire quelque chose d'un peu plus mignon. 870 00:39:58,410 --> 00:40:00,150 Je vais aller à des événements. 871 00:40:00,150 --> 00:40:02,350 Et je vais faire "quand drapeau vert cliqué ". 872 00:40:02,350 --> 00:40:05,830 Et puis je vais utiliser, dirons-nous, une branche. 873 00:40:05,830 --> 00:40:07,610 Donc, je vais utiliser un "si" état. 874 00:40:07,610 --> 00:40:10,940 Et remarquez comment dès que je m'approche lui, il veut s'emboîtent. 875 00:40:10,940 --> 00:40:13,020 Donc, je laisse aller et qu'il se mette ensemble. 876 00:40:13,020 --> 00:40:15,150 Et maintenant, je peux faire quelque chose d'intéressant. 877 00:40:15,150 --> 00:40:19,150 Si je faire défiler ici, je vais de voir tout un tas de blocs. 878 00:40:19,150 --> 00:40:22,620 Si je vais à des «données» - laissez-moi un zoom in-- il ya quelque chose à propos des variables. 879 00:40:22,620 --> 00:40:26,160 Si je vais à "mouvement", vous pouvez apparemment changer les choses. 880 00:40:26,160 --> 00:40:28,760 Si je vais à des «opérateurs» - oh, ce qui est intéressant, 881 00:40:28,760 --> 00:40:31,000 Je peux choisir un nombre aléatoire. 882 00:40:31,000 --> 00:40:34,119 Permettez-moi de faire quelque chose avec seulement une certaine probabilité, juste parce que. 883 00:40:34,119 --> 00:40:36,160 Je vais aller de l'avant et glisser ce morceau de puzzle, 884 00:40:36,160 --> 00:40:37,910 ce qui est inférieur à bloc, donc c'est juste 885 00:40:37,910 --> 00:40:39,480 "Est ce nombre inférieur à celui-là?" 886 00:40:39,480 --> 00:40:42,438 Mais je ne veux pas coder en dur un certain nombre parce que ce serait assez inutile. 887 00:40:42,438 --> 00:40:46,270 Je vais donc faire glisser cette pièce ici, et remarquez comment il s'enclenche, 888 00:40:46,270 --> 00:40:49,480 et maintenant laissez-moi aller de l'avant et de dire «si le nombre qui est choisi au hasard 889 00:40:49,480 --> 00:40:51,820 est inférieur à six, procédez comme suit. " 890 00:40:51,820 --> 00:40:52,790 Maintenant, pourquoi moins de six ans? 891 00:40:52,790 --> 00:40:56,400 Qu'est-ce que la probabilité est ce efficace va me donner, juste intuitivement? 892 00:40:56,400 --> 00:40:57,440 Environ 50%, non? 893 00:40:57,440 --> 00:41:01,190 Si le nombre que peut deviner au hasard entre 1 et 10 est inférieur à six, 894 00:41:01,190 --> 00:41:03,480 clairement que c'est un, deux, trois, quatre, ou cinq. 895 00:41:03,480 --> 00:41:06,740 Et si cela va me donner un 50% de probabilité de ce qui se passe? 896 00:41:06,740 --> 00:41:09,890 >> Eh bien nous allons faire quelque chose comme ce, "jouer son miaulement." 897 00:41:09,890 --> 00:41:11,750 Et remarquez, encore une fois, la pièce du puzzle se développe 898 00:41:11,750 --> 00:41:13,700 pour s'adapter, tant que les formes correspondent. 899 00:41:13,700 --> 00:41:14,910 C'est ce qui est important. 900 00:41:14,910 --> 00:41:18,000 Permettez-moi de passer à rayures ici et cliquez sur «jouer». 901 00:41:18,000 --> 00:41:19,300 Rien ne se passe. 902 00:41:19,300 --> 00:41:21,160 Est-ce un bug? 903 00:41:21,160 --> 00:41:21,999 Non, pas nécessaire. 904 00:41:21,999 --> 00:41:24,040 Il pourrait juste être qu'un plus grand nombre a été choisi. 905 00:41:24,040 --> 00:41:25,762 Alors faisons-le à nouveau. 906 00:41:25,762 --> 00:41:27,550 Rien. 907 00:41:27,550 --> 00:41:28,344 >> [Miaou] 908 00:41:28,344 --> 00:41:29,510 DAVID J. Malan: Il est là. 909 00:41:29,510 --> 00:41:30,280 [Miaou] 910 00:41:30,280 --> 00:41:31,690 DAVID J. Malan: Encore une fois. 911 00:41:31,690 --> 00:41:32,300 Non. 912 00:41:32,300 --> 00:41:32,922 >> [Miauler] 913 00:41:32,922 --> 00:41:35,380 DAVID J. Malan: Donc, si vous avez jamais joué à un jeu, bien sûr, 914 00:41:35,380 --> 00:41:38,500 où des choses se passe au hasard, comme les méchants sont à venir ou pas 915 00:41:38,500 --> 00:41:41,350 venir à l'écran, ou les choses sont en baisse ou ne relevant pas, 916 00:41:41,350 --> 00:41:43,610 c'est juste parce que quelque chose de super simple comme ce qui se passe. 917 00:41:43,610 --> 00:41:46,010 Choisissez un nombre aléatoire, et si c'est moins à une certaine valeur, 918 00:41:46,010 --> 00:41:49,100 peut-être le faire ou peut-être le faire. 919 00:41:49,100 --> 00:41:51,340 Nous pouvons intégrer que dans un état. 920 00:41:51,340 --> 00:41:52,600 Faisons quelque chose de différent. 921 00:41:52,600 --> 00:41:53,559 >> Permettez-moi de jeter l'enlever. 922 00:41:53,559 --> 00:41:56,058 Vous pouvez vous débarrasser de choses par juste glisser vers la gauche 923 00:41:56,058 --> 00:41:56,810 et le lâcher prise. 924 00:41:56,810 --> 00:42:00,310 Permettez-moi d'aller de l'avant et faire un bloc pour toujours et faire très vite quelque chose de gênant. 925 00:42:00,310 --> 00:42:03,010 Permettez-moi d'aller de l'avant et dire «jouer son miaulement." 926 00:42:03,010 --> 00:42:06,620 Mais je ne veux pas que ce soit trop ennuyeux, alors laissez-moi prendre ce bloc, 927 00:42:06,620 --> 00:42:09,090 "Attendre une seconde,» et avis il n'y a plus de place pour elle. 928 00:42:09,090 --> 00:42:11,310 Mais si vous allez assez proche, il veut y aller. 929 00:42:11,310 --> 00:42:14,100 Donc, je laisse aller et il va grandir pour remplir le bloc. 930 00:42:14,100 --> 00:42:15,932 Alors maintenant, il s'agit d'une boucle. 931 00:42:15,932 --> 00:42:16,432 [Miauler] 932 00:42:16,432 --> 00:42:18,473 DAVID J. Malan: Je suis faire littéralement ce pour toujours. 933 00:42:18,473 --> 00:42:19,360 Encore et encore. 934 00:42:19,360 --> 00:42:21,510 Ce n'est tout simplement pas son naturel. 935 00:42:21,510 --> 00:42:24,800 Permettez-moi d'aller de l'avant et changer ce à pas une seconde, deux secondes 936 00:42:24,800 --> 00:42:25,854 et appuyez sur Entrée. 937 00:42:25,854 --> 00:42:28,770 Et ce qui est bien sur Scratch est que vous pouvez programmer de manière interactive. 938 00:42:28,770 --> 00:42:32,450 Faire un changement, peut-être appuyez sur Entrée ou Lecture encore une fois, et il va juste continuer. 939 00:42:32,450 --> 00:42:34,962 Eh bien, maintenant, pourquoi faisons-nous pas quelque chose d'un peu plus mignon? 940 00:42:34,962 --> 00:42:39,680 Plutôt que de tout faire à partir de zéro, laissez-moi aller de l'avant et d'ouvrir une avance 941 00:42:39,680 --> 00:42:43,180 fait un, que je pré-cuit, appelé "Pet Cat." 942 00:42:43,180 --> 00:42:44,920 Et nous afficherons tous ces fichiers en ligne, 943 00:42:44,920 --> 00:42:48,464 et problème réglé zéro, vous dira comment y accéder et de les ouvrir. 944 00:42:48,464 --> 00:42:49,880 Et remarquez, c'est assez simple. 945 00:42:49,880 --> 00:42:53,860 Mais au préalable, il me semble avoir saisi un bloc "pour toujours", si j'ai une boucle. 946 00:42:53,860 --> 00:42:55,500 Et puis j'ai un "si" état. 947 00:42:55,500 --> 00:42:57,410 J'ai une expression booléenne. 948 00:42:57,410 --> 00:43:00,100 >> Donc, en anglais, tout en regardant ce, surtout si vous n'avez jamais 949 00:43:00,100 --> 00:43:04,278 programmé, juste intuitivement, ce qui est ce que cela va faire, ce programme? 950 00:43:04,278 --> 00:43:06,910 >> [PUBLIC CHATTER] 951 00:43:06,910 --> 00:43:09,960 >> DAVID J. Malan: Si vous caressez le chat, le chat va miauler, non? 952 00:43:09,960 --> 00:43:14,560 Parce que «décochant toujours» est le pointeur de la souris de toucher le chat. 953 00:43:14,560 --> 00:43:17,630 Donc, pour être clair, et je n'ai pas dit cela avant, tous ces casse-tête 954 00:43:17,630 --> 00:43:20,750 pièces et que le script nous les avons regroupées en, 955 00:43:20,750 --> 00:43:25,510 pour ainsi dire, un script est synonyme de programme, vraiment, appartient à ce chat. 956 00:43:25,510 --> 00:43:30,110 Et la raison is-- parce avis comment ce même chat ici est mis en évidence, 957 00:43:30,110 --> 00:43:32,710 ici vous pouvez créer un deuxième chat ou un chien ou vraiment 958 00:43:32,710 --> 00:43:33,970 tout ce que vous voulez graphiquement. 959 00:43:33,970 --> 00:43:35,900 Vous pouvez importer quelque chose à partir de Photoshop, ou similaire, 960 00:43:35,900 --> 00:43:38,300 et d'intégrer quelque chose si vous vouloir en faire un projet. 961 00:43:38,300 --> 00:43:40,174 Et ce que vous trouverez, en fin de compte, c'est que vous 962 00:43:40,174 --> 00:43:44,800 peut ajouter des scripts, ajouter casse-tête pièces, à des caractères individuels. 963 00:43:44,800 --> 00:43:47,210 Voilà donc tous appartenir à ce chat en particulier. 964 00:43:47,210 --> 00:43:51,770 Alors maintenant, si je vais de l'avant et de jouer ce programme, rien ne se passe. 965 00:43:51,770 --> 00:43:52,970 Mais il est en marche. 966 00:43:52,970 --> 00:43:56,364 Le programme est dans cette boucle pour toujours, genre d'attendre ce que se produise? 967 00:43:56,364 --> 00:43:57,230 >> [PUBLIC CHATTER] 968 00:43:57,230 --> 00:43:58,130 >> DAVID J. Malan: Pet chat. 969 00:43:58,130 --> 00:43:59,800 Donc, si je déplace ma souris vers him-- 970 00:43:59,800 --> 00:44:02,420 >> [Miauler] 971 00:44:02,420 --> 00:44:04,450 >> DAVID J. Malan: Alors maintenant, Je caresser le chat. 972 00:44:04,450 --> 00:44:07,330 Pendant ce temps, nous pouvons avoir une double branche. 973 00:44:07,330 --> 00:44:10,370 Permettez-moi d'aller de l'avant et ouvrir jusqu'à ne pas caresser le chat. 974 00:44:10,370 --> 00:44:12,160 Nous publierons cette ligne aussi bien. 975 00:44:12,160 --> 00:44:16,760 C'est un peu plus complexe, mais sans dire 976 00:44:16,760 --> 00:44:18,780 vous pouvez le deviner peut-être qu'est-ce qui va se passer. 977 00:44:18,780 --> 00:44:20,160 >> [Miauler] 978 00:44:20,160 --> 00:44:23,900 >> DAVID J. Malan: Cat est miauler, grand vieux temps. 979 00:44:23,900 --> 00:44:26,690 Mais ce programme est bien sûr appelé "Ne pas caresser le chat," 980 00:44:26,690 --> 00:44:29,350 si clairement, je veux caresser le chat. 981 00:44:29,350 --> 00:44:30,490 >> [ROARING] 982 00:44:30,490 --> 00:44:31,940 >> DAVID J. Malan: Ne pas caresser le chat. 983 00:44:31,940 --> 00:44:34,230 Maintenant, nous allons jeter un coup d'oeil un autre exemple ici. 984 00:44:34,230 --> 00:44:38,035 Celui-ci sera appelé "Salut, Salut, Salut," pour des raisons 985 00:44:38,035 --> 00:44:40,410 ce sera clair, parce que dès que je lance ce chose-- 986 00:44:40,410 --> 00:44:41,401 >> [SCEAU BARKING] 987 00:44:41,401 --> 00:44:43,942 DAVID J. Malan: Très facile à écrire des programmes à gratter ennuyeux. 988 00:44:43,942 --> 00:44:45,300 [SCEAU BARKING] 989 00:44:45,300 --> 00:44:48,540 DAVID J. Malan: Maintenant, nous n'irons pas dans le détail de tout cela, 990 00:44:48,540 --> 00:44:51,150 mais il faut noter qu'il ya une quelques nouvelles fonctionnalités ici. 991 00:44:51,150 --> 00:44:55,540 Il ya une variable, appelé «coupé» et puis il ya un tas de conditions. 992 00:44:55,540 --> 00:44:57,900 Et pour l'instant, permettez-moi juste te taquiner en disant 993 00:44:57,900 --> 00:45:03,170 que si ce gars est trop ennuyeux, Je peux frapper la barre d'espace et il s'arrête. 994 00:45:03,170 --> 00:45:05,880 Parce que le rôle joué par ces deux scénarios se présente comme suit. 995 00:45:05,880 --> 00:45:08,510 L'un d'eux est en train de faire la aboyer toutes les quelques secondes. 996 00:45:08,510 --> 00:45:11,305 L'autre attend juste pour moi de frapper la barre d'espace. 997 00:45:11,305 --> 00:45:14,780 Et si je le fais frapper la barre d'espace, il va changer 998 00:45:14,780 --> 00:45:18,096 l'état de la variable, la valeur de cette variable, c'est apparemment 999 00:45:18,096 --> 00:45:20,470 appelé «coupé," Je n'ai pas appelé il quelque chose d'ennuyeux comme n, 1000 00:45:20,470 --> 00:45:22,370 Je l'ai appelé un mot anglais, «en sourdine». 1001 00:45:22,370 --> 00:45:24,740 De 1 à 0 ou de 0 à 1. 1002 00:45:24,740 --> 00:45:26,830 De true à false ou false à true. 1003 00:45:26,830 --> 00:45:28,930 Et si vous pouvez réellement voir maintenant, que vous 1004 00:45:28,930 --> 00:45:31,720 pourrait avoir deux scripts, deux programmes en cours d'exécution simultanément, 1005 00:45:31,720 --> 00:45:34,360 et deux d'entre eux pourraient être assis dans une boucle de faire quelque chose. 1006 00:45:34,360 --> 00:45:38,067 En attente de l'être humain à faire quelque chose comme frapper la barre d'espace. 1007 00:45:38,067 --> 00:45:38,650 [SCEAU BARKING] 1008 00:45:38,650 --> 00:45:40,566 DAVID J. Malan: Et maintenant il est sur son chemin. 1009 00:45:40,566 --> 00:45:41,640 [SCEAU BARKING] 1010 00:45:41,640 --> 00:45:45,220 DAVID J. Malan: Alors quoi d'autre pourrions-nous faire avec ces exemples? 1011 00:45:45,220 --> 00:45:50,920 Eh bien, allons-y et faire un exemple avec de compter les moutons. 1012 00:45:50,920 --> 00:45:59,210 Nous allons continuer ce long des lignes ici de-- Ouvrons l'exemple de moutons. 1013 00:45:59,210 --> 00:46:02,460 Et remarquez, tout comme avant, celui-ci, heureusement, est un peu moins ennuyeux. 1014 00:46:02,460 --> 00:46:06,940 Une fois que j'ai touché jouer ici-- Oh non, ce n'est ennuyeux. 1015 00:46:06,940 --> 00:46:10,130 Il va baa avec une certaine probabilité. 1016 00:46:10,130 --> 00:46:11,050 Jouons ce message. 1017 00:46:11,050 --> 00:46:15,221 >> [MOUTON BLEETING] 1018 00:46:15,221 --> 00:46:18,470 DAVID J. Malan: La seule différence est nous avons changé le costume, pour ainsi dire, 1019 00:46:18,470 --> 00:46:21,710 et nous réduire de moitié et dire que ce nombre réel est. 1020 00:46:21,710 --> 00:46:24,680 Eh bien nous allons aller de l'avant et prendre un peu plus loin. 1021 00:46:24,680 --> 00:46:28,190 Et laissez-moi vous taquine avec une autre caractéristique ici. 1022 00:46:28,190 --> 00:46:31,800 Allons de l'avant et d'ouvrir un programme appelé Threads. 1023 00:46:31,800 --> 00:46:36,620 Tant et si bien que vous pouvez avoir un sprite, ayant plusieurs scripts, 1024 00:46:36,620 --> 00:46:41,250 vous pouvez avoir deux sprites, un oiseau dans un chat, chacun ayant son propre script. 1025 00:46:41,250 --> 00:46:43,976 Et chacun d'entre eux peut fonctionner simultanément. 1026 00:46:43,976 --> 00:46:45,980 Si vous avez déjà entendu l' mot «multithreading» 1027 00:46:45,980 --> 00:46:49,240 un ordinateur est le moyen "multithread" il peut faire plusieurs choses à la fois, 1028 00:46:49,240 --> 00:46:50,880 et, en effet, ne peut donc Scratch. 1029 00:46:50,880 --> 00:46:52,690 >> Et maintenant, remarquez l'oiseau est un peu idiot. 1030 00:46:52,690 --> 00:46:55,100 C'est juste faire les choses au hasard, rebondissant sur l'écran. 1031 00:46:55,100 --> 00:46:59,460 Il est clair que le chat a été programmé d'avoir genre de capacités qui cherchent 1032 00:46:59,460 --> 00:47:02,680 à la maison dans l'oiseau parce il a toujours le pointant du doigt. 1033 00:47:02,680 --> 00:47:06,176 Jusqu'à ce que finalement, il attrape l'oiseau réel. 1034 00:47:06,176 --> 00:47:08,550 Donc, je ne m'attarderai pas sur les détails ici, mais vous pouvez sorte de 1035 00:47:08,550 --> 00:47:12,160 entrevoir les mêmes formes, certains "Si" les conditions, certaines variables, 1036 00:47:12,160 --> 00:47:15,740 peut-être quelques boucles, sont en fin de compte faire la même chose. 1037 00:47:15,740 --> 00:47:18,400 >> Maintenant, laissez-moi aller de l'avant et ouvrir jusqu'à tout autre chose, 1038 00:47:18,400 --> 00:47:20,920 pour taquiner certains d'entre vous, en particulier ceux qui sont plus à l'aise, 1039 00:47:20,920 --> 00:47:22,760 ce que vous pouvez réellement faire avec cela. 1040 00:47:22,760 --> 00:47:26,080 Je vais aller de l'avant et ouvrir Bouton ici. 1041 00:47:26,080 --> 00:47:28,740 Et c'est super programme simple en apparence, 1042 00:47:28,740 --> 00:47:34,190 mais attention ce qui se passe quand I-- regarder ce 1043 00:47:34,190 --> 00:47:39,860 qui se passe quand j'ouvre cette version de celui-ci, ici dans le navigateur, scratch.mit.edu. 1044 00:47:39,860 --> 00:47:43,460 Et quand je clique sur ce grand rouge bouton, notez ce qui se passe. 1045 00:47:43,460 --> 00:47:46,110 1046 00:47:46,110 --> 00:47:47,647 Alors qu'est-ce qui se passe ici? 1047 00:47:47,647 --> 00:47:50,480 Il ya effectivement beaucoup plus de complexité passe sous le capot, 1048 00:47:50,480 --> 00:47:52,896 même si j'ai mis en œuvre ce, ou franchement, Dan Bradley 1049 00:47:52,896 --> 00:47:54,660 a mis en place ce si simple. 1050 00:47:54,660 --> 00:47:59,540 Il a conçu un puzzle personnalisé Scratch pièce, connue comme une extension de Scratch, 1051 00:47:59,540 --> 00:48:01,300 il l'a appelé à bascule. 1052 00:48:01,300 --> 00:48:06,332 >> Et ce Basculer fait est qu'il envoie un message sur Internet. 1053 00:48:06,332 --> 00:48:08,290 Et ce message se semble un peu obscur. 1054 00:48:08,290 --> 00:48:10,248 Mais cela aussi, vous aurez comprendre à la fin de terme. 1055 00:48:10,248 --> 00:48:14,930 Le message qu'il a fait envoyer regarde un petit quelque chose de ce genre. 1056 00:48:14,930 --> 00:48:15,921 C'est juste le texte. 1057 00:48:15,921 --> 00:48:16,420 Cryptic. 1058 00:48:16,420 --> 00:48:19,130 Vous l'aurez compris par le temps nous obtenons le problème réglé sept. 1059 00:48:19,130 --> 00:48:22,180 C'est juste l'envoi d'un message textuel sur Internet à un serveur. 1060 00:48:22,180 --> 00:48:24,330 Et ce serveur est, en définitive, parler à cette ampoule, qui 1061 00:48:24,330 --> 00:48:27,240 a l'une de ces ampoules fantaisie en ce que, lui-même, parle 1062 00:48:27,240 --> 00:48:30,760 à la connexion Wi-Fi dans le réseau ici, où un dispositif local vers le bas ici-- 1063 00:48:30,760 --> 00:48:34,400 et, finalement, c'est fait tournant que la lumière sur et en dehors. 1064 00:48:34,400 --> 00:48:36,240 Mais nous pouvons faire plus choses intéressantes encore. 1065 00:48:36,240 --> 00:48:38,270 Remarquez ce que Dan a également fait pour nous. 1066 00:48:38,270 --> 00:48:42,210 Il a fait plusieurs sprites, chacun des qui a un script en attente d'un clic. 1067 00:48:42,210 --> 00:48:44,030 Et si je clique rouge, il passe au rouge. 1068 00:48:44,030 --> 00:48:46,780 Si je reçois bleu, il va bleuâtre. 1069 00:48:46,780 --> 00:48:49,854 Vert, jaune, orange. 1070 00:48:49,854 --> 00:48:52,520 Et tout cela se passe par va sortir sur l'Internet, 1071 00:48:52,520 --> 00:48:54,690 reculer ici pour le ampoule, sur et en dehors. 1072 00:48:54,690 --> 00:48:57,981 >> Et si vous pouvez it-- croyez et ce n'est peut-être l'un des plus complexes Scratch 1073 00:48:57,981 --> 00:49:00,930 projets quelqu'un a implemented-- il l'a fait, en toute équité, en un jour. 1074 00:49:00,930 --> 00:49:04,180 Et c'est le défi que nous avons jeté bas Dan quand nous avons vu que les ampoules binaires, 1075 00:49:04,180 --> 00:49:05,810 nous avons Scratch, comment pouvons-nous les combiner? 1076 00:49:05,810 --> 00:49:08,410 Et, en effet, ce qui est absolument quelque chose de quelqu'un dans cette salle 1077 00:49:08,410 --> 00:49:14,250 pourrait faire par la end-- de semestre Est-il ampoules binaires réimplémentées l'aide 1078 00:49:14,250 --> 00:49:18,310 la même interface qui était sur notre iPad mercredi. 1079 00:49:18,310 --> 00:49:22,000 Alors que maintenant, si je fait cliquez sur le signe plus ici, 1080 00:49:22,000 --> 00:49:25,250 nous avons une, deux, trois. 1081 00:49:25,250 --> 00:49:27,550 Je peux frapper la 16 et tourner celle-là sur. 1082 00:49:27,550 --> 00:49:29,440 128, et ainsi de suite. 1083 00:49:29,440 --> 00:49:31,250 >> Maintenant, si cela a seul et soufflé votre esprit, 1084 00:49:31,250 --> 00:49:35,680 vous pouvez faire des choses beaucoup plus accessible, n'impliquant pas certainement tout matériel. 1085 00:49:35,680 --> 00:49:38,320 Des choses sur l'écran lui-même. 1086 00:49:38,320 --> 00:49:41,110 Et, en effet, ce que la plupart des étudiants finir par faire une sorte de jeu, 1087 00:49:41,110 --> 00:49:44,600 un morceau de travail artistique, ou une sorte d'animation interactive. 1088 00:49:44,600 --> 00:49:47,352 Et je vais vous dire une de notre favoris a été celui-ci. 1089 00:49:47,352 --> 00:49:49,060 Et j'ai pensé que si nous pourrait éteindre les lumières, 1090 00:49:49,060 --> 00:49:52,960 nous allons jeter un coup d'œil à cette finale projet Scratch en conclusion. 1091 00:49:52,960 --> 00:49:57,460 Mais ce que vous devez garder à l'esprit, comme Je peux vous taquiner avec un dernier détail, 1092 00:49:57,460 --> 00:49:59,140 sectionnement commencera la semaine prochaine. 1093 00:49:59,140 --> 00:50:00,830 Heures d'ouverture commencera la semaine prochaine. 1094 00:50:00,830 --> 00:50:04,410 Problème réglé zéro sera affiché CS50.harvard.edu plus tard aujourd'hui. 1095 00:50:04,410 --> 00:50:06,430 Et vous serez accueillis en problème posé zéro 1096 00:50:06,430 --> 00:50:10,070 à son propre Zamyla Chan CS50, qui La plupart des guides de notre soluces. 1097 00:50:10,070 --> 00:50:11,952 Ce sont des vidéos intégrées dans les ensembles de problèmes 1098 00:50:11,952 --> 00:50:15,160 qui tiendra votre main à travers un grand nombre de la configuration initiale et à travers de nombreux 1099 00:50:15,160 --> 00:50:16,570 des décisions de conception possibles. 1100 00:50:16,570 --> 00:50:19,570 Donc, si vous avez déjà eu cette émotion quand ramasser un devoir 1101 00:50:19,570 --> 00:50:21,030 et je me demandais, où dois-je commencer? 1102 00:50:21,030 --> 00:50:23,510 Elle aura cette réponse pour vous. 1103 00:50:23,510 --> 00:50:27,720 Et maintenant, un programme définitif d'un de vos prédécesseurs 1104 00:50:27,720 --> 00:50:30,659 en réponse à la question "Que dit le renard?" 1105 00:50:30,659 --> 00:50:32,242 [MUSIQUE YLVIS, "QU'EST-CE QUE LE RENARD SAY?] 1106 00:50:32,242 --> 00:50:40,178 1107 00:50:40,178 --> 00:50:41,666 >> YLVIS: (CHANT) Dog va trame. 1108 00:50:41,666 --> 00:50:43,650 Chat va miauler. 1109 00:50:43,650 --> 00:50:47,520 Oiseau va tweet et la souris va grincer. 1110 00:50:47,520 --> 00:50:49,240 Vache va moo. 1111 00:50:49,240 --> 00:50:51,690 Frog va crever. 1112 00:50:51,690 --> 00:50:54,630 Et l'éléphant va siffler. 1113 00:50:54,630 --> 00:50:59,040 Canards disent charlatan et les poissons vont blub. 1114 00:50:59,040 --> 00:51:07,370 Et le joint va ow ow ow, mais il ya un son que personne ne sait, 1115 00:51:07,370 --> 00:51:10,330 que dit le renard? 1116 00:51:10,330 --> 00:51:11,020 Et 1117 00:51:11,020 --> 00:51:12,478 >> DAVID J. Malan: C'est tout pour CS50. 1118 00:51:12,478 --> 00:51:15,436 Nous allons vous voir à Puzzle Day et le lundi. 1119 00:51:15,436 --> 00:51:16,424 >> [Applaudissements] 1120 00:51:16,424 --> 00:51:19,882 >> [MUSIQUE YLVIS, "QUOI LE FOX dire?"] 1121 00:51:19,882 --> 00:51:24,840 1122 00:51:24,840 --> 00:51:28,820 >> Narrateur: Et maintenant profonde pensées, par Daven Farnham. 1123 00:51:28,820 --> 00:51:31,770 1124 00:51:31,770 --> 00:51:34,570 Aujourd'hui j'ai été touché dans le face avec un annuaire téléphonique. 1125 00:51:34,570 --> 00:51:38,160 Confondre, comme je suis à la maison à regarder en ligne. 1126 00:51:38,160 --> 00:51:42,528