1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [MUSIQUE ROCK] 2 00:00:32,435 --> 00:00:35,429 [MUSIQUE - "HAPPY TOGETHER" LES TORTUES] 3 00:01:27,330 --> 00:01:30,170 DAVID MALAN: Aujourd'hui, nous commençons notre exploration de la 4 00:01:30,170 --> 00:01:32,710 fondamentaux de l'informatique et notre introduction, 5 00:01:32,710 --> 00:01:35,070 maintenant, à l'art de la programmation, dont c'est 6 00:01:35,070 --> 00:01:36,260 juste un exemple. 7 00:01:36,260 --> 00:01:39,600 Mais dans la même veine de la résolution de problèmes, sachez que 8 00:01:39,600 --> 00:01:42,080 Jour CS50 Casse-tête classique, c'est demain. 9 00:01:42,080 --> 00:01:45,190 Si vous n'avez pas encore RSVPed pour cet événement, vous pouvez aller à 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Vous pouvez apporter des équipes de deux, trois ou quatre. 12 00:01:50,940 --> 00:01:53,080 Vous serez appelé à des problèmes tels que celui que vous avez vu 13 00:01:53,080 --> 00:01:54,190 là-haut au début. 14 00:01:54,190 --> 00:01:57,000 Tous les nouveaux problèmes cette année si vous participait l'an dernier, et vous 15 00:01:57,000 --> 00:01:59,680 auront la chance ensuite de gagner des prix fabuleux. 16 00:01:59,680 --> 00:02:02,750 Parmi eux, une Wii et des certificats-cadeaux et comme, 17 00:02:02,750 --> 00:02:05,650 tout en traînant avec CS50 élèves et camarades de classe 18 00:02:05,650 --> 00:02:07,720 et de la pizza et Facebook. 19 00:02:07,720 --> 00:02:10,430 Donc plus sur que demain, si vous le souhaitez. 20 00:02:10,430 --> 00:02:13,330 >> C'est alors CS50, pour ceux d'entre vous joindre à nous pour la 21 00:02:13,330 --> 00:02:14,510 première fois. 22 00:02:14,510 --> 00:02:18,030 Et sachez que ce cours est particulièrement déterminé à obtenir 23 00:02:18,030 --> 00:02:22,605 vous à travers ce cours à sa fin, au cours de laquelle vous pointez 24 00:02:22,605 --> 00:02:24,270 aura non seulement une compréhension de ces 25 00:02:24,270 --> 00:02:26,450 fondamentaux de l'informatique, mais vous aurez 26 00:02:26,450 --> 00:02:29,120 cet ensemble de compétences très pratique que vous pouvez ensuite ramener à 27 00:02:29,120 --> 00:02:31,370 votre ministère, que ce soit sciences de l'ingénieur, 28 00:02:31,370 --> 00:02:33,570 mathématiques appliquées, les sciences physiques, naturelles 29 00:02:33,570 --> 00:02:34,780 science, ou similaire. 30 00:02:34,780 --> 00:02:37,030 En effet, ce qui est si excitant à propos de l'informatique de ces 31 00:02:37,030 --> 00:02:39,900 jours, c'est que c'est tellement applicable à 32 00:02:39,900 --> 00:02:40,990 toutes sortes de domaines. 33 00:02:40,990 --> 00:02:46,210 Et même si aujourd'hui, nous ne font qu'effleurer la surface d'un 34 00:02:46,210 --> 00:02:49,020 langage de programmation très traditionnelle connue sous le nom C, nous allons 35 00:02:49,020 --> 00:02:51,040 plutôt regarder quelque chose appelé Scratch, quelque chose avec 36 00:02:51,040 --> 00:02:53,420 que cette histoire d'amour cookie a été mis en œuvre par l'un de vos 37 00:02:53,420 --> 00:02:57,020 prédécesseurs dans les années passées, de raconter des histoires, de créer des jeux, 38 00:02:57,020 --> 00:03:00,060 à créer de l'art interactif, et de réellement commencer à envelopper notre 39 00:03:00,060 --> 00:03:02,240 esprits autour de certains des concepts fondamentaux qui 40 00:03:02,240 --> 00:03:05,390 sous-tendent la programmation, mais dans un contexte, comme vous le verrez, c'est 41 00:03:05,390 --> 00:03:09,140 beaucoup moins effrayant, c'est beaucoup moins mystérieux, que vous verrez 42 00:03:09,140 --> 00:03:10,140 avant longtemps. 43 00:03:10,140 --> 00:03:12,410 Et se rendre compte, aussi, pour ceux d'entre vous venez vous joindre à nous ce 44 00:03:12,410 --> 00:03:16,170 semestre, les phrases sur lesquelles nous nous sommes retrouvés conférence de mercredi, 45 00:03:16,170 --> 00:03:20,260 ce n'est pas si important où vous finissez par rapport à votre 46 00:03:20,260 --> 00:03:22,950 camarades de classe dans cette catégorie, mais où vous, d'ici la fin du semestre 47 00:03:22,950 --> 00:03:27,190 à la semaine 11, finissent par rapport à vous-même le droit ce jour. 48 00:03:27,190 --> 00:03:32,000 >> Alors sans plus tarder, il s'agit également de noter que 49 00:03:32,000 --> 00:03:34,450 ceux qui sont moins à l'aise, ceux entre les deux, sont 50 00:03:34,450 --> 00:03:36,825 aussi, par la conception de ce cours, pas désavantagés 51 00:03:36,825 --> 00:03:38,760 vis-à-vis de ceux qui sont plus à l'aise 52 00:03:38,760 --> 00:03:39,920 venir dans cette catégorie. 53 00:03:39,920 --> 00:03:41,810 Comme vous le verrez dans les semaines à venir, nous avons différents 54 00:03:41,810 --> 00:03:44,600 pistes pour le fond arrière disparates, des sections pour ceux 55 00:03:44,600 --> 00:03:46,500 moins à l'aise, plus confortable, les quelque 56 00:03:46,500 --> 00:03:47,250 entre les deux. 57 00:03:47,250 --> 00:03:49,520 Comme vous le verrez ce week-end et la semaine prochaine, deux versions de 58 00:03:49,520 --> 00:03:52,410 la plupart des ensembles de problèmes à la fois dans l'édition standard et hacker afin 59 00:03:52,410 --> 00:03:55,390 que vous pouvez tous choisir eux-mêmes le chemin qui vous 60 00:03:55,390 --> 00:03:56,615 sont plus à l'aise. 61 00:03:56,615 --> 00:03:58,770 >> Donc, aujourd'hui, nous plonger dans cette programmation 62 00:03:58,770 --> 00:04:00,060 langage appelé Scratch. 63 00:04:00,060 --> 00:04:02,250 Il s'agit d'un langage de programmation graphique, et pourtant, il a le 64 00:04:02,250 --> 00:04:04,500 mêmes caractéristiques de quelques-unes des langues de niveau supérieur nous allons 65 00:04:04,500 --> 00:04:07,050 explorer plus tard dans le semestre, parmi lesquels C et 66 00:04:07,050 --> 00:04:08,670 JavaScript et PHP. 67 00:04:08,670 --> 00:04:11,890 Mais ça va nous permettre d'éviter certains des distractions 68 00:04:11,890 --> 00:04:14,890 dès le début de la syntaxe, des choses comme des points-virgules, parenthèses, 69 00:04:14,890 --> 00:04:17,720 et d'autres détails obscurs qui, à première vue, sont tout simplement pas 70 00:04:17,720 --> 00:04:19,916 du tout intellectuellement intéressant et ont tendance à entrer en 71 00:04:19,916 --> 00:04:22,310 la voie d'une certaine compréhension fondamentale. 72 00:04:22,310 --> 00:04:24,870 En termes de maintenant la structure de soutien avant, réalisé cette 73 00:04:24,870 --> 00:04:27,570 outil, CS50 Discuter, qui sera relié au cours de 74 00:04:27,570 --> 00:04:30,320 site Web plus tard aujourd'hui, est le forum de discussion en ligne 75 00:04:30,320 --> 00:04:32,480 que vous serez en mesure de poser des questions à l'autre et 76 00:04:32,480 --> 00:04:35,020 personnel, et c'est aussi un outil, comme nous le verrons la semaine prochaine, 77 00:04:35,020 --> 00:04:37,240 que nous allons utiliser tout façon intégrée dans 78 00:04:37,240 --> 00:04:38,780 les heures de bureau ainsi. 79 00:04:38,780 --> 00:04:41,670 En effet, les heures de bureau commence le lundi, et franchement, le premier 80 00:04:41,670 --> 00:04:43,930 semaine de heures de bureau est assez bas de gamme. 81 00:04:43,930 --> 00:04:46,820 >> Je ne pense pas que vous trouverez tout ce que Scratch inaccessible. 82 00:04:46,820 --> 00:04:48,930 Il est plutôt explicite, comme nous allons le voir, et ce 83 00:04:48,930 --> 00:04:51,380 nous allons l'utiliser pour aujourd'hui est d'extraire une partie de la 84 00:04:51,380 --> 00:04:53,990 idées fondamentales qui, ensuite, persistent tout au long de la 85 00:04:53,990 --> 00:04:54,900 reste du semestre. 86 00:04:54,900 --> 00:04:57,980 Mais à partir de lundi, à 8:00 PM par 23 heures 00 sera 87 00:04:57,980 --> 00:05:01,530 les heures de bureau dans plus de Annenberg pause cerveau. 88 00:05:01,530 --> 00:05:04,490 Sectionnement deux vont commencer ce soir, donc le courant de l' 89 00:05:04,490 --> 00:05:07,260 week-end, allez à cs50.net/section, et vous aurez 90 00:05:07,260 --> 00:05:08,530 être demandé à un certain nombre de questions. 91 00:05:08,530 --> 00:05:10,290 Parmi eux, comment décririez-vous votre 92 00:05:10,290 --> 00:05:12,040 le niveau de confort d'aujourd'hui? 93 00:05:12,040 --> 00:05:14,450 Il ne fait aucun mal, règle absolue quant à savoir qui est où seau. 94 00:05:14,450 --> 00:05:17,170 C'est exactement le genre de chose que vous savez sans doute si vous 95 00:05:17,170 --> 00:05:20,280 sont parmi ceux du moins à l'aise ou non. 96 00:05:20,280 --> 00:05:21,350 >> Et maintenant, soluces. 97 00:05:21,350 --> 00:05:24,020 La spécification du jeu de problème pour cette semaine, à la fois standard 98 00:05:24,020 --> 00:05:28,560 et de l'édition pirate, qu'elle soit en ligne à cs50.net dès maintenant. 99 00:05:28,560 --> 00:05:31,500 Et vous verrez que la première de ces éditions, le 100 00:05:31,500 --> 00:05:33,940 édition standard chaque semaine, est accompagné de quelque chose que nous 101 00:05:33,940 --> 00:05:36,550 appeler une procédure pas à pas du code, une séance dirigée par l'un des 102 00:05:36,550 --> 00:05:39,100 boursiers d'enseignement de cours pour vous guider à travers, fournir 103 00:05:39,100 --> 00:05:42,290 Conseils sur, et vous descendez un chemin particulier quand il s'agit 104 00:05:42,290 --> 00:05:44,150 à partir de ces ensembles de problèmes. 105 00:05:44,150 --> 00:05:46,790 Donc, avec chacun de ces ensembles problème, si jamais vous êtes désireux 106 00:05:46,790 --> 00:05:50,250 pour vous-même, où dois-je commencer, vous commencez avec ces 107 00:05:50,250 --> 00:05:50,890 soluces. 108 00:05:50,890 --> 00:05:53,450 Et en fait, permettez-moi de présenter Zamyla Chan, cette 109 00:05:53,450 --> 00:05:55,870 adjoint à l'enseignement année qui dirigera chaque 110 00:05:55,870 --> 00:05:56,910 l'une de ces procédures pas à pas. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Applaudissements] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA Chandler: Oh, salut, tout le monde. 114 00:06:03,975 --> 00:06:05,130 Mon nom est Zamyla. 115 00:06:05,130 --> 00:06:08,250 Je suis un étudiant ingénieur débutant à Winthrop Chambre. 116 00:06:08,250 --> 00:06:10,890 Mais je tente de s'adapter à autant de cours d'informatique que je 117 00:06:10,890 --> 00:06:13,350 peut, et c'est pourquoi je suis vraiment excité de diriger ce 118 00:06:13,350 --> 00:06:14,590 année soluces. 119 00:06:14,590 --> 00:06:16,950 Procédures pas à pas, pour moi, était une partie essentielle de mon CS50 120 00:06:16,950 --> 00:06:17,910 expérience. 121 00:06:17,910 --> 00:06:22,710 Au cours de la procédure pas à pas, pour tout p-ensemble, nous allons passer par 122 00:06:22,710 --> 00:06:25,580 le problème posé ensemble, regarder par-dessus les problèmes, sorte de 123 00:06:25,580 --> 00:06:27,360 les diviser par piqûres gérables. 124 00:06:27,360 --> 00:06:28,990 Je vais vous donner des conseils, des techniques, pour obtenir 125 00:06:28,990 --> 00:06:30,820 à travers et commencer. 126 00:06:30,820 --> 00:06:33,510 J'espère vous voir tous les soluces. 127 00:06:33,510 --> 00:06:34,720 Si vous ne pouvez pas le faire en personne, 128 00:06:34,720 --> 00:06:36,580 s'il vous plaît ne syntonisez en ligne. 129 00:06:36,580 --> 00:06:36,840 >> DAVID MALAN: Excellent. 130 00:06:36,840 --> 00:06:37,950 Merci, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Alors rends compte que soluces sont, en effet, un vendredi 132 00:06:40,870 --> 00:06:43,110 après-midi, mais c'est délibérément par la conception afin que 133 00:06:43,110 --> 00:06:45,750 même si vous préférez ne pas assister aux cours un vendredi 134 00:06:45,750 --> 00:06:48,490 après-midi, les vidéos seront tout le plus rapidement au cours 135 00:06:48,490 --> 00:06:48,990 le week-end. 136 00:06:48,990 --> 00:06:51,880 Alors rends compte que cs50.net sera tout de Zamyla de 137 00:06:51,880 --> 00:06:53,130 soluces. 138 00:06:54,800 --> 00:06:56,890 Et qu'il ya la date du jour et l'heure, 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 Et quelques-uns des compagnons d'enseignement ont également préparé 141 00:07:00,080 --> 00:07:03,250 quelques remarques pour vous par contumace pour vous donner un peu d' 142 00:07:03,250 --> 00:07:06,760 point de vue quant à ce que leur expérience et entrée en 143 00:07:06,760 --> 00:07:08,990 sortir du CS50 était. 144 00:07:08,990 --> 00:07:11,250 Donc, si on pouvait éteindre les lumières pour un instant, je vous donne 145 00:07:11,250 --> 00:07:18,100 certains membres du personnel du CS50. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: J'ai pris CS50 l'année dernière en tant que recrue dans la 147 00:07:20,440 --> 00:07:22,880 tomber, et il est absolument soufflé mon esprit. 148 00:07:22,880 --> 00:07:25,090 Je n'avais jamais pris de cours de programmation avant, 149 00:07:25,090 --> 00:07:26,380 et jamais arrivé avec toute l'informatique 150 00:07:26,380 --> 00:07:27,320 l'expérience du tout. 151 00:07:27,320 --> 00:07:29,240 Et juste, j'ai entendu le buzz autour de la classe et 152 00:07:29,240 --> 00:07:30,050 décidé de le prendre. 153 00:07:30,050 --> 00:07:31,780 >> JULIA MITELMAN: C'était vraiment amusant, très engageant. 154 00:07:31,780 --> 00:07:33,480 J'ai encore, à ce jour - 155 00:07:33,480 --> 00:07:36,560 J'ai récemment vu que j'ai la disquette que David nous a donné 156 00:07:36,560 --> 00:07:38,140 le premier jour de la conférence. 157 00:07:38,140 --> 00:07:40,020 Je l'avais accroché à mon mur. 158 00:07:40,020 --> 00:07:42,410 C'est sans doute un peu ringard, mais je me suis accroché dans le mon 159 00:07:42,410 --> 00:07:46,930 mur pendant la classe comme un rappel de la façon dont il a été cool. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: C'est tellement embarrassant. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: Computer science est quelque chose que vous 162 00:07:50,770 --> 00:07:52,370 devraient essayer, même si vous n'êtes pas l'un des 163 00:07:52,370 --> 00:07:54,980 les sciences traditionnelles. 164 00:07:54,980 --> 00:07:58,510 C'est sa propre expérience, et CS50 s'assurera que vous êtes 165 00:07:58,510 --> 00:08:01,520 bien soutenu par lui avec sa véritable armée de FO. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: Je l'ai pris comme un étudiant de première année, et j'ai fait beaucoup 167 00:08:03,700 --> 00:08:04,215 de nouveaux amis. 168 00:08:04,215 --> 00:08:07,170 J'ai également été présenté à cette concentration tout 169 00:08:07,170 --> 00:08:10,770 scolaire de l'ingénierie, et je le recommande fortement 170 00:08:10,770 --> 00:08:14,360 et vous accueillir dans notre famille CS50. 171 00:08:14,360 --> 00:08:17,510 >> YANIV Yacoby: CS50 enseigne exactement comment utiliser les outils 172 00:08:17,510 --> 00:08:19,210 qui sont largement accessibles. 173 00:08:19,210 --> 00:08:21,840 Vous avez juste besoin d'un ordinateur portable, vous avez besoin d'un navigateur Web, et vous 174 00:08:21,840 --> 00:08:26,030 besoin d'apprendre à écrire du code, et vous pouvez vraiment construire 175 00:08:26,030 --> 00:08:27,400 choses intéressantes. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: C'est tellement cool d'être en mesure de faire quelque chose 177 00:08:31,660 --> 00:08:34,580 et que les gens l'utilisent et que les gens le voient, et c'est 178 00:08:34,580 --> 00:08:35,900 ce que j'aime vraiment à ce sujet. 179 00:08:35,900 --> 00:08:37,429 >> Tim McLaughlin: - un sens de la communauté, je pense que, dans ce 180 00:08:37,429 --> 00:08:39,470 Bien sûr, plus que tout autre cours que j'ai prises jusqu'à présent. 181 00:08:39,470 --> 00:08:41,350 Vous n'êtes pas simplement de prendre un autre - 182 00:08:41,350 --> 00:08:42,740 vous n'êtes pas remplir une autre exigence. 183 00:08:42,740 --> 00:08:45,310 Vous n'êtes pas seulement aller à des conférences et aller à la section. 184 00:08:45,310 --> 00:08:49,630 Mais tu fais des tonnes de choses qui sont tous sur 185 00:08:49,630 --> 00:08:51,560 programmation et tout autour de la technologie, mais ce n'est pas 186 00:08:51,560 --> 00:08:53,090 se sent vraiment comme une classe la plupart du temps. 187 00:08:53,090 --> 00:08:55,012 >> DOWNS TRAVIS: Et le premier jour, ils ont distribué des gâteaux, et 188 00:08:55,012 --> 00:08:56,215 J'ai été immédiatement vendu. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: bonbons gratuit et des pizzas. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - quel que soit votre niveau d'intérêt, je pense que 191 00:08:59,820 --> 00:09:05,170 qui CS50, vous aurez du plaisir, et vous serez intellectuellement 192 00:09:05,170 --> 00:09:06,070 stimulée. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: C'est toujours une partie de la classe, et c'est un 194 00:09:07,926 --> 00:09:09,990 fête tous les soirs à travailler sur votre p-ensemble. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: Chaque fois que vous terminez un ensemble de problèmes, vous 196 00:09:11,880 --> 00:09:13,710 vous sentirez comme vous avez terminé un projet. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Il était en première année, et je me suis fait du shopping. 198 00:09:16,580 --> 00:09:19,030 J'ai eu mes quatre classes de prêt, et j'étais dans Annenberg. 199 00:09:19,030 --> 00:09:21,670 Et je tombe sur un ami, et il dit: hey, je suis achats 200 00:09:21,670 --> 00:09:24,330 cette classe appelée CS50, et vous devriez venir avec moi. 201 00:09:24,330 --> 00:09:28,150 Fini par le prendre à l'automne, et après que la classe, je 202 00:09:28,150 --> 00:09:30,510 pensé que je vais faire une mineure en CS. 203 00:09:30,510 --> 00:09:33,760 Mais ici je suis, trois ans plus tard, encore étudiant ordinateur 204 00:09:33,760 --> 00:09:36,680 la science et le faire réellement comme un grand, et j'ai adoré chaque 205 00:09:36,680 --> 00:09:37,780 moment de celui-ci. 206 00:09:37,780 --> 00:09:39,030 >> ROB BOWDEN: Je n'en ai aucune idée. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Voyons voir. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: Folie. 209 00:09:49,200 --> 00:09:50,610 >> INTERLOCUTEUR 1: J'ai l'impression que je serais très cliché. 210 00:09:50,610 --> 00:09:52,530 Je venais de dire, comme, impressionnant. 211 00:09:52,530 --> 00:09:53,540 >> YANIV Yacoby: Accessibilité. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: bonbons gratuit et des pizzas. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: ne peut pas refuser une classe qui distribue des gâteaux. 214 00:09:57,310 --> 00:09:58,510 >> Tim McLaughlin: Énergétique. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Shekhawat: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB BOWDEN: Permettez-moi de penser à une réponse. 217 00:10:02,636 --> 00:10:04,480 Je crois que j'ai quelque chose. 218 00:10:04,480 --> 00:10:07,092 Oh, mon dieu. 219 00:10:07,092 --> 00:10:13,370 Oui, mon nom est Rob Bowden, et c'est CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Applaudissements] 221 00:10:20,810 --> 00:10:23,390 DAVID MALAN: Très bien, nous allons donc commencer à brosser un tableau 222 00:10:23,390 --> 00:10:26,230 de la direction dans laquelle nous pouvons aller, et nous allons introduire 223 00:10:26,230 --> 00:10:28,190 ce concept ici connu comme pseudo. 224 00:10:28,190 --> 00:10:29,560 Donc pseudo n'est pas une programmation 225 00:10:29,560 --> 00:10:30,810 la langue en soi. 226 00:10:30,810 --> 00:10:33,250 Il n'a rien de technique en soi, mais c'est juste une sorte de 227 00:10:33,250 --> 00:10:36,490 manière générale de s'exprimer de manière assez précise, 228 00:10:36,490 --> 00:10:39,730 algorithmiquement assez, assez de la procédure, mais sans 229 00:10:39,730 --> 00:10:42,570 avoir à se soucier de ce que la langue vous exprimez 230 00:10:42,570 --> 00:10:43,150 vous po 231 00:10:43,150 --> 00:10:46,280 Il est certain modèle de l'anglais et des langages de programmation avec 232 00:10:46,280 --> 00:10:48,790 ce qui vous arrive d'être au courant, afin que nous puissions commencer à 233 00:10:48,790 --> 00:10:50,600 écrire ce genre de chose que nous allons. 234 00:10:50,600 --> 00:10:54,450 Et en fait, Joseph, pourrais-je vous emprunter sur scène pour être 235 00:10:54,450 --> 00:10:55,490 scribe ici? 236 00:10:55,490 --> 00:11:00,130 J'ai pris les devants ici à l'avance et oublié de mettre 237 00:11:00,130 --> 00:11:02,920 des chaussettes aujourd'hui, et cette serez parmi nos plus 238 00:11:02,920 --> 00:11:03,780 exemples ridicules. 239 00:11:03,780 --> 00:11:04,580 >> Maintenant, j'ai besoin de toi ici. 240 00:11:04,580 --> 00:11:05,630 Je vais faire la part des chaussettes. 241 00:11:05,630 --> 00:11:08,040 Nous avons donc ici un petit bloc-notes. 242 00:11:08,040 --> 00:11:09,940 Ceci est littéralement juste TextEdit sur un Mac. 243 00:11:09,940 --> 00:11:12,270 Nous ne sommes pas réellement allons écrire un programme exécutable, mais 244 00:11:12,270 --> 00:11:14,220 nous allons juste commencer à dessiner sur base de pseudo- 245 00:11:14,220 --> 00:11:17,830 sur quelques avocats que vous fournissez à moi ici. 246 00:11:17,830 --> 00:11:20,760 Donc, voici ma pile de chaussettes à la maison. 247 00:11:20,760 --> 00:11:23,320 Je n'ai pas de chaussettes quand je me réveille le matin, et nous avons maintenant 248 00:11:23,320 --> 00:11:26,280 besoin d'écrire un programme, un algorithme de toutes sortes, avec laquelle 249 00:11:26,280 --> 00:11:27,900 pour obtenir ces chaussettes sur mes pieds. 250 00:11:27,900 --> 00:11:30,860 Et le long de la route, nous allons voir si nous trébucher, ou rencontrez, 251 00:11:30,860 --> 00:11:32,860 quelques-unes des idées que vous allez devoir commencer à 252 00:11:32,860 --> 00:11:35,470 penser beaucoup plus au sérieux lors de la programmation 253 00:11:35,470 --> 00:11:37,950 De peur que vos programmes ne se comportent pas tout à fait comme prévu. 254 00:11:37,950 --> 00:11:39,580 >> Alors je m'assois ici. 255 00:11:39,580 --> 00:11:41,180 J'ai mon tas de chaussettes. 256 00:11:41,180 --> 00:11:43,780 Quelle est la première chose qu'un être humain raisonnable serait 257 00:11:43,780 --> 00:11:46,600 quand l'objectif est de mettre sur une paire de chaussettes? 258 00:11:46,600 --> 00:11:49,190 Quelqu'un me donner une seule étape, et une seule étape. 259 00:11:49,190 --> 00:11:49,796 Ouais? 260 00:11:49,796 --> 00:11:50,690 PUBLIC: Penche-toi. 261 00:11:50,690 --> 00:11:54,290 DAVID MALAN: Penche-toi, d'accord. 262 00:11:54,290 --> 00:11:55,540 L'étape deux. 263 00:11:59,975 --> 00:12:00,645 L'étape deux. 264 00:12:00,645 --> 00:12:01,840 PUBLIC: Prenez votre chaussette. 265 00:12:01,840 --> 00:12:03,220 DAVID MALAN: Prenez votre chaussette. 266 00:12:03,220 --> 00:12:07,610 Bon, si légère ambiguïté ici, et c'est l'un des premiers 267 00:12:07,610 --> 00:12:09,380 des pierres d'achoppement que nous sommes censés délibérément 268 00:12:09,380 --> 00:12:10,290 rencontrons ici. 269 00:12:10,290 --> 00:12:14,110 C'est un peu ambigu, alors prenez votre chaussette. 270 00:12:14,110 --> 00:12:17,425 Bon, je vais prendre celui-ci, mais un ordinateur, de réaliser en peu de 271 00:12:17,425 --> 00:12:20,420 peu, ne va pas avoir cette sorte d'instinct humain à juste 272 00:12:20,420 --> 00:12:21,490 choisir le plus proche. 273 00:12:21,490 --> 00:12:23,590 Nous allons devoir commencer, avant longtemps, exprimant 274 00:12:23,590 --> 00:12:24,610 nous plus précisément. 275 00:12:24,610 --> 00:12:26,600 >> D'accord, donc la deuxième étape est de choisir votre chaussette. 276 00:12:26,600 --> 00:12:27,520 Nous allons le prendre. 277 00:12:27,520 --> 00:12:28,620 La troisième étape. 278 00:12:28,620 --> 00:12:29,532 Dans le dos. 279 00:12:29,532 --> 00:12:30,900 PUBLIC: Trouver une paire. 280 00:12:30,900 --> 00:12:32,060 DAVID MALAN: Trouvez paire. 281 00:12:32,060 --> 00:12:34,740 Ok, donc c'est une bonne chose. 282 00:12:34,740 --> 00:12:35,650 Je devais choisir cette chaussette. 283 00:12:35,650 --> 00:12:39,200 L'objectif est donc de trouver une chaussette correspondance, maintenant, mais ce 284 00:12:39,200 --> 00:12:39,990 ce que cela signifie? 285 00:12:39,990 --> 00:12:42,130 Un homme raisonnable est, tout comme le mercredi quand je viens 286 00:12:42,130 --> 00:12:44,700 a su trouver Mike Smith dans un annuaire téléphonique, juste une sorte de 287 00:12:44,700 --> 00:12:45,640 est allé à leur instinct. 288 00:12:45,640 --> 00:12:49,220 Mais ici, c'est évidemment cette chaussette ici, mais d'un ordinateur 289 00:12:49,220 --> 00:12:51,350 ne va pas être si instinctive. 290 00:12:51,350 --> 00:12:53,830 Un ordinateur va avoir une collection de bits, comme nous l' 291 00:12:53,830 --> 00:12:55,380 examiné mercredi, et ceux qui sont 292 00:12:55,380 --> 00:12:56,710 organisé en quelque sorte dans la mémoire. 293 00:12:56,710 --> 00:13:00,400 Mais le fait est que l'ordinateur ne dispose que de la capacité 294 00:13:00,400 --> 00:13:03,390 à regarder les choses une à la fois, et en fait, même si nous 295 00:13:03,390 --> 00:13:05,980 l'homme - même si elle se sent comme j'ai regardé vers le bas et une scission 296 00:13:05,980 --> 00:13:08,900 seconde plus tard, je sais où est la chaussette, mon cerveau et mes yeux 297 00:13:08,900 --> 00:13:12,000 n'ont probablement un rapide écrémé de ces chaussettes, puis verrouillé 298 00:13:12,000 --> 00:13:13,400 sur l'une en question. 299 00:13:13,400 --> 00:13:15,780 >> Donc, si nous sommes d'autant plus délibérée maintenant comme un ordinateur, 300 00:13:15,780 --> 00:13:17,780 comment puis-je trouver cette paire correspondance? 301 00:13:17,780 --> 00:13:18,890 Eh bien, nous avons à parcourir. 302 00:13:18,890 --> 00:13:21,440 Nous devons peut-être une boucle sur ce gâchis de chaussettes sur le 303 00:13:21,440 --> 00:13:25,760 étage où je dis quelque chose comme POUR CHAQUE chaussette, ramassez- 304 00:13:25,760 --> 00:13:30,195 en place, et si la forme et la même taille que l'autre, PUIS 305 00:13:30,195 --> 00:13:32,150 point, point, point, nous allons continuer l'histoire. 306 00:13:32,150 --> 00:13:34,430 Ainsi, pour chaque chaussette, alors je prends celui-ci. 307 00:13:34,430 --> 00:13:36,520 Je vérifie cette égalité à celui-ci. 308 00:13:36,520 --> 00:13:38,250 Ce n'est pas, alors j'ai mis de côté côté. 309 00:13:38,250 --> 00:13:39,220 Puis-je réitérer à nouveau. 310 00:13:39,220 --> 00:13:40,340 Est-ce une égale? 311 00:13:40,340 --> 00:13:42,010 Non, ce n'est pas le cas, alors je l'ai mis de côté. 312 00:13:42,010 --> 00:13:42,710 Est-ce celui-ci? 313 00:13:42,710 --> 00:13:43,200 Non. 314 00:13:43,200 --> 00:13:43,670 Celle-ci? 315 00:13:43,670 --> 00:13:44,520 Pas, et ainsi de suite. 316 00:13:44,520 --> 00:13:48,730 Et puis finalement, je l'espère, je vais rencontrer cette chaussette ici. 317 00:13:48,730 --> 00:13:51,350 Donc, si c'est la même forme, la taille, le prendre. 318 00:13:51,350 --> 00:13:53,980 >> Et maintenant, quelle serait la prochaine étape ici? 319 00:13:53,980 --> 00:13:54,402 Ouais? 320 00:13:54,402 --> 00:13:56,090 PUBLIC: Identifier droite de la gauche. 321 00:13:56,090 --> 00:13:58,980 DAVID MALAN: D'accord, d'identifier droite et à gauche, de sorte 322 00:13:58,980 --> 00:14:01,870 Heureusement, ce genre de travaux. 323 00:14:01,870 --> 00:14:04,020 Un peu symétrique, ou j'ai simplement usé de cette façon. 324 00:14:04,020 --> 00:14:07,020 Très bien, alors j'ai identifié la droite. 325 00:14:07,020 --> 00:14:09,980 Et maintenant, avant de commencer, permettez-moi de souligner ce que Joseph 326 00:14:09,980 --> 00:14:12,890 fait ici comme une sorte de programmeur versé. 327 00:14:12,890 --> 00:14:15,800 Encore une fois, il n'y a pas qu'une seule façon de le faire, mais au-delà de 328 00:14:15,800 --> 00:14:18,480 la numérotation des lignes, Joseph a déjà commencé à le faire 329 00:14:18,480 --> 00:14:19,460 sorte d'indentation. 330 00:14:19,460 --> 00:14:21,950 En effet, il s'agit d'une convention très commun dans la programmation, 331 00:14:21,950 --> 00:14:26,110 de sorte que lorsque vous faites quelque chose itérative, boucle style, 332 00:14:26,110 --> 00:14:28,480 nous impliquant avec l'expression anglaise "POUR CHAQUE 333 00:14:28,480 --> 00:14:31,090 chaussette ", la convention en pseudo-code et, comme nous le verrons, 334 00:14:31,090 --> 00:14:33,410 langages de programmation normales, est de simplement tiret. 335 00:14:33,410 --> 00:14:36,240 Toucher la barre d'espace à quelques reprises, appuyez sur la touche Tab ou similaires, 336 00:14:36,240 --> 00:14:40,660 de sorte que imbriquée sous "POUR CHAQUE chaussette» est le morceau de 337 00:14:40,660 --> 00:14:43,430 choses que vous devez faire à la suite de cette boucle. 338 00:14:43,430 --> 00:14:45,940 Donc, c'est tout ce qui est sémantiquement transport. 339 00:14:45,940 --> 00:14:48,620 Maintenant, quant à lui, l'«Si c'est la même forme et la taille,« le 340 00:14:48,620 --> 00:14:51,590 fait que "Take it» est gravé en outre des moyens peu 341 00:14:51,590 --> 00:14:54,370 c'est la seule chose que vous devriez faire si cette condition, 342 00:14:54,370 --> 00:14:59,770 si cette branche, qui bifurcation de la route, est en fait vrai. 343 00:14:59,770 --> 00:15:02,130 >> Alors maintenant, ici, nous sommes sur la quatrième étape, identifier les appareils droit et gauche. 344 00:15:02,130 --> 00:15:03,410 J'ai identifié droit. 345 00:15:03,410 --> 00:15:05,150 Donnez-moi l'étape cinq. 346 00:15:05,150 --> 00:15:07,880 Et techniquement, on pourrait vraiment appeler 347 00:15:07,880 --> 00:15:09,510 POUR CHAQUE la chose - 348 00:15:09,510 --> 00:15:11,450 vous devriez probablement numéroter toutes les lignes si 349 00:15:11,450 --> 00:15:12,190 nous allons le faire. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [Inaudible] 351 00:15:14,006 --> 00:15:14,610 DAVID MALAN: [inaudible]? 352 00:15:14,610 --> 00:15:16,070 Bon, d'accord, d'accord, nous allons faire à votre façon. 353 00:15:16,070 --> 00:15:19,590 D'accord, donc en cinq étapes, comment faisons-nous la chaussette droite? 354 00:15:19,590 --> 00:15:22,310 Comment allons-nous procéder prochaine, ici? 355 00:15:22,310 --> 00:15:22,730 Oui? 356 00:15:22,730 --> 00:15:24,300 PUBLIC: Soulevez la jambe droite. 357 00:15:24,300 --> 00:15:27,100 DAVID MALAN: Soulevez la jambe droite, d'accord. 358 00:15:27,100 --> 00:15:29,330 Étape six? 359 00:15:29,330 --> 00:15:30,728 Rapidement. 360 00:15:30,728 --> 00:15:31,202 Ouais. 361 00:15:31,202 --> 00:15:33,100 PUBLIC: Trouver une extrémité ouverte de la chaussette. 362 00:15:33,100 --> 00:15:34,440 DAVID MALAN: D'accord, trouver l'extrémité ouverte de la chaussette. 363 00:15:34,440 --> 00:15:34,840 Si bon. 364 00:15:34,840 --> 00:15:37,180 Donc, ici, honnêtement, un instinct très commun serait tout simplement 365 00:15:37,180 --> 00:15:39,880 mis sur chaussette droite, mais qui est trop assez ambigu. 366 00:15:39,880 --> 00:15:42,750 Sauf si l'ordinateur ou humain sait exactement ce que cela signifie, 367 00:15:42,750 --> 00:15:45,160 ça ne va pas être pour exécuter ce, alors voici, j'ai 368 00:15:45,160 --> 00:15:46,520 trouvé l'ouverture du parc. 369 00:15:46,520 --> 00:15:48,222 Étape sept? 370 00:15:48,222 --> 00:15:49,700 PUBLIC: Touchez vos orteils. 371 00:15:49,700 --> 00:15:51,070 DAVID MALAN: orteils Touch. 372 00:15:51,070 --> 00:15:53,546 Bon, alors maintenant nous allons - 373 00:15:53,546 --> 00:15:56,480 D'accord, je vais prendre quelques libertés ici. 374 00:15:56,480 --> 00:15:57,110 Merci. 375 00:15:57,110 --> 00:15:59,210 Étape huit? 376 00:15:59,210 --> 00:16:00,060 Mettez chaussette. 377 00:16:00,060 --> 00:16:02,060 Bon, alors maintenant je, pense que nous sommes assez près pour trier de prendre 378 00:16:02,060 --> 00:16:03,480 celui-ci à la maison. 379 00:16:03,480 --> 00:16:05,980 D'accord, donc cela va vers le haut. 380 00:16:05,980 --> 00:16:07,950 Je vais prendre quelques libertés avec ce que cela signifie, en fait. 381 00:16:07,950 --> 00:16:08,920 Mettez la chaussette sur. 382 00:16:08,920 --> 00:16:10,853 Très bien, maintenant l'étape neuf? 383 00:16:10,853 --> 00:16:11,740 PUBLIC: Mettez pied à terre. 384 00:16:11,740 --> 00:16:12,510 DAVID MALAN: Je vous remercie. 385 00:16:12,510 --> 00:16:15,610 Étape neuf, mettre pied à terre, et maintenant, nous pouvons répéter. 386 00:16:15,610 --> 00:16:19,540 Donc, sans doute, nous pouvons maintenant passer à l'étape 10 et dire identifier 387 00:16:19,540 --> 00:16:21,960 chaussette gauche, mais c'est sans doute déjà fait. 388 00:16:21,960 --> 00:16:24,100 >> Et alors, je peux presque répétez ces étapes. 389 00:16:24,100 --> 00:16:25,260 Mais ce genre de élude la question. 390 00:16:25,260 --> 00:16:28,100 Avant, la dernière fois que nous avons voulu répéter quelque chose, nous 391 00:16:28,100 --> 00:16:30,730 il l'a fait de manière itérative, encore et encore, un POUR 392 00:16:30,730 --> 00:16:32,660 Chaque boucle pour ainsi dire. 393 00:16:32,660 --> 00:16:36,420 Serait-il judicieux d'utiliser une boucle afin de gérer à la fois 394 00:16:36,420 --> 00:16:38,470 la gauche et la chaussette droite? 395 00:16:38,470 --> 00:16:40,460 Parce qu'il se sent comme ces opérations sont à peu près 396 00:16:40,460 --> 00:16:43,090 identiques à l'exception du fait que l'on commence ici et une 397 00:16:43,090 --> 00:16:44,850 commence ici? 398 00:16:44,850 --> 00:16:47,400 Avons-nous la boucle, ou devons-nous simplement continuer étapes d'écriture 399 00:16:47,400 --> 00:16:48,745 10 et 11 et 12? 400 00:16:48,745 --> 00:16:50,540 PUBLIC: Boucle. 401 00:16:50,540 --> 00:16:52,240 >> DAVID MALAN: D'accord, donc la boucle. 402 00:16:52,240 --> 00:16:54,730 En fait, j'ai peut-être dit juste continuer. 403 00:16:54,730 --> 00:16:55,720 Alors, pourquoi est-ce le cas? 404 00:16:55,720 --> 00:16:57,940 Eh bien, c'est en fait la première partie de notre non-évidence 405 00:16:57,940 --> 00:17:01,210 décisions de conception, et en fait, l'une des mesures qui 406 00:17:01,210 --> 00:17:03,990 nous allons commencer à évaluer, pour nous et pour vous, le 407 00:17:03,990 --> 00:17:06,780 la qualité d'un programme est juste à quel point il est conçu. 408 00:17:06,780 --> 00:17:09,619 Avez-vous fait la quantité minimale de travail nécessaire pour 409 00:17:09,619 --> 00:17:12,480 faire le travail le plus rapidement, soit en termes de 410 00:17:12,480 --> 00:17:15,430 votre temps ou en termes de temps d'exécution de l'ordinateur? 411 00:17:15,430 --> 00:17:17,589 Combien d'opérations faut-il pour exécuter? 412 00:17:17,589 --> 00:17:20,180 Donc, sans doute, il s'agit d'une opportunité pour une boucle, car 413 00:17:20,180 --> 00:17:22,829 dès que je commence à copier-coller, comme Joseph efficacement 414 00:17:22,829 --> 00:17:25,010 serait de commencer à faire dans un instant, vous êtes un peu perdu votre 415 00:17:25,010 --> 00:17:27,140 temps, et tu es doublement expressif. 416 00:17:27,140 --> 00:17:30,260 >> Mais en même temps, ce sont vraiment seulement deux spéciales 417 00:17:30,260 --> 00:17:31,890 cas, à gauche et à droite. 418 00:17:31,890 --> 00:17:34,930 Et alors qu'avant, je pourrais avoir 10, 20 ou plus de chaussettes dans 419 00:17:34,930 --> 00:17:37,960 une pile, cela fait vraiment sens de ne pas avoir 50 lignes de 420 00:17:37,960 --> 00:17:40,180 Code dire vérifier cette chaussette, puis la suivante, 421 00:17:40,180 --> 00:17:41,300 alors la suivante. 422 00:17:41,300 --> 00:17:43,450 Ici, c'est un peu moins évident, et je propose 423 00:17:43,450 --> 00:17:44,390 que l'on pourrait aller de toute façon. 424 00:17:44,390 --> 00:17:46,720 On pourrait soit avoir cette boucle, même si elle ne boucle 425 00:17:46,720 --> 00:17:50,620 deux fois, ou nous pourrions simplement copier et coller un peu 426 00:17:50,620 --> 00:17:53,270 ici pour faire le travail. 427 00:17:53,270 --> 00:17:55,210 Mais ce programme est buggé, pour ainsi dire. 428 00:17:55,210 --> 00:17:59,120 Il pourrait avoir des erreurs, des erreurs, ou des cas d'angle, de sorte à 429 00:17:59,120 --> 00:18:00,860 parler, que nous n'avons pas vraiment anticiper. 430 00:18:00,860 --> 00:18:03,400 Rien ne s'est passé cette fois, mais ce qui aurait pu mal tourner 431 00:18:03,400 --> 00:18:06,100 lors de l'exécution de ce programme? 432 00:18:06,100 --> 00:18:07,040 PUBLIC: Vous n'avez pas de chaussettes. 433 00:18:07,040 --> 00:18:08,980 >> DAVID MALAN: Donc il pourrait y avoir pas de chaussettes il que ce soit. 434 00:18:08,980 --> 00:18:10,380 Donc, nous allons examiner ce cas coin. 435 00:18:10,380 --> 00:18:14,670 Donc, si nous pouvions revenir en arrière jusqu'à la première étape, donc la première étape a été 436 00:18:14,670 --> 00:18:16,540 baisser, de sorte que vérifie. 437 00:18:16,540 --> 00:18:21,250 La deuxième étape, prenez votre chaussette, mais vous les trouverez chaussette assortie, 438 00:18:21,250 --> 00:18:22,420 identifier droite. 439 00:18:22,420 --> 00:18:25,050 Nous avons un peu fait tout un tas d'hypothèses, et c'est, 440 00:18:25,050 --> 00:18:27,720 franchement, pourquoi parfois planter le programme. 441 00:18:27,720 --> 00:18:30,240 Si vous, le programmeur, ont émis certaines hypothèses, comme 442 00:18:30,240 --> 00:18:33,000 sûrement il va y avoir des chaussettes ou il ya sûrement aller 443 00:18:33,000 --> 00:18:35,310 être laissé dans la mémoire de l'ordinateur, il va sûrement 444 00:18:35,310 --> 00:18:37,420 à gauche de l'espace disque sur le disque dur - 445 00:18:37,420 --> 00:18:39,040 Eh bien, si vous faites ces hypothèses, et ce n'est pas, 446 00:18:39,040 --> 00:18:41,880 En fait, la réalité, qui sait parfois ce que l'ordinateur 447 00:18:41,880 --> 00:18:42,520 va faire? 448 00:18:42,520 --> 00:18:44,450 Et parfois, quand vous obtenez le ballon de plage de filature ou le 449 00:18:44,450 --> 00:18:47,750 congelés Windows ou autre, c'est précisément parce que certains 450 00:18:47,750 --> 00:18:50,980 programmeur n'a pas prévu les cas dits coin. 451 00:18:50,980 --> 00:18:53,050 Quoi d'autre aurait pu mal tourner dans ce programme? 452 00:18:53,050 --> 00:18:53,330 Ouais? 453 00:18:53,330 --> 00:18:55,950 >> PUBLIC: Vous n'avez pas une jambe droite et une jambe gauche. 454 00:18:55,950 --> 00:18:58,920 DAVID MALAN: D'accord, peut-être pas tant une jambe droite et une 455 00:18:58,920 --> 00:19:01,940 la jambe gauche, et ainsi de ce programme pourrait ne pas être universellement 456 00:19:01,940 --> 00:19:02,590 applicable. 457 00:19:02,590 --> 00:19:03,658 Autres? 458 00:19:03,658 --> 00:19:05,650 PUBLIC: Vous pourriez avoir ramassé une chaussette orpheline. 459 00:19:05,650 --> 00:19:07,970 DAVID MALAN: J'ai peut-être pris une chaussette orpheline, donc un 460 00:19:07,970 --> 00:19:11,250 non-appariement chaussette qui vient pas de frères et sœurs parce que j'ai 461 00:19:11,250 --> 00:19:13,650 il a perdu, il est déchiré, c'est dans le wash still, ou similaire. 462 00:19:13,650 --> 00:19:15,550 Alors que, lui aussi, n'a pas vraiment été traitée. 463 00:19:15,550 --> 00:19:15,790 Ouais? 464 00:19:15,790 --> 00:19:17,510 PUBLIC: Vous pouvez déjà avoir des chaussettes. 465 00:19:17,510 --> 00:19:19,050 DAVID MALAN: J'ai peut-être déjà chaussettes. 466 00:19:19,050 --> 00:19:20,080 Je n'ai pas vraiment vérifier. 467 00:19:20,080 --> 00:19:23,350 SI vous n'avez pas de chaussettes, puis continuez à faire 468 00:19:23,350 --> 00:19:24,330 une ligne et deux. 469 00:19:24,330 --> 00:19:24,980 Et qui pourrait arriver. 470 00:19:24,980 --> 00:19:26,880 Vous vous endormez avec tes chaussettes et articles similaires, de sorte 471 00:19:26,880 --> 00:19:28,860 qui, lui aussi, une affaire coin très raisonnable. 472 00:19:28,860 --> 00:19:29,630 Et peut-être qu'un autre? 473 00:19:29,630 --> 00:19:31,310 PUBLIC: La chaussette est à l'envers. 474 00:19:31,310 --> 00:19:34,000 DAVID MALAN: Donc, la chaussette est à l'intérieur, donc nous avons fait aucune erreur 475 00:19:34,000 --> 00:19:35,330 vérifier, en somme. 476 00:19:35,330 --> 00:19:38,550 Nous n'avons pas vérifié si l'état du monde est comme nous le prévoyons. 477 00:19:38,550 --> 00:19:41,310 Nous n'avons pas vérifié si l'on en fait trouvé ce que nous recherchons. 478 00:19:41,310 --> 00:19:43,310 >> Et même si c'est un peu un exemple ridicule 479 00:19:43,310 --> 00:19:46,110 impliquant des chaussettes, à la fin de la journée, c'est exactement le 480 00:19:46,110 --> 00:19:48,740 sorte d'état d'esprit que vous devez avoir lors de l'écriture des programmes, 481 00:19:48,740 --> 00:19:51,740 même dans Scratch ainsi que dans C, JavaScript, PHP, 482 00:19:51,740 --> 00:19:53,920 parce que sinon, vos programmes présentent l' 483 00:19:53,920 --> 00:19:56,980 équivalent de ce ballon de plage filature ou simplement donner des 484 00:19:56,980 --> 00:19:58,210 des résultats inexacts. 485 00:19:58,210 --> 00:20:00,250 Merci si grand nombre à notre Joseph scribe. 486 00:20:00,250 --> 00:20:05,060 [Applaudissements] 487 00:20:05,060 --> 00:20:06,850 >> DAVID MALAN: D'accord, donc ce qui est, en 488 00:20:06,850 --> 00:20:08,230 effet, un programme d'ordinateur? 489 00:20:08,230 --> 00:20:09,670 Eh bien, nous allons jeter un rapide coup d'œil à une 490 00:20:09,670 --> 00:20:11,100 représentant un ici. 491 00:20:11,100 --> 00:20:15,260 Il s'agit donc d'un programme écrit dans un langage appelé C. C est 492 00:20:15,260 --> 00:20:17,830 assez vieux ces jours-ci, mais de nombreuses langues nouvelles sont construites 493 00:20:17,830 --> 00:20:18,460 sur le dessus de celui-ci. 494 00:20:18,460 --> 00:20:21,180 En effet, PHP, l'une des langues web-centriques nous allons 495 00:20:21,180 --> 00:20:24,050 utiliser vers la fin du cycle, elle-même a ce qu'on appelle une 496 00:20:24,050 --> 00:20:27,550 interprète, un programme qui est écrit en C, mais plus sur cela 497 00:20:27,550 --> 00:20:28,690 depuis de nombreuses semaines à partir de maintenant. 498 00:20:28,690 --> 00:20:30,840 Mais ce programme, et c'est ce que cela signifie d'écrire un 499 00:20:30,840 --> 00:20:32,880 programme, même s'il est très simple. 500 00:20:32,880 --> 00:20:35,540 Nous avons une syntaxe assez cryptique ici, mais vous pouvez 501 00:20:35,540 --> 00:20:38,340 probablement le deviner, même si vous n'avez jamais programmé auparavant, ce qui 502 00:20:38,340 --> 00:20:39,750 ce programme fait. 503 00:20:39,750 --> 00:20:43,640 En effet, je ne sais pas ce qui est printf, mais certainement imprimer 504 00:20:43,640 --> 00:20:45,700 évoque l'idée d'imprimer quelque chose. 505 00:20:45,700 --> 00:20:48,590 Et si oui, ce programme va finalement à imprimer 506 00:20:48,590 --> 00:20:50,250 les mots «Hello, World». 507 00:20:50,250 --> 00:20:53,390 >> Maintenant, si vous avez un Mac ou un PC ou un ordinateur Linux, les chances 508 00:20:53,390 --> 00:20:55,550 sont, du moins si vous avez téléchargé un libre 509 00:20:55,550 --> 00:20:58,000 logiciels disponibles, vous auriez pu écrire des programmes sur 510 00:20:58,000 --> 00:21:00,310 votre propre ordinateur portable pour un certain temps maintenant. 511 00:21:00,310 --> 00:21:03,040 Sous Mac OS, par exemple, il ya ce programme appelé 512 00:21:03,040 --> 00:21:05,340 Terminal qui est livré avec un Mac, c'est habituellement dans votre 513 00:21:05,340 --> 00:21:07,550 Dossier Utilitaires, et il ouvre généralement un noir et 514 00:21:07,550 --> 00:21:09,820 blanc ou une fenêtre blanche et noire au cours de laquelle vous avez une 515 00:21:09,820 --> 00:21:11,410 invite à laquelle vous pouvez taper des commandes. 516 00:21:11,410 --> 00:21:13,060 Donc, c'est en fait penser à ce que les ordinateurs 517 00:21:13,060 --> 00:21:15,100 l'habitude d'être devant utilisateur graphique 518 00:21:15,100 --> 00:21:16,710 interfaces, interfaces graphiques, est arrivé. 519 00:21:16,710 --> 00:21:19,200 Maintenant, dans Windows, vous disposez d'un mécanisme similaire dans la forme 520 00:21:19,200 --> 00:21:20,130 de l'invite de commande. 521 00:21:20,130 --> 00:21:23,430 >> Mais ce que je vais faire ici, c'est d'ouvrir, disons, 522 00:21:23,430 --> 00:21:26,580 TextEdit à nouveau, de sorte que le même programme que nous utilisions pour 523 00:21:26,580 --> 00:21:28,870 pseudocode il ya un instant, et je vais aller de l'avant et 524 00:21:28,870 --> 00:21:30,080 écrire mon premier programme. 525 00:21:30,080 --> 00:21:34,030 Inclure stdio.h, quoi que cela signifie, int main 526 00:21:34,030 --> 00:21:36,880 nulle, quel que soit ce moyen, et ensuite dans le milieu ici, 527 00:21:36,880 --> 00:21:40,560 printf ("Bonjour, monde.»). Et puis citation à proximité, 528 00:21:40,560 --> 00:21:42,340 fermer parenthèses, point-virgule. 529 00:21:42,340 --> 00:21:44,460 Maintenant, je vais aller de l'avant et appuyez simplement sur Commande-S. Je vais 530 00:21:44,460 --> 00:21:47,650 aller de l'avant et l'enregistrer comme hello.c, de sorte que la convention 531 00:21:47,650 --> 00:21:50,530 le monde de la programmation C est le nom du fichier dot c. 532 00:21:50,530 --> 00:21:52,880 Je vais juste mettre dans le répertoire d'accueil John Harvard, 533 00:21:52,880 --> 00:21:56,370 ici, cliquez sur Enregistrer, et maintenant je vais passer à ce 534 00:21:56,370 --> 00:21:59,110 fenêtre de terminal, qui est encore présente en noir et blanc rapide 535 00:21:59,110 --> 00:22:00,860 où je peux exécuter des commandes. 536 00:22:00,860 --> 00:22:04,550 >> Je peux exécuter des programmes en tapant leur nom, et non par 537 00:22:04,550 --> 00:22:06,710 double-cliquant sur des icônes dans le sens habituel du terme. 538 00:22:06,710 --> 00:22:10,590 Mais la chose est sur le point C est un langage que comme premier C 539 00:22:10,590 --> 00:22:13,150 vient sous cette forme, que l'on appelle le code source. 540 00:22:13,150 --> 00:22:15,400 Quelque chose qui ressemble un peu anglais, mais est 541 00:22:15,400 --> 00:22:17,980 nettement moins anglais que comme un pseudo-Joseph 542 00:22:17,980 --> 00:22:18,930 tout à l'heure. 543 00:22:18,930 --> 00:22:20,560 C'est un peu plus obscur. 544 00:22:20,560 --> 00:22:22,830 Il semble suivre certaines tendances ou des règles. 545 00:22:22,830 --> 00:22:25,300 Le fait que je n'ai accolades, points-virgules, des citations, 546 00:22:25,300 --> 00:22:28,240 équerres, on se sent comme un ordinateur est venu avec cette 547 00:22:28,240 --> 00:22:29,250 sorte de langage. 548 00:22:29,250 --> 00:22:32,010 Mais si je pars, maintenant, à cette fenêtre de terminal, je peux courir un 549 00:22:32,010 --> 00:22:35,250 commande qui va convertir ce code source est 550 00:22:35,250 --> 00:22:36,610 quelque chose qui s'appelle le code objet. 551 00:22:36,610 --> 00:22:39,690 Cela va convertir Anglais-comme la syntaxe de zéros 552 00:22:39,690 --> 00:22:41,760 et ceux, les mêmes sortes de zéros et de uns nous 553 00:22:41,760 --> 00:22:42,820 parlé mercredi. 554 00:22:42,820 --> 00:22:44,810 Maintenant, je vais exécuter une commande appelée Clang. 555 00:22:44,810 --> 00:22:47,750 Plus à ce sujet dans les semaines à venir, mais c'est un programme avec 556 00:22:47,750 --> 00:22:52,330 que je peux convertir hello.c dans un tas 557 00:22:52,330 --> 00:22:53,640 de zéros et de uns. 558 00:22:53,640 --> 00:22:54,950 >> Maintenant, j'ai exécuté cette commande. 559 00:22:54,950 --> 00:22:57,940 J'ai couru Clang, et puis j'ai dit vous-même fonctionner sur ce fichier 560 00:22:57,940 --> 00:23:00,630 appelé hello.c, que j'ai créée il ya un instant, et 561 00:23:00,630 --> 00:23:02,090 rien ne semble se passer. 562 00:23:02,090 --> 00:23:05,550 Mais en fait, si je fourré autour de mon répertoire, je verrais 563 00:23:05,550 --> 00:23:09,620 que ce programme a.out bêtement nommé existe maintenant. 564 00:23:09,620 --> 00:23:12,250 Ce n'est que le nom par défaut d'un programme lors de l'écriture dans 565 00:23:12,250 --> 00:23:15,140 C. On peut remplacer ce terme, mais a.out est l' 566 00:23:15,140 --> 00:23:18,340 nom du programme que je viens convertis en zéros et de uns. 567 00:23:18,340 --> 00:23:21,490 Et maintenant que ses zéros et de uns, mon Mac, dans ce cas, ou 568 00:23:21,490 --> 00:23:24,670 votre PC sous Windows, peut comprendre ces bits, ces 569 00:23:24,670 --> 00:23:25,410 zéros et de uns. 570 00:23:25,410 --> 00:23:29,130 Et donc quand je la touche Entrée, je vois «bonjour, monde!" 571 00:23:29,130 --> 00:23:31,270 >> Mais c'est un peu bogué. 572 00:23:31,270 --> 00:23:34,110 Je n'ai pas tout à fait dire «bonjour, monde: de l'air: - jharvard." L'air est 573 00:23:34,110 --> 00:23:35,020 le nom de mon ordinateur. 574 00:23:35,020 --> 00:23:37,730 Jharvard est le nom du compte, donc qu'est-ce que j'ai clairement 575 00:23:37,730 --> 00:23:41,070 omettre de ce programme? 576 00:23:41,070 --> 00:23:42,480 Une sorte de retour à la ligne. 577 00:23:42,480 --> 00:23:45,150 Je n'ai pas touché l'équivalent de la touche Entrée ou le retour chariot, 578 00:23:45,150 --> 00:23:47,760 et c'est, encore une fois, témoigne du fait que les ordinateurs peuvent 579 00:23:47,760 --> 00:23:49,800 seulement faire ce que vous leur dites de faire. 580 00:23:49,800 --> 00:23:52,400 Et le fait que je n'ai pas indiquer à l'ordinateur de déplacer le 581 00:23:52,400 --> 00:23:53,860 curseur sur la ligne suivante - 582 00:23:53,860 --> 00:23:55,200 bien, ça ne va certainement pas juste le faire 583 00:23:55,200 --> 00:23:56,750 présomptueusement pour moi. 584 00:23:56,750 --> 00:24:00,860 Donc, si je reviens à mon programme, et je dis \ n - 585 00:24:00,860 --> 00:24:03,180 Donc, \ n, comme nous allons le voir bientôt, c'est la voie de 586 00:24:03,180 --> 00:24:06,910 représenter les choses bizarres comme caractères de nouvelle ligne, les choses 587 00:24:06,910 --> 00:24:08,840 qui, autrement, être le résultat d' 588 00:24:08,840 --> 00:24:09,940 appuyant sur la touche Entrée. 589 00:24:09,940 --> 00:24:11,730 Mais pour l'instant, sachez simplement que la touche Entrée serait 590 00:24:11,730 --> 00:24:14,170 juste faire notre code paraître étrange, pour que le monde a décidé, vous savez 591 00:24:14,170 --> 00:24:16,580 ce qui, pour garder les choses plus jolies, pour le maintenir sur une ligne, nous allons 592 00:24:16,580 --> 00:24:19,070 juste dire \ n représente une nouvelle ligne. 593 00:24:19,070 --> 00:24:22,260 Permettez-moi de réenregistrer mon fichier, revenez à la fenêtre du terminal, et 594 00:24:22,260 --> 00:24:25,290 re-run a.out, Entrée. 595 00:24:25,290 --> 00:24:28,374 Encore buggé, mais pourquoi? 596 00:24:28,374 --> 00:24:29,750 >> PUBLIC: [Inaudible] 597 00:24:29,750 --> 00:24:31,540 DAVID MALAN: Ouais, donc j'ai besoin de le recompiler. 598 00:24:31,540 --> 00:24:34,610 Donc, pour compiler un programme signifie simplement le convertir à partir des sources 599 00:24:34,610 --> 00:24:37,660 code en code objet du code source, de zéros et de uns. 600 00:24:37,660 --> 00:24:40,830 Maintenant, le simple fait que j'ai touché Enregistrer dans cette TextEdit n'a pas 601 00:24:40,830 --> 00:24:43,450 portant sur ces zéros et de uns, car je dois d'abord 602 00:24:43,450 --> 00:24:48,260 tell Clang hey, j'ai changé ces lignes de code, le 603 00:24:48,260 --> 00:24:49,040 code source. 604 00:24:49,040 --> 00:24:51,010 Vous devez régénérer a.out. 605 00:24:51,010 --> 00:24:52,990 Rien ne semble avoir eu lieu, mais dans un ordinateur, 606 00:24:52,990 --> 00:24:55,820 à une ligne de commande, pour ainsi dire, quand rien ne se passe, 607 00:24:55,820 --> 00:24:57,510 cela signifie généralement que tout va bien. 608 00:24:57,510 --> 00:24:59,040 Lorsque quelque chose arrive, cela signifie 609 00:24:59,040 --> 00:25:00,420 vous foiré, en général. 610 00:25:00,420 --> 00:25:04,020 >> Donc, nous allons maintenant passer au format a.out, et même maintenant, j'ai "bonjour, 611 00:25:04,020 --> 00:25:04,440 monde. " 612 00:25:04,440 --> 00:25:05,990 Et maintenant, que dire de ces zéros et de uns? 613 00:25:05,990 --> 00:25:07,520 Si, en effet, sont ceux-là? 614 00:25:07,520 --> 00:25:10,710 Eh bien, je ne peux pas vraiment juste une sorte de fouiller très 615 00:25:10,710 --> 00:25:11,210 efficacement. 616 00:25:11,210 --> 00:25:12,650 Permettez-moi d'ouvrir TextEdit. 617 00:25:12,650 --> 00:25:14,060 Voici a.out. 618 00:25:14,060 --> 00:25:17,390 Permettez-moi aller de l'avant et ouvrez ce, et c'est apparemment ce que mon 619 00:25:17,390 --> 00:25:19,080 programme ressemble. 620 00:25:19,080 --> 00:25:21,570 J'ai donc ouvert, et non hello.c, mais a.out. 621 00:25:21,570 --> 00:25:23,960 Mais ce n'est effectivement pas ce que mon programme est vraiment. 622 00:25:23,960 --> 00:25:26,450 De toute évidence, c'est une sorte de caractères alphabétiques. 623 00:25:26,450 --> 00:25:28,670 Je ne vois pas de zéros et de uns, mais ce n'est 624 00:25:28,670 --> 00:25:30,780 parce a.out est un programme. 625 00:25:30,780 --> 00:25:33,540 Zéros et de uns - mais TextEdit, comme son nom l'indique, il est 626 00:25:33,540 --> 00:25:37,130 tout comme le Bloc-notes de Windows, est tout simplement un éditeur de texte, il est donc 627 00:25:37,130 --> 00:25:39,730 confondre tous ces zéros et de uns comme 628 00:25:39,730 --> 00:25:41,870 si elles étaient, quoi? 629 00:25:41,870 --> 00:25:43,380 Caractères ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Donc, rappelons le mercredi, nous avons juste eu cette 631 00:25:45,020 --> 00:25:48,740 cartographie arbitraire de chiffres, ou bits, aux lettres de l' 632 00:25:48,740 --> 00:25:51,690 l'alphabet et les signes de ponctuation et autres. 633 00:25:51,690 --> 00:25:54,920 Donc, TextEdit, que c'est un éditeur de texte est une interprétation erronée 634 00:25:54,920 --> 00:25:57,270 ces modèles de zéros et de uns qui sont censés être 635 00:25:57,270 --> 00:25:59,990 mots d'impression, tels que «bonjour, monde». C'est en les affichant 636 00:25:59,990 --> 00:26:02,150 ASCII, et c'est pourquoi il semble un peu désordonné. 637 00:26:02,150 --> 00:26:04,910 Maintenant, il ya quelques conseils de justesse dans ici. 638 00:26:04,910 --> 00:26:08,090 Remarquez, si je mets en évidence, il ya un soupçon de réalité "bonjour, 639 00:26:08,090 --> 00:26:10,810 monde », donc quelque part dans ce programme est 640 00:26:10,810 --> 00:26:12,120 la phrase que j'ai écrit. 641 00:26:12,120 --> 00:26:14,610 Mais nous allons aller de l'avant et de maintenant voir avec un programme différent. 642 00:26:14,610 --> 00:26:17,420 Ce n'est pas celui que nous allons l'utiliser souvent, mais il est également livré avec 643 00:26:17,420 --> 00:26:19,970 un Mac et sera à l'intérieur de l'appareil CS50. 644 00:26:19,970 --> 00:26:23,940 Permettez-moi aller de l'avant et d'ouvrir avec un programme appelé XXD. 645 00:26:23,940 --> 00:26:26,530 >> Retour dans la journée, la plupart des programmes ont été nommés assez énigmatique, 646 00:26:26,530 --> 00:26:28,200 et si la tendance se poursuit. 647 00:26:28,200 --> 00:26:31,160 Mais-b signifie cracher sur ce programme sous forme binaire. 648 00:26:31,160 --> 00:26:32,330 Ne pas le faire fonctionner. 649 00:26:32,330 --> 00:26:35,770 Montrez-le-moi autant de zéros et de uns, et c'est le C 650 00:26:35,770 --> 00:26:37,190 programmer nous venons d'écrire. 651 00:26:37,190 --> 00:26:39,920 Maintenant, moi, comme un être humain ici, honnêtement, je n'ai aucune idée de ce que 652 00:26:39,920 --> 00:26:42,230 ces divers modèles de zéros et de uns représentent. 653 00:26:42,230 --> 00:26:45,320 Retour dans la journée, moi, avec mes cartes perforées ou analogues, serait 654 00:26:45,320 --> 00:26:48,080 effectivement regarder jusqu'à ce que ces divers modèles de 655 00:26:48,080 --> 00:26:51,560 01111000, représentent en fait. 656 00:26:51,560 --> 00:26:54,390 Ou pire, j'aurais besoin de faire la perforation ou la création 657 00:26:54,390 --> 00:26:56,130 de ces modèles de zéros et de uns. 658 00:26:56,130 --> 00:27:00,410 Mais pour l'instant, prendre sur la foi qu'un processeur, Intel Inside, si 659 00:27:00,410 --> 00:27:03,440 à parler, à l'intérieur de tous nos ordinateurs de nos jours, connaît 660 00:27:03,440 --> 00:27:05,100 comment interpréter ces zéros et de uns. 661 00:27:05,100 --> 00:27:07,010 Et certains zéros et de uns signifie impression. 662 00:27:07,010 --> 00:27:09,040 Certains zéros et de uns signifie jouer un son. 663 00:27:09,040 --> 00:27:13,630 Certains zéros et de uns signifie prendre saisie de l'utilisateur à partir d'un clavier. 664 00:27:13,630 --> 00:27:15,960 Il ya toutes sortes de motifs différents, mais nous avons heureusement, 665 00:27:15,960 --> 00:27:19,680 en tant qu'êtres humains, que généralement besoin de s'inquiéter à propos de la programmation à 666 00:27:19,680 --> 00:27:21,270 ce niveau assez élevé. 667 00:27:21,270 --> 00:27:24,320 Et dans les classes CS d'autres peuvent vous plonger plus profondément et nous 668 00:27:24,320 --> 00:27:26,820 à des choses comme les zéros et des uns, ou encore 669 00:27:26,820 --> 00:27:28,000 d'autres choses encore. 670 00:27:28,000 --> 00:27:29,210 >> Alors maintenant, nous allons convertir cette. 671 00:27:29,210 --> 00:27:32,550 Passons très rapidement loin de C et de passer à quelque chose d'un 672 00:27:32,550 --> 00:27:36,390 peu plus réconfortant, un peu plus excitant, dans ce 673 00:27:36,390 --> 00:27:39,340 nous pouvons récupérer nos animations et des sons et tout ce qui 674 00:27:39,340 --> 00:27:40,940 clairement nous ont échappé dans ce 675 00:27:40,940 --> 00:27:42,480 assez d'interface primitive. 676 00:27:42,480 --> 00:27:46,430 Donc, ce même programme en C peut être représenté aujourd'hui dans ce 677 00:27:46,430 --> 00:27:50,060 langage de programmation appelé Scratch comme suit. 678 00:27:50,060 --> 00:27:54,230 C'est l'équivalent de ce programme Bonjour tout le monde écrit en 679 00:27:54,230 --> 00:27:57,370 cette langue style de puzzle appelé Scratch. 680 00:27:57,370 --> 00:28:00,600 Alors laissez-moi aller de l'avant et d'ouvrir ce programme très. 681 00:28:00,600 --> 00:28:01,850 Il a de nouveau appelé Scratch. 682 00:28:01,850 --> 00:28:03,880 Il est librement disponible, et c'est la même chose que nous 683 00:28:03,880 --> 00:28:05,120 Commencez dès aujourd'hui sur. 684 00:28:05,120 --> 00:28:07,790 >> Il s'agit donc ici Scratch, et il est divisé en un petit nombre 685 00:28:07,790 --> 00:28:09,700 différentes pièces. 686 00:28:09,700 --> 00:28:12,690 Sur la droite, tout en haut, nous avons le stade de soi-disant, et 687 00:28:12,690 --> 00:28:13,670 en effet, c'est là que les cookies 688 00:28:13,670 --> 00:28:15,440 effectué un peu plus tôt. 689 00:28:15,440 --> 00:28:19,660 Et sur cette scène sont des choses appelées sprites, des caractères ou 690 00:28:19,660 --> 00:28:21,030 des objets ou des entités. 691 00:28:21,030 --> 00:28:23,320 Il n'est pas vraiment important ce que vous pensez d'eux, mais ils 692 00:28:23,320 --> 00:28:26,740 sont programmables, les biens meubles, et dans ce cas, ce 693 00:28:26,740 --> 00:28:30,730 programme que notre étudiant a écrit a un couple de pain d'épice 694 00:28:30,730 --> 00:28:32,990 biscuits, un couple de cookies circulaires, tout un tas d' 695 00:28:32,990 --> 00:28:35,430 cœurs, tout un tas de lunettes. 696 00:28:38,170 --> 00:28:42,420 Pour cette raison, il ou elle est en mesure de programmer chacun de ces 697 00:28:42,420 --> 00:28:44,720 caractères individuels séparément. 698 00:28:44,720 --> 00:28:46,480 >> Maintenant, qu'est-ce que cela signifie pour programmer ces personnages? 699 00:28:46,480 --> 00:28:49,440 Eh bien, laissez-moi aller de l'avant et cliquez sur ce cookie main gauche 700 00:28:49,440 --> 00:28:51,830 et faites défiler vers le haut à gauche ici. 701 00:28:51,830 --> 00:28:53,670 En haut à gauche de mon écran est maintenant le 702 00:28:53,670 --> 00:28:55,280 dite zone scripts. 703 00:28:55,280 --> 00:28:58,790 C'est en quelque sorte une ardoise vierge, d'abord, sur lequel je peux 704 00:28:58,790 --> 00:29:01,540 glisser-déposer les pièces du puzzle qui, franchement, ne 705 00:29:01,540 --> 00:29:03,020 exactement ce qu'ils disent. 706 00:29:03,020 --> 00:29:05,820 Au sommet de cette pile de pièces de puzzle est le mot 707 00:29:05,820 --> 00:29:09,340 Lorsque vous cliquez dessus drapeau vert, et si vous ne l'avez pas remarqué avant, 708 00:29:09,340 --> 00:29:12,300 la façon dont j'ai commencé cette chanson cliquant cookie a été, littéralement, 709 00:29:12,300 --> 00:29:13,320 un drapeau vert. 710 00:29:13,320 --> 00:29:16,590 Alors que pièce de puzzle en haut à gauche il signifie que lorsque le 711 00:29:16,590 --> 00:29:19,780 clics de l'homme le drapeau vert, se mit à faire 712 00:29:19,780 --> 00:29:21,110 les choses suivantes. 713 00:29:21,110 --> 00:29:23,330 >> Maintenant, qu'est-ce qu'ils cookie de procéder à le faire? 714 00:29:23,330 --> 00:29:25,810 Je ne sais pas vraiment comment interpréter ce moment, mais le 715 00:29:25,810 --> 00:29:29,220 biscuit apparemment mis sa gorge à zéro, puis elle a attendu 716 00:29:29,220 --> 00:29:31,740 trois secondes, puis il a changé son groupe à l'un, puis l' 717 00:29:31,740 --> 00:29:33,590 attendit une seconde, puis il a changé son 718 00:29:33,590 --> 00:29:35,100 retour à une rainure. 719 00:29:35,100 --> 00:29:37,373 Et puis ce ressemble réellement un peu d'un bug, ne devrait pas 720 00:29:37,373 --> 00:29:39,440 avoir à changer sa gorge encore et encore sauf s'il s'agit d' 721 00:29:39,440 --> 00:29:43,380 étant changé d'ailleurs, mais cette série de mesures est ce qui est 722 00:29:43,380 --> 00:29:46,800 dicter le comportement de ce cookie particulier. 723 00:29:46,800 --> 00:29:49,180 Donc, nous allons effectivement revenir en arrière et de ne pas regarder quelque chose 724 00:29:49,180 --> 00:29:50,430 tout à fait si complexe encore. 725 00:29:50,430 --> 00:29:52,260 Permettez-moi aller de l'avant et allez sur Fichier, Nouveau, 726 00:29:52,260 --> 00:29:53,560 et obtenir une table rase. 727 00:29:53,560 --> 00:29:56,590 >> Alors maintenant, j'ai en effet une zone de script vide, une scène vide, 728 00:29:56,590 --> 00:29:59,380 Scratch avec notre sprite par défaut, et en haut à gauche 729 00:29:59,380 --> 00:30:01,670 sur mon écran je dois la palette de l'ensemble de leurs 730 00:30:01,670 --> 00:30:03,400 pièces de puzzle disponibles. 731 00:30:03,400 --> 00:30:06,300 Et nous n'allons pas passer près que beaucoup de ces choses 732 00:30:06,300 --> 00:30:09,470 aujourd'hui, parce que, encore une fois, la plupart sont explicites, mais nous allons 733 00:30:09,470 --> 00:30:12,370 essayer de les classer et de souligner les similitudes 734 00:30:12,370 --> 00:30:15,380 avec ces langues futures auxquelles nous allons plonger. 735 00:30:15,380 --> 00:30:19,180 Et en haut à gauche voici le premier drapeau vert Lorsque vous cliquez dessus, 736 00:30:19,180 --> 00:30:22,170 alors laissez-moi faire glisser ce par ici, un zoom arrière un peu. 737 00:30:22,170 --> 00:30:25,780 Et si je clique sur le drapeau vert, rien ne se passe vraiment parce que 738 00:30:25,780 --> 00:30:29,360 Je n'ai pas attaché toute logique, toute déclaration pour ainsi dire, à 739 00:30:29,360 --> 00:30:31,040 que le drapeau vert, alors laissez-moi aller jusqu'à la 740 00:30:31,040 --> 00:30:32,500 catégories plus ici. 741 00:30:32,500 --> 00:30:34,840 Je suis actuellement dans la catégorie de contrôle. 742 00:30:34,840 --> 00:30:37,630 Je suis plutôt aller vers le bas pour la catégorie Apparence, et 743 00:30:37,630 --> 00:30:39,970 il ya tout un tas de choses ici qui disent Say, 744 00:30:39,970 --> 00:30:43,110 Pensez, changement de costume Commutateur couleur,. 745 00:30:43,110 --> 00:30:44,860 >> Ainsi, vous pouvez faire des choses stupides avec des costumes et 746 00:30:44,860 --> 00:30:45,870 sons et analogues. 747 00:30:45,870 --> 00:30:49,970 Permettez-moi aller de l'avant et juste dire Say, et remarquez maintenant que je traîne 748 00:30:49,970 --> 00:30:52,940 et déposer cette pièce de puzzle, il va vouloir prendre le sein 749 00:30:52,940 --> 00:30:55,010 dans la forme correspondante. 750 00:30:55,010 --> 00:30:58,020 Alors, quand je aller de l'avant et de laisser aller de ma souris, ils ferment 751 00:30:58,020 --> 00:31:01,770 ensemble, et maintenant si je vais là-bas et cliquez sur le drapeau vert, 752 00:31:01,770 --> 00:31:05,910 le chat ne fait de dire bonjour parce que c'est ce qu'il ya dedans 753 00:31:05,910 --> 00:31:06,980 de cette boîte blanche. 754 00:31:06,980 --> 00:31:08,900 Nous verrons bientôt que cette boîte blanche est ce qu'on appelle un 755 00:31:08,900 --> 00:31:10,250 argument, ou un paramètre. 756 00:31:10,250 --> 00:31:12,560 C'est une façon de changer le comportement des, dans ce cas, un 757 00:31:12,560 --> 00:31:15,070 puzzle, mais si je veux dire exactement ce que j'ai dit 758 00:31:15,070 --> 00:31:18,610 avant, dire bonjour, monde, je peux maintenant retourner là-bas, 759 00:31:18,610 --> 00:31:21,990 cliquez sur jouer, et "bonjour tout le monde" est ce qui est dit. 760 00:31:21,990 --> 00:31:24,340 >> Donc, nous sommes littéralement programmer maintenant. 761 00:31:24,340 --> 00:31:27,540 Ce n'est pas tout ce que convaincante d'un programme, mais au moins 762 00:31:27,540 --> 00:31:30,140 c'est un petit quelque chose de plus convaincant que qui ressemble à 763 00:31:30,140 --> 00:31:31,300 première vue, comme ça. 764 00:31:31,300 --> 00:31:34,190 Et on peut très rapidement obtenir autant plus expressive 765 00:31:34,190 --> 00:31:36,600 parce que dans Scratch, comme dans d'autres langues, il ya tout 766 00:31:36,600 --> 00:31:40,010 sortes de déclarations, pas seulement dire ou l'impression quelque chose, mais 767 00:31:40,010 --> 00:31:42,650 vous pouvez faire des choses comme l'attente, comme nous venons de le voir avec 768 00:31:42,650 --> 00:31:44,240 le cookie, un certain nombre de secondes. 769 00:31:44,240 --> 00:31:46,440 Vous pouvez jouer des sons dans l'environnement de Scratch juste 770 00:31:46,440 --> 00:31:49,050 comme vous pouvez dans un son jeu d'ordinateur normal du programme. 771 00:31:49,050 --> 00:31:52,440 Vous pouvez vérifier ce qu'on appelle des expressions booléennes. 772 00:31:52,440 --> 00:31:55,630 Alors maintenant, nous allons commencer à ajouter à notre boîte à outils un peu de terminologie 773 00:31:55,630 --> 00:31:58,840 qui se rapporte effectivement à l'exemple que Joseph et moi avons fait 774 00:31:58,840 --> 00:32:00,080 ici avec les chaussettes. 775 00:32:00,080 --> 00:32:03,040 Donc déclarations ne sont que des énoncés de faits. 776 00:32:03,040 --> 00:32:04,160 Pour ce faire. 777 00:32:04,160 --> 00:32:07,370 Une directive pour le sprite, ou me l'être humain, de faire quelque chose. 778 00:32:07,370 --> 00:32:10,420 Une expression booléenne est quelque chose qui a une valeur, un 779 00:32:10,420 --> 00:32:14,580 valeur de vérité soi-disant, c'est un zéro ou un, faux ou 780 00:32:14,580 --> 00:32:17,890 vrai, éteint ou allumé, oui ou non. 781 00:32:17,890 --> 00:32:19,730 N'est pas vraiment important ce que vous pensez de cela, mais c'est un 782 00:32:19,730 --> 00:32:20,700 état binaire. 783 00:32:20,700 --> 00:32:22,610 Comme Nate discuté dans la vidéo de mercredi, deux 784 00:32:22,610 --> 00:32:23,570 choses différentes. 785 00:32:23,570 --> 00:32:25,740 >> Ainsi, dans Scratch, les expressions booléennes arrive de regarder 786 00:32:25,740 --> 00:32:28,910 comme ces objets bleus ici, et dans ce cas, la question 787 00:32:28,910 --> 00:32:30,960 marque implique que vous vous posez une question. 788 00:32:30,960 --> 00:32:34,250 Est le chat ou le sprite, touchant le pointeur de la souris? 789 00:32:34,250 --> 00:32:36,580 Donc, ce n'est qu'un exemple d'un bloc Scratch qui va 790 00:32:36,580 --> 00:32:39,950 pour nous permettre de répondre par oui ou non, est la souris de toucher le 791 00:32:39,950 --> 00:32:40,790 sprite à l'écran? 792 00:32:40,790 --> 00:32:42,840 Et cela peut être utile si vous voulez vraiment faire les choses 793 00:32:42,840 --> 00:32:43,820 avec votre souris. 794 00:32:43,820 --> 00:32:46,470 En plus des expressions booléennes, nous avons des choses 795 00:32:46,470 --> 00:32:49,110 comme est la souris vers le bas, de sorte que vous pouvez détecter ce genre de 796 00:32:49,110 --> 00:32:50,200 question ainsi. 797 00:32:50,200 --> 00:32:52,590 Nous pouvons faire des mathématiques, si vous voulez vraiment, et il ya 798 00:32:52,590 --> 00:32:55,170 utilisations en fait plus impérieuses pour ce que juste pur 799 00:32:55,170 --> 00:32:56,400 arithmétique, comme nous le verrons. 800 00:32:56,400 --> 00:32:59,690 Aléatoire pseudo et faire de votre programme semblent penser 801 00:32:59,690 --> 00:33:03,490 ou se comporter différemment selon certaines valeurs apparemment aléatoires, 802 00:33:03,490 --> 00:33:06,610 et puis nous avons des choses comme expressions booléennes comme ET. 803 00:33:06,610 --> 00:33:08,830 Donc, si vous voulez vraiment vérifier deux valeurs, nous le verrons dans 804 00:33:08,830 --> 00:33:11,110 Grattez que nous pouvons tester si ce n'est 805 00:33:11,110 --> 00:33:13,190 vrai et ce qui est vrai. 806 00:33:13,190 --> 00:33:15,300 Par exemple, dans le cas de mes chaussettes, j'aurais pu à la 807 00:33:15,300 --> 00:33:19,045 très fin posé la question si chaussette gauche et à droite sur la chaussette 808 00:33:19,045 --> 00:33:20,610 est sur, arrêter de fumer. 809 00:33:20,610 --> 00:33:22,710 Vous avez terminé pour la journée, alors ce serait une 810 00:33:22,710 --> 00:33:24,300 possibilité pour cela. 811 00:33:24,300 --> 00:33:27,740 >> Donc, nous allons aller de l'avant et essayer de reconstituer certains d'entre eux ainsi que 812 00:33:27,740 --> 00:33:31,570 et aller dans quelques exemples parmi les plus 813 00:33:31,570 --> 00:33:32,610 convaincant que celui-ci. 814 00:33:32,610 --> 00:33:35,770 Alors laissez-moi aller de l'avant ici et d'ouvrir quelques-uns des exemples 815 00:33:35,770 --> 00:33:38,350 qui sera toujours sur le site Web du cours aussi bien, et 816 00:33:38,350 --> 00:33:39,870 ouvrir hello2. 817 00:33:39,870 --> 00:33:42,910 Donc, en hello2 ici, nous avons un programme qui fait un peu 818 00:33:42,910 --> 00:33:46,290 choses, mais il ne le fait pas de manière aussi efficace que nous le pourrions. 819 00:33:46,290 --> 00:33:48,900 Donc, ici, il dit "bonjour tout le monde" pendant une seconde, puis attend 820 00:33:48,900 --> 00:33:49,450 pour une seconde. 821 00:33:49,450 --> 00:33:51,720 Et est-il à nouveau, puis refait la même chose. 822 00:33:51,720 --> 00:33:55,530 Donc, si je clique sur le drapeau vert, dit Scratch "Bonjour tout le monde. 823 00:33:55,530 --> 00:33:57,160 Bonjour tout le monde. 824 00:33:57,160 --> 00:34:00,080 Bonjour tout le monde. "Et ce n'est évidemment candidat maintenant 825 00:34:00,080 --> 00:34:00,860 amélioration. 826 00:34:00,860 --> 00:34:03,070 >> Quelle est la légère amélioration, je l'espère, nous pouvons 827 00:34:03,070 --> 00:34:07,610 maintenant faire si Scratch appuie le concept? 828 00:34:07,610 --> 00:34:08,310 Une sorte de boucle. 829 00:34:08,310 --> 00:34:10,960 Une sorte de répétition, maintenant, ce serait bien, permettez-moi de 830 00:34:10,960 --> 00:34:11,920 effectivement essayer. 831 00:34:11,920 --> 00:34:13,870 Permettez-moi de réellement aller avancer ce dossier. 832 00:34:13,870 --> 00:34:16,449 Alors préavis peut se détacher des blocs aussi facilement que vous pouvez ajouter à 833 00:34:16,449 --> 00:34:17,420 les attacher. 834 00:34:17,420 --> 00:34:20,730 Permettez-moi de passer sous contrôle, descendez ici, et en effet, 835 00:34:20,730 --> 00:34:24,000 il ya ce morceau de puzzle ici, Répétition et pour toujours et 836 00:34:24,000 --> 00:34:24,870 Toujours Si. 837 00:34:24,870 --> 00:34:28,500 Il ya donc un certain nombre de façons d'exprimer constructions de boucles 838 00:34:28,500 --> 00:34:29,340 dans Scratch. 839 00:34:29,340 --> 00:34:31,730 Celui que je veux sans doute ici n'est pas toujours parce que je ne 840 00:34:31,730 --> 00:34:34,639 que cela se produise à trois reprises, mais sans doute répéter. 841 00:34:34,639 --> 00:34:38,449 Permettez-moi de glisser Répéter ici, faites-le glisser et 842 00:34:38,449 --> 00:34:42,530 maintenant, au lieu de dire «Hello, World" à trois reprises, 843 00:34:42,530 --> 00:34:44,230 permettez-moi de faire glisser cette pièce de puzzle ici. 844 00:34:44,230 --> 00:34:46,610 Et même si elle ne semble pas correspondre, le programme est intelligent 845 00:34:46,610 --> 00:34:48,920 assez pour savoir qu'il passera à remplir, c'est donc la 846 00:34:48,920 --> 00:34:51,270 formes que la matière et non pas la taille absolue. 847 00:34:51,270 --> 00:34:54,030 Permettez-moi de changer la répétition à trois, et maintenant laissez-moi aller 848 00:34:54,030 --> 00:34:56,560 de l'avant et faire glisser Attendez une seconde là-dedans aussi. 849 00:34:56,560 --> 00:34:59,220 Il va s'enclencher aussi bien, et maintenant je vais glisser 850 00:34:59,220 --> 00:35:01,370 ces gars-là ici et plus simplement les jeter parce que je 851 00:35:01,370 --> 00:35:02,710 ne les avez plus besoin. 852 00:35:02,710 --> 00:35:05,920 Permettez-moi de faire un zoom arrière et cliquez sur le drapeau vert maintenant, et nous avons 853 00:35:05,920 --> 00:35:09,600 le même programme, mais, comme je l'avais prédit avant, une meilleure 854 00:35:09,600 --> 00:35:12,200 conçu parce que vous pouvez imaginer à quel point ce programme 855 00:35:12,200 --> 00:35:14,410 obtiendrait certainement esthétiquement, si vous aviez à 856 00:35:14,410 --> 00:35:16,640 commencer à copier-coller, copier-coller, ou 857 00:35:16,640 --> 00:35:20,020 glisser-déposer les mêmes choses encore et encore sacrément. 858 00:35:20,020 --> 00:35:22,260 >> Maintenant, il suffit de dire des choses sur l'écran, l'impression à la 859 00:35:22,260 --> 00:35:25,350 écran, vraiment tout-ce pas excitant, nous allons donc ouvrir un 860 00:35:25,350 --> 00:35:26,580 variance troisième ici. 861 00:35:26,580 --> 00:35:29,810 Et maintenant, comme vous le verrez, ça va vite ennuyeux - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 DAVID MALAN: - mais c'est aussi assez mignon. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 DAVID MALAN: D'accord, donc il vaut mieux, et nous pouvons certainement utiliser cette 866 00:35:37,460 --> 00:35:41,060 même transition d'arrachement ce en une boucle 867 00:35:41,060 --> 00:35:43,520 structure, mais nous allons la rendre plus intéressante encore. 868 00:35:43,520 --> 00:35:47,480 >> Permettez-moi aller de l'avant et d'ouvrir une variance quatrième ici, où je 869 00:35:47,480 --> 00:35:50,020 prendre les choses un peu plus loin. 870 00:35:50,020 --> 00:35:54,450 Ainsi, selon cette, idiot si ce n'est dans un premier temps 871 00:35:54,450 --> 00:35:58,530 coup d'oeil, ce qui est ce programme va faire? 872 00:35:58,530 --> 00:35:59,790 Il va miauler fois. 873 00:35:59,790 --> 00:36:00,160 Pourquoi? 874 00:36:00,160 --> 00:36:03,340 Eh bien, on est, autant que je sache, toujours inférieur à deux. 875 00:36:03,340 --> 00:36:04,890 Il n'ya pas de notion de hasard ici. 876 00:36:04,890 --> 00:36:07,240 J'ai littéralement codé en dur un et deux, mais c'est une 877 00:36:07,240 --> 00:36:10,370 Par exemple aujourd'hui d'utiliser effectivement une expression booléenne. 878 00:36:10,370 --> 00:36:13,650 Tout comme comme le fit Joseph dans son pseudo-code, l'indentation SI 879 00:36:13,650 --> 00:36:17,170 vous trouverez chaussettes correspondant puis procédez comme suit, ici, nous avons 880 00:36:17,170 --> 00:36:19,750 une expression si l'on est moins de deux PUIS - 881 00:36:19,750 --> 00:36:21,820 et en fait, nous avons même un peu de retrait, 882 00:36:21,820 --> 00:36:24,480 où le violet est légèrement en retrait à droite - 883 00:36:24,480 --> 00:36:26,600 Alors vous allez jouer le miaulement sonore. 884 00:36:26,600 --> 00:36:30,060 Maintenant, dans ce cas, que l'on est toujours inférieur à deux, donc ce 885 00:36:30,060 --> 00:36:31,970 est une sorte de gaspillage d'une condition. 886 00:36:31,970 --> 00:36:34,890 Mais nous serons en mesure, comme nous le verrons, de brancher d'autres choses dans 887 00:36:34,890 --> 00:36:37,420 ces espaces réservés où un et deux sont maintenant. 888 00:36:37,420 --> 00:36:41,340 Donc, nous allons maintenant passer à cinq d'entre eux par exemple plusieurs 889 00:36:41,340 --> 00:36:45,850 bonjours et regard sur ce que ce programme va faire. 890 00:36:45,850 --> 00:36:48,710 >> Alors maintenant, dans une phrase en anglais, comment cela 891 00:36:48,710 --> 00:36:51,460 programme se comporter? 892 00:36:51,460 --> 00:36:52,950 PUBLIC: Meows la moitié du temps. 893 00:36:52,950 --> 00:36:55,380 DAVID MALAN: la moitié Meow de l'époque, c'est donc une façon de 894 00:36:55,380 --> 00:36:56,700 transport une idée très simple. 895 00:36:56,700 --> 00:36:59,400 Même si nous arrive d'utiliser des inégalités ici 896 00:36:59,400 --> 00:37:01,860 en quelques chiffres, c'est vraiment juste un programmatique 897 00:37:01,860 --> 00:37:09,490 Ainsi, d'une manière précise, de dire si la pièce se lève la tête, aller 898 00:37:09,490 --> 00:37:10,270 avant et miauler. 899 00:37:10,270 --> 00:37:13,540 Ou à l'inverse, si la pièce se lève la queue, ne miaulent pas. 900 00:37:13,540 --> 00:37:15,110 Et dans ce cas, comment pouvons-nous exprimer cela? 901 00:37:15,110 --> 00:37:17,950 Nous allons choisir un nombre aléatoire de 1 à 10, et si cela 902 00:37:17,950 --> 00:37:21,110 nombre est inférieur à 6, aller de l'avant et miauler. 903 00:37:21,110 --> 00:37:22,260 Et comment est-ce arrivé ici? 904 00:37:22,260 --> 00:37:24,620 Eh bien encore une fois, notez simplement le glisser-déposer et 905 00:37:24,620 --> 00:37:26,190 les choses se verrouille en place. 906 00:37:26,190 --> 00:37:28,020 >> Alors maintenant, nous allons voir si cela fonctionne aléatoire. 907 00:37:28,020 --> 00:37:29,845 Permettez-moi aller de l'avant et cliquez sur le drapeau vert. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 DAVID MALAN: Très bien. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 DAVID MALAN: Très bien. 912 00:37:35,260 --> 00:37:38,510 Bon, bon, donc nous avons têtes, les têtes, queues de manière efficace. 913 00:37:38,510 --> 00:37:39,295 Tails. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 DAVID MALAN: chefs. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 DAVID MALAN: Excellent. 918 00:37:44,040 --> 00:37:46,220 C'est toujours difficile quand vient statistiquement vous obtenez un mauvais 919 00:37:46,220 --> 00:37:48,510 courir, et c'est toutes les têtes, et le programme ne fait pas 920 00:37:48,510 --> 00:37:49,230 travailler comme vous le souhaiteriez. 921 00:37:49,230 --> 00:37:51,210 Mais cette fois, il a travaillé, et il semble que nous avons, si nous avons fait 922 00:37:51,210 --> 00:37:53,830 ce nombre infini de fois, les chances de 50%. 923 00:37:53,830 --> 00:37:56,950 Maintenant, encore une fois, pas tout à fait intéressant, juste faire les chats 924 00:37:56,950 --> 00:37:59,840 miaou, alors voyons si nous ne pouvons avancer que c'est un peu plus loin 925 00:37:59,840 --> 00:38:01,820 ici en version six. 926 00:38:01,820 --> 00:38:05,620 Alors maintenant, nous avons la version très ennuyeux - 927 00:38:05,620 --> 00:38:08,215 [Miaule toutes les quelques secondes] 928 00:38:08,215 --> 00:38:10,640 DAVID MALAN: - et c'est ce qui est connu, en général, en tant que 929 00:38:10,640 --> 00:38:11,670 boucle infinie. 930 00:38:11,670 --> 00:38:14,190 >> Boucle infinie Donc dans ce cas, se sent mal. 931 00:38:14,190 --> 00:38:16,970 Il va certainement commencer à sonner mal, et pourtant infinie 932 00:38:16,970 --> 00:38:18,740 boucles ne sont pas toujours mauvais. 933 00:38:18,740 --> 00:38:20,910 Pouvez-vous penser du contexte dans les programmes d'ordinateur où vous souhaitez 934 00:38:20,910 --> 00:38:22,910 veulent réellement une boucle infinie? 935 00:38:22,910 --> 00:38:23,691 Ouais? 936 00:38:23,691 --> 00:38:26,520 PUBLIC: Lorsque vous voulez vérifier une condition. 937 00:38:26,520 --> 00:38:28,240 DAVID MALAN: D'accord, si vous voulez garder le contrôle de la situation? 938 00:38:28,240 --> 00:38:29,190 Comme quoi? 939 00:38:29,190 --> 00:38:30,440 PUBLIC: [Inaudible] 940 00:38:36,060 --> 00:38:38,170 DAVID MALAN: Très bien, donc si vous aviez un programme, certains 941 00:38:38,170 --> 00:38:40,440 genre de chose domotique, où vous voulez en permanence 942 00:38:40,440 --> 00:38:41,980 moniteur est quelque chose de l'affaire. 943 00:38:41,980 --> 00:38:42,850 Les lumières allumées? 944 00:38:42,850 --> 00:38:45,020 Les lumières allumées parce que peut-être vous avez une minuterie, et 945 00:38:45,020 --> 00:38:47,360 vous voulez qu'ils s'éteignent, vous pourriez avoir besoin de faire quelque chose 946 00:38:47,360 --> 00:38:48,290 encore et encore. 947 00:38:48,290 --> 00:38:50,540 Et en fait, en parlant de minuteries, aucun d'entre vous qui ont 948 00:38:50,540 --> 00:38:53,100 horloges sur votre ordinateur ou les montres numériques, c'est une 949 00:38:53,100 --> 00:38:54,210 boucle infinie. 950 00:38:54,210 --> 00:38:56,980 Il continue de mettre à jour le temps parce qu'il est constamment 951 00:38:56,980 --> 00:38:59,750 la vérification et le contrôle et la vérification a changé le temps, 952 00:38:59,750 --> 00:39:01,000 et si oui, oh, mon dieu. 953 00:39:03,670 --> 00:39:04,740 L'horloge a finalement changé. 954 00:39:04,740 --> 00:39:07,020 Il faut afficher cette valeur pour vous. 955 00:39:07,020 --> 00:39:10,880 Ainsi, alors que la plupart des boucles temporelles infinies sont une erreur, 956 00:39:10,880 --> 00:39:13,950 ou au moins une décision de conception médiocre, parfois ils le font 957 00:39:13,950 --> 00:39:14,785 ont leur valeur. 958 00:39:14,785 --> 00:39:18,170 >> Eh bien, nous allons progresser encore ici pour hello7. 959 00:39:18,170 --> 00:39:20,410 Alors maintenant, le programme sera un peu plus interactif. 960 00:39:20,410 --> 00:39:23,120 Permettez-moi de faire un zoom avant ici, et encore une fois, c'est ce qui est bien 961 00:39:23,120 --> 00:39:23,640 à propos de Scratch. 962 00:39:23,640 --> 00:39:26,760 Et nous allons l'utiliser pour être clair, Scratch, juste aujourd'hui et dans 963 00:39:26,760 --> 00:39:27,780 problème réglé la semaine prochaine. 964 00:39:27,780 --> 00:39:31,920 Mais lundi, nous plonger dans C. Dans ce programme ici, c'est le cas, 965 00:39:31,920 --> 00:39:33,190 toujours, ce qui suit. 966 00:39:33,190 --> 00:39:35,890 SI toucher le pointeur de la souris - maintenant, qui est la 967 00:39:35,890 --> 00:39:36,420 contexte ici? 968 00:39:36,420 --> 00:39:39,670 Eh bien, et notez que qui est sélectionné ici-bas, au fond, 969 00:39:39,670 --> 00:39:43,060 est juste le chat, sprite un, de sorte que ces scripts, ce 970 00:39:43,060 --> 00:39:45,720 programme, s'applique à lui en particulier. 971 00:39:45,720 --> 00:39:48,950 Donc, si ce chat est en contact avec le pointeur de la souris, puis il va 972 00:39:48,950 --> 00:39:51,350 de jouer ce bas et attendre deux secondes, et 973 00:39:51,350 --> 00:39:53,030 puis répéter ad nauseam. 974 00:39:53,030 --> 00:39:55,360 >> Alors allons-y et appuyez sur lecture. 975 00:39:55,360 --> 00:39:57,580 Rien ne se passe, mais si je veux caresser le 976 00:39:57,580 --> 00:39:59,310 chat maintenant, je ne peux tout simplement. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 DAVID MALAN: adorable. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 DAVID MALAN: D'accord, moins ennuyeux, mais obtient également terne, 981 00:40:08,750 --> 00:40:11,480 nous allons donc passer à autre chose et de voir si nous ne pouvons pas injecter 982 00:40:11,480 --> 00:40:12,460 une logique un peu plus. 983 00:40:12,460 --> 00:40:14,300 Ce fut par exemple sept ans. 984 00:40:14,300 --> 00:40:16,090 >> Ici dans l'exemple huit, nous allons 985 00:40:16,090 --> 00:40:18,670 introduire une condition ELSE. 986 00:40:18,670 --> 00:40:21,440 Donc, un peu comme une fourchette littérale de la route, où vous pouvez aller 987 00:40:21,440 --> 00:40:24,260 vers la gauche ou vous pouvez aller à droite, une condition dans une programmation 988 00:40:24,260 --> 00:40:28,120 langue comme le Scratch, ou comme nous le verrons C, peut vous permettre de 989 00:40:28,120 --> 00:40:32,230 aller dans un sens ou dans l'autre par l'intermédiaire d'un SI AUTRE construire. 990 00:40:32,230 --> 00:40:35,160 Donc, littéralement, SI toucher pointeur de la souris, ce 991 00:40:35,160 --> 00:40:38,680 jouera un son, sinon il va jouer cet autre 992 00:40:38,680 --> 00:40:39,800 son, miaou. 993 00:40:39,800 --> 00:40:42,510 Maintenant, si vous pouvez en déduire le nom de ces sons, vous pouvez 994 00:40:42,510 --> 00:40:45,310 probablement deviner ce que ce programme est censé évoquer 995 00:40:45,310 --> 00:40:46,250 l'idée d'. 996 00:40:46,250 --> 00:40:48,742 Ce chat miaule heureux. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 DAVID MALAN: Heureusement, mais ne 999 00:40:51,410 --> 00:40:52,926 tout à fait comme au toucher. 1000 00:40:52,926 --> 00:40:54,550 [Rugit] 1001 00:40:54,550 --> 00:40:57,500 DAVID MALAN: Alors maintenant, nous avons un chat qui va hurler à vous. 1002 00:40:57,500 --> 00:41:00,570 >> Bon, eh bien, un dernier exemple avec les chats ici, et 1003 00:41:00,570 --> 00:41:02,920 nous allons version open neuf de cela ici. 1004 00:41:02,920 --> 00:41:06,190 Alors maintenant, nous avons le son suivant le plus ennuyeux que je ne pouvais 1005 00:41:06,190 --> 00:41:11,630 trouver, donc nous avons un morse ou un lion de mer ici qui va 1006 00:41:11,630 --> 00:41:13,222 procédez comme suit. 1007 00:41:13,222 --> 00:41:20,870 [BARK SCEAU] 1008 00:41:20,870 --> 00:41:23,310 DAVID MALAN: D'accord, donc cela va durer jusqu'à ce que vous avez compris comment 1009 00:41:23,310 --> 00:41:24,640 ce programme fonctionne. 1010 00:41:24,640 --> 00:41:28,560 Alors, cette fois, cet animal a deux scripts, et ce qui est 1011 00:41:28,560 --> 00:41:31,050 intéressant ici, c'est que ces scripts vont exécuter 1012 00:41:31,050 --> 00:41:32,260 en parallèle. 1013 00:41:32,260 --> 00:41:35,340 Parce qu'ils commencent tous les deux par un drapeau vert cliqué, 1014 00:41:35,340 --> 00:41:38,080 c'est comme aller comme ça, et les deux programmes lancer son exécution 1015 00:41:38,080 --> 00:41:41,370 une fois même si elles sont toujours en boucle. 1016 00:41:41,370 --> 00:41:44,420 Ainsi, dans le scénario haut, j'ai une certaine logique. 1017 00:41:44,420 --> 00:41:49,275 Quelles sont les fonctionnalités qui fournissent là-haut? 1018 00:41:49,275 --> 00:41:50,740 [BARK SCEAU] 1019 00:41:50,740 --> 00:41:51,670 PUBLIC: [Inaudible] 1020 00:41:51,670 --> 00:41:53,295 DAVID MALAN: Si c'est quoi? 1021 00:41:53,295 --> 00:41:53,760 [BARK SCEAU] 1022 00:41:53,760 --> 00:41:55,852 PUBLIC: Si sourdine à zéro, il va continuer à jouer le 1023 00:41:55,852 --> 00:41:58,410 retentit. [BARK SCEAU] 1024 00:41:58,410 --> 00:41:58,940 DAVID MALAN: Très bien. 1025 00:41:58,940 --> 00:42:01,960 Donc, si en sourdine, tout ce que c'est, cette chose orange est égal à zéro, 1026 00:42:01,960 --> 00:42:05,370 Puis reproduire ce son lion de mer et de penser "Oh, 1027 00:42:05,370 --> 00:42:06,770 Salut, "pendant deux secondes. 1028 00:42:06,770 --> 00:42:09,380 Maintenant, je ne sais pas ce qui est mis en sourdine, mais nulle évoque l' 1029 00:42:09,380 --> 00:42:11,230 idée de false ou à off. 1030 00:42:11,230 --> 00:42:14,490 Donc, si sourdine est fausse, donc si pas coupé, 1031 00:42:14,490 --> 00:42:15,660 continuer à jouer le son. 1032 00:42:15,660 --> 00:42:17,350 Bon, eh bien, comment peut-on désactiver cette chose? 1033 00:42:17,350 --> 00:42:19,310 >> Eh bien, regardons le second script là-bas. 1034 00:42:19,310 --> 00:42:22,130 Le second script mis en sourdine dit à zéro. 1035 00:42:22,130 --> 00:42:25,180 Notez qu'il est également orange, alors qu'est-ce que Scratch est elle colore 1036 00:42:25,180 --> 00:42:27,400 blocs dans l'ombre même si c'est un peu 1037 00:42:27,400 --> 00:42:28,850 des logiquement liés. 1038 00:42:28,850 --> 00:42:32,850 Ainsi, tout comme l'appoint en sourdine était orange, est tellement coupé ici 1039 00:42:32,850 --> 00:42:34,060 mentionné dans le bloc d'orange. 1040 00:42:34,060 --> 00:42:36,170 Mais cela est un affectations de variables, tellement juste comme dans 1041 00:42:36,170 --> 00:42:39,170 algèbre, vous avez x et y et z, dans la programmation que vous avez 1042 00:42:39,170 --> 00:42:41,440 variables, mais ils sont généralement - 1043 00:42:41,440 --> 00:42:42,580 Arrêtons-nous un moment et la façon dont la figure 1044 00:42:42,580 --> 00:42:44,280 pour arrêter ces aboiements. 1045 00:42:44,280 --> 00:42:45,480 Comment puis-je faire cela? 1046 00:42:45,480 --> 00:42:46,480 [BARK SCEAU] 1047 00:42:46,480 --> 00:42:47,920 DAVID MALAN: Très bien. 1048 00:42:47,920 --> 00:42:49,490 Il s'est arrêté. D'accord. 1049 00:42:49,490 --> 00:42:52,230 >> Ainsi, tout comme en algèbre vous avez des variables x, y, et z, mais dans 1050 00:42:52,230 --> 00:42:55,260 programmation, comportant des variables telles que x, y, et z est généralement 1051 00:42:55,260 --> 00:42:57,330 désapprouvée parce qu'ils ne sont pas du tout expressif. 1052 00:42:57,330 --> 00:43:00,070 Ils n'ont pas de signification sémantique que ce soit, si dans la plupart des 1053 00:43:00,070 --> 00:43:02,110 langages de programmation, les variables peuvent avoir la pleine 1054 00:43:02,110 --> 00:43:05,270 noms à part entière ou des mots ou des phrases, comme en sourdine, de dire 1055 00:43:05,270 --> 00:43:06,030 ce qu'ils font. 1056 00:43:06,030 --> 00:43:09,380 Donc, ce second script aussi écoutait toujours, et il a dit 1057 00:43:09,380 --> 00:43:12,100 si la clé, l'espace du clavier, est 1058 00:43:12,100 --> 00:43:13,370 enfoncée, point d'interrogation. 1059 00:43:13,370 --> 00:43:16,300 Il ya donc une condition avec une expression booléenne qui est 1060 00:43:16,300 --> 00:43:19,010 va répondre à une question soit véridique ou fausse, 1061 00:43:19,010 --> 00:43:22,880 puis j'ai à l'intérieur de celui-ci SI la touche espace est enfoncée et 1062 00:43:22,880 --> 00:43:28,020 SI coupé est égal à zéro, réglez coupé à un, mis en sourdine ELSE à zéro. 1063 00:43:28,020 --> 00:43:30,510 Donc, cette autre fourche sur la route, et remarquez comment j'ai 1064 00:43:30,510 --> 00:43:33,500 imbriquées les deux conditions IF, est un moyen de vérifier est l' 1065 00:43:33,500 --> 00:43:36,610 Barre d'espace enfoncée, car si c'est le cas, soit je veux aller dans cette 1066 00:43:36,610 --> 00:43:38,000 telle ou telle manière. 1067 00:43:38,000 --> 00:43:40,210 Et comment puis-je inverser la valeur de sourdine? 1068 00:43:40,210 --> 00:43:41,410 Je dois vérifier est-il nul? 1069 00:43:41,410 --> 00:43:45,890 Si c'est le cas, en font l'un, sinon le faire passer de zéro à donc 1070 00:43:45,890 --> 00:43:47,670 ses deux états. 1071 00:43:47,670 --> 00:43:50,030 >> D'accord, donc nous avons alors une partie de ces droits fondamentaux 1072 00:43:50,030 --> 00:43:50,540 constructions. 1073 00:43:50,540 --> 00:43:52,810 Nous avons des expressions booléennes, et se rendre compte, aussi, ce sont des 1074 00:43:52,810 --> 00:43:54,050 pas tout à fait inconnu. 1075 00:43:54,050 --> 00:43:56,730 En fait, voici une capture d'écran rapide de Harvard cours du CS50 1076 00:43:56,730 --> 00:43:59,740 outil de shopping, et tout site Web qui il a cases à cocher 1077 00:43:59,740 --> 00:44:02,420 et listes déroulantes ont vraiment tout ce temps, eu recours à 1078 00:44:02,420 --> 00:44:03,430 Les expressions booléennes. 1079 00:44:03,430 --> 00:44:05,760 Dans ce cas là, si vous cliquez sur la case à cocher 1080 00:44:05,760 --> 00:44:08,620 bien entendu supérieur ou égal à 4,5, ou même à l'autre 1081 00:44:08,620 --> 00:44:11,200 faculté, vous spécifiez une expression booléenne. 1082 00:44:11,200 --> 00:44:14,780 Montrez-moi les cours pour lesquels cette expression est vraie. 1083 00:44:14,780 --> 00:44:17,080 Ou vers la droite, n'entre pas en conflit avec les cours que je suis 1084 00:44:17,080 --> 00:44:20,440 prendre, si cela est vérifié, alors oui, vous voulez vérifier 1085 00:44:20,440 --> 00:44:22,890 cette condition, ce que vous voulez ignorer. 1086 00:44:22,890 --> 00:44:25,170 Expressions booléennes Donc, sont en quelque sorte tout autour, mais quand 1087 00:44:25,170 --> 00:44:28,080 nous les mettons dans des conditions, si les conditions SI, SI 1088 00:44:28,080 --> 00:44:30,480 Elses, ou nous pouvons même simuler profond 1089 00:44:30,480 --> 00:44:32,830 niveaux, SI SINON SI AUTRE - 1090 00:44:32,830 --> 00:44:34,430 donc c'est une sorte d'un état ternaire. 1091 00:44:34,430 --> 00:44:36,920 Vous pouvez aller de cette façon ou de cette façon ou de cette façon. 1092 00:44:36,920 --> 00:44:39,680 Nous pouvons garder les choses de nidification pour aller dans des directions différentes. 1093 00:44:39,680 --> 00:44:41,800 >> Donc, Scratch a ces boucles, comme toujours. 1094 00:44:41,800 --> 00:44:44,750 Il a plusieurs fonctions comme Répétez 10, certains 1095 00:44:44,750 --> 00:44:46,260 nombre fini de fois. 1096 00:44:46,260 --> 00:44:49,040 Nous avons maintenant la capacité de définir des variables, alors dans ce cas 1097 00:44:49,040 --> 00:44:51,810 J'ai déclaré, par exemple, une variable appelée chaussettes. 1098 00:44:51,810 --> 00:44:54,340 J'ai initialisé à 0, et c'est encore une autre direction 1099 00:44:54,340 --> 00:44:56,940 nous aurions pu prendre ici avec Joseph, où peut-être je 1100 00:44:56,940 --> 00:45:00,150 juste garder la trace de combien de chaussettes que j'ai sur et mettre fin à 1101 00:45:00,150 --> 00:45:03,490 le programme lorsque la valeur de cette variable est 2. 1102 00:45:03,490 --> 00:45:05,660 Ce serait une autre façon de sorte que la généralisation 1103 00:45:05,660 --> 00:45:08,820 problème et de faire quelque chose, encore et encore. 1104 00:45:08,820 --> 00:45:12,080 Eh bien, nous allons aller de l'avant et de maintenant vous présenter quelques choses nouvelles. 1105 00:45:12,080 --> 00:45:14,100 Ainsi, ceux d'entre vous avec une expérience de programmation préalable sera 1106 00:45:14,100 --> 00:45:17,120 sais que beaucoup de langues ont des tableaux ou des vecteurs ou 1107 00:45:17,120 --> 00:45:19,970 listes, et en effet, Scratch a quelque chose comme ça, aussi. 1108 00:45:19,970 --> 00:45:22,510 Donc, nous allons voir si nous ne pouvons pas prendre les choses au prochain niveau ici. 1109 00:45:22,510 --> 00:45:24,920 Si j'ai la possibilité, maintenant, avec ces pièces de puzzle à 1110 00:45:24,920 --> 00:45:29,080 ajouter quelque chose, comme un mot ou un nombre, une variable, je ne peux 1111 00:45:29,080 --> 00:45:30,550 commencer à accumuler des choses. 1112 00:45:30,550 --> 00:45:33,630 Et c'est en fait assez à propos pour des choses comme des jeux, 1113 00:45:33,630 --> 00:45:35,810 des jeux de rôle où vous êtes sorte de se promener 1114 00:45:35,810 --> 00:45:38,600 un monde fantastique à collectionner des choses, saisir des objets, 1115 00:45:38,600 --> 00:45:39,900 gagner des points, ou autres. 1116 00:45:39,900 --> 00:45:42,310 Vous voudrez peut-être garder la trace de quelque sorte d'inventaire, et 1117 00:45:42,310 --> 00:45:45,180 en effet, c'est ce que l'un de nos anciens élèves ici fait avec 1118 00:45:45,180 --> 00:45:47,750 quelque chose qui s'appelle Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Alors laissez-moi aller de l'avant et d'ouvrir cette chose ici, et dans 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, nous avons ce monde jusqu'à en haut. 1121 00:45:56,260 --> 00:45:58,820 Alors laissez-moi aller de l'avant et cliquez sur le drapeau vert. 1122 00:45:58,820 --> 00:46:01,040 Avis en haut à gauche est une sorte d'inventaire. 1123 00:46:01,040 --> 00:46:04,110 Cela est mis en œuvre dans Scratch que ce que nous appellerons un tableau ou 1124 00:46:04,110 --> 00:46:06,890 une liste, et maintenant nous avons cette petite animation. 1125 00:46:06,890 --> 00:46:10,440 Ainsi, tout comme nous avons commencé plus tôt avec cette histoire d'amour cookie, 1126 00:46:10,440 --> 00:46:13,320 puis nous avons avancé pour les chats et les lions de mer, maintenant nous pouvons avoir 1127 00:46:13,320 --> 00:46:15,100 des choses qui sont encore plus interactif. 1128 00:46:15,100 --> 00:46:18,250 Et ce petit bonhomme bleu, je peux commencer à se déplacer autour de son 1129 00:46:18,250 --> 00:46:19,500 petite maison ici. 1130 00:46:19,500 --> 00:46:22,570 Donc il semble que il a une sortie ici-bas, donc je suis en utilisant 1131 00:46:22,570 --> 00:46:25,260 les flèches, haut, bas, gauche, droite. 1132 00:46:25,260 --> 00:46:28,370 Et maintenant, je suis à l'extérieur, nous allons donc c'est ce que j'ai ici. 1133 00:46:28,370 --> 00:46:30,920 Ressemble à une orange, et en effet, dès que je touche le 1134 00:46:30,920 --> 00:46:33,110 orange, il se laissa dans mon inventaire. 1135 00:46:33,110 --> 00:46:35,640 Si je vais là-bas pour les cerises, maintenant j'ai quelque chose 1136 00:46:35,640 --> 00:46:36,760 d'autre dans mon inventaire. 1137 00:46:36,760 --> 00:46:39,100 Et tout cela est beau et mignon, mais pensez à faire, maintenant, ce 1138 00:46:39,100 --> 00:46:39,840 est mis en œuvre. 1139 00:46:39,840 --> 00:46:42,490 Eh bien, nous avons cette notion d'une liste, et c'est apparemment un 1140 00:46:42,490 --> 00:46:45,470 pièce du puzzle que vous venez de dire ce que vous voulez ajouter à cela, ajouter 1141 00:46:45,470 --> 00:46:46,950 orange, ajouter les cerises. 1142 00:46:46,950 --> 00:46:48,540 Maintenant, ce qui est ce petit bonhomme bleu faire? 1143 00:46:48,540 --> 00:46:49,810 Eh bien, il s'agit d'un sprite. 1144 00:46:49,810 --> 00:46:52,190 Et sans doute, l'orange et les cerises - 1145 00:46:52,190 --> 00:46:54,140 ils étaient eux-mêmes sprites différents. 1146 00:46:54,140 --> 00:46:56,980 Et en utilisant les conditions dans les expressions booléennes, 1147 00:46:56,980 --> 00:47:00,530 étudiant était probablement en mesure d'exprimer SI gars bleu 1148 00:47:00,530 --> 00:47:04,590 cerises touchant puis ajouter les cerises mot à son 1149 00:47:04,590 --> 00:47:07,890 inventaire, puis également masquer le sprite de cerise. 1150 00:47:07,890 --> 00:47:10,600 Ainsi, sous le capot, il est probablement toujours une cerise 1151 00:47:10,600 --> 00:47:11,350 sprite là. 1152 00:47:11,350 --> 00:47:14,160 Nous avons tout simplement dit de devenir effectivement invisible. 1153 00:47:14,160 --> 00:47:16,340 >> Maintenant, si je continue à marcher par ici, nous pouvons aussi le faire 1154 00:47:16,340 --> 00:47:19,150 chose proximale, où je peux aller lire le signe. 1155 00:47:19,150 --> 00:47:23,170 Donc, si mec bleu toucher signe, nous pouvons avoir ce bloc Say 1156 00:47:23,170 --> 00:47:26,455 tout comme le chat nous a parlé à mots, bonjour, au début, "Got 1157 00:47:26,455 --> 00:47:26,880 des fruits? 1158 00:47:26,880 --> 00:47:29,290 Apportez-le à la place des fruits. "Bon, alors maintenant, apparemment, 1159 00:47:29,290 --> 00:47:30,550 J'ai mes sens. 1160 00:47:30,550 --> 00:47:33,050 Je peux aller là-bas au lieu de fruits, moi s'aligner 1161 00:47:33,050 --> 00:47:33,740 avec la porte. 1162 00:47:33,740 --> 00:47:35,390 Maintenant, je suis ici. 1163 00:47:35,390 --> 00:47:38,120 Je peux aller jusqu'à l'homme au comptoir. 1164 00:47:38,120 --> 00:47:40,330 Il détecte que je suis près de lui, donc il ne doit pas être 1165 00:47:40,330 --> 00:47:46,780 tout à fait identique toucher, et j'ai gagné la partie. 1166 00:47:46,780 --> 00:47:49,890 Donc là nous avons Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Ainsi, nous pouvons faire des choses encore plus avancés que cela. 1168 00:47:52,200 --> 00:47:53,200 Nous pouvons ajouter des sons. 1169 00:47:53,200 --> 00:47:54,610 Nous pouvons ajouter un côté aléatoire pseudo. 1170 00:47:54,610 --> 00:47:56,260 Nous pouvons ajouter de la complexité. 1171 00:47:56,260 --> 00:47:58,490 Permettez-moi aller de l'avant ici, et plutôt que de le faire moi-même, 1172 00:47:58,490 --> 00:48:01,240 permettez-moi de vous montrer l'un des arguments plus sophistiqués 1173 00:48:01,240 --> 00:48:06,640 nous avons eu l'année dernière d'une certaine personne nommée Blake. 1174 00:48:06,640 --> 00:48:08,910 Peut-on avoir un volontaire qui est à l'aise figurant sur 1175 00:48:08,910 --> 00:48:12,600 caméra et est en place pour un jeu? 1176 00:48:12,600 --> 00:48:13,450 Que diriez-vous là? 1177 00:48:13,450 --> 00:48:15,380 Venez sur place. 1178 00:48:15,380 --> 00:48:19,680 D'accord, donc le jeu que vous venez sans le savoir, 1179 00:48:19,680 --> 00:48:20,780 volontaire pour jouer - 1180 00:48:20,780 --> 00:48:25,910 [Applaudissements] 1181 00:48:25,910 --> 00:48:28,610 DAVID MALAN: - C'est quelque chose d'antan appelé 1182 00:48:28,610 --> 00:48:30,100 «Frogger». Quel est votre nom? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Renda. 1184 00:48:30,730 --> 00:48:31,050 DAVID MALAN: Redna? 1185 00:48:31,050 --> 00:48:32,530 RENDA: C'est comme Brenda avec un b. 1186 00:48:32,530 --> 00:48:33,190 DAVID MALAN: D'accord, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Enchanté de faire votre connaissance. 1189 00:48:34,580 --> 00:48:38,690 >> Donc, ici, dans "Frogger", et si nous pouvions augmenter le volume juste 1190 00:48:38,690 --> 00:48:39,780 un peu, vous êtes ce petit 1191 00:48:39,780 --> 00:48:41,010 grenouille verte sur le fond. 1192 00:48:41,010 --> 00:48:43,940 Vous pouvez utiliser gauche, à droite, de haut en bas, et votre but est de 1193 00:48:43,940 --> 00:48:46,510 traverser la rue, traverser la rivière, et de toucher les feuilles de nénuphar 1194 00:48:46,510 --> 00:48:47,760 au sommet. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Un t plus - 1197 00:48:54,630 --> 00:48:56,400 refaire, tout va bien? 1198 00:48:56,400 --> 00:48:58,890 Laissez arrêt hit. 1199 00:48:58,890 --> 00:49:00,140 Personne n'a vu cela. 1200 00:49:10,470 --> 00:49:12,930 [Applaudissements] 1201 00:49:17,023 --> 00:49:17,850 [Applaudissements] 1202 00:49:17,850 --> 00:49:19,341 DAVID MALAN: Ouais. 1203 00:49:19,341 --> 00:49:20,832 Très bien fait. 1204 00:49:20,832 --> 00:49:22,082 Excellent, merci. 1205 00:49:27,300 --> 00:49:29,430 >> Alors qu'il y avait Frogger. Maintenant que vous savez ce que vous avez 1206 00:49:29,430 --> 00:49:32,170 vous mis, encore une bénévole pour un autre 1207 00:49:32,170 --> 00:49:34,910 jeu présenté par un autre élève. 1208 00:49:34,910 --> 00:49:35,560 Tu veux venir sur place? 1209 00:49:35,560 --> 00:49:36,576 Quel est ton nom? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID MALAN: Richard. 1212 00:49:37,420 --> 00:49:39,732 Très bien, Richard, allez vers le haut. 1213 00:49:39,732 --> 00:49:42,187 [Applaudissements] 1214 00:49:45,140 --> 00:49:47,030 DAVID MALAN: Vous avez quelque chose qui va paraître 1215 00:49:47,030 --> 00:49:54,180 familier bientôt, alors voici vos instructions. 1216 00:49:54,180 --> 00:49:56,580 Donc, en un instant, quelques pièces du puzzle vont défiler vers le haut 1217 00:49:56,580 --> 00:49:58,150 à partir de l'écran qui ressemblent soit à gauche 1218 00:49:58,150 --> 00:49:59,450 ou vers la droite vers le haut ou vers le bas. 1219 00:49:59,450 --> 00:50:01,230 Vous allez avoir à frapper les touches fléchées de manière 1220 00:50:01,230 --> 00:50:04,540 qu 'il répond à ces pièces de puzzle avec la queue 1221 00:50:04,540 --> 00:50:05,720 les espaces réservés au sommet. 1222 00:50:05,720 --> 00:50:07,500 Alors, quand vous voyez une flèche vers la gauche, et qu'elle s'aligne sur la gauche 1223 00:50:07,500 --> 00:50:09,260 flèche, cliquez sur la flèche gauche. 1224 00:50:09,260 --> 00:50:10,866 Vous pouvez commencer. 1225 00:50:10,866 --> 00:50:13,674 [MUSIQUE - "FORT" Kanye West] 1226 00:51:21,222 --> 00:51:23,470 DAVID MALAN: Très bien, salve d'applaudissements pour Richard. 1227 00:51:23,470 --> 00:51:26,082 [Applaudissements] 1228 00:51:32,426 --> 00:51:33,720 DAVID MALAN: Très bien fait. 1229 00:51:33,720 --> 00:51:34,110 Merci. 1230 00:51:34,110 --> 00:51:37,104 [Applaudissements] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID MALAN: fun Donc, et, apparemment, une sorte de 1232 00:51:44,330 --> 00:51:46,590 intimidant que cela puisse être pour mettre en œuvre quelque chose d'aussi 1233 00:51:46,590 --> 00:51:49,550 apparemment sophistiqué que cela, se rendre compte que l'étudiant 1234 00:51:49,550 --> 00:51:51,450 n'a pas établi et il suffit d'écrire tout cela à la fois. 1235 00:51:51,450 --> 00:51:54,200 Au contraire, vous pouvez décomposer un problème en apparence complexe 1236 00:51:54,200 --> 00:51:56,840 car cela en morceaux beaucoup plus petits, et cela, aussi, est 1237 00:51:56,840 --> 00:51:57,560 va être un thème. 1238 00:51:57,560 --> 00:52:00,490 La pire chose que vous pouvez faire dans la rédaction d'un programme dans la plupart toute 1239 00:52:00,490 --> 00:52:03,480 la langue est de s'asseoir, être vraiment excité, écrire le 1240 00:52:03,480 --> 00:52:07,200 toute fichue chose, et puis juste espérer que cela fonctionne par le 1241 00:52:07,200 --> 00:52:08,510 fois que vous avez fini d'écrire. 1242 00:52:08,510 --> 00:52:10,920 Au contraire, le processus de programmation doit généralement 1243 00:52:10,920 --> 00:52:13,440 être très délibérée, très itératif, par lequel vous venez de 1244 00:52:13,440 --> 00:52:16,955 mis de très petits pas pour vous-mêmes, bouchées 1245 00:52:16,955 --> 00:52:20,070 voulez-vous mordre, et que vous avez ces sanity 1246 00:52:20,070 --> 00:52:21,740 contrôles, les jalons petits que vous pouvez rencontrer. 1247 00:52:21,740 --> 00:52:24,170 Et puis vous construire au-dessus de ceux à créer plus 1248 00:52:24,170 --> 00:52:25,400 choses sophistiquées encore. 1249 00:52:25,400 --> 00:52:26,820 >> Ainsi, par exemple, comment pourrions-nous faire pour 1250 00:52:26,820 --> 00:52:28,380 la mise en œuvre d'un jeu comme celui-ci? 1251 00:52:28,380 --> 00:52:30,160 Eh bien, franchement, je serais certainement commencer par simplement 1252 00:52:30,160 --> 00:52:32,260 une clé de support à la fois. 1253 00:52:32,260 --> 00:52:34,840 Disons simplement implémenter un support pour la flèche gauche. 1254 00:52:34,840 --> 00:52:37,610 Ainsi, l'élève devait en quelque sorte créer dans Photoshop ou dans 1255 00:52:37,610 --> 00:52:40,340 Se gratter à l'aide de l'éditeur graphique peu, un 1256 00:52:40,340 --> 00:52:42,680 flèche qui ressemble à celui en haut à gauche là, juste 1257 00:52:42,680 --> 00:52:43,910 l'espace réservé gris. 1258 00:52:43,910 --> 00:52:46,610 Ensuite, l'élève devait comprendre ce que x, coordonnée y 1259 00:52:46,610 --> 00:52:48,380 l'a dit, où le mettre dans la fenêtre. 1260 00:52:48,380 --> 00:52:50,730 0, 0 est ici, alors vous devez déterminer le nombre de 1261 00:52:50,730 --> 00:52:53,690 pixels, ou points, pour compenser cette flèche de 1262 00:52:53,690 --> 00:52:54,800 le haut de l'écran. 1263 00:52:54,800 --> 00:52:57,040 Et puis une fois que c'est en place, votre programme ne fait pas 1264 00:52:57,040 --> 00:53:00,380 rien encore, si vous avez besoin alors d'un sprite seconde, pour 1265 00:53:00,380 --> 00:53:04,470 par exemple une flèche verte qui est également orientée vers la gauche, et vous 1266 00:53:04,470 --> 00:53:06,710 devez alors commencer à écrire des scripts pour elle. 1267 00:53:06,710 --> 00:53:09,310 >> Et vous remarquerez peut-être que ces choses ont commencé à venir à 1268 00:53:09,310 --> 00:53:11,470 des vitesses différentes, et les couleurs étaient différentes 1269 00:53:11,470 --> 00:53:13,750 endroits, et c'est parce que l'élève a utilisé un peu de 1270 00:53:13,750 --> 00:53:14,990 aléatoire pseudo. 1271 00:53:14,990 --> 00:53:17,440 Et par hasard pseudo, je veux juste dire choisir un nombre 1272 00:53:17,440 --> 00:53:20,230 entre quelque chose et quelque chose parce que vous pouvez 1273 00:53:20,230 --> 00:53:22,890 les choses commencent à carte, comme si le nombre est compris entre un et 1274 00:53:22,890 --> 00:53:24,940 cinq ans, eh bien, nous allons faire la chose verte. 1275 00:53:24,940 --> 00:53:28,290 Si c'est entre 6 et 10, nous allons faire la pièce de puzzle 1276 00:53:28,290 --> 00:53:29,730 rouge à la place. 1277 00:53:29,730 --> 00:53:31,840 Tant que vous avez un moyen de générer une sorte de 1278 00:53:31,840 --> 00:53:34,730 aléatoire, vous pouvez alors prendre des décisions basées sur ce que 1279 00:53:34,730 --> 00:53:35,260 aléatoire. 1280 00:53:35,260 --> 00:53:37,490 Et je continue en disant pseudo aléatoire parce qu'il ya une 1281 00:53:37,490 --> 00:53:38,390 petit secret sale. 1282 00:53:38,390 --> 00:53:41,130 Ordinateurs ne peuvent pas venir avec des nombres aléatoires. 1283 00:53:41,130 --> 00:53:42,800 Ils peuvent seulement faire ce qu'on leur dit, car 1284 00:53:42,800 --> 00:53:44,110 ils sont fabriqués par l'homme appareils. 1285 00:53:44,110 --> 00:53:45,880 Ils ne peuvent pas deviner un nombre comme nous, les humains 1286 00:53:45,880 --> 00:53:46,960 se sentir comme nous le pouvons. 1287 00:53:46,960 --> 00:53:50,970 Un ordinateur doit faire quelque chose de mathématique pour évoquer l' 1288 00:53:50,970 --> 00:53:53,970 illusion de nombre mathématique, parfois à l'aide de la 1289 00:53:53,970 --> 00:53:57,420 jour en cours du temps comme une contribution à comprendre ce que 1290 00:53:57,420 --> 00:53:59,570 Numéro de revenir, mais plus sur cela une autre fois. 1291 00:53:59,570 --> 00:54:02,060 Pour l'instant, sachez simplement que nous pouvons générer aléatoire pseudo. 1292 00:54:02,060 --> 00:54:04,610 >> Donc, une fois que j'ai la capacité pour la flèche gauche pour démarrer 1293 00:54:04,610 --> 00:54:07,990 apparaissant à des moments différents et à des vitesses différentes, 1294 00:54:07,990 --> 00:54:10,230 Je ne peux revenir en arrière et ajouter un peu de ces conditions IF. 1295 00:54:10,230 --> 00:54:14,950 SI ce sprite est en contact avec l'autre, et la flèche gauche 1296 00:54:14,950 --> 00:54:16,330 touche a été pressée - 1297 00:54:16,330 --> 00:54:17,900 donc trois conditions dans ce cas. 1298 00:54:17,900 --> 00:54:20,750 Je peux utiliser ce bloc AND peut-être, dans ce cas - 1299 00:54:20,750 --> 00:54:23,210 Ensuite, je veux aller de l'avant et incrémenter le score. 1300 00:54:23,210 --> 00:54:25,130 Et au sommet, nous avons un score, nous avons Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, bonne, et Boo. 1302 00:54:26,510 --> 00:54:29,810 Donc, il ya apparemment cinq variables que cet élève 1303 00:54:29,810 --> 00:54:32,220 utilisé pour garder la trace de ces diverses mesures. 1304 00:54:32,220 --> 00:54:34,180 Donc, en résumé, le résultat final est étonnant. 1305 00:54:34,180 --> 00:54:37,320 C'est amusant, c'est fun à jouer, il est engageant, mais ce n'est pas 1306 00:54:37,320 --> 00:54:38,380 où l'étudiant a commencé. 1307 00:54:38,380 --> 00:54:42,210 Il ou elle a commencé à un ensemble plus petit d'étapes. 1308 00:54:42,210 --> 00:54:44,470 >> Quels sont donc les autres blocs de construction que nous pouvons 1309 00:54:44,470 --> 00:54:45,760 tissent dans ces programmes? 1310 00:54:45,760 --> 00:54:48,750 Eh bien, il ya cette autre concept dans la plupart des langues, 1311 00:54:48,750 --> 00:54:50,730 Grattez parmi eux, connu en tant que fils. 1312 00:54:50,730 --> 00:54:54,660 Alors qu'un ordinateur puisse réellement pas vraiment faire de multiples choses à un 1313 00:54:54,660 --> 00:54:56,730 temps, du moins pas en général. 1314 00:54:56,730 --> 00:54:59,930 Au contraire, un ordinateur possède généralement un seul processeur, et même 1315 00:54:59,930 --> 00:55:02,230 si les ordinateurs sont super rapide et peut, par conséquent, 1316 00:55:02,230 --> 00:55:04,740 créer l'illusion de faire plusieurs choses à la fois - 1317 00:55:04,740 --> 00:55:06,180 vérifier votre courrier, obtenir un instantané 1318 00:55:06,180 --> 00:55:07,770 message, l'impression d'un document - 1319 00:55:07,770 --> 00:55:11,530 vraiment, un ordinateur est juste de sauter de l'impression à IMing 1320 00:55:11,530 --> 00:55:15,160 à envoyer, le dos et le dos et d'avant en arrière si vite que nous 1321 00:55:15,160 --> 00:55:18,170 lents humains witted ne réalisent pas que c'est en fait 1322 00:55:18,170 --> 00:55:21,240 exécuter ces programmes un peu à la fois. 1323 00:55:21,240 --> 00:55:23,960 Maintenant, cela un peu de blanc se trouvent ces jours-ci parce que, de nos jours, 1324 00:55:23,960 --> 00:55:26,740 beaucoup de nos ordinateurs sont ce qu'on appelle multi-core, de sorte que vous 1325 00:55:26,740 --> 00:55:29,760 avoir un CPU, mais plusieurs cœurs, ce qui est un peu comme 1326 00:55:29,760 --> 00:55:31,760 ayant plusieurs processeurs. 1327 00:55:31,760 --> 00:55:35,020 >> Et si parfois, les ordinateurs peuvent vraiment faire des choses multiples 1328 00:55:35,020 --> 00:55:38,500 à la fois, mais généralement au sein d'un programme, des programmes 1329 00:55:38,500 --> 00:55:40,200 s'appuyer sur ces choses appelées threads. 1330 00:55:40,200 --> 00:55:43,160 Donc, un thread est un peu comme un programme miniature qui peut 1331 00:55:43,160 --> 00:55:46,540 coexister avec un autre programme miniature et peut fonctionner 1332 00:55:46,540 --> 00:55:51,250 en parallèle, ou du moins peut être exécuté sous l'illusion que 1333 00:55:51,250 --> 00:55:52,990 ils courent simultanément. 1334 00:55:52,990 --> 00:55:55,060 Donc Scratch soutient ces choses appelées threads. 1335 00:55:55,060 --> 00:55:57,580 Vous pouvez avoir plusieurs scripts d'exécution à la fois, comme nous l'avons 1336 00:55:57,580 --> 00:56:00,220 fait avec le lion de mer, ce qui nous permet de réellement 1337 00:56:00,220 --> 00:56:03,620 alors les interactions entre ces sprites. 1338 00:56:03,620 --> 00:56:09,910 Permettez-moi aller de l'avant ici et tirer vers le haut, disons, les threads et 1339 00:56:09,910 --> 00:56:11,870 jouer ce comme suit. 1340 00:56:11,870 --> 00:56:13,950 Nous avons deux sprites, chacun d'entre eux que nous allons voir 1341 00:56:13,950 --> 00:56:15,720 a juste un script. 1342 00:56:15,720 --> 00:56:18,000 Et vous remarquez qu'il semble y avoir une certaine intelligence dans le 1343 00:56:18,000 --> 00:56:21,335 chat dans celui-ci parce qu'il se rapproche - 1344 00:56:21,335 --> 00:56:21,730 [Rugit] 1345 00:56:21,730 --> 00:56:24,540 DAVID MALAN: - et plus proche du petit oiseau. 1346 00:56:24,540 --> 00:56:26,570 >> Alors, comment est l'exploitation d'oiseau? 1347 00:56:26,570 --> 00:56:28,200 Eh bien, nous allons jeter un oeil à la première volaille. 1348 00:56:28,200 --> 00:56:31,220 Le script oiseau dit alors que le drapeau vert est cliqué, aller à x 1349 00:56:31,220 --> 00:56:34,020 est égal à 115 et négatif y est égal à 150. 1350 00:56:34,020 --> 00:56:37,010 Donc, je viens de comprendre un emplacement aléatoire où je voulais l' 1351 00:56:37,010 --> 00:56:39,580 oiseau de commencer, et je lui laissais là par défaut. 1352 00:56:39,580 --> 00:56:42,800 Puis, toujours si pas toucher chat, c'est donc un autre 1353 00:56:42,800 --> 00:56:45,080 type de construction de boucle, mais même idée, faire cela à nouveau et 1354 00:56:45,080 --> 00:56:45,780 encore et encore. 1355 00:56:45,780 --> 00:56:49,410 Tant que vous n'êtes pas en contact avec le chat, déplacer trois étapes, et 1356 00:56:49,410 --> 00:56:51,680 si vous êtes sur le bord, le rebond, où il est une sorte de 1357 00:56:51,680 --> 00:56:53,320 réflexion dans le sens de billard. 1358 00:56:53,320 --> 00:56:56,140 C'est comme ça que l'oiseau se déplace autour genre de 1359 00:56:56,140 --> 00:56:58,890 apparemment au hasard, mais c'est juste parce que ça rebondit 1360 00:56:58,890 --> 00:57:00,170 les murs dans ce cas. 1361 00:57:00,170 --> 00:57:03,170 >> Le chat, quant à lui, est une sorte de tricherie. 1362 00:57:03,170 --> 00:57:05,520 Le chat, quand le drapeau vert est cliqué, oui, commence à 1363 00:57:05,520 --> 00:57:07,390 un certain endroit, un endroit au hasard - 1364 00:57:07,390 --> 00:57:09,590 au moins en partie selon le choix 1365 00:57:09,590 --> 00:57:11,430 aléatoire bloc vert là-bas - 1366 00:57:11,430 --> 00:57:14,660 et puis pour toujours si touchant l'oiseau, le son du lion, 1367 00:57:14,660 --> 00:57:15,790 puis stopper. 1368 00:57:15,790 --> 00:57:18,560 Alors, quand j'ai dit mettre fin ou de quitter avant la fin, il ya un casse-tête 1369 00:57:18,560 --> 00:57:20,600 pièce de Scratch qui va juste tuer le programme à ce 1370 00:57:20,600 --> 00:57:22,900 signaler parce que c'est une sorte de logique fait. 1371 00:57:22,900 --> 00:57:25,030 Mais sinon, ici, notez ce qui va se passer. 1372 00:57:25,030 --> 00:57:28,470 Pointent vers l'oiseau et se déplacent d'un pas. 1373 00:57:28,470 --> 00:57:31,390 Donc, de ce point vers l'oiseau est une sorte d'avantage le chat 1374 00:57:31,390 --> 00:57:34,640 a en ce qu'il est se focalisant sur l'oiseau en mouvement, et nous pouvons 1375 00:57:34,640 --> 00:57:37,370 maintenant faire de ce programme d'autant plus intéressant. 1376 00:57:37,370 --> 00:57:41,520 Au lieu d'aller une étape à la fois par cycle de la CPU, par 1377 00:57:41,520 --> 00:57:44,280 frapper péage de la cloche, pour ainsi dire, laissez-moi aller de l'avant et 1378 00:57:44,280 --> 00:57:47,350 déplacer, disons, cinq marches à la fois que le chat. 1379 00:57:47,350 --> 00:57:51,120 Cliquez sur Exécuter, et maintenant il lui trouve vraiment rapidement. 1380 00:57:51,120 --> 00:57:55,620 Si on double ce à la suite de 10 étapes, il sorte de va 1381 00:57:55,620 --> 00:57:56,370 droit pour lui. 1382 00:57:56,370 --> 00:57:57,750 Maintenant, nous pouvons donner à l'oiseau, 1383 00:57:57,750 --> 00:57:59,540 peut-être un petit avantage. 1384 00:57:59,540 --> 00:58:02,370 Allons à l'oiseau et de dire au lieu de déplacer trois étapes, 1385 00:58:02,370 --> 00:58:07,140 Passons lui 30 marches. 1386 00:58:07,140 --> 00:58:08,700 Mais il a toujours été pris à la fin. 1387 00:58:08,700 --> 00:58:10,430 >> Donc, ici, nous avons deux threads. 1388 00:58:10,430 --> 00:58:13,230 Il est incarcéré à rayures avec deux scripts et deux 1389 00:58:13,230 --> 00:58:16,150 sprites, mais l'idée dans d'autres langues, c'est que vous pouvez 1390 00:58:16,150 --> 00:58:19,220 écrire, pour l'essentiel, de trop nombreux programmes de ce genre et ont 1391 00:58:19,220 --> 00:58:22,950 de les exécuter réellement ou imaginairement, en parallèle. 1392 00:58:22,950 --> 00:58:25,280 >> Maintenant, il ya aussi cette notion dans la programmation connu sous le nom 1393 00:58:25,280 --> 00:58:28,010 événements, et c'est quelque chose que nous ne verrons pas dans C, les 1394 00:58:28,010 --> 00:58:30,500 langue connue sous le nom C. Nous le verrons vers la fin du semestre 1395 00:58:30,500 --> 00:58:33,240 dans la programmation web, lorsque nous introduisons JavaScript et le 1396 00:58:33,240 --> 00:58:36,970 notion de construction des pages web qui sont dynamiques et interagir 1397 00:58:36,970 --> 00:58:37,710 avec les utilisateurs. 1398 00:58:37,710 --> 00:58:40,430 Donc dans ce cas, nous avons un exemple très simple de deux 1399 00:58:40,430 --> 00:58:43,860 sprites, garçon et fille, chacun d'entre eux ont leur respectif 1400 00:58:43,860 --> 00:58:48,040 discussions, mais de toute façon ces deux sont inter-communication par voie 1401 00:58:48,040 --> 00:58:49,490 de ce qu'on appelle les événements. 1402 00:58:49,490 --> 00:58:52,750 Alors laissez-moi aller de l'avant ici et zoomer sur le script de l'enfant, 1403 00:58:52,750 --> 00:58:54,050 qui ressemble à ceci. 1404 00:58:54,050 --> 00:58:57,510 Lorsque vous cliquez drapeau vert, toujours faire ce qui suit. 1405 00:58:57,510 --> 00:59:01,510 Si la touche Espace ou la barre d'espace, est pressé, par exemple 1406 00:59:01,510 --> 00:59:03,900 Marco pendant deux secondes, c'est purement esthétique sur le 1407 00:59:03,900 --> 00:59:06,860 écran, une bulle peu, mais ensuite diffusé. 1408 00:59:06,860 --> 00:59:09,240 >> Ainsi, la diffusion est un autre morceau Scratch c'est 1409 00:59:09,240 --> 00:59:12,050 représentant d'une classe de fonctionnalité à programmer 1410 00:59:12,050 --> 00:59:15,080 qui permet aux différents programmes, fils différents, 1411 00:59:15,080 --> 00:59:17,120 pour inter-communiquer, en quelque sorte envoyez 1412 00:59:17,120 --> 00:59:18,520 messages, une à l'autre. 1413 00:59:18,520 --> 00:59:21,930 Le passage d'un morceau de papier en classe est une sorte de basse technologie 1414 00:59:21,930 --> 00:59:22,700 équivalent. 1415 00:59:22,700 --> 00:59:24,300 Donc Evénement de diffusion. 1416 00:59:24,300 --> 00:59:26,210 Je peux envoyer ce message, et le mot événement 1417 00:59:26,210 --> 00:59:27,270 est complètement arbitraire. 1418 00:59:27,270 --> 00:59:30,000 Scratch a parfois ces listes déroulantes, alors j'ai juste venu 1419 00:59:30,000 --> 00:59:33,230 avec un mot au hasard comme événement parce que maintenant, ce que le garçon ne 1420 00:59:33,230 --> 00:59:36,600 lorsque j'appuie sur la touche est-il diffuse cet événement. 1421 00:59:36,600 --> 00:59:39,270 Et si je regarde maintenant le script de la jeune fille, son script est 1422 00:59:39,270 --> 00:59:42,690 super simple, car tout ce qu'elle doit faire est de ne pas agir quand 1423 00:59:42,690 --> 00:59:44,100 le drapeau vert est cliqué. 1424 00:59:44,100 --> 00:59:47,910 Elle est conçue à l'action quand elle reçoit entre guillemets, 1425 00:59:47,910 --> 00:59:51,210 «Événement», et à ce moment, elle écoute donc pour 1426 00:59:51,210 --> 00:59:52,960 l'événement que l'on appelle encore et encore. 1427 00:59:52,960 --> 00:59:55,790 Dès qu'elle reçoit cet événement, elle va crier 1428 00:59:55,790 --> 00:59:57,680 Polo pendant deux secondes. 1429 00:59:57,680 --> 01:00:01,090 >> Et ainsi vous pouvez peut-être déduire exactement ce que le 1430 01:00:01,090 --> 01:00:03,190 résultat suivant va être. 1431 01:00:03,190 --> 01:00:04,910 Permettez-moi de cliquer sur le drapeau vert. 1432 01:00:04,910 --> 01:00:06,610 Rien ne se passe parce que je dois faire quoi? 1433 01:00:06,610 --> 01:00:07,310 PUBLIC: barre d'espace. 1434 01:00:07,310 --> 01:00:08,630 DAVID MALAN: barre d'espace. 1435 01:00:08,630 --> 01:00:11,990 Garçon dit Marco, jeune fille dit Polo. 1436 01:00:11,990 --> 01:00:13,670 Mais ce n'est pas codé en dur en soi. 1437 01:00:13,670 --> 01:00:16,740 C'est l'intercommunication entre les scripts, donc maintenant nous 1438 01:00:16,740 --> 01:00:19,240 ont la capacité de rendre les programmes plus complexes où 1439 01:00:19,240 --> 01:00:22,830 ces deux sont en quelque sorte inter-communication. 1440 01:00:22,830 --> 01:00:25,260 >> Donc, dans ce sens peut-on aller? 1441 01:00:25,260 --> 01:00:28,260 Eh bien, dans la série problème 0, vraiment, l'objectif est de 1442 01:00:28,260 --> 01:00:29,830 amusez-vous avec Scratch. 1443 01:00:29,830 --> 01:00:32,440 Pour l'édition pirate, vous, au lieu de s'amuser avec un plus 1444 01:00:32,440 --> 01:00:35,850 version sophistiquée de Scratch appelé BYOB, Build 1445 01:00:35,850 --> 01:00:38,040 Vos propres blocs, mais l'idée est la même. 1446 01:00:38,040 --> 01:00:38,780 Vous serez en mesure - 1447 01:00:38,780 --> 01:00:39,710 Oui, c'était délibéré. 1448 01:00:39,710 --> 01:00:42,450 Il venait de Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB est la version pirate de cette édition, mais les deux 1450 01:00:45,200 --> 01:00:48,180 , les données démographiques, édition standard et l'édition pirate aussi bien l' 1451 01:00:48,180 --> 01:00:50,940 objectif à portée de main pour la semaine à venir est vraiment jeter à l'eau 1452 01:00:50,940 --> 01:00:53,050 profonde, se salir les mains avec la programmation, et de faire 1453 01:00:53,050 --> 01:00:55,240 quelque chose d'intéressant, de faire quelque chose interactif, faites- 1454 01:00:55,240 --> 01:00:58,020 quelque chose d'artistique, faire quelque chose d'amusant à fait 1455 01:00:58,020 --> 01:01:01,020 démontrer, de sorte que d'ici la fin de la semaine, vous avez un projet, 1456 01:01:01,020 --> 01:01:03,770 non seulement pour votre première CS50 pset, mais vous aurez une 1457 01:01:03,770 --> 01:01:05,620 petit quelque chose que vous pouvez montrer au Annenberg pour 1458 01:01:05,620 --> 01:01:08,830 des amis ou de la famille, même en le téléchargeant sur le site du MIT. 1459 01:01:08,830 --> 01:01:11,760 Et donc, comme je l'ai dit, le mercredi, nous nous attendons à 90% de la classe, 1460 01:01:11,760 --> 01:01:13,970 généralement, faire les éditions standard. 1461 01:01:13,970 --> 01:01:16,660 Se rendre compte que il ya aussi cette sortie pour ceux d'entre vous qui 1462 01:01:16,660 --> 01:01:18,990 pourraient autrement se trouver un peu ennuyé avec les bases 1463 01:01:18,990 --> 01:01:21,650 et je veux vraiment plonger et à élaborer une vision que vous avez déjà 1464 01:01:21,650 --> 01:01:25,380 avoir avec fond avant dans ce plus convivial 1465 01:01:25,380 --> 01:01:26,240 environnement. 1466 01:01:26,240 --> 01:01:29,030 >> Permettez-moi de tirer vers le haut un autre exemple que l'un de nos anciens 1467 01:01:29,030 --> 01:01:33,830 les étudiants ont ici fait et dire un petit quelque chose à travers la chanson. 1468 01:01:33,830 --> 01:01:37,430 Que, de même, que celle-ci joue, pensez à comment vous allez 1469 01:01:37,430 --> 01:01:40,520 mise en œuvre de ce programme en utilisant précisément ces mêmes 1470 01:01:40,520 --> 01:01:44,180 blocs de construction, un peu de hasard et un pseudo, 1471 01:01:44,180 --> 01:01:46,010 peu de chanson familière. 1472 01:01:46,010 --> 01:01:47,910 Si nous pouvions augmenter le volume un peu? 1473 01:01:47,910 --> 01:01:49,160 [MUSIQUE - "Il pleut des hommes" The Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID MALAN: C'est tout pour CS50. 1475 01:03:03,930 --> 01:03:05,860 Nous vous verrai lundi. 1476 01:03:05,860 --> 01:03:21,152 [Applaudissements]