1 00:00:00,000 --> 00:00:15,059 >> [MUSIC PLAYING] 2 00:00:15,059 --> 00:00:19,170 >> Ceci est CS50-- Harvard L'introduction de l'Université 3 00:00:19,170 --> 00:00:22,070 à l'intellectuel entreprises de l'informatique 4 00:00:22,070 --> 00:00:23,800 et l'art de la programmation. 5 00:00:23,800 --> 00:00:27,020 Et mon nom est David Malan et Je pensais juste ce matin, 6 00:00:27,020 --> 00:00:33,120 il a été étonnamment 20 ans aujourd'hui depuis ma dernière assis où vous les gars faites maintenant. 7 00:00:33,120 --> 00:00:33,840 >> Il était 1,996. 8 00:00:33,840 --> 00:00:37,550 J'étais un étudiant en deuxième année, et je prenais CS50 pour la première fois. 9 00:00:37,550 --> 00:00:40,890 Et je l'avais même pas eu le courage de prendre moi-même première année, 10 00:00:40,890 --> 00:00:42,500 en partie à cause du temps. 11 00:00:42,500 --> 00:00:44,782 Informatique me était comme, meh. 12 00:00:44,782 --> 00:00:46,990 J'étais un peu d'un geek de plus en plus , mais je ne l'ai pas vraiment 13 00:00:46,990 --> 00:00:49,180 avoir une intellectuelle intérêt pour ce qui est apparu 14 00:00:49,180 --> 00:00:51,920 juste être tout un tas de les gens tout le temps de programmation. 15 00:00:51,920 --> 00:00:53,904 >> Et j'avais peur d'être honnête. 16 00:00:53,904 --> 00:00:56,820 La science des cours et ordinateur plus généralement eu et dans une certaine mesure, 17 00:00:56,820 --> 00:01:01,230 a encore cette réputation d'un champ à méfiez-vous, si seulement parce que beaucoup d'entre nous 18 00:01:01,230 --> 00:01:04,410 ne sont pas familiers avec elle et peu sûr de lui. 19 00:01:04,410 --> 00:01:08,480 Et ce fut vraiment pas jusqu'à ce que je magasiné cette classe que sophomore fall-- 20 00:01:08,480 --> 00:01:10,880 et même alors, je n'inscrit parce que le professor-- 21 00:01:10,880 --> 00:01:13,950 un de mes premiers mentors, Brian Kernighan maintenant à Princeton-- 22 00:01:13,950 --> 00:01:15,700 m'a permis de prendre la passe de classe sûr. 23 00:01:15,700 --> 00:01:18,020 Et en effet, voilà pourquoi aujourd'hui, nous permettons et encourageons 24 00:01:18,020 --> 00:01:20,030 les étudiants à prendre cette classe assis / unsat. 25 00:01:20,030 --> 00:01:22,040 >> Et alors seulement, par le fin du semestre 26 00:01:22,040 --> 00:01:24,870 je me rends compte que, wow, ce était pas un tel champ inconnu. 27 00:01:24,870 --> 00:01:26,850 En effet, il était très stimulant terrain, 28 00:01:26,850 --> 00:01:28,970 et plus excitante, notamment par la suite, 29 00:01:28,970 --> 00:01:32,809 comme je l'ai suivi des cours de Arts dramatiques 101 et latine A 30 00:01:32,809 --> 00:01:34,600 et puis finalement grad archéologie de l'école, 31 00:01:34,600 --> 00:01:37,860 ai-je vraiment commencer à voir le intersections de ce champ, ordinateur 32 00:01:37,860 --> 00:01:41,979 la science, les sciences humaines, sciences naturelles, les arts, la médecine, 33 00:01:41,979 --> 00:01:42,520 etc. 34 00:01:42,520 --> 00:01:44,420 Et pour que ça qui est tellement ordonnée au sujet de l'informatique 35 00:01:44,420 --> 00:01:46,930 en fin de compte, comme nous espérons que vous aurez see-- est son applicabilité 36 00:01:46,930 --> 00:01:50,280 à ces autres domaines, et comment vous pouvez prendre un certain d'aujourd'hui et le semestre de 37 00:01:50,280 --> 00:01:53,070 des idées et des compétences pratiques retour à votre propre nom de domaine, 38 00:01:53,070 --> 00:01:58,200 et effectivement explorer cette intersection des arts libéraux et les sciences. 39 00:01:58,200 --> 00:02:02,690 >> Donc, 73% d'entre vous, si la dernière année est une indication, 40 00:02:02,690 --> 00:02:04,390 ont jamais pris un cours CS avant. 41 00:02:04,390 --> 00:02:06,389 Donc, si, comme moi, vous êtes sentir un peu 42 00:02:06,389 --> 00:02:09,190 peur, ou franchement vous n'êtes pas vraiment pourquoi vous êtes encore ici. 43 00:02:09,190 --> 00:02:11,510 Peut-être que vous venez de suivi quelques-uns amis à Sanders en ce moment. 44 00:02:11,510 --> 00:02:12,490 C'est tout à fait bien. 45 00:02:12,490 --> 00:02:15,059 Le but ici est d'accrocher vous et pour vous rassurer 46 00:02:15,059 --> 00:02:17,100 que si vous ne regardez à la gauche et vers la droite, 47 00:02:17,100 --> 00:02:21,480 vous allez voir avec ses camarades de classe comme l'expérience peu ou autant 48 00:02:21,480 --> 00:02:22,890 que vous vous pourriez avoir. 49 00:02:22,890 --> 00:02:25,280 Et en effet, nous partagerons quelques statistiques plus tard aujourd'hui 50 00:02:25,280 --> 00:02:28,120 à ce que les données démographiques de la classe regarde généralement comme. 51 00:02:28,120 --> 00:02:31,440 >> Et comme ajouté reassurance-- et cela nous ne veux dire que j'ai pris au cours 52 00:02:31,440 --> 00:02:33,252 le dans de quelques années Le programme du cours 53 00:02:33,252 --> 00:02:35,460 est que ce qui est finalement this-- questions dans ce cours 54 00:02:35,460 --> 00:02:38,040 est pas tellement où vous finissez up par rapport à vos camarades de classe, 55 00:02:38,040 --> 00:02:43,110 mais où vous en semaine 11, la fin de la semestre, finissent par rapport à vous-même 56 00:02:43,110 --> 00:02:46,280 à la semaine 0, ce qui est où nous sommes ici aujourd'hui. 57 00:02:46,280 --> 00:02:48,704 Et voici ce que je réalisais toutes ces années auparavant. 58 00:02:48,704 --> 00:02:50,620 Et je sais que beaucoup de les classes disent cela, mais il est 59 00:02:50,620 --> 00:02:52,450 particulièrement vrai dans la science informatique. 60 00:02:52,450 --> 00:02:55,320 A la fin de la journée, ce champ est familier car il était pour moi 61 00:02:55,320 --> 00:02:58,590 et peut-être à vous, est vraiment à peu près la résolution de problèmes. 62 00:02:58,590 --> 00:03:01,324 Et en tant que telle, elle ne dispose ce applicabilité pour obtenir d'autres domaines. 63 00:03:01,324 --> 00:03:03,490 Et en effet, si nous avons essayé pour distiller ce que cela signifie, 64 00:03:03,490 --> 00:03:06,897 c'est la résolution de problèmes dans son essence, j'ose dire. 65 00:03:06,897 --> 00:03:09,480 Il y a donc tout ce qu'il input-- est que vous essayez de résoudre. 66 00:03:09,480 --> 00:03:12,264 Il y a sortie, qui est je l'espère la solution à ce problème. 67 00:03:12,264 --> 00:03:14,180 Et puis, comme nous le ferions dire en informatique, 68 00:03:14,180 --> 00:03:17,310 il y a cette boîte noire dans la milieu que vous ne faites pas nécessairement 69 00:03:17,310 --> 00:03:19,450 avoir à se soucier de la façon dont cela fonctionne. 70 00:03:19,450 --> 00:03:22,230 Vous vous éventuellement pourrait mettre en œuvre ce qui est à l'intérieur de cette boîte. 71 00:03:22,230 --> 00:03:25,194 Mais pour les besoins d'aujourd'hui et de plus généralement dans la vie, tout ce que vous souciez 72 00:03:25,194 --> 00:03:26,610 est que ces problèmes sont résolus. 73 00:03:26,610 --> 00:03:29,340 >> Et ce que ce cours est en fin de compte au sujet explore 74 00:03:29,340 --> 00:03:31,700 l'intersection de ces entrées et sorties, 75 00:03:31,700 --> 00:03:34,410 et ces soi-disant algorithmes, comme nous le verrons bientôt, 76 00:03:34,410 --> 00:03:37,450 qui mettent en œuvre ce qui est dessous là, le capot. 77 00:03:37,450 --> 00:03:40,487 Mais ces entrées et ces outputs-- qu'est-ce que signifie réellement? 78 00:03:40,487 --> 00:03:43,570 Eh bien, à la fin de la journée, nous avons besoin d'une certaine façon de représenter l'information. 79 00:03:43,570 --> 00:03:46,660 Cela est particulièrement vrai dans un ordinateur, qui, comme la fantaisie et complexe, car elle 80 00:03:46,660 --> 00:03:48,160 peut sembler, est un dispositif assez stupide. 81 00:03:48,160 --> 00:03:52,240 Il faut que ce soit à partir electricity-- un câble ou d'une batterie input-- 82 00:03:52,240 --> 00:03:55,820 et puis il produit quelques-uns réponses préprogrammée à l'écran. 83 00:03:55,820 --> 00:03:57,970 >> Mais comment pouvons-nous obtenir de commencer à y terminer? 84 00:03:57,970 --> 00:03:59,470 Eh bien, ce qui est un problème à résoudre? 85 00:03:59,470 --> 00:04:01,050 Eh bien, peut-être que nous pourrions, à le début de tout semestre, 86 00:04:01,050 --> 00:04:02,841 essayer de prendre les présences dans une chambre comme ça. 87 00:04:02,841 --> 00:04:04,750 Donc, je pourrais faire comme un, deux, trois. 88 00:04:04,750 --> 00:04:07,060 Ou peut-être, si je l'ai fait en quelque sorte de garder une trace 89 00:04:07,060 --> 00:04:10,560 de myself-- garder une trace de things-- Je pourrais rapidement manquer de doigts. 90 00:04:10,560 --> 00:04:14,650 Donc, je pourrais juste faire marks-- un de hachage personne, deux, trois, quatre, cinq, six, 91 00:04:14,650 --> 00:04:15,431 sept huit. 92 00:04:15,431 --> 00:04:17,930 Et nous avons tous probablement fait cela, que ce soit sur vos mains 93 00:04:17,930 --> 00:04:19,680 ou sur une feuille de papier. 94 00:04:19,680 --> 00:04:22,140 Et cela est en fait juste quelque chose appelé notation-- unaire 95 00:04:22,140 --> 00:04:26,130 où si vous avez une seule lettre dans votre alphabet, un ou hachage 96 00:04:26,130 --> 00:04:29,440 marque dans ce cas, pour chaque entrée que vous voulez compter, 97 00:04:29,440 --> 00:04:32,330 vous avez besoin de mettre bas l'un de ces letters-- une de ces marques. 98 00:04:32,330 --> 00:04:32,510 >> D'accord. 99 00:04:32,510 --> 00:04:34,790 C'est tout beau et bon et pas si compliqué que ça. 100 00:04:34,790 --> 00:04:37,800 Mais les ordinateurs ne sont pas tous beaucoup plus compliqué. 101 00:04:37,800 --> 00:04:40,770 En effet, la plupart d'entre vous avez probablement savoir même si vous avez pas vraiment 102 00:04:40,770 --> 00:04:44,080 considéré ce que cela signifie, que ordinateurs ne comprennent que des zéros 103 00:04:44,080 --> 00:04:45,870 et ones-- le soi-disant système binaire. 104 00:04:45,870 --> 00:04:49,390 Nous, les humains, en revanche, sont si beaucoup plus sophistiqué dans la mesure où 105 00:04:49,390 --> 00:04:51,770 comme nous l'entendons zéros à travers neuf. 106 00:04:51,770 --> 00:04:55,740 >> Mais même si binaire est, à première vue, pas du tout familier, 107 00:04:55,740 --> 00:05:00,330 il se trouve qu'il est un peu comme les systèmes et les idées que nous savons déjà. 108 00:05:00,330 --> 00:05:02,420 Ainsi, par exemple, considérez ceci. 109 00:05:02,420 --> 00:05:03,896 Ceci est juste une séquence de symboles. 110 00:05:03,896 --> 00:05:05,770 Et vous tous, quand, regardant, probablement 111 00:05:05,770 --> 00:05:09,380 penser 123-- rien vraiment intéressant. 112 00:05:09,380 --> 00:05:11,940 Mais pourquoi est-il ce nombre, 123? 113 00:05:11,940 --> 00:05:14,440 Ceux-ci sont seulement sur glyphes l'screen-- seulement les modèles 114 00:05:14,440 --> 00:05:16,387 que quelqu'un aurait tiré ou dactylographiée. 115 00:05:16,387 --> 00:05:18,970 Mais si vous êtes comme moi, vous souvenez probablement de l'école primaire 116 00:05:18,970 --> 00:05:21,610 qu'il ya sorte de des colonnes ou des lieux ici. 117 00:05:21,610 --> 00:05:25,340 Il y a la place de l'un et l' de dix lieu et place de la centaine. 118 00:05:25,340 --> 00:05:29,820 Et la raison que ce soit 123 et pas seulement un motif de trois symboles 119 00:05:29,820 --> 00:05:33,090 En effet, bien sûr, si l'on en avoir un à la place des centaines, 120 00:05:33,090 --> 00:05:36,610 vous faites le calcul de 100 fois un, puis deux à la place de dix. 121 00:05:36,610 --> 00:05:41,390 Voilà donc 10 fois 2, puis trois en la place de l'un et qui est 1 fois 3. 122 00:05:41,390 --> 00:05:45,670 Et lorsque vous ajoutez tous ceux up, de Bien sûr, vous obtenez 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Nous avons donc commencé avec juste un motif de symbols-- un alphabet-- 124 00:05:48,220 --> 00:05:51,670 mais ensuite nous avons cartographié sens sur par le biais de ces colonnes. 125 00:05:51,670 --> 00:05:54,450 Eh bien, il se trouve que les ordinateurs ne sont pas vraiment 126 00:05:54,450 --> 00:05:56,300 si différent de vous et moi. 127 00:05:56,300 --> 00:06:01,840 Mais au lieu d'utiliser des puissances de 10, ainsi speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 place et donc forth-- qu'ils ont effectivement 129 00:06:04,330 --> 00:06:08,930 il suffit d'utiliser les pouvoirs de 2-- si une, deux, quatre, puis 130 00:06:08,930 --> 00:06:12,810 si nous mettons plus de chiffres, 8, 16, 32, 64, 128, et ainsi de suite. 131 00:06:12,810 --> 00:06:16,050 Et voilà comment un ordinateur représenterait le nombre 0, 132 00:06:16,050 --> 00:06:17,300 tout comme nous, les humains. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- et vous pouvez probablement le deviner ce modèle de zéros et de uns, 134 00:06:21,660 --> 00:06:24,610 si un ordinateur ne peut parler 0 ou 1-- ce 135 00:06:24,610 --> 00:06:29,110 modèle va représenter le nombre que nous les humains savent que 1? 136 00:06:29,110 --> 00:06:30,590 Yeah 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 D'accord. 138 00:06:31,090 --> 00:06:35,900 Donc, 0, 0, 1 est la façon dont nous représentons 1, de sorte que vous pourriez être tenté alors 139 00:06:35,900 --> 00:06:39,510 pour représenter le nombre 2, si vous avez la place de quatre et la place de deux 140 00:06:39,510 --> 00:06:48,290 comme un seul endroit, vous pourriez dire, eh bien, si nous avions un 1 à la place de l'un, 141 00:06:48,290 --> 00:06:50,430 et maintenant nous voulons compter jusqu'à 2, vous pourriez 142 00:06:50,430 --> 00:06:53,310 faire et laisser cette tâche à un zéro. 143 00:06:53,310 --> 00:06:56,397 Mais bien sûr, ce n'est pas comment le système décimal fonctionne soit. 144 00:06:56,397 --> 00:06:58,230 Si vous mettez un chiffre ces deux colonnes, 145 00:06:58,230 --> 00:06:59,563 vous avez à faire le calcul. 146 00:06:59,563 --> 00:07:01,930 Donc, ce nombre a I accidentellement représenter juste? 147 00:07:01,930 --> 00:07:06,710 >> Donc, il est 3, parce que 2 fois 1 plus 1 fois 1, bien sûr, nous donne trois. 148 00:07:06,710 --> 00:07:08,340 Donc, ce serait deux. 149 00:07:08,340 --> 00:07:12,730 Le bit sorte de bascule, pour ainsi dire, comme 0 devient un, un peu comme un 9 rôles plus 150 00:07:12,730 --> 00:07:14,840 et devient un 0 lorsque vous portez le 1. 151 00:07:14,840 --> 00:07:16,510 Ce serait alors trois cours. 152 00:07:16,510 --> 00:07:20,170 Four-- une autre chose intéressante arrive, où ceux roulent sur 153 00:07:20,170 --> 00:07:21,750 et vous portez le 1, pour ainsi dire. 154 00:07:21,750 --> 00:07:23,320 Donc, ceci, bien sûr, est de quatre. 155 00:07:23,320 --> 00:07:25,160 >> Mais si vous avance rapide maintenant, ce qui est le plus grand nombre va 156 00:07:25,160 --> 00:07:26,660 être qu'un ordinateur peut représenter? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Donc, il est juste sept dans ce cas, non? 159 00:07:32,380 --> 00:07:35,570 Parce que vous avez une chance sur quatre, celui dans les deux, celui dans l'un. 160 00:07:35,570 --> 00:07:36,900 Voilà 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Cela vous donne sept. 162 00:07:37,972 --> 00:07:39,680 Et en effet, il serait paraître à première vue 163 00:07:39,680 --> 00:07:43,750 que les ordinateurs peuvent compter pas plus haut que celui-ci. 164 00:07:43,750 --> 00:07:45,210 >> Mais cela est bien sûr pas vrai. 165 00:07:45,210 --> 00:07:48,243 Qu'est-ce que nous les humains quand nous voulons compter plus que comme 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Il suffit de porter l'un et juste ajouter un quatrième chiffre à gauche. 168 00:07:53,900 --> 00:07:55,070 Et bien que nous pouvions. 169 00:07:55,070 --> 00:07:57,900 Nous pourrions avoir un huit de placer et le lieu de la 16e, 170 00:07:57,900 --> 00:08:02,000 et lieu de 32, 64, 128-- et vous peut simplement continuer sur jusqu'à l'infini. 171 00:08:02,000 --> 00:08:04,640 Donc, ces zéros et ones-- l'system-- dite binaire 172 00:08:04,640 --> 00:08:10,290 sont ce que un informaticien serait généralement appeler un peu, ou un chiffre binaire. 173 00:08:10,290 --> 00:08:13,590 >> Mais maintenant, comment pouvons-nous obtenir de la concept ou les graphiques de ces choses 174 00:08:13,590 --> 00:08:14,620 à un ordinateur réel? 175 00:08:14,620 --> 00:08:17,170 Nous semblons sauter une étape ici. 176 00:08:17,170 --> 00:08:20,210 Eh bien, la seule entrée à la fin de la journée, à mon ordinateur portable ici 177 00:08:20,210 --> 00:08:22,060 est ce flux d'électricité. 178 00:08:22,060 --> 00:08:24,560 Même si elle a été longue le temps depuis que vous avez pensé à 179 00:08:24,560 --> 00:08:26,580 ou jamais pensé comment l'électricité fonctionne, 180 00:08:26,580 --> 00:08:30,909 il y a des électrons circulant dans ou out, et c'est mon genre de commentaires. 181 00:08:30,909 --> 00:08:34,659 >> Donc, si c'est tout ce que nous sommes obtenir ici comme entrée, 182 00:08:34,659 --> 00:08:36,830 que pouvons-nous faire avec cette information? 183 00:08:36,830 --> 00:08:40,040 Eh bien, nous pourrions penser à un zéro juste une absence d'électricité. 184 00:08:40,040 --> 00:08:42,540 Rien flowinw, rien en mouvement, rien ne se passe. 185 00:08:42,540 --> 00:08:44,690 C'est tout simplement la valeur par défaut state-- zéro. 186 00:08:44,690 --> 00:08:48,200 Mais s'il y a de l'électricité circule, pourquoi ne pas simplement arbitraire, mais globalement 187 00:08:48,200 --> 00:08:50,250 toujours, appeler cela un. 188 00:08:50,250 --> 00:08:54,760 >> Donc, simplement en ayant aucun pouvoir, nous avons un zéro, oui puissance, 189 00:08:54,760 --> 00:08:57,520 nous avons un One-- aucun pouvoir, oui pouvoir. 190 00:08:57,520 --> 00:09:01,520 Et de cette façon, en utilisant quelque chose plus physique ou électronique 191 00:09:01,520 --> 00:09:05,340 nous commençons à mettre en œuvre cette notion de quelque chose qui est un ou un zéro. 192 00:09:05,340 --> 00:09:07,230 En effet, nous pouvions le faire ici. 193 00:09:07,230 --> 00:09:10,590 Donc ici, je n'ai pas trois mais huit ampoules, dont chacun 194 00:09:10,590 --> 00:09:11,810 a son propre interrupteur. 195 00:09:11,810 --> 00:09:15,760 >> Et donc si je voulais représenter le nombre sept ici, 196 00:09:15,760 --> 00:09:18,510 Je pourrais tourner sur ces trois ampoules. 197 00:09:18,510 --> 00:09:21,470 Et en effet, à l'intérieur de mon ordinateur est des millions, 198 00:09:21,470 --> 00:09:25,650 des milliards de choses qui sont inférieure à celle, appelés transistors, 199 00:09:25,650 --> 00:09:27,330 commutateurs, que vous venez de tourner sur et en dehors. 200 00:09:27,330 --> 00:09:30,420 Donc, ce sont big-- relativement commutateurs big-- l'intérieur de mon laptop-- 201 00:09:30,420 --> 00:09:32,150 sont beaucoup, beaucoup, beaucoup, beaucoup d'autres commutateurs. 202 00:09:32,150 --> 00:09:35,160 Mais tout ce qu'ils font est exactement that-- tourner quelque chose sur, mettez quelque chose hors tension. 203 00:09:35,160 --> 00:09:38,076 Et en tant que tel, un ordinateur peut représenter, avec ces millions ou des milliards 204 00:09:38,076 --> 00:09:40,480 des transistors, lots et beaucoup de zéros et de uns. 205 00:09:40,480 --> 00:09:43,160 Et il y a d'autres matériels encore que vous permet de stocker des informations à long terme, 206 00:09:43,160 --> 00:09:45,243 de sorte que lorsque vous tirez la branchez, vous ne le perdez pas. 207 00:09:45,243 --> 00:09:46,900 Mais c'est une histoire pour un autre jour. 208 00:09:46,900 --> 00:09:51,170 >> Alors, que pouvons-nous faire avec ces bits? 209 00:09:51,170 --> 00:09:54,309 Pourrions-nous juste prendre la pression hors de moi-- 210 00:09:54,309 --> 00:09:56,600 quelqu'un pourrait vouloir venir ici et offrir une démo? 211 00:09:56,600 --> 00:09:57,516 J'ai vu cette main d'abord. 212 00:09:57,516 --> 00:09:58,709 Quel est ton nom? 213 00:09:58,709 --> 00:09:59,250 MADAY: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID MALAN: Maday, allez vers le haut. 215 00:10:00,542 --> 00:10:01,250 Ravi de vous rencontrer. 216 00:10:01,250 --> 00:10:02,390 MADAY: Ravi de vous rencontrer. 217 00:10:02,390 --> 00:10:02,930 >> DAVID MALAN: Venez de cette façon. 218 00:10:02,930 --> 00:10:04,182 Je ne vais pas devoir vous lèvres vers le haut. 219 00:10:04,182 --> 00:10:04,682 D'accord. 220 00:10:04,682 --> 00:10:11,090 Donc, ici, nous avons, notice-- un, two-- nous éditons que out-- un, deux, quatre, 221 00:10:11,090 --> 00:10:13,350 huit, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Ceci est délibéré. 223 00:10:14,220 --> 00:10:17,370 Il y a huit bits ici-- binaire zéros et des uns digits--. 224 00:10:17,370 --> 00:10:21,460 Et un bit utile est une unité de measure-- pas aussi utile une unité de mesure 225 00:10:21,460 --> 00:10:21,999 sur lui-même. 226 00:10:21,999 --> 00:10:24,290 Habituellement, vous voulez au moins huit de ces choses, alias 227 00:10:24,290 --> 00:10:24,790 un octet. 228 00:10:24,790 --> 00:10:26,230 Nous avons donc un octet de bits ici. 229 00:10:26,230 --> 00:10:31,130 >> Donc, si nous voulions vous mettre au défi avec, par exemple, épelant, en binaire, 230 00:10:31,130 --> 00:10:33,230 cette valeur ici-- 42. 231 00:10:33,230 --> 00:10:35,140 Voulez-vous prendre un coup de couteau à cela? 232 00:10:35,140 --> 00:10:36,034 >> MADAY: [Inaudible]. 233 00:10:36,034 --> 00:10:38,700 DAVID MALAN: Oui, il suffit de pousser la petits interrupteurs blancs devant. 234 00:10:38,700 --> 00:10:41,290 Et vous voulez épeler sur 42, et à gagner 235 00:10:41,290 --> 00:10:44,061 est ce stress CS50 balle si vous obtenez ce. 236 00:10:44,061 --> 00:10:44,560 D'accord. 237 00:10:44,560 --> 00:10:46,420 Donc, vous avez 32. 238 00:10:46,420 --> 00:10:48,430 Nous allons avoir besoin de 42. 239 00:10:48,430 --> 00:10:51,410 Voilà donc un huit, de sorte que ce 40. 240 00:10:51,410 --> 00:10:54,160 Et excellent-- très bien fait. 241 00:10:54,160 --> 00:10:55,186 Je vous remercie. 242 00:10:55,186 --> 00:10:58,790 >> [APPLAUDISSEMENTS] 243 00:10:58,790 --> 00:10:59,290 D'accord. 244 00:10:59,290 --> 00:11:00,623 Nous avons donc encore une balle anti-stress. 245 00:11:00,623 --> 00:11:03,595 Faisons-le encore une fois, si nous pouvons. 246 00:11:03,595 --> 00:11:05,368 Un autre volontaire? 247 00:11:05,368 --> 00:11:07,970 stress balle, sans stress balle. 248 00:11:07,970 --> 00:11:08,470 D'ACCORD. 249 00:11:08,470 --> 00:11:11,640 Ici, au milieu, voulez-vous descendre? 250 00:11:11,640 --> 00:11:14,100 D'accord. 251 00:11:14,100 --> 00:11:15,552 Je connais. 252 00:11:15,552 --> 00:11:16,360 Nous y voilà. 253 00:11:16,360 --> 00:11:20,818 >> Donc, les chiffres viennent ici-- vers le bas. 254 00:11:20,818 --> 00:11:21,567 Comment vous appelez-vous? 255 00:11:21,567 --> 00:11:21,984 >> DAVEY: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID MALAN: Davey. 257 00:11:22,820 --> 00:11:23,320 D'ACCORD. 258 00:11:23,320 --> 00:11:24,810 Allez jusqu'à, Davey. 259 00:11:24,810 --> 00:11:25,890 Ravi de vous rencontrer. 260 00:11:25,890 --> 00:11:28,639 Et ce que nous allons vous avez spell-- si vous pouviez y attarder 261 00:11:28,639 --> 00:11:32,810 pour un seul moment-- est le numéro 50. 262 00:11:32,810 --> 00:11:36,293 Mais, mais, mais, mais, mais, ceux-ci sont aimants de l'école primaire pour une raison. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Juste un peu plus difficile, d'accord? 265 00:11:43,327 --> 00:11:44,160 Il y a encore huit. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 D'accord. 268 00:11:47,320 --> 00:11:48,486 Alors qu'est-ce que nous avons là-bas? 269 00:11:48,486 --> 00:11:51,356 Nous avons 32. 270 00:11:51,356 --> 00:11:54,344 Agréable. 271 00:11:54,344 --> 00:11:58,610 32 plus 16 nous donne 48-- si près. 272 00:11:58,610 --> 00:12:00,390 Et merveilleux. 273 00:12:00,390 --> 00:12:02,831 Félicitations à Davey ainsi. 274 00:12:02,831 --> 00:12:05,720 >> [APPLAUDISSEMENTS] 275 00:12:05,720 --> 00:12:06,516 >> D'accord. 276 00:12:06,516 --> 00:12:09,390 Donc, nous pouvons faire toute la journée, et il ne peut pas faire tout ce que beaucoup plus 277 00:12:09,390 --> 00:12:10,800 intéressant et plus difficile. 278 00:12:10,800 --> 00:12:13,250 Mais c'est vraiment le point-- comment relativement simple 279 00:12:13,250 --> 00:12:16,930 il est, à la fin de la journée, quel ordinateur fait pour stocker des informations, 280 00:12:16,930 --> 00:12:21,740 pour stocker les entrées et, finalement, stocker ou représenter ces sorties. 281 00:12:21,740 --> 00:12:23,750 Mais les chiffres seuls ne sont pas tout ce qui intéressant. 282 00:12:23,750 --> 00:12:26,069 >> Donc, les humains, il y a quelques années, décidé, vous savez quoi? 283 00:12:26,069 --> 00:12:27,860 Ce serait bien si les ordinateurs ne sont pas seulement 284 00:12:27,860 --> 00:12:31,030 calculatrices pour l'arithmétique opérations, mais en fait pourrait 285 00:12:31,030 --> 00:12:35,209 faire des choses comme le traitement de texte, ou email, ou incarnations plus modernes 286 00:12:35,209 --> 00:12:36,500 Ces types de technologies. 287 00:12:36,500 --> 00:12:40,680 Et le monde a décidé arbitrairement, mais universellement, 288 00:12:40,680 --> 00:12:44,380 que si vous voulez stocker la capitale lettre A dans un ordinateur, vous savez quoi? 289 00:12:44,380 --> 00:12:47,730 Disons simplement tous d'accord pour stocker un certain motif de zéros et ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- que finalement représente le nombre décimal 65. 291 00:12:52,422 --> 00:12:53,630 Nous allons tous d'accord là-dessus. 292 00:12:53,630 --> 00:12:56,620 >> 66 représenterait B, 67 représenterait C, 293 00:12:56,620 --> 00:13:00,210 et il y a des grappes d'autres modes de zéros et des uns ou des nombres sous-jacents, 294 00:13:00,210 --> 00:13:02,224 cela représenterait autres lettres encore. 295 00:13:02,224 --> 00:13:04,390 Donc, si vous genre de mental absorber ce pour un moment, 296 00:13:04,390 --> 00:13:10,900 Je délibérément mis en place A travers I, où H a 72 et I est 73. 297 00:13:10,900 --> 00:13:15,830 Si un ordinateur puis, dans le contexte de un programme de traitement de texte ou un e-mail, 298 00:13:15,830 --> 00:13:19,620 révélé sous le capot pour avoir ces schémas de configuration bits-- 299 00:13:19,620 --> 00:13:22,500 de bits représentant 72, puis 73, puis 33-- 300 00:13:22,500 --> 00:13:26,640 ce qui pourrait ce sort dans ce programme? 301 00:13:26,640 --> 00:13:28,150 >> Alors salut, et puis quelque chose. 302 00:13:28,150 --> 00:13:31,460 Nous ne savons pas nécessairement, mais bien 33-- pas sur le graphique heure, à savoir 303 00:13:31,460 --> 00:13:33,170 était tout simplement un point d'exclamation. 304 00:13:33,170 --> 00:13:38,870 Donc, 72 est H, 73 est I, 33 arrive d'être un point d'exclamation encore. 305 00:13:38,870 --> 00:13:41,719 Mais tout cela est bel et bon, et en fait, de nos jours, plutôt que 306 00:13:41,719 --> 00:13:43,760 il suffit d'utiliser sept ou huit bits, grâce à quelque chose 307 00:13:43,760 --> 00:13:46,530 appelé Unicode par opposition Ascii retour dans la journée, 308 00:13:46,530 --> 00:13:50,010 nous pouvons représenter effectivement encore plus personnages intéressants que juste 309 00:13:50,010 --> 00:13:52,980 ces lettres originale anglaise biaisée. 310 00:13:52,980 --> 00:13:56,030 Mais nous pouvons aussi représenter même les choses plus nettes comme les couleurs. 311 00:13:56,030 --> 00:13:59,750 >> Si vous avez déjà entendu l'acronyme RVB, rouge, vert, bleu, que 312 00:13:59,750 --> 00:14:03,510 signifie simplement qu'un ordinateur utilise généralement trois ensembles de bits-- 313 00:14:03,510 --> 00:14:06,760 un certain nombre de bits qui représentent un certain nombre pour combien de rouge que vous voulez, 314 00:14:06,760 --> 00:14:08,940 un autre ensemble de bits pour combien verte que vous voulez, 315 00:14:08,940 --> 00:14:11,430 et un autre numéro de série pour combien bleu vous voulez. 316 00:14:11,430 --> 00:14:14,457 Donc, un grand nombre signifie beaucoup de rouge, petit nombre signifie pas rouge. 317 00:14:14,457 --> 00:14:16,290 Et ceux-ci sont un peu des valeurs moyennes ici. 318 00:14:16,290 --> 00:14:20,180 >> Alors donnez-moi un peu de rouge, me donner quelques vert, et me donner un peu de bleu. 319 00:14:20,180 --> 00:14:24,260 Et si vous mélangez ces trois nuances de couleur ensemble, dans ce cas, 320 00:14:24,260 --> 00:14:26,850 vous obtenez cette teinte sombre de jaune ou de brun. 321 00:14:26,850 --> 00:14:32,330 Mais ce modèle de huit plus huit plus eight-- donc 24 bits-- 322 00:14:32,330 --> 00:14:36,550 de gauche à droite, est de savoir comment un ordinateur représenterait cette couleur particulière. 323 00:14:36,550 --> 00:14:38,090 Maintenant, ceci est juste un point sur un écran. 324 00:14:38,090 --> 00:14:42,230 Si vous regardez vraiment proche à votre téléviseur à votre ordinateur, vous verrez des points ou pixels. 325 00:14:42,230 --> 00:14:45,420 Et si vous avez toute une grille de pixels, horizontalement et verticalement, 326 00:14:45,420 --> 00:14:46,630 vous avez des images. 327 00:14:46,630 --> 00:14:49,029 Et puis si vous prenez une image, puis lavage 328 00:14:49,029 --> 00:14:52,070 montrez-vous une autre image, un autre l'image, une autre image, une autre image, 329 00:14:52,070 --> 00:14:54,760 vraiment rapide, vous avez bien sûr des films. 330 00:14:54,760 --> 00:14:56,109 >> Et remarquez où nous avons commencé. 331 00:14:56,109 --> 00:14:57,650 Nous avons commencé avec ces zéros et des uns. 332 00:14:57,650 --> 00:15:00,570 Nous avons travaillé à partir de là en décimal numéros, comment nous les représentent. 333 00:15:00,570 --> 00:15:02,070 Maintenant, nous avons des lettres de l'alphabet. 334 00:15:02,070 --> 00:15:05,664 Mais dans d'autres contextes attendent, nous pouvons utiliser un peu plus de bits et représenter les couleurs. 335 00:15:05,664 --> 00:15:07,830 Dès que vous avez le capacité à représenter les couleurs, 336 00:15:07,830 --> 00:15:11,200 vous avez la possibilité de représenter des photographies et des gifs animés 337 00:15:11,200 --> 00:15:13,780 et autres caractères à l'écran. 338 00:15:13,780 --> 00:15:17,160 Et quand vous avez tout un tas de images de vol par l'homme à la fois, 339 00:15:17,160 --> 00:15:21,480 il ressemble à des images animées, et ainsi vous obtenez des vidéos. 340 00:15:21,480 --> 00:15:23,460 >> Donc, en utilisant ces très primitives simples ne nous 341 00:15:23,460 --> 00:15:28,070 avoir la manière de représenter finalement, toutes ces formes de médias. 342 00:15:28,070 --> 00:15:30,450 Et nous avons encore une fois abstraite et encore et encore, jusqu'à ce que nous 343 00:15:30,450 --> 00:15:33,467 obtenir à partir du niveau le plus bas à ce plus haut niveau. 344 00:15:33,467 --> 00:15:35,550 Donc, ce qui nous donne cette idée générale de l'abstraction. 345 00:15:35,550 --> 00:15:36,990 Mais nous avons commencé ici. 346 00:15:36,990 --> 00:15:38,790 >> Voici maintenant, nous pourrions représenter dans un ordinateur 347 00:15:38,790 --> 00:15:41,920 nos entrées avec des zéros et de uns, nos sorties en zéros et des uns, 348 00:15:41,920 --> 00:15:43,640 mais ce qui se passe à l'intérieur de la boîte? 349 00:15:43,640 --> 00:15:46,080 Voilà où l'ordinateur la science devient intéressant. 350 00:15:46,080 --> 00:15:49,770 Voilà où vous avez réellement apporter votre propres esprits à supporter pour résoudre les problèmes. 351 00:15:49,770 --> 00:15:52,590 Nous pouvons maintenant prévoir, pour la reste du semestre, oui. 352 00:15:52,590 --> 00:15:53,870 Je sais comment fonctionne binaires. 353 00:15:53,870 --> 00:15:57,942 Je me souviens comment Ascii ou Unicode-- la mise en correspondance de letters-- travaux. 354 00:15:57,942 --> 00:15:59,650 Et il va certainement à la raison que nous 355 00:15:59,650 --> 00:16:03,470 pourrait représenter rouge et vert et bleu, et représentent multimédia ainsi. 356 00:16:03,470 --> 00:16:05,390 Mais ceci est les choses intéressantes. 357 00:16:05,390 --> 00:16:09,790 Ce qui fait que quelqu'un capable de résoudre les problèmes. 358 00:16:09,790 --> 00:16:11,980 >> Et un tel problème nous aimons faire, en effet, 359 00:16:11,980 --> 00:16:15,345 est la prise des présences, ou Ce faisant algorithmiquement. 360 00:16:15,345 --> 00:16:16,470 Et encore, je pourrais le faire. 361 00:16:16,470 --> 00:16:19,580 Je pourrais faire un, deux, trois, quatre cinq, six, sept, huit neuf. 362 00:16:19,580 --> 00:16:21,520 Et je pourrais écrire vers le bas pour garder une trace de celui-ci. 363 00:16:21,520 --> 00:16:23,769 Mais c'est juste comment je représenter l'information. 364 00:16:23,769 --> 00:16:27,550 Ou je pourrais le faire faster-- deux, quatre, six, huit, dix, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- il se sent comme deux fois aussi vite, mais il est encore 366 00:16:30,380 --> 00:16:32,050 va prendre beaucoup de temps. 367 00:16:32,050 --> 00:16:35,990 >> Mais il se trouve, si nous exploitons encore un autre ordinateur et, en fait resource-- 368 00:16:35,990 --> 00:16:38,940 ces jours-ci ont plusieurs processeurs ou le cerveau. 369 00:16:38,940 --> 00:16:41,970 Il se trouve des ordinateurs peut faire beaucoup de choses à la fois, 370 00:16:41,970 --> 00:16:44,460 et en effet nous, dans cette salle, pourrait représenter exactement cela. 371 00:16:44,460 --> 00:16:47,130 >> Donc, il est un peu socialement maladroit, mais si vous voulez me faire plaisir 372 00:16:47,130 --> 00:16:51,550 juste un processus en trois étapes, laissez me demande tout le monde en place là juste 373 00:16:51,550 --> 00:16:54,640 de se lever pour un moment. 374 00:16:54,640 --> 00:16:57,380 Se lever. 375 00:16:57,380 --> 00:17:01,580 Alors, pensez à vous-même, le nombre One-- que tout le monde dans cette salle, 376 00:17:01,580 --> 00:17:05,010 à l'exception des personnes qui ne l'ont pas oblige, sont penser numéro un. 377 00:17:05,010 --> 00:17:06,510 Voilà donc votre numéro dès maintenant. 378 00:17:06,510 --> 00:17:09,399 Telle est la première étape, ou en tant que informaticien ou un programmeur 379 00:17:09,399 --> 00:17:11,827 serait généralement faire, nous allons pour commencer à compter à zéro. 380 00:17:11,827 --> 00:17:14,410 Si le plus petit nombre possible représenter avec ces ampoules 381 00:17:14,410 --> 00:17:17,410 est nul, simplement en les laissant tout, je pourrais tout aussi bien 382 00:17:17,410 --> 00:17:19,271 commencer à compter de zéro est au lieu d'un. 383 00:17:19,271 --> 00:17:21,020 Et c'est ce que les informaticiens font. 384 00:17:21,020 --> 00:17:23,750 Donc, l'étape zéro, se lever et penser au numéro un. 385 00:17:23,750 --> 00:17:26,339 La prochaine étape est this-- paire avec quelqu'un debout 386 00:17:26,339 --> 00:17:27,660 et d'ajouter vos numéros ensemble. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Formidable. 389 00:17:32,850 --> 00:17:37,640 >> Donc, à ce moment dans le temps, littéralement tous les participants 390 00:17:37,640 --> 00:17:41,930 est en pensant au numéro 2, à l'exception pour une personne bizarre si nous avons 391 00:17:41,930 --> 00:17:43,450 un nombre impair de personnes dans la salle. 392 00:17:43,450 --> 00:17:50,640 Et maintenant la troisième étape ici va être this-- de vous devriez vous asseoir. 393 00:17:50,640 --> 00:17:54,490 L'un de vous devriez vous asseoir, et si vous êtes encore debout, 394 00:17:54,490 --> 00:17:56,590 revenir à la première étape. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 D'accord. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 D'accord. 399 00:19:01,650 --> 00:19:03,880 Alors, les gens de plus en plus devrait être assis. 400 00:19:03,880 --> 00:19:08,280 Notez que cela a induit un loop-- une sorte de cycle. 401 00:19:08,280 --> 00:19:11,983 Certains d'entre vous devrait être maladroitement coincé, va-et-vient entre la première étape 402 00:19:11,983 --> 00:19:14,180 et deux, un et deux, un et deux. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 C'est bon. 405 00:19:21,810 --> 00:19:22,630 Notre premier bug. 406 00:19:22,630 --> 00:19:24,740 Nous allons traiter de cela. 407 00:19:24,740 --> 00:19:25,320 D'accord. 408 00:19:25,320 --> 00:19:27,370 Je vais essayer de stimuler les choses. 409 00:19:27,370 --> 00:19:31,454 >> En théorie, une seule personne est debout comme tout le monde continue à apparier. 410 00:19:31,454 --> 00:19:33,870 Mais permettez-moi d'accélérer les choses avec le peuple toujours debout. 411 00:19:33,870 --> 00:19:35,480 Quel numéro pensez-vous? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 D'ACCORD. 414 00:19:36,570 --> 00:19:37,820 Allez-y et asseyez-vous. 415 00:19:37,820 --> 00:19:39,190 Vous les gars sont encore debout. 416 00:19:39,190 --> 00:19:42,130 Qui est encore debout? 417 00:19:42,130 --> 00:19:45,240 Quel numéro pensez-vous? 418 00:19:45,240 --> 00:19:46,160 D'ACCORD. 419 00:19:46,160 --> 00:19:47,900 >> Donc, nous allons revenir à vous. 420 00:19:47,900 --> 00:19:49,630 Dans le dos? 421 00:19:49,630 --> 00:19:50,790 Qu'est-ce que c'est? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK quelqu'un d'autre jusqu'à top-- ouais? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 D'ACCORD. 426 00:19:58,300 --> 00:20:02,780 Ici sur mon droite- ici? 427 00:20:02,780 --> 00:20:06,820 132, très agréable. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> D'ACCORD. 430 00:20:08,990 --> 00:20:10,031 Et qui est toujours debout? 431 00:20:10,031 --> 00:20:11,000 Par ici? 432 00:20:11,000 --> 00:20:14,520 46, très agréable. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Je ne peux pas bloquer beaucoup plus longtemps. 435 00:20:18,220 --> 00:20:20,520 Ouais? 436 00:20:20,520 --> 00:20:22,490 30, agréable. 437 00:20:22,490 --> 00:20:24,120 Par ici? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> Et je pense que tout le monde est sauf les gars, pas de pression. 441 00:20:30,920 --> 00:20:32,860 Oh, attendez. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Juste huit. 445 00:20:38,281 --> 00:20:38,780 D'ACCORD. 446 00:20:38,780 --> 00:20:41,030 Juste huit. 447 00:20:41,030 --> 00:20:42,580 Ici? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Ceci est la pire mise en œuvre de cet algorithme jamais. 454 00:20:54,690 --> 00:20:55,190 D'ACCORD. 455 00:20:55,190 --> 00:20:59,760 Donc, quelqu'un d'autre? 456 00:20:59,760 --> 00:21:00,421 Quelqu'un d'autre? 457 00:21:00,421 --> 00:21:00,920 D'ACCORD. 458 00:21:00,920 --> 00:21:03,300 Un de plus. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 D'ACCORD. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 D'accord. 463 00:21:06,010 --> 00:21:09,070 Donc, si je ne l'ai pas oublié quelqu'un dans l'éclat ici, quand je frappe Entrée, 464 00:21:09,070 --> 00:21:13,091 nous verrons, algorithmiquement, la nombre total de personnes à Sanders. 465 00:21:13,091 --> 00:21:16,340 Parce qu'encore une fois, il est comme si tout le monde que vous vous êtes assis, passé votre numéro de 466 00:21:16,340 --> 00:21:19,215 à quelqu'un d'autre, à quelqu'un d'autre, à quelqu'un d'autre, de sorte que, en théorie, 467 00:21:19,215 --> 00:21:22,304 à la fin, un seul maladroit personne ne devrait être laissé au repos. 468 00:21:22,304 --> 00:21:22,970 Mais ça va. 469 00:21:22,970 --> 00:21:24,290 Nous hâtés les choses manuellement. 470 00:21:24,290 --> 00:21:27,590 Il est particulièrement difficile de voir dans cet espace particulier. 471 00:21:27,590 --> 00:21:34,200 >> Et le nombre total de personnes nous pensons qu'il ya ici est 546. 472 00:21:34,200 --> 00:21:37,330 Le nombre total I a été remis par les boursiers de l'enseignement, 473 00:21:37,330 --> 00:21:40,660 qui l'a fait l'ancien façon lente de l'école, était de 820. 474 00:21:40,660 --> 00:21:43,660 >> [EN RIANT] 475 00:21:43,660 --> 00:21:47,170 >> [APPLAUDISSEMENTS] 476 00:21:47,170 --> 00:21:48,670 >> C'est bon. 477 00:21:48,670 --> 00:21:50,740 Aussi sûrement puis, il y a ces bugs. 478 00:21:50,740 --> 00:21:51,460 Et ça va. 479 00:21:51,460 --> 00:21:53,810 Et alors pensez sur cet la première fois que quelque chose 480 00:21:53,810 --> 00:21:55,420 vous écrivez ne fonctionne pas nécessairement. 481 00:21:55,420 --> 00:21:57,620 Cela est arrivé à moi ici. 482 00:21:57,620 --> 00:22:00,844 Mais nous allons examiner maintenant comment nous pourrions appliquer cette même idée à quelque chose 483 00:22:00,844 --> 00:22:03,760 vous pourriez avoir vu auparavant, ce qui est ce vieux ici-- de la technologie de l'école 484 00:22:03,760 --> 00:22:05,130 un très grand livre de téléphone. 485 00:22:05,130 --> 00:22:09,380 Et supposons que ce livre de téléphone a 1.000 pages et 1.000 noms 486 00:22:09,380 --> 00:22:11,360 et les numéros par ordre alphabétique à l'intérieur de celui-ci. 487 00:22:11,360 --> 00:22:14,860 >> Eh bien, nous pourrions genre d'appliquer un même idée de ce problème très physique, 488 00:22:14,860 --> 00:22:16,270 me utilise. 489 00:22:16,270 --> 00:22:18,810 Je viens de sorte de triché en tirant parti de vous tous 490 00:22:18,810 --> 00:22:23,240 avec beaucoup, beaucoup de processeurs différents ou cerveaux exécuter un algorithme. 491 00:22:23,240 --> 00:22:25,440 Mais si elle est juste un peu vieux moi, je peux encore 492 00:22:25,440 --> 00:22:29,630 tirer parti de cette même essence d'une idée de diviser et de conquérir ce problème 493 00:22:29,630 --> 00:22:32,970 encore et encore, de sorte que la moitié d'entre vous, la moitié d'entre vous, la moitié d'entre vous, la moitié d'entre vous, 494 00:22:32,970 --> 00:22:35,830 théoriquement gardé assis, jusqu'à ce que nous sommes partis, en théorie, 495 00:22:35,830 --> 00:22:36,990 avec une seule personne. 496 00:22:36,990 --> 00:22:39,810 >> Donc, dans cette ancienne école technology-- nous ne faisons pas 497 00:22:39,810 --> 00:22:43,030 besoin de ce map-- cette la technologie de la vieille école, 498 00:22:43,030 --> 00:22:47,300 nous pourrions commencer à chercher quelqu'un comme Mike Smith, une page à la fois. 499 00:22:47,300 --> 00:22:49,410 Et je vois que non, Mike est pas ici. 500 00:22:49,410 --> 00:22:51,110 Je suis toujours dans la section A. 501 00:22:51,110 --> 00:22:53,900 Finalement, je trouve moi-même dans la section B. 502 00:22:53,900 --> 00:22:56,910 Et ceci est un algorithm-- étape par étape instruction. 503 00:22:56,910 --> 00:22:59,890 Commencez à la page de début et une à un moment, chercher Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Est-ce correct-- cette algorithme ou approche? 505 00:23:03,410 --> 00:23:04,550 >> Oui, il est exact. 506 00:23:04,550 --> 00:23:06,840 Si Mike est ici, par la suite Je vais chercher à lui. 507 00:23:06,840 --> 00:23:08,139 Mais ce n'est pas efficace. 508 00:23:08,139 --> 00:23:09,180 Il est évidemment très lent. 509 00:23:09,180 --> 00:23:11,340 Je peux donc tirer parti de la mêmes twosies approchent. 510 00:23:11,340 --> 00:23:15,350 Je peux le faire en quelque sorte deux, quatre, six, huit, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Il est deux fois plus rapide. 512 00:23:16,330 --> 00:23:18,290 Je vais arriver à Mike plus vite s'il est là. 513 00:23:18,290 --> 00:23:20,770 Est-ce correct? 514 00:23:20,770 --> 00:23:22,320 Oui, mais j'ai entendu un pas little--. 515 00:23:22,320 --> 00:23:24,200 Maintenant, j'entendu un non. 516 00:23:24,200 --> 00:23:24,700 Ouais. 517 00:23:24,700 --> 00:23:26,190 Il y a un bug potentiellement. 518 00:23:26,190 --> 00:23:29,374 Peut-être que Mike obtient juste accidentellement pris en sandwich entre deux pages, 519 00:23:29,374 --> 00:23:31,290 parce que je vole à travers ces deux à la fois. 520 00:23:31,290 --> 00:23:33,580 Donc, au moins nous avons besoin type de solution conditionnelle. 521 00:23:33,580 --> 00:23:35,330 Je dois dire, hey, si je frappe quelqu'un dont 522 00:23:35,330 --> 00:23:39,190 nom commence par un T au lieu d'un S, Je ferais mieux de double back au moins une page. 523 00:23:39,190 --> 00:23:40,767 Donc, poussette au premier abord, mais réparable. 524 00:23:40,767 --> 00:23:43,850 Mais aucun d'entre nous allons chercher Mike Smith à travers un téléphone de 1000 pages 525 00:23:43,850 --> 00:23:45,290 réserver une page à la fois. 526 00:23:45,290 --> 00:23:48,486 Qu'est-ce qu'une personne normale va faire? 527 00:23:48,486 --> 00:23:50,860 Tu vas aller les S, si vous saviez où les S. 528 00:23:50,860 --> 00:23:54,230 Vous pouvez aller à peu près au milieu ou légèrement biaisé vers la fin. 529 00:23:54,230 --> 00:23:56,850 Et je regarde ici et Je suis dans la section M. 530 00:23:56,850 --> 00:23:58,952 Mais que savez-vous à propos de ce problème maintenant, 531 00:23:58,952 --> 00:24:02,160 que nous ne savions pas nécessairement avant avec nous tous simplement nous compter 532 00:24:02,160 --> 00:24:03,030 équivalente? 533 00:24:03,030 --> 00:24:06,010 Eh bien, Mike va clairement d'être dans cette moitié du livre 534 00:24:06,010 --> 00:24:07,920 s'il est ici du tout parce qu'il est triée. 535 00:24:07,920 --> 00:24:10,160 >> Et donc vous pouvez très dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [HALÈTEMENT] 537 00:24:11,250 --> 00:24:12,300 >> Je connais. 538 00:24:12,300 --> 00:24:16,940 >> [APPLAUDISSEMENTS] 539 00:24:16,940 --> 00:24:19,450 >> Il est effectivement très facile si vous le faites dans le dos il. 540 00:24:19,450 --> 00:24:22,070 Mais vous pouvez jeter la moitié du problème de distance. 541 00:24:22,070 --> 00:24:25,950 Maintenant, je suis parti avec le même problem-- trouver Mike Smith dans un téléphone book-- 542 00:24:25,950 --> 00:24:29,610 mais maintenant le livre de téléphone commence à M et va à Z, mais il est à moitié aussi grand. 543 00:24:29,610 --> 00:24:30,890 >> Mais ceci est ce qui est impressionnant. 544 00:24:30,890 --> 00:24:34,170 Tout comme dans la théorie, vous les gars, quand vous tous assis seulement la moitié à la fois, 545 00:24:34,170 --> 00:24:37,150 le problème a la moitié aussi grand, la moitié aussi grand, encore et encore. 546 00:24:37,150 --> 00:24:40,260 Donc a ce problème devenu le même problème, mais la moitié aussi grand. 547 00:24:40,260 --> 00:24:42,670 Maintenant, il est un problème de 250 pages. 548 00:24:42,670 --> 00:24:45,340 Dès que je me rends compte, oh, je suis dans la section T accidentellement. 549 00:24:45,340 --> 00:24:46,590 Je suis allé trop loin. 550 00:24:46,590 --> 00:24:48,500 Je peux jeter que la moitié du livre de téléphone. 551 00:24:48,500 --> 00:24:50,410 Maintenant, je suis à un quart du problème. 552 00:24:50,410 --> 00:24:53,910 >> Et vous pouvez répéter, répéter, répéter jusqu'à ce que, en théorie, vous êtes 553 00:24:53,910 --> 00:24:55,460 à gauche avec une seule page. 554 00:24:55,460 --> 00:24:59,010 Et si Mike est sur cette page, Je peux maintenant résoudre ce problème. 555 00:24:59,010 --> 00:25:00,810 Mais la rapidité ai-je le résoudre? 556 00:25:00,810 --> 00:25:05,420 Dans le premier cas, il m'a fallu comme peut-être 1.000 étapes pour trouver Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Il aurait pu prendre moi-- Je pris le livre de téléphone 558 00:25:09,260 --> 00:25:11,440 et je commencé à regarder une page à la fois, 559 00:25:11,440 --> 00:25:13,480 et Mike pourrait être 1.000 pages plus tard. 560 00:25:13,480 --> 00:25:16,020 >> Deuxième approche peut-être me prend 500 étapes, 561 00:25:16,020 --> 00:25:17,960 parce que je vole par deux à la fois. 562 00:25:17,960 --> 00:25:21,082 Et la troisième approche cependant, il est particulièrement puissant. 563 00:25:21,082 --> 00:25:23,790 Mais nous allons examiner ce que nous avons en fait a fait avec cette troisième approche. 564 00:25:23,790 --> 00:25:27,590 Je dois ce que je vais appeler simplement ceux-ci déclarations ici, une à la fois. 565 00:25:27,590 --> 00:25:28,560 Procurez-vous un annuaire téléphonique. 566 00:25:28,560 --> 00:25:30,130 Ouvert au milieu de l'annuaire téléphonique. 567 00:25:30,130 --> 00:25:31,419 Regardez les noms. 568 00:25:31,419 --> 00:25:33,960 Et puis les choses deviennent un peu intellectuellement plus intéressant, 569 00:25:33,960 --> 00:25:35,170 si elle est encore simple. 570 00:25:35,170 --> 00:25:38,350 Si Smith est parmi les noms sur cette page en cours, 571 00:25:38,350 --> 00:25:40,170 puis faire quelque chose conditionnellement. 572 00:25:40,170 --> 00:25:41,840 Il est comme une bifurcation de la route. 573 00:25:41,840 --> 00:25:42,660 Appelez Mike. 574 00:25:42,660 --> 00:25:44,930 Si Mike est parmi les noms sur cette page, appelé Mike. 575 00:25:44,930 --> 00:25:49,720 Mais seulement faire quatre lignes si la ligne arbre, si vous voulez, est vrai. 576 00:25:49,720 --> 00:25:51,590 La réponse à cette question est oui. 577 00:25:51,590 --> 00:25:55,520 >> Sinon, si Smith est plus tôt dans la book-- en d'autres termes, si je suis dans la section M 578 00:25:55,520 --> 00:25:58,540 et je suis à la recherche de quelqu'un pour la gauche, alors ce que je doit faire 579 00:25:58,540 --> 00:26:00,300 est quelque chose de très similaire. 580 00:26:00,300 --> 00:26:03,440 Ensuite, je dois ouvrir au milieu de la moitié gauche du livre. 581 00:26:03,440 --> 00:26:07,930 Alors, allez à gauche, puis revenir à l'étape deux. 582 00:26:07,930 --> 00:26:09,290 Regardez les noms là-bas. 583 00:26:09,290 --> 00:26:12,779 >> Donc, en d'autres termes, faire la même chose, mais sur un problème qui a été réduite de moitié. 584 00:26:12,779 --> 00:26:13,570 Vous savez quoi? 585 00:26:13,570 --> 00:26:16,470 Si Smith est plus tard dans le livre sur la base de la page Je regarde, 586 00:26:16,470 --> 00:26:18,790 ouvert au milieu de la la moitié droite du livre 587 00:26:18,790 --> 00:26:22,050 puis revenir en arrière à l'étape deux, else-- 588 00:26:22,050 --> 00:26:24,000 il y a une quatrième possibilité ici. 589 00:26:24,000 --> 00:26:28,830 Mike soit ici ou à gauche ou vers la droite ou non. 590 00:26:28,830 --> 00:26:30,570 Et ici, nous considérons cela mieux. 591 00:26:30,570 --> 00:26:33,360 Et en fait, si vous avez déjà eu votre ordinateur juste planter sur vous, 592 00:26:33,360 --> 00:26:36,822 qui est parfois, mais pas toujours, résultat de tout un programmeur humain ne 593 00:26:36,822 --> 00:26:39,280 réaliser, oh tirer, il y a effectivement ce quatrième scénario. 594 00:26:39,280 --> 00:26:41,650 Et si vous n'écrire du code pour gérer ce scénario, 595 00:26:41,650 --> 00:26:43,220 parfois vous ne savez pas ce que l'ordinateur pourrait faire. 596 00:26:43,220 --> 00:26:44,770 Et en effet, un programme peut se bloquer. 597 00:26:44,770 --> 00:26:47,550 >> Mais dans ce cas, je pensais à ce sujet, et je l'ai dit, sinon cesser de fumer, 598 00:26:47,550 --> 00:26:49,850 parce que ce quatrième scénario logique possible. 599 00:26:49,850 --> 00:26:51,950 Maintenant, nous allons juste ajouter un peu de vocabulaire pour que nous 600 00:26:51,950 --> 00:26:55,320 peut commencer à jeter autour des termes sont par ailleurs assez intuitif. 601 00:26:55,320 --> 00:26:57,870 Toutes les choses que je viens surlignés en jaune ici, 602 00:26:57,870 --> 00:27:00,140 Je vais à la les fonctions ou procédures. 603 00:27:00,140 --> 00:27:01,590 Ils sont juste genre d'actions. 604 00:27:01,590 --> 00:27:04,900 Donc ramasser, ouvert à, regarder à, appeler, ouvert, ouvert, 605 00:27:04,900 --> 00:27:09,170 quit-- ce ne sont que des actions, ou nous allons appeler plus formelle, les fonctions. 606 00:27:09,170 --> 00:27:11,410 >> Pendant ce temps, maintenant en jaune, J'ai mis en évidence les choses 607 00:27:11,410 --> 00:27:14,084 that-- commençons simplement appeler les conditions ou les branches. 608 00:27:14,084 --> 00:27:16,750 Ce sont des points de décision où vous pourriez aller de cette façon, de cette façon, 609 00:27:16,750 --> 00:27:18,100 ou encore une autre direction. 610 00:27:18,100 --> 00:27:19,430 Donc, ceux-ci seront les conditions. 611 00:27:19,430 --> 00:27:20,930 Et maintenant, celui-ci est un peu plus fantaisistes. 612 00:27:20,930 --> 00:27:24,600 Appelons ces questions Les expressions booléennes, 613 00:27:24,600 --> 00:27:26,530 après que quelqu'un avec un nom Bool. 614 00:27:26,530 --> 00:27:28,340 >> Et une expression booléenne est juste quelque chose 615 00:27:28,340 --> 00:27:30,290 que ce soit vrai ou faux, oui ou non. 616 00:27:30,290 --> 00:27:35,870 Il est donc la question dont vous répondre soucier, de manière à en condition 617 00:27:35,870 --> 00:27:39,210 faire un decision-- revenir une réponse, et puis aller à gauche ou à droite, ou quelque chose 618 00:27:39,210 --> 00:27:40,450 d'autre tout à fait. 619 00:27:40,450 --> 00:27:42,860 >> Et puis enfin, ceux-ci lignes vont ici-- retour 620 00:27:42,860 --> 00:27:44,737 à l'étape deux, revenir en arrière à l'étape two-- nous pourrions 621 00:27:44,737 --> 00:27:46,320 mettre en œuvre cette idée de différentes façons. 622 00:27:46,320 --> 00:27:49,028 Et puis ceux d'entre vous avec expérience de programmation aurait pu faire 623 00:27:49,028 --> 00:27:50,670 ou peut imaginer faire cela différemment. 624 00:27:50,670 --> 00:27:53,170 Mais pour les besoins d'aujourd'hui, il est juste l'idée qui compte. 625 00:27:53,170 --> 00:27:55,400 Ceci est induit ce nous allons généralement appeler 626 00:27:55,400 --> 00:28:00,110 un loop-- une sorte de cycle parce ça me rend fais quelque chose de nouveau. 627 00:28:00,110 --> 00:28:03,340 >> Alors maintenant, nous allons simplement considérer comment bien cet algorithme est. 628 00:28:03,340 --> 00:28:03,899 C'est correct. 629 00:28:03,899 --> 00:28:06,940 Si Mike dans le livre, il est l'un des ces quatre scenarios-- encore et encore 630 00:28:06,940 --> 00:28:08,023 et encore une fois, nous allons le trouver. 631 00:28:08,023 --> 00:28:08,890 Mais à quel point est-il? 632 00:28:08,890 --> 00:28:10,150 Eh bien, nous ne disposons pas être trop formel ici. 633 00:28:10,150 --> 00:28:12,066 Mais disons simplement tracer quelque chose, x et y, pour obtenir 634 00:28:12,066 --> 00:28:14,470 un sens de la forme de ce problème. 635 00:28:14,470 --> 00:28:17,160 >> Sur l'axe des abscisses est ici la taille de mon problème. 636 00:28:17,160 --> 00:28:20,256 Et ils un axe y-ici sera le temps à résoudre. 637 00:28:20,256 --> 00:28:21,630 Alors peut-être cela est le nombre de pages. 638 00:28:21,630 --> 00:28:24,400 Peut-être cela est secondes Page turns-- que ce soit. 639 00:28:24,400 --> 00:28:27,290 Cependant, vous voulez compter est ce que cette image représente. 640 00:28:27,290 --> 00:28:30,630 Et ce premier algorithme, je vais de décrire comme une simple ligne droite. 641 00:28:30,630 --> 00:28:33,120 S'il y a n pages le livre de téléphone, puis il 642 00:28:33,120 --> 00:28:36,010 pourrait me prendre autant que n étapes pour trouver Mike. 643 00:28:36,010 --> 00:28:38,930 Si Verizon ou la compagnie de téléphone ajoute une autre page de l'année prochaine, 644 00:28:38,930 --> 00:28:42,170 il pourrait me prendre un plus step-- une unité de plus de temps pour trouver Mike. 645 00:28:42,170 --> 00:28:44,230 Donc, il y a juste ce rapport un à un. 646 00:28:44,230 --> 00:28:45,970 Il est une pente en ligne droite. 647 00:28:45,970 --> 00:28:49,110 >> Entre-temps, cette seconde algorithm-- si je suis 648 00:28:49,110 --> 00:28:51,570 allant de deux à deux time--, quatre, six, huit ou double-- 649 00:28:51,570 --> 00:28:54,550 en passant par les pages deux fois à la fois, deux à la fois, 650 00:28:54,550 --> 00:28:55,710 il est toujours en ligne droite. 651 00:28:55,710 --> 00:28:58,720 Il y a maintenant un à deux rapport, mais juste un peu plus bas. 652 00:28:58,720 --> 00:29:02,240 Donc, s'il y a beaucoup de ces pages sur le graphique ici en jaune, 653 00:29:02,240 --> 00:29:04,800 qui pourrait me prendre ce de nombreuses étapes ou secondes, 654 00:29:04,800 --> 00:29:07,980 sinon il va me prendre deux fois plus nombreux sur la ligne rouge. 655 00:29:07,980 --> 00:29:10,190 >> Mais la ligne verte est la vraie livraison. 656 00:29:10,190 --> 00:29:12,290 Ceci est généralement ce que nous appeler un journal logorithm-- 657 00:29:12,290 --> 00:29:13,840 n, où n est le nombre de pages. 658 00:29:13,840 --> 00:29:16,450 Mais il est la forme qui compte aujourd'hui, parce que nous ne disposons pas 659 00:29:16,450 --> 00:29:17,950 de même penser à tracer des points. 660 00:29:17,950 --> 00:29:19,830 >> Pensez à un scénario extrême. 661 00:29:19,830 --> 00:29:23,070 Supposons Verizon demain double la nombre de pages dans ce livre de téléphone, 662 00:29:23,070 --> 00:29:24,900 de 1000 à 2000. 663 00:29:24,900 --> 00:29:28,440 Dans le premier algorithme, je pourrait perdre un supplément de 1000 664 00:29:28,440 --> 00:29:32,080 étapes à la recherche de Mike, juste parce que Verizon a doublé la taille du livre. 665 00:29:32,080 --> 00:29:34,740 Le second algorithm-- il pourrait me prendre un supplément de 500 étapes. 666 00:29:34,740 --> 00:29:38,370 1000 plus de pages, je vais deux à la time-- 500 autres étapes pour trouver Mike. 667 00:29:38,370 --> 00:29:41,020 >> Mais ce troisième algorithme est une sorte de magique. 668 00:29:41,020 --> 00:29:44,270 Verizon double le nombre pages 1000 à 2000, 669 00:29:44,270 --> 00:29:47,730 mais combien d'autres étapes ne il me prendre à chercher Mike? 670 00:29:47,730 --> 00:29:51,220 Il est juste, parce que je peux juste déchirer le livre de téléphone une fois de plus 671 00:29:51,220 --> 00:29:55,280 d'un problème de 2.000 page à un 1000 problème de la page, et le tour est joué. 672 00:29:55,280 --> 00:29:57,030 J'ai pris une bouchée énorme hors de lui. 673 00:29:57,030 --> 00:29:59,405 >> Et si vous allez vraiment extrême, supposons que le livre de téléphone 674 00:29:59,405 --> 00:30:03,600 entreprise avait quelque chose de fou comme à 4 milliards de pages du répertoire. 675 00:30:03,600 --> 00:30:07,020 Eh bien combien d'étapes pourrait-il pour trouver Mike Smith dans un 4 milliards 676 00:30:07,020 --> 00:30:09,990 page de livre de téléphone? 677 00:30:09,990 --> 00:30:16,450 Il est un grand nombre, mais seulement 4 milliards de dollars pour 2000000000 à 1000000000 à les 500 millions 678 00:30:16,450 --> 00:30:18,720 250 million-- encore sonne comme de grands nombres, 679 00:30:18,720 --> 00:30:20,980 mais je suis très rapidement obtenir des valeurs plus petites. 680 00:30:20,980 --> 00:30:24,790 >> Et en fait, si je fais le calcul à droite, je ne peux que diviser 4 milliards 681 00:30:24,790 --> 00:30:28,750 par environ 32 fois avant Je descends à un seul. 682 00:30:28,750 --> 00:30:31,640 Donc, si ce livre de téléphone étaient 4 milliard de pages, pas une grosse affaire. 683 00:30:31,640 --> 00:30:35,270 En quelques secondes, peut-être 32 secondes, je pourrais diviser en deux 684 00:30:35,270 --> 00:30:39,560 et éventuellement trouver Mike ou conclure qu'il n'y est pas. 685 00:30:39,560 --> 00:30:42,219 Et c'est l'essence d'un algorithm-- un bon algorithme. 686 00:30:42,219 --> 00:30:44,260 Et c'est l'un des objectifs d'une classe comme celui-ci, 687 00:30:44,260 --> 00:30:47,350 est à essayer de comprendre comment puis-je résoudre le problème non seulement correctement, 688 00:30:47,350 --> 00:30:52,360 comme je l'ai toujours su comment faire un page à time-- mais correctement et bien. 689 00:30:52,360 --> 00:30:55,034 Comment puis-je concevoir une bonne des solutions aux problèmes? 690 00:30:55,034 --> 00:30:57,200 Prenons donc un moment ici et vous donner une idée maintenant 691 00:30:57,200 --> 00:31:00,260 de CS50 cours itself-- introduire Les membres du personnel de quelques cours. 692 00:31:00,260 --> 00:31:02,010 Juste avant 02h00, nous allons prendre une courte pause 693 00:31:02,010 --> 00:31:03,520 de telle sorte que ceux d'entre vous qui peut faire du shopping 694 00:31:03,520 --> 00:31:05,130 canard et prendre un regarder une autre classe 695 00:31:05,130 --> 00:31:06,580 et de regarder le reste de cette ligne. 696 00:31:06,580 --> 00:31:09,250 Mais pour l'instant, permettez-moi de vous présenter CS50, la classe elle-même, 697 00:31:09,250 --> 00:31:11,330 et en particulier ce qui est nouveau. 698 00:31:11,330 --> 00:31:13,960 >> Ainsi, le printemps dernier, nous passé un peu de time-- 699 00:31:13,960 --> 00:31:17,911 Le personnel de la formation et je-- penser à propos de ce que nous voulons CS50 soit, 700 00:31:17,911 --> 00:31:19,910 et de revenir à la première principes, pour ainsi dire, 701 00:31:19,910 --> 00:31:22,760 de réfléchir à ce que nous voulons ce cours pour ressembler et être 702 00:31:22,760 --> 00:31:23,740 comme pour ses étudiants. 703 00:31:23,740 --> 00:31:26,480 Et donc vous verrez dans le problème mis à zéro et, une invitation 704 00:31:26,480 --> 00:31:28,780 de jeter un oeil à ce URL qui résume 705 00:31:28,780 --> 00:31:33,270 quelques-unes des motivations derrière la suivant les caractéristiques de l'automne 2016. 706 00:31:33,270 --> 00:31:35,570 >> Donc, comme vous avez pu glaner de la TL: document DR, 707 00:31:35,570 --> 00:31:39,060 le programme d'aujourd'hui, ainsi que de le catalogue des cours, cette année à CS50, 708 00:31:39,060 --> 00:31:42,540 vous ne devez assister today-- donc le travail bien done-- 709 00:31:42,540 --> 00:31:45,960 et la dernière conférence le 21 Novembre. 710 00:31:45,960 --> 00:31:49,150 Et vous êtes les bienvenus, mais ne devrait pas assister à ces conférences dans le milieu, 711 00:31:49,150 --> 00:31:51,180 parce que ce que nous faisons cette année, est en tournage 712 00:31:51,180 --> 00:31:52,661 en temps réel le matériau du cours. 713 00:31:52,661 --> 00:31:54,660 Donc, tout va rester courant et incorporée 714 00:31:54,660 --> 00:31:57,410 mieux que nous can-- l'actualité et des conversations que les gens pourraient 715 00:31:57,410 --> 00:32:00,400 être ayant dans l'industrie dans le monde, mais rendant ce matériel 716 00:32:00,400 --> 00:32:03,892 disponible, par conséquent, même heure, à savoir avec pleins transcriptions de texte 717 00:32:03,892 --> 00:32:05,850 et consultabilité et liens vers d'autres ressources. 718 00:32:05,850 --> 00:32:07,930 >> Et en effet, nous avons été réclamé quelque temps 719 00:32:07,930 --> 00:32:10,830 et nous ne croyons ceci, que nous pouvons créer, numériquement, 720 00:32:10,830 --> 00:32:15,170 un plus immersif, un plus convaincant expérience éducative, par opposition 721 00:32:15,170 --> 00:32:19,110 à la collecte d'ici quelques 23 fois en personne, entendre quelqu'un comme moi 722 00:32:19,110 --> 00:32:22,925 simplement parler de l'informatique, par opposition à engager plus activement. 723 00:32:22,925 --> 00:32:25,800 Vous verrez donc dans le programme du cours un croquis du semestre ici, 724 00:32:25,800 --> 00:32:27,840 ainsi que lors des conférences sera être filmé, à laquelle vous êtes 725 00:32:27,840 --> 00:32:29,710 bienvenue, mais ne devrait pas, et quand ils seront 726 00:32:29,710 --> 00:32:31,640 être publié sur le site Web du cours. 727 00:32:31,640 --> 00:32:34,300 >> Et ce que nous allons faire ici sur Mercredis à partir la semaine prochaine, 728 00:32:34,300 --> 00:32:37,362 est beaucoup plus intimement, avec seulement ces gens qui veulent participer, 729 00:32:37,362 --> 00:32:39,820 est un soi-disant à pied à travers, où I et les têtes de cours 730 00:32:39,820 --> 00:32:41,730 va véritablement faire les choses un peu plus intime 731 00:32:41,730 --> 00:32:44,313 ici-bas dans l'orchestre section, ont encore une certaine technologie 732 00:32:44,313 --> 00:32:46,365 et de marcher à travers la L'ensemble des problèmes de la semaine en cours, 733 00:32:46,365 --> 00:32:50,020 et offrez-vous particularly-- si parmi ceux qui sont moins comfortable-- d'autant plus 734 00:32:50,020 --> 00:32:52,790 des conseils que vous pourriez vouloir ou besoin pour le défi de la semaine. 735 00:32:52,790 --> 00:32:55,820 Et de même, pour ceux qui ne peuvent pas assister à ceux en personne, pas une grosse affaire. 736 00:32:55,820 --> 00:32:58,486 Il y aura conduit de façon similaire par l'un des cadres supérieurs de la formation, 737 00:32:58,486 --> 00:33:02,650 Zamalya, par la même occasion intégré dans le problème eux-mêmes ensembles. 738 00:33:02,650 --> 00:33:04,960 >> Problème fixe cette année sera publié le vendredi 739 00:33:04,960 --> 00:33:08,080 et ne plus faire sept jours plus tard, mais 10 jours later-- délibérément 740 00:33:08,080 --> 00:33:10,910 chevauchement avec chaque problème définir, de manière à mieux répondre aux besoins, 741 00:33:10,910 --> 00:33:13,050 nous espérons, Ebb and Flow dans les horaires des élèves, 742 00:33:13,050 --> 00:33:16,550 surtout quand midterms ou l'athlétisme ou universitaires ou extracurriculars 743 00:33:16,550 --> 00:33:18,465 ont tendance à aller et venir en particulier à mi-semestre. 744 00:33:18,465 --> 00:33:21,340 Cela devrait vous donner un peu plus discrétion quant à savoir si vous devant 745 00:33:21,340 --> 00:33:25,690 charger votre semaine avec CS50 ou la charge de retour sur le week-end suivant à la place. 746 00:33:25,690 --> 00:33:28,817 Alors regardez au programme du cours ici pour le calendrier de celle-ci. 747 00:33:28,817 --> 00:33:30,900 Et vous remarquerez aussi parmi les les changements cette année, 748 00:33:30,900 --> 00:33:34,082 pour ceux qui connaissent mieux la programmation dans le passé, 749 00:33:34,082 --> 00:33:36,290 nous allons commencer le semestre comme nous allons aujourd'hui dans Scratch, 750 00:33:36,290 --> 00:33:39,730 mettre l'accent en particulier sur la langue appelé C, puis une transition non 751 00:33:39,730 --> 00:33:43,430 PHP, mais dans un langage appelé Python vers la fin du semestre 752 00:33:43,430 --> 00:33:46,565 dans le cadre de la programmation web, ainsi que SQL et JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, et plus encore. 754 00:33:48,930 --> 00:33:51,790 >> Et en réponse à une FAQ, il est en effet le cas 755 00:33:51,790 --> 00:33:55,520 que CS est pas aussi effrayant que je fois pensait qu'il était, mais il est aussi beaucoup de travail 756 00:33:55,520 --> 00:33:57,280 comme je l'avais entendu qu'il pourrait être. 757 00:33:57,280 --> 00:34:03,210 Mais ceci est l'exemple que voici les statistiques de l'automne 2015 corps étudiant, 758 00:34:03,210 --> 00:34:06,460 de sorte que les lignes bleues horizontales représenter le nombre moyen d'heures 759 00:34:06,460 --> 00:34:06,960 signalé. 760 00:34:06,960 --> 00:34:10,570 Et vous verrez une moyenne de six à 10 à 12-- peut-être 16 761 00:34:10,570 --> 00:34:14,580 environ, et ainsi de suite, mais avec variance élevée pour être clair. 762 00:34:14,580 --> 00:34:18,570 Et ainsi se rendre compte qu'il n'y a pas seulement étudiants plus confortable et moins 763 00:34:18,570 --> 00:34:22,150 à l'aise dans le cours, mais un support correspondant 764 00:34:22,150 --> 00:34:25,699 structure pour obtenir ces étudiants à travers le semestre avec succès. 765 00:34:25,699 --> 00:34:29,409 >> En effet, en réponse à une FAQ, devrait vous prenez CS50 comme une première année? 766 00:34:29,409 --> 00:34:30,139 Absolument. 767 00:34:30,139 --> 00:34:32,690 Et en fait, je ne regrette ne pas avoir trouvé mon chemin 768 00:34:32,690 --> 00:34:35,170 ou trouvé un nouveau champ cette première année aussi bien. 769 00:34:35,170 --> 00:34:39,149 Et si vous prenez CS50 avec d'autres cours, certainement que well-- 770 00:34:39,149 --> 00:34:41,940 et les conseils généraux que nous pourrions donner aux étudiants, que CS50 est probablement 771 00:34:41,940 --> 00:34:44,929 pas le genre de classe ou en classe d'introduction que vous devez prendre avec trois 772 00:34:44,929 --> 00:34:47,199 autre ou quatre autres classes de p-set. 773 00:34:47,199 --> 00:34:50,583 Mais si vous prenez deux autres p-set les classes, autre chose, et CS50, 774 00:34:50,583 --> 00:34:51,499 absolument gérable. 775 00:34:51,499 --> 00:34:54,900 J'ai eu beaucoup d'étudiants dans le passé fait de façon tout à fait avec succès. 776 00:34:54,900 --> 00:34:57,490 >> Et pour vous vers ce la ligne d'arrivée avec succès, 777 00:34:57,490 --> 00:35:00,260 ne cours ont sections-- différentes pistes pour les étudiants 778 00:35:00,260 --> 00:35:03,100 moins à l'aise, plus confortable, et quelque part entre les deux, 779 00:35:03,100 --> 00:35:04,850 de sorte que dans le cadre de première série de problèmes, 780 00:35:04,850 --> 00:35:06,360 vous serez invité à vous décrire. 781 00:35:06,360 --> 00:35:09,151 Et si vous êtes parmi ceux qui sont moins confortable, il est le genre de chose 782 00:35:09,151 --> 00:35:10,420 que vous venez de connaître plutôt. 783 00:35:10,420 --> 00:35:13,010 Et en effet, que cela a été le croissante démographique CS50 784 00:35:13,010 --> 00:35:14,090 pour un certain nombre d'années. 785 00:35:14,090 --> 00:35:17,680 >> À l'automne dernier pour par exemple, 58% de la classe 786 00:35:17,680 --> 00:35:20,560 se décrit comme parmi ceux qui sont moins à l'aise, 787 00:35:20,560 --> 00:35:23,210 avec 9% chez les plus confortable, puis 788 00:35:23,210 --> 00:35:25,900 les autres étudiants là-bas en rouge se décrivant 789 00:35:25,900 --> 00:35:27,890 comme quelque part entre les deux. 790 00:35:27,890 --> 00:35:31,980 Et vous verrez ici les thèmes d'ensemble et le calendrier des sections, qui 791 00:35:31,980 --> 00:35:34,820 sont offerts en personne, en temps réel, avec le cours de 792 00:35:34,820 --> 00:35:38,320 personnel fantastique des boursiers d'enseignement et les assistants de cours, dont certains 793 00:35:38,320 --> 00:35:39,660 vous allez rencontrer dans un instant. 794 00:35:39,660 --> 00:35:42,993 >> Les articles eux-mêmes, comme vous le verrez, sera être les lundis et les mardis et mercredis, 795 00:35:42,993 --> 00:35:45,910 de manière à vous permettre de plonger après engagement, si vous le 796 00:35:45,910 --> 00:35:48,110 choisir, au cours de conférences plus tôt cette semaine. 797 00:35:48,110 --> 00:35:51,420 Et puis les heures de bureau, qui certes, avec chaque année qui passe, 798 00:35:51,420 --> 00:35:54,110 ont pas été moins d'un défi pour le cours. 799 00:35:54,110 --> 00:35:57,040 Et cette année, nous prévoyons pas seulement à titre heures-- un 800 00:35:57,040 --> 00:36:00,300 sur une des possibilités de l'aide pour étudiants mercredi jeudi 801 00:36:00,300 --> 00:36:03,790 et le dimanche, le dernier de ceux être dans l'après-midi par la conception 802 00:36:03,790 --> 00:36:06,910 pour réduire une partie du stress que se pose toujours avec la fin de la nuit 803 00:36:06,910 --> 00:36:10,180 p-settting avec un délai looming-- mais les heures de bureau seront également offerts 804 00:36:10,180 --> 00:36:14,920 les lundis et mardis et Mercredis et vendredis et samedis, 805 00:36:14,920 --> 00:36:17,080 grâce à nos amis de HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 a maintenant son propre espace pour les étudiants et le personnel CS50, 807 00:36:20,330 --> 00:36:23,070 au sommet de 67 Mount Auburn Street, là à Harvard Square. 808 00:36:23,070 --> 00:36:26,340 La vision qui est que CS50 de TFs et CA tout au long de la semaine, 809 00:36:26,340 --> 00:36:29,052 à peu près dans la plupart jours, seront là pour les soutenir. 810 00:36:29,052 --> 00:36:30,760 Donc, si vous avez quelques question sur un p-set 811 00:36:30,760 --> 00:36:33,093 ou si vous vous sentez un peu bloqué ou un peu confus, 812 00:36:33,093 --> 00:36:35,640 et Heck, vous avez une heure ou une demi-heure entre les classes, 813 00:36:35,640 --> 00:36:38,920 en particulier dans le square-- peut vous pop et ont répondu à cette question 814 00:36:38,920 --> 00:36:41,720 d'avoir cette confusion clarified-- tout à fait dans l'esprit, 815 00:36:41,720 --> 00:36:45,490 vous êtes familier, de mathématiques propre centre de questions de mathématiques du département, 816 00:36:45,490 --> 00:36:49,300 mais à peu près autour de l'horloge par [? Gcal?] Que nous publierons en ligne. 817 00:36:49,300 --> 00:36:52,400 >> Le tutorat est également disponible pour ceux étudiants, librement du cours de 818 00:36:52,400 --> 00:36:54,750 propre personnel si vous souhaitez plus intime sur une base individuelle, 819 00:36:54,750 --> 00:36:58,940 ou deux ou trois camarades de classe seulement, en travaillant avec l'un des membres du personnel du cours. 820 00:36:58,940 --> 00:37:02,320 Et en effet, ceux-ci sont juste ici certains des membres du personnel du cours, 821 00:37:02,320 --> 00:37:04,120 quelques-uns d'entre eux vous aurez rencontrer dans un instant. 822 00:37:04,120 --> 00:37:07,440 En fait, propre CS50 de tête enseignement garçon, 823 00:37:07,440 --> 00:37:09,790 et bien sûr de la tête assistant, et précepteur, 824 00:37:09,790 --> 00:37:12,998 pourrait venir sur place, permettre leur dire bonjour. 825 00:37:12,998 --> 00:37:22,498 >> [APPLAUDISSEMENTS] 826 00:37:22,498 --> 00:37:23,456 ENCEINTE 1: [Inaudible]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [APPLAUDISSEMENTS] 829 00:37:57,856 --> 00:37:58,814 SPEAKER 2: [Inaudible]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [APPLAUDISSEMENTS] 832 00:38:27,238 --> 00:38:28,196 SPEAKER 3: [Inaudible]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [APPLAUDISSEMENTS] 835 00:39:03,120 --> 00:39:06,740 >> DAVID MALAN: Et nous permettent de apporter à bord deux des CS50 de plus 836 00:39:06,740 --> 00:39:09,730 cadres supérieurs, Rob et Zamayla ainsi. 837 00:39:09,730 --> 00:39:15,120 >> [APPLAUDISSEMENTS] 838 00:39:15,120 --> 00:39:17,226 >> En effet, à la fois Rob et Zamayla ont été avec nous 839 00:39:17,226 --> 00:39:19,940 depuis si longtemps, que je pouvais d'aller dans les archives de CS50 840 00:39:19,940 --> 00:39:22,470 et de trouver ce SD très des images de leur participation 841 00:39:22,470 --> 00:39:25,402 sur eux-mêmes scène il y a quelques années. 842 00:39:25,402 --> 00:39:26,110 ROB: [Inaudible]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [APPLAUDISSEMENTS] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [Inaudible] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [APPLAUDISSEMENTS] 848 00:40:52,467 --> 00:40:53,425 DAVID MALAN: Je vous remercie. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Donc, en plus de ces derniers membres de l'équipe ici, 851 00:40:58,030 --> 00:41:01,662 CS50 dispose d'une équipe de près de 100 les membres du personnel, qui ont tous 852 00:41:01,662 --> 00:41:04,370 sera disponible pour les sections et les heures de bureau et bien plus encore. 853 00:41:04,370 --> 00:41:06,920 Et comme Rob dit aussi, cela est la révision la plus importante 854 00:41:06,920 --> 00:41:09,534 de CS50 dans les 10 ans qui Je suis allé dans [Inaudible]. 855 00:41:09,534 --> 00:41:12,200 [Inaudible] axé en particulier en fournissant une structure de support, 856 00:41:12,200 --> 00:41:14,050 meulant beaucoup de l'essentiel qui a été 857 00:41:14,050 --> 00:41:16,870 accumulées en 10 ans l'évolution des itératives 858 00:41:16,870 --> 00:41:18,120 sur les ensembles de problèmes du cours. 859 00:41:18,120 --> 00:41:21,470 >> Ainsi, cette année, non seulement en classe, mais également sous la forme du problème de cours 860 00:41:21,470 --> 00:41:24,800 ensembles, devraient vous trouver des choses à être plus rationalisée, régleur, beaucoup 861 00:41:24,800 --> 00:41:26,700 plus maniable que dans les années passées, comme nous 862 00:41:26,700 --> 00:41:31,330 jeter un peu de bagages qui est mis au point par la nature de l'année en évolution 863 00:41:31,330 --> 00:41:32,970 après année et itérer. 864 00:41:32,970 --> 00:41:35,110 Ainsi, le nouveau et amélioré commence aujourd'hui. 865 00:41:35,110 --> 00:41:37,860 >> Vous allez rencontrer un peu plus de la Le personnel hors du cours dans le [Inaudible] 866 00:41:37,860 --> 00:41:40,186 à 2:30, où nous servons, comme une tradition, gâteau. 867 00:41:40,186 --> 00:41:42,060 Il y a un peu plus de gâteau que cela, mais vous aurez 868 00:41:42,060 --> 00:41:44,690 rencontrer Erin et Tobias et d'autres encore. 869 00:41:44,690 --> 00:41:46,470 Et permettez-moi de vous donner un tour avant que nous entendions 870 00:41:46,470 --> 00:41:49,600 à partir d'autres membres du personnel dans la classe, de ce qui attend aussi. 871 00:41:49,600 --> 00:41:52,730 En fait, nous commençons toujours CS50 de semestre ce samedi, 872 00:41:52,730 --> 00:41:54,330 avec ce qu'on appelle la Journée CS50 Puzzle. 873 00:41:54,330 --> 00:41:56,710 >> Cela n'a rien à voir avec l'informatique en soi, 874 00:41:56,710 --> 00:41:58,669 mais avec environ problème résoudre de façon plus générale. 875 00:41:58,669 --> 00:42:01,210 Et si vous choisissez de participer, par certains des invitations, 876 00:42:01,210 --> 00:42:03,460 vous pourriez avoir vu la porte tombé ou sur la scène ici, 877 00:42:03,460 --> 00:42:05,830 il est une occasion en équipes de deux ou trois ou quatre, 878 00:42:05,830 --> 00:42:10,680 de participer pour des puzzles et des pizzas et des prix et plus-- ce samedi, 879 00:42:10,680 --> 00:42:12,560 restez à l'écoute pour plus. 880 00:42:12,560 --> 00:42:15,082 >> Vous trouverez aussi que tous les Vendredi, à Fire and Ice, 881 00:42:15,082 --> 00:42:16,790 ne CS50 apporter un tas ensemble des étudiants 882 00:42:16,790 --> 00:42:19,100 déjeuner, de faire un grand classe se sentent plus intime, 883 00:42:19,100 --> 00:42:21,820 et réunissent généralement anciens et amis de l'industrie 884 00:42:21,820 --> 00:42:24,710 pour parler de ce qu'ils ont fait depuis son diplôme. 885 00:42:24,710 --> 00:42:27,820 De même, cette année, allons-nous inaugurer le premier CS50 50 886 00:42:27,820 --> 00:42:31,390 codage contest-- mi-semestre possibilité de permettre à tout le monde 887 00:42:31,390 --> 00:42:35,430 sur une base opt-in, d'avoir un défi des esprits contre des camarades de classe, 888 00:42:35,430 --> 00:42:39,250 encore une fois en équipe de deux ou trois ou quatre, en utilisant seulement que les émissions 889 00:42:39,250 --> 00:42:41,920 savvy que vous avez alors sous votre ceinture après seulement six ou sept 890 00:42:41,920 --> 00:42:44,710 semaines de la classe, et la participation dans ce genre de compétition 891 00:42:44,710 --> 00:42:50,261 online-- si vous souhaitez parfaire votre propre compétences d'autant plus dans ce défi. 892 00:42:50,261 --> 00:42:52,760 A la fin du semestre est le soi-disant CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 une occasion qui commence à 7:00 PM se termine à 07h00, et le long du chemin 894 00:42:56,970 --> 00:43:01,900 sont 12 heures du soir dans lequel plonger en project-- final du cours 895 00:43:01,900 --> 00:43:04,820 l'occasion de concevoir et mettre en œuvre la plupart rien d'intérêt 896 00:43:04,820 --> 00:43:06,980 à vous avec votre enseignement les conseils de collègues. 897 00:43:06,980 --> 00:43:09,600 Autour de 9:00-nous généralement servir des pizzas, 01h00, 898 00:43:09,600 --> 00:43:13,210 Philippe de, et quelques-uns d'entre nous qui sont encore éveillés à 05h00, 899 00:43:13,210 --> 00:43:16,310 sont transportés par autobus navette en bas de la route de IHOP pour le petit déjeuner. 900 00:43:16,310 --> 00:43:19,340 >> Et puis quelques jours plus tard est le CS50 soi-disant fare-- 901 00:43:19,340 --> 00:43:23,450 fin de l'exposition de semestre célébration à quel point tant de 902 00:43:23,450 --> 00:43:28,200 des CS50 étudiants sont venus de semaine zéro tout le chemin à la semaine, 903 00:43:28,200 --> 00:43:32,610 et en gardant à l'esprit que 73% des personnes camarades de classe et les vôtres cette année ont 904 00:43:32,610 --> 00:43:34,840 jamais pris une classe CS avant. 905 00:43:34,840 --> 00:43:39,226 En effet, pour autant remettre l'accent, voici est un peu plus de visages de personnel de CS50. 906 00:43:39,226 --> 00:43:40,184 ENCEINTE 4: [Inaudible]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 SPEAKER 5: [Inaudible]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 ENCEINTE 6: [Inaudible]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 ENCEINTE 7: [Inaudible]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 SPEAKER 8: [Inaudible] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 ENCEINTE 9: [Inaudible]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> ENCEINTE 4: [Inaudible]. 919 00:44:15,461 --> 00:44:16,461 >> ENCEINTE 10: [Inaudible]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 ENCEINTE 11: [Inaudible]. 922 00:44:23,438 --> 00:44:24,438 ENCEINTE 12: [Inaudible]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 ENCEINTE 13: [Inaudible] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> ENCEINTE 14: [Inaudible]. 927 00:44:40,342 --> 00:44:42,863 >> ENCEINTE 13: [Inaudible]. 928 00:44:42,863 --> 00:44:43,821 ENCEINTE 15: [Inaudible] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 ENCEINTE 16: [Inaudible]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> ENCEINTE 11: [Inaudible] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 SPEAKER 5: [Inaudible]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID MALAN: Une partie de l'équipe sont eux-mêmes Shopping classes. 937 00:45:15,130 --> 00:45:17,760 Mais si les membres du personnel CS50 sont ici, 938 00:45:17,760 --> 00:45:19,230 pourrait venir sur place pour un instant. 939 00:45:19,230 --> 00:45:23,450 de CS50 TFs et CA et [? Personnel ?] membres ici-- ce ne sont que quelques-uns 940 00:45:23,450 --> 00:45:28,880 de l'faces-- dont un vous venez vu, et quelques other-- et quelques autres 941 00:45:28,880 --> 00:45:30,020 encore. 942 00:45:30,020 --> 00:45:33,242 Pourquoi ne pas aller de l'avant et de permettre vous les gars une pause de cinq minutes. 943 00:45:33,242 --> 00:45:35,450 Si vous devez esquiver à cours d'atelier, qui est très bien. 944 00:45:35,450 --> 00:45:38,900 Et en cinq minutes, nous allons reprendre, jeter un oeil à la première Scratch-- 945 00:45:38,900 --> 00:45:42,420 de notre langage de programmation, rencontrer Le personnel de cours ici un peu plus, 946 00:45:42,420 --> 00:45:45,020 et de se concentrer en fin de compte le problème posé zéro. 947 00:45:45,020 --> 00:45:46,710 Donc, nous allons être de retour dans cinq minutes. 1 00:45:46,864 --> 00:45:47,370 >> D'accord. 2 00:45:47,370 --> 00:45:48,590 Donc, nous sommes de retour. 3 00:45:48,590 --> 00:45:51,330 Et dans notre restante temps aujourd'hui, l'objectif 4 00:45:51,330 --> 00:45:54,320 est de niveler le terrain de jeu en termes de certains termes, 5 00:45:54,320 --> 00:45:55,297 en termes de quelques idées. 6 00:45:55,297 --> 00:45:57,380 Car en effet, selon quelques-uns des tableaux précédents, 7 00:45:57,380 --> 00:46:00,130 il va y avoir une gamme de les niveaux d'expérience dans la classe, 8 00:46:00,130 --> 00:46:03,210 dont certains élèves ont pris un peu de programmation avant, 9 00:46:03,210 --> 00:46:04,200 certains d'entre eux ne l'ont pas. 10 00:46:04,200 --> 00:46:07,430 Et ainsi, avec ce premier problème définir et avec cette première langue 11 00:46:07,430 --> 00:46:10,830 avons-nous une occasion de commencer à prendre pour acquis après aujourd'hui 12 00:46:10,830 --> 00:46:12,960 un peu de vocabulaire et de l'idée commune. 13 00:46:12,960 --> 00:46:15,590 >> Et nous allons faire cela par le biais de premier languages-- du cours 14 00:46:15,590 --> 00:46:21,070 en plus de C et Python et JavaScript et SQL et HTML et CSS, 15 00:46:21,070 --> 00:46:24,450 nous nous concentrerons d'abord et juste pour le problème mis à zéro 16 00:46:24,450 --> 00:46:28,160 dans ce langage graphique, appelée Scratch, développé par Media Lab du MIT 17 00:46:28,160 --> 00:46:30,880 sur la route, pour aider les étudiants et les enfants en particulier 18 00:46:30,880 --> 00:46:35,070 s'exprimer algorithmically-- d'une manière plus conforme à ce que 19 00:46:35,070 --> 00:46:37,300 nous pourrions appeler la pensée informatique. 20 00:46:37,300 --> 00:46:40,985 >> Et il est une langue utile car très rapidement la semaine prochaine dans la première semaine, 21 00:46:40,985 --> 00:46:44,360 ne nous faisons la transition vers un plus langue traditionnelle et arcane appelé 22 00:46:44,360 --> 00:46:46,370 C, ce qui est purement textuelle. 23 00:46:46,370 --> 00:46:48,930 Vous utilisez votre clavier afin d'écrire des instructions 24 00:46:48,930 --> 00:46:50,230 comme celles-ci sur l'écran. 25 00:46:50,230 --> 00:46:52,840 Mais même si vous ne l'avez jamais vu un langage de programmation avant, 26 00:46:52,840 --> 00:46:55,170 en seulement regardant cela, tout ce que ce soit cryptique, 27 00:46:55,170 --> 00:47:00,010 vous pouvez probablement deviner que imprime probablement Bonjour tout le monde. 28 00:47:00,010 --> 00:47:02,050 Mais il y a beaucoup de tête syntaxique là. 29 00:47:02,050 --> 00:47:05,770 Il est le hachage bizarre symbole ou hash tag en haut. 30 00:47:05,770 --> 00:47:08,900 Il y a les équerres, certains entre parenthèses, accolades, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 il y a juste tellement visuelle syntaxe qui est dans la manière. 32 00:47:11,880 --> 00:47:13,940 Nous commençons le cours avec Scratch afin d'obtenir 33 00:47:13,940 --> 00:47:17,600 passé tous ceux intellectuellement distractions sans intérêt, 34 00:47:17,600 --> 00:47:20,290 et se concentrer plutôt sur les idées. 35 00:47:20,290 --> 00:47:22,540 >> En fait, cela pourrait être avant. 36 00:47:22,540 --> 00:47:24,830 Ce, pour cela, la semaine sera après. 37 00:47:24,830 --> 00:47:26,760 Ceci, en ce graphique, Scratch de la langue, 38 00:47:26,760 --> 00:47:29,870 comment vous souhaitez mettre en œuvre cette même program-- un programme qui lorsqu'il est exécuté, 39 00:47:29,870 --> 00:47:31,340 dit simplement bonjour monde. 40 00:47:31,340 --> 00:47:34,740 Et ce qui est agréable au sujet Scratch est qu'il est cette programmation graphique 41 00:47:34,740 --> 00:47:38,780 environnement qui utilise des pièces de puzzle ou blocs, que verrouiller seulement ensemble 42 00:47:38,780 --> 00:47:40,440 si elle est logique de le faire. 43 00:47:40,440 --> 00:47:43,810 Et avec Scratch pouvez-vous développer animations et jeux interactifs 44 00:47:43,810 --> 00:47:47,270 et de l'art, et un certain nombre de choses qui vous pouvez l'imaginer dans votre propre esprit, 45 00:47:47,270 --> 00:47:51,200 et les mettre en œuvre simplement en glisser-déposer les pièces du puzzle. 46 00:47:51,200 --> 00:47:54,265 >> Et en effet, nous avons la capacité d'exprimer certaines des mêmes idées 47 00:47:54,265 --> 00:47:56,890 que je viens de mentionner un moment Il y a dans le contexte de Mike Smith 48 00:47:56,890 --> 00:48:00,670 et la recherche des choses d'un téléphone comme des fonctions, des actions justes, 49 00:48:00,670 --> 00:48:03,070 des choses comme des boucles qui font les choses encore et encore, 50 00:48:03,070 --> 00:48:05,170 variables, qui est quelque chose que nous allons présenter, 51 00:48:05,170 --> 00:48:08,086 mais il est familier peut-être de algebra-- juste une sorte d'espace réservé 52 00:48:08,086 --> 00:48:10,840 pour stocker une certaine valeur que vous pourriez besoin d'expressions booléennes later--, 53 00:48:10,840 --> 00:48:13,720 où ceux oui non ou vrai fausses questions avant. 54 00:48:13,720 --> 00:48:17,117 Les conditions sont les fourches dans le road-- ces branches pour ainsi dire. 55 00:48:17,117 --> 00:48:19,700 Et puis il y a quelques colombophile fonctionnalités que nous allons voir aujourd'hui encore, 56 00:48:19,700 --> 00:48:22,850 appelés tableaux et les fils et événements, que nous allons ensuite revoir plus 57 00:48:22,850 --> 00:48:24,460 temps dans différentes langues. 58 00:48:24,460 --> 00:48:26,790 Mais Scratch nous permet d'explorer tout cela. 59 00:48:26,790 --> 00:48:30,779 Donc, ici, dans Scratch, ce pourpre bloc est ce qu'une fonction est généralement 60 00:48:30,779 --> 00:48:31,570 va ressembler. 61 00:48:31,570 --> 00:48:35,620 Cette pièce de puzzle pourpre qui a une certaine mot comme par exemple, qui est l'action, 62 00:48:35,620 --> 00:48:38,490 puis on pourrait avoir un argument ou une certaine façon parameter-- 63 00:48:38,490 --> 00:48:41,140 du type de personnalisation ce que le bloc ne 64 00:48:41,140 --> 00:48:45,182 de sorte qu'il est pas pré-déterminé par MIT ce que dit ce bloc violet. 65 00:48:45,182 --> 00:48:47,390 En fait, vous verrez dans un moment que je suis capable de taper 66 00:48:47,390 --> 00:48:49,931 les mots comme bonjour le monde, ou bonjour David, ou bonjour Zamayla, 67 00:48:49,931 --> 00:48:53,750 ou ce que je veux, dans l'argument à ce casse-tête piece-- la boîte blanche 68 00:48:53,750 --> 00:48:54,251 Là. 69 00:48:54,251 --> 00:48:57,166 Pendant ce temps, si je veux une boucle, nous allons voir qu'il ya des pièces de puzzle qui 70 00:48:57,166 --> 00:48:58,640 regarder un peu d'orange comme ça. 71 00:48:58,640 --> 00:49:01,690 Et leur forme type de suggère que quelque chose se produit encore et encore 72 00:49:01,690 --> 00:49:02,680 dans un cycle. 73 00:49:02,680 --> 00:49:06,800 >> Donc, si je conclurai un dire bonjour bloc monde avec un bloc à jamais dans Scratch, 74 00:49:06,800 --> 00:49:10,307 il va tout simplement continuer à dire bonjour monde pour toujours, littéralement. 75 00:49:10,307 --> 00:49:12,390 Pendant ce temps, il y a une autre type de boucle dans Scratch 76 00:49:12,390 --> 00:49:14,348 que nous allons see-- une répétition block-- où, si vous 77 00:49:14,348 --> 00:49:17,940 savoir à l'avance combien de fois vous voulez la boucle pour exécuter 78 00:49:17,940 --> 00:49:21,850 un nombre fini de fois que vous fact-- peut préciser que en tapant dans un certain nombre 79 00:49:21,850 --> 00:49:25,380 ou même de brancher une variable, comme x ou y comme nous le verrons. 80 00:49:25,380 --> 00:49:27,690 >> En fait, les variables comme i dans ce cas, qui 81 00:49:27,690 --> 00:49:30,109 est un nom commun pour un variable de nombre entier 82 00:49:30,109 --> 00:49:31,900 stocke juste un number-- un nombre entier pourrait être, 83 00:49:31,900 --> 00:49:35,470 d'utiliser ce bloc orange ici pour définir une variable comme i à zéro. 84 00:49:35,470 --> 00:49:38,900 Voici un exemple en vert d'un expression booléenne dans Scratch. 85 00:49:38,900 --> 00:49:43,700 Même si cela ressemble à un calcul formule, les inégalités de mathématiques comme celui-ci 86 00:49:43,700 --> 00:49:45,320 sont vraiment des expressions booléennes. 87 00:49:45,320 --> 00:49:46,570 Ceci est vrai ou faux. 88 00:49:46,570 --> 00:49:48,300 I est inférieur à 50. 89 00:49:48,300 --> 00:49:51,815 Il est soit une réponse oui ou non ou une réponse vraie ou fausse. 90 00:49:51,815 --> 00:49:53,940 Et nous allons généralement appeler ces expressions booléennes. 91 00:49:53,940 --> 00:49:55,148 Et il ne doit pas être 50. 92 00:49:55,148 --> 00:49:57,970 Il peut être x moins y, supérieur à y, identiques Y- 93 00:49:57,970 --> 00:50:00,020 un nombre quelconque d'autres pourraient être posées. 94 00:50:00,020 --> 00:50:03,250 >> Maintenant, à première vue, cela peut paraître tout d'un coup assez gras ici, et il est. 95 00:50:03,250 --> 00:50:06,540 Mais le concept sage, il est assez familier d'avant. 96 00:50:06,540 --> 00:50:09,370 Si x est inférieur à y, que dire autant. 97 00:50:09,370 --> 00:50:12,230 Sinon, si x est supérieur à y, puis en dire autant. 98 00:50:12,230 --> 00:50:14,260 Autre dire x est égal à y. 99 00:50:14,260 --> 00:50:17,220 Donc, nous avons un exemple il y a un troisième scenario-- 100 00:50:17,220 --> 00:50:20,600 le seul troisième possibility-- x est soit supérieur, inférieur ou égal. 101 00:50:20,600 --> 00:50:22,420 Nous avons donc une fourchette à trois voies de la route. 102 00:50:22,420 --> 00:50:26,290 >> Et remarquez ce qui est cool ici-- Scratch, il semblerait, n'a qu'un seul casse-tête 103 00:50:26,290 --> 00:50:28,840 pièce, dans ce cas, si d'autre bloc. 104 00:50:28,840 --> 00:50:32,090 Et pourtant, cela semble vous impliquer peut ont seulement une fourche à deux voies de la route. 105 00:50:32,090 --> 00:50:34,631 Vous pouvez aller à gauche ou à droite, mais Qu'en est-il que le troisième scénario? 106 00:50:34,631 --> 00:50:35,760 Que faire si x y est égal? 107 00:50:35,760 --> 00:50:36,500 Pas grand-chose. 108 00:50:36,500 --> 00:50:39,640 Prenez un morceau de puzzle, mettez une autre à l'intérieur de celui-ci 109 00:50:39,640 --> 00:50:45,759 pour créer l'équivalent sémantique de si, d'autre si, else-- et maintenant vous 110 00:50:45,759 --> 00:50:47,300 avoir votre fourche à trois voies sur la route. 111 00:50:47,300 --> 00:50:49,091 Et comme nous le verrons, le pièces de puzzle Scratch 112 00:50:49,091 --> 00:50:51,820 peut être étiré et de croître, de sorte que de caser plus de choses en eux. 113 00:50:51,820 --> 00:50:54,420 Vous ne devez pas adapter tout à sa taille par défaut. 114 00:50:54,420 --> 00:50:56,690 >> Ceci est quelque chose que nous voir bientôt est appelé un tableau. 115 00:50:56,690 --> 00:51:00,880 Il est comme un films-- un moyen de stocker plusieurs éléments d'information 116 00:51:00,880 --> 00:51:02,886 dans une variable, pas seulement un numéro. 117 00:51:02,886 --> 00:51:05,760 Ce que nous allons voir un représentant de ce qu'on appelle le multi-threading. 118 00:51:05,760 --> 00:51:08,280 En fait, l'ensemble de votre Mac et PC ces jours-ci 119 00:51:08,280 --> 00:51:10,810 support multi-threading, ce qui signifie que vous pouvez littéralement 120 00:51:10,810 --> 00:51:12,390 faire plusieurs choses à la fois. 121 00:51:12,390 --> 00:51:15,390 Vous pouvez avoir Microsoft Word dans le au premier plan, en travaillant sur un certain essai. 122 00:51:15,390 --> 00:51:17,160 Vous pourriez avoir un navigateur dans l'ouverture de fond 123 00:51:17,160 --> 00:51:18,720 G-mail ou Facebook ou similaire. 124 00:51:18,720 --> 00:51:22,730 Votre ordinateur peut faire plusieurs choses aujourd'hui, car il est multi-thread, 125 00:51:22,730 --> 00:51:26,390 et les programmes qu'ils sont en en particulier sont également multi-thread. 126 00:51:26,390 --> 00:51:28,970 >> Il y a des choses appelées événements comme bien dans le monde du Scratch, 127 00:51:28,970 --> 00:51:32,640 et puis il y a une façon aussi, de faire nos propres pièces de puzzle personnalisé si les choses 128 00:51:32,640 --> 00:51:34,810 ne pas réellement exister à l'avance. 129 00:51:34,810 --> 00:51:38,260 Donc, nous allons motiver cela comme suit. 130 00:51:38,260 --> 00:51:40,580 Il y a quelques années, quand je d'abord découvert Scratch, 131 00:51:40,580 --> 00:51:43,530 quand j'étais en fait un étudiant diplômé du MIT, nous 132 00:51:43,530 --> 00:51:45,640 nous ont été chargés de faire les devoirs. 133 00:51:45,640 --> 00:51:47,614 Et j'implemented-- qui, avec le recul, 134 00:51:47,614 --> 00:51:50,780 était une très mauvaise décision parce qu'il est la chanson la plus exaspérante dans le monde 135 00:51:50,780 --> 00:51:53,321 à écouter pendant huit heures tout en travaillant sur votre homework-- 136 00:51:53,321 --> 00:51:57,180 mais quelque chose que j'avais appelé Oscar Time, ce qui est peut-être une chanson familière. 137 00:51:57,180 --> 00:51:59,820 >> CS50s possèdent Jordan Hayashi, l'un des nos membres hauts fonctionnaires plus, 138 00:51:59,820 --> 00:52:03,920 a mis à jour pour 2015 et maintenant 2016, depuis retour dans la journée, 139 00:52:03,920 --> 00:52:06,610 J'avais tout simplement aller dans trash can Oscar. 140 00:52:06,610 --> 00:52:09,320 Maintenant, nous appuyons le recyclage et le compostage. 141 00:52:09,320 --> 00:52:12,050 >> Mais pour peindre l'image de ce que nous pouvons faire ici 142 00:52:12,050 --> 00:52:14,130 et de motiver certains les exemples de niveau inférieur, 143 00:52:14,130 --> 00:52:16,400 pourrions-nous obtenir un autre volontaire pour venir seulement sur place 144 00:52:16,400 --> 00:52:18,331 et de jouer mon premier devoirs cession jamais? 145 00:52:18,331 --> 00:52:18,830 Monte. 146 00:52:18,830 --> 00:52:19,250 Quel est ton nom? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID MALAN: Henry, allez vers le haut. 149 00:52:22,660 --> 00:52:24,190 Monte. 150 00:52:24,190 --> 00:52:27,070 Tête de toute façon, et vous verrez dans un instant, 151 00:52:27,070 --> 00:52:29,870 Je vais aller de l'avant et a frappé le drapeau vert dans la main en haut à droite 152 00:52:29,870 --> 00:52:31,100 coin, ce qui signifie aller. 153 00:52:31,100 --> 00:52:33,320 Le petit arrêt signe icône va dire stop, 154 00:52:33,320 --> 00:52:35,490 et c'est lorsque vous démarrez et arrêter le programme. 155 00:52:35,490 --> 00:52:36,450 Ravi de vous rencontrer. 156 00:52:36,450 --> 00:52:36,950 D'accord. 157 00:52:36,950 --> 00:52:39,100 Donc, nous allons voir les instructions sur l'écran dans un instant. 158 00:52:39,100 --> 00:52:41,450 Et juste en jouant ce jeu pour quelques seconds-- me faire confiance, 159 00:52:41,450 --> 00:52:43,670 on ne va pas vouloir jouer tout le chemin à l'end-- vous voulez 160 00:52:43,670 --> 00:52:45,470 avoir une idée de ce que le programme fait. 161 00:52:45,470 --> 00:52:49,170 Et plus de se concentrer uniquement sur Henry étant bon ou mauvais à ce jeu, l'accent 162 00:52:49,170 --> 00:52:52,600 et comment at-il été mis en œuvre par moi à l'origine, puis par la Jordanie. 163 00:52:52,600 --> 00:52:54,640 En d'autres termes, où sont les variables? 164 00:52:54,640 --> 00:52:55,520 Où sont les boucles? 165 00:52:55,520 --> 00:52:56,520 Où sont les fonctions? 166 00:52:56,520 --> 00:53:00,700 Et nous allons voir si nous ne voyons pas ceux sous le capot. 167 00:53:00,700 --> 00:53:03,660 >> Il suffit de cliquer et faire glisser des ordures le bac approprié. 168 00:53:03,660 --> 00:54:02,100 >> [MUSIC PLAYING] 169 00:54:02,100 --> 00:54:02,600 D'accord. 170 00:54:02,600 --> 00:54:03,160 C'est très bon. 171 00:54:03,160 --> 00:54:04,286 Pourquoi ne nous arrêtons pas là. 172 00:54:04,286 --> 00:54:04,786 Je vous remercie. 173 00:54:04,786 --> 00:54:05,830 Félicitations à Henry. 174 00:54:05,830 --> 00:54:07,002 Je vous remercie. 175 00:54:07,002 --> 00:54:10,690 >> [APPLAUDISSEMENTS] 176 00:54:10,690 --> 00:54:12,450 >> Imaginez le débogage de ce programme. 177 00:54:12,450 --> 00:54:15,880 S'il y a un problème à deux minutes song-- mais tellement 178 00:54:15,880 --> 00:54:17,430 ce qui se passe ici vraiment? 179 00:54:17,430 --> 00:54:20,900 Aussi compliqué que cela pourrait commencer à sembler obtenir au fil du temps, 180 00:54:20,900 --> 00:54:22,910 en effet de plus en plus choses ont commencé à tomber, 181 00:54:22,910 --> 00:54:25,370 ce qui est intéressant ce genre de exemple-- 182 00:54:25,370 --> 00:54:27,270 et nous verrons quelques-unes others-- est que si vous 183 00:54:27,270 --> 00:54:30,416 regarder au-delà de la complexité ou la sophistication du jeu, 184 00:54:30,416 --> 00:54:33,040 il y a un bâtiment très simple play-- blocs qui sont tous, 185 00:54:33,040 --> 00:54:35,840 si vous les distiller à ceux blocs de construction, sont très accessibles 186 00:54:35,840 --> 00:54:37,401 et implémentable à eux-mêmes. 187 00:54:37,401 --> 00:54:39,150 Par exemple, il est été un certain temps, mais je suis 188 00:54:39,150 --> 00:54:42,900 à peu près sûr d'abord ce que je faisais quand faisant de ce jeu pour la première fois 189 00:54:42,900 --> 00:54:44,787 étais-je tout à fait comme tergiversé. 190 00:54:44,787 --> 00:54:47,120 Je ne suis pas du tout concentrer sur la la logique ou les pièces du puzzle, 191 00:54:47,120 --> 00:54:50,810 Je me suis concentré sur les graphiques et conclusion le poste de la rue et la poubelle 192 00:54:50,810 --> 00:54:51,540 et tout cela. 193 00:54:51,540 --> 00:54:53,456 Mais ceux étaient nécessaires ingrédients d'abord. 194 00:54:53,456 --> 00:54:57,220 Et une fois que je fini de tergiverser et établissant le cadre général, 195 00:54:57,220 --> 00:55:00,337 Je décidai, permettez-moi de faire un morceau de détritus tombent du ciel. 196 00:55:00,337 --> 00:55:02,170 Et nous allons voir Scratch soutient des choses appelées 197 00:55:02,170 --> 00:55:06,386 caractères sprites-- qui peuvent ont des costumes différents sur de sorte qu'ils 198 00:55:06,386 --> 00:55:07,010 semble différent. 199 00:55:07,010 --> 00:55:09,660 >> Et donc je mets une poubelle costume sur un tel sprite. 200 00:55:09,660 --> 00:55:12,007 Et je avais besoin à tomber du ciel. 201 00:55:12,007 --> 00:55:14,590 Et il se trouve, Scratch, comme la plupart des langages de programmation, 202 00:55:14,590 --> 00:55:18,099 prend en charge des nombres aléatoires ou nombres aléatoires techniquement pseudocode, 203 00:55:18,099 --> 00:55:20,390 de sorte qu'en faisant glisser et laisser tomber certaines pièces du puzzle, 204 00:55:20,390 --> 00:55:22,890 J'étais en mesure d'avoir la poubelle viennent de la gauche au premier abord. 205 00:55:22,890 --> 00:55:25,580 Et puis la prochaine fois il est tombé, de la droite, puis à partir du milieu. 206 00:55:25,580 --> 00:55:28,060 Et tout le jeu n'était juste ont poubelle tombant du ciel. 207 00:55:28,060 --> 00:55:29,770 Vous ne pouviez pas pointer ou cliquez dessus. 208 00:55:29,770 --> 00:55:31,103 On ne pouvait pas ouvrir la poubelle. 209 00:55:31,103 --> 00:55:32,160 Vous ne pouviez pas faire quoi que ce soit. 210 00:55:32,160 --> 00:55:34,450 Mais ce fut un pas de bébé vers ma vision ultime. 211 00:55:34,450 --> 00:55:36,720 >> Et après cela, je fait mis en place une sorte 212 00:55:36,720 --> 00:55:41,230 de détection de telle sorte que si vous avez cliqué et faites glisser sur le morceau de poubelle 213 00:55:41,230 --> 00:55:44,350 au cours de la poubelle, Oscar couvercle serait ouvrir et fermer. 214 00:55:44,350 --> 00:55:47,650 Rien ne se passerait-il à la poubelle, mais au moins le couvercle serait ouvrir et fermer. 215 00:55:47,650 --> 00:55:49,642 Alors vérifier, étape deux de deux. 216 00:55:49,642 --> 00:55:52,100 Et voici ce qui va être clé à la fois problème réglé zéro 217 00:55:52,100 --> 00:55:55,970 et dans la programmation plus généralement, est de prendre ces mesures très délibérées de bébé. 218 00:55:55,970 --> 00:55:59,390 Parce que non seulement il vous permet se sentir honnêtement accompli beaucoup plus 219 00:55:59,390 --> 00:56:01,250 quickly-- c'est la pire chose dans le monde 220 00:56:01,250 --> 00:56:06,149 pour essayer de mettre en œuvre tous Oscar Temps, puis heures plus tard frappé le drapeau vert, 221 00:56:06,149 --> 00:56:08,440 et rien ne fonctionne comme prévu parce que là où vous faire encore 222 00:56:08,440 --> 00:56:11,150 commencer à déboguer ou dépanner ce programme? 223 00:56:11,150 --> 00:56:12,470 Il est tout simplement écrasante. 224 00:56:12,470 --> 00:56:16,792 >> Et si véritablement embrasser cette idée de prendre à nouveau les étapes steps-- bébé 225 00:56:16,792 --> 00:56:19,000 et mise en place again-- quelque chose qui est, à la fin, 226 00:56:19,000 --> 00:56:23,672 vraiment impressionnant et complexe, mais au premier abord, est loin d'être aussi bien ainsi. 227 00:56:23,672 --> 00:56:24,630 En fait, nous allons le faire. 228 00:56:24,630 --> 00:56:28,989 Laissez-moi aller de l'avant et-- se Grattage existe sur le Web à Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 et vous serez informé que bien encore dans le problème 230 00:56:30,780 --> 00:56:34,200 mis à zéro, le cahier des charges qui est déjà sur le site Web de CS50. 231 00:56:34,200 --> 00:56:35,725 >> Mais voici ce que gratter est lui-même. 232 00:56:35,725 --> 00:56:38,210 Et il y a vraiment juste trois principaux domaines. 233 00:56:38,210 --> 00:56:40,980 Au sommet, il a quitté est l'étape dite. 234 00:56:40,980 --> 00:56:41,810 Ceci est Scratch. 235 00:56:41,810 --> 00:56:43,710 Le costume par défaut est un chat. 236 00:56:43,710 --> 00:56:46,950 Et ceci est le monde rectangulaire que vous pouvez move-- haut, en bas, à gauche, 237 00:56:46,950 --> 00:56:48,130 à droite et quelques autres trucs. 238 00:56:48,130 --> 00:56:51,839 Au milieu voici nos catégories ou nos palettes de pièces de puzzle, 239 00:56:51,839 --> 00:56:53,630 et de couleurs différentes signifier différentes choses. 240 00:56:53,630 --> 00:56:56,520 Et si vous fouillez, vous verrez des choses comme des boucles et des conditions 241 00:56:56,520 --> 00:56:58,160 et variables et autres ingrédients. 242 00:56:58,160 --> 00:57:00,060 >> Et puis ici est la zone de scripts. 243 00:57:00,060 --> 00:57:03,020 Ceci est où je peux glisser-déposer ces pièces de puzzle à faire des choses. 244 00:57:03,020 --> 00:57:04,690 Donc, nous allons faire une telle chose. 245 00:57:04,690 --> 00:57:06,630 Laissez-moi aller de l'avant et-- et je sais où il est. 246 00:57:06,630 --> 00:57:10,110 Donc, je vais cliquer immédiatement sur où je sais que les choses sont prêts à être, 247 00:57:10,110 --> 00:57:13,140 mais pointant et en cliquant et farfouillé sont inévitables. 248 00:57:13,140 --> 00:57:15,320 Ainsi, lorsque le drapeau vert cliqué, qu'est-ce que je veux faire? 249 00:57:15,320 --> 00:57:17,100 Je vais le faire. 250 00:57:17,100 --> 00:57:20,699 Je vais faire glisser ce puzzle violet pièce, dire bonjour pendant deux secondes, 251 00:57:20,699 --> 00:57:21,490 et laissez-moi un zoom avant. 252 00:57:21,490 --> 00:57:23,865 >> Et je vais changer cette être ce que je veux qu'il être-- 253 00:57:23,865 --> 00:57:26,471 Bonjour tout le monde pendant deux secondes est très bien. 254 00:57:26,471 --> 00:57:28,970 Maintenant, je vais cliquer sur le drapeau vert, ou si je veux vraiment, 255 00:57:28,970 --> 00:57:31,820 Je peux plein écran, puis revenir. 256 00:57:31,820 --> 00:57:34,060 Il va tout simplement continuer tout dans une seule fenêtre. 257 00:57:34,060 --> 00:57:36,141 Vert flag-- monde bonjour. 258 00:57:36,141 --> 00:57:36,640 D'accord. 259 00:57:36,640 --> 00:57:38,789 Pas tout ce qui intéressant. 260 00:57:38,789 --> 00:57:40,080 Alors laissez-moi aller de l'avant et de faire cela. 261 00:57:40,080 --> 00:57:41,038 Permettez-moi d'essayer un autre. 262 00:57:41,038 --> 00:57:44,740 Lorsque le drapeau vert clicked-- de laisser faire quelque chose comme un son. 263 00:57:44,740 --> 00:57:46,880 Et remarquez que sur la boîte gratuitement, vous obtenez 264 00:57:46,880 --> 00:57:49,910 un son de chat, comme cela est le sprite par défaut. 265 00:57:49,910 --> 00:57:52,380 Alors maintenant, laissez-moi aller de l'avant et frapper le drapeau vert maintenant. 266 00:57:52,380 --> 00:57:53,224 >> [Miauler] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 C'est adorable. 269 00:57:55,370 --> 00:57:57,040 Je programmation. 270 00:57:57,040 --> 00:57:58,550 Alors qu'ai-je fait? 271 00:57:58,550 --> 00:58:00,430 Ceci est l'équivalent d'un programme. 272 00:58:00,430 --> 00:58:01,600 Il est évidemment super simple. 273 00:58:01,600 --> 00:58:05,300 Il n'a pas vraiment pris tout ce que beaucoup efforts et MIT ont fait la plupart du travail, 274 00:58:05,300 --> 00:58:07,890 mais je l'ai appelé une fonction. 275 00:58:07,890 --> 00:58:08,940 Je l'ai utilisé une fonction. 276 00:58:08,940 --> 00:58:12,480 Je me suis fait une certaine action, en utilisant seulement qu'un morceau de puzzle pourpre. 277 00:58:12,480 --> 00:58:15,960 >> Eh bien, si je veux faire trois miaule dans une rangée? 278 00:58:15,960 --> 00:58:18,570 Laissez-moi aller de l'avant et de faire deux et trois. 279 00:58:18,570 --> 00:58:20,910 Et remarquez que lorsque vous hover à proximité d'un morceau de puzzle, 280 00:58:20,910 --> 00:58:22,970 une petite ligne blanche apparaît sorte de magnétiquement, 281 00:58:22,970 --> 00:58:25,190 et il se cassera ensemble quand vous laissez aller. 282 00:58:25,190 --> 00:58:26,600 Voyons voir ce qui se passe ici. 283 00:58:26,600 --> 00:58:27,920 >> [Miauler] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Il y a un bug. 286 00:58:34,510 --> 00:58:35,650 Je n'entends un miaulement. 287 00:58:35,650 --> 00:58:37,440 Pourquoi pourrait-il être? 288 00:58:37,440 --> 00:58:39,001 Ouais? 289 00:58:39,001 --> 00:58:39,500 Ouais. 290 00:58:39,500 --> 00:58:41,650 Nous ne pas vraiment entendre, mais cela est une bonne intuition. 291 00:58:41,650 --> 00:58:43,400 Ils jouent tous en même temps. 292 00:58:43,400 --> 00:58:44,000 Pourquoi? 293 00:58:44,000 --> 00:58:46,587 Eh bien, l'ordinateur va tout simplement de faire ce que vous lui demandez de faire. 294 00:58:46,587 --> 00:58:48,670 Donc, si vous dites, le jeu sonore, jouer son, jouer son, 295 00:58:48,670 --> 00:58:52,887 mais vous ne pas dire de jouer jusqu'à ce que vous avez terminé, jouer jusqu'à ce que vous avez terminé, 296 00:58:52,887 --> 00:58:54,970 il va souffler à travers le programme très rapide 297 00:58:54,970 --> 00:58:56,830 et ne seulement ce que vous lui demandez de faire. 298 00:58:56,830 --> 00:58:59,040 >> Donc je vraiment besoin de fixer cela dans un couple des manières. 299 00:58:59,040 --> 00:59:00,623 Je pourrais le faire, se débarrasser de cela. 300 00:59:00,623 --> 00:59:04,180 Je vais essayer cette autre casse-tête piece-- jouer meow sonore jusqu'à ce que fait, 301 00:59:04,180 --> 00:59:07,072 puis faites glisser trois ceux-ci et cliquez sur Lecture. 302 00:59:07,072 --> 00:59:09,430 >> [Miauler] 303 00:59:09,430 --> 00:59:13,350 >> Il est pas vraiment very-- vous-- remercier très naturel. 304 00:59:13,350 --> 00:59:16,590 Alors, pourquoi ne pas laisser je-- moi aller à contrôler ici. 305 00:59:16,590 --> 00:59:17,090 Agréable. 306 00:59:17,090 --> 00:59:22,230 Attendez une seconde, et maintenant je reviens aux sons, et la lecture du son jusqu'à ce que fait, 307 00:59:22,230 --> 00:59:24,620 puis laissez-moi attendre une seconde. 308 00:59:24,620 --> 00:59:28,692 Et puis laissez-moi aller chercher un plus de bruit, et ici nous allons. 309 00:59:28,692 --> 00:59:31,350 >> [Miauler] 310 00:59:31,350 --> 00:59:35,930 >> Un peu plus naturel, mais ce ne sont pas très efficaces. 311 00:59:35,930 --> 00:59:39,830 Comme j'ennuyais, tous être brièvement, en cliquant en arrière 312 00:59:39,830 --> 00:59:42,724 et vraiment dupliquer mon work-- à peu près copier et coller. 313 00:59:42,724 --> 00:59:44,640 En effet, si je contrôler cliqué ou à droite cliquée, 314 00:59:44,640 --> 00:59:46,500 Je pourrais viens copié et collé. 315 00:59:46,500 --> 00:59:49,870 Quelle serait une meilleure construire à utiliser? 316 00:59:49,870 --> 00:59:51,090 Quelle idée d'avant? 317 00:59:51,090 --> 00:59:51,990 >> Ouais, donc une boucle. 318 00:59:51,990 --> 00:59:54,580 Et en fait, si nous poked autour, nous pourrions trouver exactement cela. 319 00:59:54,580 --> 00:59:57,730 Permettez-moi de passer à des événements ou plutôt de contrôle. 320 00:59:57,730 --> 00:59:59,650 Alors repeat-- je ne veux que ce soit 10 fois. 321 00:59:59,650 --> 01:00:01,370 Cela va parfois ennuyeux rapidement. 322 01:00:01,370 --> 01:00:03,380 Mais je vais répéter trois fois. 323 01:00:03,380 --> 01:00:06,355 Permettez-moi de revenir au son et jouer le son jusqu'à ce qu'il soit fait. 324 01:00:06,355 --> 01:00:08,480 Permettez-moi de revenir au contrôle et juste attendre une seconde. 325 01:00:08,480 --> 01:00:10,271 Et remarquez, vous pourriez pense qu'il ne convient pas, 326 01:00:10,271 --> 01:00:13,520 mais encore une fois, si vous laissez magnétiquement encliquetage en place, il passera à combler. 327 01:00:13,520 --> 01:00:14,971 Qu'est-ce qu'il joue maintenant? 328 01:00:14,971 --> 01:00:18,500 >> [Miauler] 329 01:00:18,500 --> 01:00:19,000 D'ACCORD. 330 01:00:19,000 --> 01:00:19,660 Agréable. 331 01:00:19,660 --> 01:00:22,540 Et voici ce que l'on appellerait un programme qui est aussi correct. 332 01:00:22,540 --> 01:00:27,590 Il miaulait trois fois assez naturellement, mais il est mieux conçu. 333 01:00:27,590 --> 01:00:29,580 Je suis en utilisant moins de redondance. 334 01:00:29,580 --> 01:00:30,970 Je ne suis pas copier et coller quoi que ce soit. 335 01:00:30,970 --> 01:00:32,470 Je viens d'utiliser une meilleure idée. 336 01:00:32,470 --> 01:00:35,340 >> Maintenant, ce n'est pas encore tout ce que intéressante avec Scratch ne pas faire 337 01:00:35,340 --> 01:00:35,930 n'importe quoi. 338 01:00:35,930 --> 01:00:37,388 Alors, faisons quelque chose d'autre à la place. 339 01:00:37,388 --> 01:00:38,670 Faisons quelque chose pour toujours. 340 01:00:38,670 --> 01:00:39,420 Et tu sais quoi? 341 01:00:39,420 --> 01:00:40,470 La motion semble intéressante. 342 01:00:40,470 --> 01:00:45,760 Ayons bouger 10 étapes et a frappé le jeu maintenant. 343 01:00:45,760 --> 01:00:46,570 >> D'ACCORD. 344 01:00:46,570 --> 01:00:49,300 Eh bien nous pouvons sorte de glisser le dos, et il est toujours 345 01:00:49,300 --> 01:00:51,250 en cours d'exécution parce qu'il fait cela pour toujours. 346 01:00:51,250 --> 01:00:53,150 Ainsi, la boucle est en train de faire ce qu'il dit de le faire, 347 01:00:53,150 --> 01:00:54,650 mais ce n'est pas tout ce qui intéressant. 348 01:00:54,650 --> 01:00:55,310 Faisons cela. 349 01:00:55,310 --> 01:00:59,870 Permettez-moi d'ajouter un bloc de contrôle, et d'utiliser un de ces conditions pour la première fois. 350 01:00:59,870 --> 01:01:03,119 >> Donc, il va déplacer 10 steps-- 10 points, 10 pixels sur le screen-- 351 01:01:03,119 --> 01:01:04,660 alors il va se poser cette question. 352 01:01:04,660 --> 01:01:09,340 Si quelque chose est vrai, alors le faire quelque chose à l'intérieur de ce bloc. 353 01:01:09,340 --> 01:01:13,060 Donc, il se trouve de détection a un tout bouquet de expressions-- Boolean 354 01:01:13,060 --> 01:01:16,580 questions du oui non ou vrai false form-- me laisser faire cela. 355 01:01:16,580 --> 01:01:19,260 >> Si touching-- et puis il y a ce petit menu déroulant. 356 01:01:19,260 --> 01:01:20,410 Je peux le paramétrer. 357 01:01:20,410 --> 01:01:23,010 Si toucher le edge-- de nous faire quelque chose comme ça. 358 01:01:23,010 --> 01:01:27,310 Donc, si touchant edge-- permettez-moi de revenir à la motion. 359 01:01:27,310 --> 01:01:32,281 Et pourquoi ne pas nous venons de tourner autour de 180 degrés? 360 01:01:32,281 --> 01:01:32,780 D'accord. 361 01:01:32,780 --> 01:01:35,070 Donc, pour toujours, déplacer 10 étapes. 362 01:01:35,070 --> 01:01:37,670 Si vous touchez la bord, virage à 180 degrés. 363 01:01:37,670 --> 01:01:39,720 Et ce n'est pas la fin du programme parce que vous êtes dans une éternité bloquer, 364 01:01:39,720 --> 01:01:42,053 donc ça va aller encore et Encore et encore et encore. 365 01:01:42,053 --> 01:01:43,980 Donc, nous allons voir ce qui se passe. 366 01:01:43,980 --> 01:01:44,785 D'ACCORD. 367 01:01:44,785 --> 01:01:48,270 Un peu buggé, mais plutôt cool. 368 01:01:48,270 --> 01:01:51,710 >> Et nous pouvons ajouter à cela des choses stupides qui ne sont pas tout ce qui intellectuellement 369 01:01:51,710 --> 01:01:52,270 intéressant. 370 01:01:52,270 --> 01:01:57,210 Mais si nous avons frappé ce petit microphone button-- ouch. 371 01:01:57,210 --> 01:01:58,480 Permettez-moi de nettoyer cette place. 372 01:01:58,480 --> 01:02:01,540 Permettez-moi d'améliorer ce que ils diraient à la télévision. 373 01:02:01,540 --> 01:02:05,400 Nettoyez ça, Enregistrer, maintenant aller jusqu'à scripts. 374 01:02:05,400 --> 01:02:07,500 >> Et maintenant, laissez-moi aller au son. 375 01:02:07,500 --> 01:02:09,002 Permettez-moi de lui donner un nom. 376 01:02:09,002 --> 01:02:12,440 Je vais appeler ce ouch. 377 01:02:12,440 --> 01:02:13,840 Et maintenant jouer ouch son. 378 01:02:13,840 --> 01:02:16,520 Notez qu'il apparaît dans le peu menu déroulant. 379 01:02:16,520 --> 01:02:17,612 Voyons voir. 380 01:02:17,612 --> 01:02:20,444 >> [AIE] 381 01:02:20,444 --> 01:02:24,377 >> [EN RIANT] 382 01:02:24,377 --> 01:02:25,835 Mais nous pouvons changer t son à la volée. 383 01:02:25,835 --> 01:02:28,106 Nous pouvons être deux fois plus ennuyeux. 384 01:02:28,106 --> 01:02:31,760 >> [AIE] 385 01:02:31,760 --> 01:02:35,332 >> Ou si nous faisons comme 1000 marches à time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> D'ACCORD. 388 01:02:40,670 --> 01:02:42,295 Nous allons donc laisser qu'un seul. 389 01:02:42,295 --> 01:02:45,290 Encore une fois, la construction blocks-- I a commencé avec quelque chose de super simple, 390 01:02:45,290 --> 01:02:47,930 puis j'ai ajouté une fonctionnalité, ajouté une fonction, a ajouté une fonctionnalité. 391 01:02:47,930 --> 01:02:50,721 Et je ne dois plus à se soucier de comment la première de ces caractéristiques 392 01:02:50,721 --> 01:02:53,690 a été mis en œuvre que je continue à la couche des choses sur le dessus. 393 01:02:53,690 --> 01:02:55,430 Donc, en fait, laissez-moi faire un autre ici. 394 01:02:55,430 --> 01:03:00,580 Laissez-moi aller de l'avant et d'ouvrir un fichier J'ai apporté à l'avance, appelé Sheep. 395 01:03:00,580 --> 01:03:03,970 >> Donc, il a un peu différent caractère qui ressemble à ceci. 396 01:03:03,970 --> 01:03:07,370 Et permettez-moi de voir si je ne peux pas faire quelque chose en utilisant un compteur 397 01:03:07,370 --> 01:03:09,310 dans ce case-- une variable dite. 398 01:03:09,310 --> 01:03:15,540 Je vais aller de l'avant et sous Events-- laissez-moi un drapeau vert cliqué. 399 01:03:15,540 --> 01:03:19,030 Ensuite, laissez-moi aller aux données, que je connais à partir juste à jouer avant, 400 01:03:19,030 --> 01:03:20,214 est où les variables sont. 401 01:03:20,214 --> 01:03:21,880 Et je vais aller de l'avant et faites glisser ce. 402 01:03:21,880 --> 01:03:25,144 >> Donc, une variable appelée compteur, et Je vais l'initialiser à zéro. 403 01:03:25,144 --> 01:03:27,560 Je peux l'appeler anything-- x ou y ou Z-, mais dans la programmation, 404 01:03:27,560 --> 01:03:30,410 appelant quelque chose dans un sémantiquement manière utile, comme compteur, 405 01:03:30,410 --> 01:03:34,540 qui décrit ce qu'elle est, il est un beaucoup plus facile à lire votre code plus tard. 406 01:03:34,540 --> 01:03:37,460 Laissez-moi aller de l'avant et obtenir un bloc pour toujours ici. 407 01:03:37,460 --> 01:03:41,289 Et laissez-moi aller aux regards la page et faire un bloc Say. 408 01:03:41,289 --> 01:03:44,330 Mais ce qui est cool à propos des variables est I ne pas avoir à simplement taper dans quelque chose 409 01:03:44,330 --> 01:03:47,850 comme bonjour le monde, que nous avons déjà fait, je peux aller plutôt aux données 410 01:03:47,850 --> 01:03:50,690 et faites glisser ma variable, et même si la forme ne pas tout à fait 411 01:03:50,690 --> 01:03:53,000 ressembler à elle doit être adaptée, il se développera à combler. 412 01:03:53,000 --> 01:03:58,396 Et je vais juste dire le compteur pour une spoiler-- second-- il va compter. 413 01:03:58,396 --> 01:04:00,380 Nous disons pendant une seconde. 414 01:04:00,380 --> 01:04:02,840 Ensuite, je vais aller ont fait attendre pendant une seconde, 415 01:04:02,840 --> 01:04:04,650 donc ça ne compte pas trop vite. 416 01:04:04,650 --> 01:04:08,430 Et puis enfin, changer counter par One-- en d'autres termes, 417 01:04:08,430 --> 01:04:13,520 incrémenter le compteur d'une unité valeur ajoutée et faire ceci pour toujours. 418 01:04:13,520 --> 01:04:16,129 >> Donc, les moutons aussi, comme un programmeur, compte de 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 Et si nous attendons assez longtemps, il le fera toujours. 421 01:04:23,740 --> 01:04:27,740 Mais ce n'est pas tout à fait vrai, parce que en fait, comme nous allons découvrir dans la première semaine, 422 01:04:27,740 --> 01:04:31,871 entiers et les ordinateurs plus généralement, ont techniquement seulement finite-- bien, 423 01:04:31,871 --> 01:04:33,829 plutôt ordinateurs, lorsque ils représentent des nombres entiers, 424 01:04:33,829 --> 01:04:35,670 ont seulement un nombre fini de bits. 425 01:04:35,670 --> 01:04:37,860 Ces ampoules là-bas ne peut compter que si haut 426 01:04:37,860 --> 01:04:39,239 avant que vous êtes hors d'ampoules. 427 01:04:39,239 --> 01:04:41,590 Et un ordinateur aussi, ne dispose que de mémoire, 428 01:04:41,590 --> 01:04:44,640 ne dispose que tant de transistors, donc il ne peut compter que si haut. 429 01:04:44,640 --> 01:04:47,409 >> Ainsi, il apparaît que les moutons, Je pense que, peut compter jusqu'à 2 milliards 430 01:04:47,409 --> 01:04:48,409 ou quelque chose d'assez grand. 431 01:04:48,409 --> 01:04:50,325 Donc, on ne va pas à attendre que cela se produise. 432 01:04:50,325 --> 01:04:54,850 Mais finalement, un bug qui va se passer qui peut avoir un monde très réel 433 01:04:54,850 --> 01:04:55,970 ramifications. 434 01:04:55,970 --> 01:04:58,861 Mais au-delà du mouton, qui introduit juste une variable. 435 01:04:58,861 --> 01:05:01,110 Allons de l'avant et d'ouvrir quelque chose que je fis à l'avance 436 01:05:01,110 --> 01:05:07,430 ici appelé Pet the Cat-- Pet the Cat ici. 437 01:05:07,430 --> 01:05:10,420 Et remarquez ici, il est quelques-uns blocs, mais quand le drapeau vert 438 01:05:10,420 --> 01:05:12,474 cliqué, faire toujours ce qui suit. 439 01:05:12,474 --> 01:05:15,265 Si vous touchez la souris pointer-- de sorte que le curseur sur l'écran, 440 01:05:15,265 --> 01:05:18,529 le jeu arrow-- meow son puis attendre deux secondes. 441 01:05:18,529 --> 01:05:19,570 Et tout cela pour toujours. 442 01:05:19,570 --> 01:05:22,619 Juste attendre constamment pour voir si le pointer-- 443 01:05:22,619 --> 01:05:24,710 si le chat est en contact avec le pointeur. 444 01:05:24,710 --> 01:05:26,060 >> Donc, je frappe le jeu. 445 01:05:26,060 --> 01:05:26,920 Rien ne se passe. 446 01:05:26,920 --> 01:05:28,980 Mais comme je déplace le curseur sur le chat, 447 01:05:28,980 --> 01:05:31,960 >> [Miauler] 448 01:05:31,960 --> 01:05:34,750 >> Et si je me déplace loin, pas caresser le chat plus. 449 01:05:34,750 --> 01:05:38,090 Donc, une certaine logique conditionnelle niché à l'intérieur d'une boucle. 450 01:05:38,090 --> 01:05:43,070 Que diriez-vous cet exemple, délibérément appelé Ne pas caresser le chat? 451 01:05:43,070 --> 01:05:45,253 Qu'est-ce cela va faire? 452 01:05:45,253 --> 01:05:47,880 >> [Miauler] 453 01:05:47,880 --> 01:05:50,215 >> Pourquoi devriez-vous pas caresser le chat? 454 01:05:50,215 --> 01:05:59,440 >> [Miauler] 455 01:05:59,440 --> 01:06:00,699 >> D'ACCORD. 456 01:06:00,699 --> 01:06:03,880 Donc, ceci est un exemple d'un cas d'autre. 457 01:06:03,880 --> 01:06:06,482 Il est un point de décision et parce qu'il est assis dans la boucle, 458 01:06:06,482 --> 01:06:07,690 ils sont tous deux se vérifier. 459 01:06:07,690 --> 01:06:08,280 Est-ce vrai? 460 01:06:08,280 --> 01:06:08,760 Est-ce vrai? 461 01:06:08,760 --> 01:06:09,250 Est-ce vrai? 462 01:06:09,250 --> 01:06:09,791 Est-ce vrai? 463 01:06:09,791 --> 01:06:11,880 Et finalement, l'un des ceux qui va appliquer 464 01:06:11,880 --> 01:06:16,480 et vous entendez soit le miaulement ou le rugissement du lion dans ce cas. 465 01:06:16,480 --> 01:06:21,400 >> Eh bien, nous allons faire un un peu plus de fantaisie que je fis à l'avance too-- threads. 466 01:06:21,400 --> 01:06:25,210 Donc, un thread est juste un chose qu'un ordinateur peut faire. 467 01:06:25,210 --> 01:06:29,349 Ainsi, un programme multi-thread est un programme qui peut faire plusieurs choses à la fois. 468 01:06:29,349 --> 01:06:31,140 Et tous ces exemples, jusqu'à présent ont eu 469 01:06:31,140 --> 01:06:35,980 un seul script, ainsi speak-- un programme comme celui-ci ici. 470 01:06:35,980 --> 01:06:38,810 Mais notez ce programme a deux sprites, deux caractères. 471 01:06:38,810 --> 01:06:40,020 L'un est un oiseau. 472 01:06:40,020 --> 01:06:40,870 L'un est un chat. 473 01:06:40,870 --> 01:06:45,080 >> Et remarquez quand je clique sur ces bas à gauche, ils ont chacun leurs propres scripts 474 01:06:45,080 --> 01:06:47,120 ou des programmes qui leur sont associés. 475 01:06:47,120 --> 01:06:49,420 Et tous les deux de ceux programmes, avis, début 476 01:06:49,420 --> 01:06:52,600 avec quand drapeau vert clicked-- regardons la cat-- 477 01:06:52,600 --> 01:06:54,030 lorsque le drapeau vert cliqué. 478 01:06:54,030 --> 01:06:58,220 Et en effet, quand je frappe jouer maintenant, deux choses vont se produire à la fois. 479 01:06:58,220 --> 01:07:01,750 Le chat et l'oiseau sont à la fois va fonctionner simultanément 480 01:07:01,750 --> 01:07:03,815 pour créer cet effet. 481 01:07:03,815 --> 01:07:05,440 Et vous imaginez peut-être ce qui se passe. 482 01:07:05,440 --> 01:07:08,340 Il y a une boucle et l'oiseau et le chat sont dans une boucle. 483 01:07:08,340 --> 01:07:11,270 L'oiseau est tout simplement rebondir comme J'étais avant, quand je l'ai dit ouch. 484 01:07:11,270 --> 01:07:13,040 Mais le chat a clairement un avantage. 485 01:07:13,040 --> 01:07:16,040 Il y a un autre bloc de détection que les points le chat délibérément 486 01:07:16,040 --> 01:07:19,836 à l'oiseau dans ce cas ici. 487 01:07:19,836 --> 01:07:22,960 Donc, nous pourrions démêler, en regardant à travers ces blocs, ce qui se passe. 488 01:07:22,960 --> 01:07:25,460 Mais l'ingrédient clé ici est un. 489 01:07:25,460 --> 01:07:28,520 L'oiseau, de sorte que ce jeu est pas complètement boring-- ou ce animation-- 490 01:07:28,520 --> 01:07:30,060 commence à une direction aléatoire. 491 01:07:30,060 --> 01:07:32,890 Et l'ordinateur est la cueillette un nombre compris entre 90 et 180 492 01:07:32,890 --> 01:07:36,110 essentiellement, de sorte qu'il est un peu différente animation chaque fois. 493 01:07:36,110 --> 01:07:39,480 >> Et puis notez ici, si le chat est en contact avec l'oiseau, puis 494 01:07:39,480 --> 01:07:42,030 jouer le lion quatre sound-- le rugissement. 495 01:07:42,030 --> 01:07:46,330 Mais entre-temps dans l'oiseau de palette, nous avons cela. 496 01:07:46,330 --> 01:07:49,229 Toujours, sinon toucher le chat, juste continuer à avancer trois étapes. 497 01:07:49,229 --> 01:07:50,770 Et puis voici une autre pièce du puzzle. 498 01:07:50,770 --> 01:07:52,030 Si vous êtes sur le bord, rebondir. 499 01:07:52,030 --> 01:07:54,840 Donc, l'oiseau est juste un peu garde sa propre entreprise, 500 01:07:54,840 --> 01:07:57,330 juste voler autour et rebondir, et il est vraiment 501 01:07:57,330 --> 01:08:01,780 le chat qui avait la logique conditionnelle pour déterminer si elle avait attrapé l'oiseau. 502 01:08:01,780 --> 01:08:02,280 D'accord. 503 01:08:02,280 --> 01:08:08,800 Alors, faisons un autre ici, celle-ci étant appelé Salut Salut Salut. 504 01:08:08,800 --> 01:08:15,100 Et celui-là ne vient cela dans une boucle pour toujours. 505 01:08:15,100 --> 01:08:18,925 Mais notice-- comment arrêter nous ce programme très ennuyeux? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Appuyez sur la barre d'espace. 508 01:08:22,640 --> 01:08:27,990 Parce que si je fais ça, le program-- de la main gauche 509 01:08:27,990 --> 01:08:31,550 notez qu'il est constamment listening-- est la clé de presse de l'espace. 510 01:08:31,550 --> 01:08:34,090 Si la barre d'espace enfoncée, et si oui, que fait-il? 511 01:08:34,090 --> 01:08:35,980 Il fait une technique très courante. 512 01:08:35,980 --> 01:08:38,590 Il définit une variable égale à une certaine valeur. 513 01:08:38,590 --> 01:08:39,741 Mais il fait basculer cette valeur. 514 01:08:39,741 --> 01:08:41,490 [? Alors apparence?] sur la base du I shape-- 515 01:08:41,490 --> 01:08:43,160 une variable I écrit à l'avance appelé 516 01:08:43,160 --> 01:08:44,770 Muted, qui dit oui ou non. 517 01:08:44,770 --> 01:08:45,880 Est-ce que le son en sourdine ou non? 518 01:08:45,880 --> 01:08:46,990 Vrai ou faux? 519 01:08:46,990 --> 01:08:51,580 Et remarquez, je dis this-- si sourdine est zéro, puis changer pour un, 520 01:08:51,580 --> 01:08:53,840 le reste muet mis à zéro. 521 01:08:53,840 --> 01:08:55,540 Donc, il suffit de retourner la valeur de zéro à un. 522 01:08:55,540 --> 01:08:58,320 Je pourrais avoir done-- changer deux à trois et trois à deux 523 01:08:58,320 --> 01:09:00,162 ou quatre à cinq ou quatre à six. 524 01:09:00,162 --> 01:09:01,870 Mais il n'a pas d'importance quels sont les numéros que j'utilise, 525 01:09:01,870 --> 01:09:04,090 aussi longtemps que je garde changer le contraire. 526 01:09:04,090 --> 01:09:07,290 >> Et la plupart tout programmeur serait juste choisissez zéro et One-- vrai et faux, 527 01:09:07,290 --> 01:09:09,510 off et on-- pour représenter cela. 528 01:09:09,510 --> 01:09:10,930 Et cela est encore en cours d'exécution. 529 01:09:10,930 --> 01:09:12,190 Si je frappe à nouveau la barre d'espace 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SOUNDS] 531 01:09:13,590 --> 01:09:15,440 >> Le programme est encore en cours. 532 01:09:15,440 --> 01:09:18,400 Parce qu'il ya cette autre scénario qui dit, pour toujours faire ce qui suit. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Si la variable est égale à sourdine zero-- donc si vous n'êtes pas en sourdine 535 01:09:24,770 --> 01:09:29,609 est le logic-- si elle est fausse ou pas, puis jouer le son, 536 01:09:29,609 --> 01:09:30,650 parce que vous n'êtes pas coupé. 537 01:09:30,650 --> 01:09:33,358 Vous devez jouer le son, puis penser salut salut salut pendant deux secondes 538 01:09:33,358 --> 01:09:35,790 et puis attendre, et de le faire Encore et encore et encore. 539 01:09:35,790 --> 01:09:40,760 >> Et de cette manière ne nous avons un moyen pour personnes to-- pour les programmes d'interagir. 540 01:09:40,760 --> 01:09:43,120 Et ils ne doivent être comme date d'autres. 541 01:09:43,120 --> 01:09:46,280 En fait, piquer around-- sans jeu de mots-- 542 01:09:46,280 --> 01:09:49,250 quelqu'un a passé une énorme quantité de temps sur Internet la mise en œuvre 543 01:09:49,250 --> 01:09:51,580 PokemonGo dans Scratch. 544 01:09:51,580 --> 01:09:55,440 Il vous géolocalise même dans Cambridge ou Allston ici. 545 01:09:55,440 --> 01:10:03,120 Donc, si vous voulez voir aussi ce que les gens peut faire est this-- le menu très chic. 546 01:10:03,120 --> 01:10:04,780 Cliquez ici. 547 01:10:04,780 --> 01:10:07,430 >> Ceci est moi avec mes touches fléchées maintenant. 548 01:10:07,430 --> 01:10:09,446 Je vais aller après cela. 549 01:10:09,446 --> 01:10:09,946 Cliquez sur. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 Et maintenant, vous cliquez sur le pokeball. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Je veux dire, je pense que vous êtes censé cliquez sur le pokeball. 554 01:10:20,260 --> 01:10:20,760 D'accord. 555 01:10:20,760 --> 01:10:22,680 Donc je l'ai fait. 556 01:10:22,680 --> 01:10:23,950 Je peux aller ici. 557 01:10:23,950 --> 01:10:27,790 Et cette personne mis en œuvre un peu plus Pokéballs plus ici-- trois Pokéballs. 558 01:10:27,790 --> 01:10:29,950 >> Nous publierons un lien vers cette en ligne de sorte que vous pouvez jouer. 559 01:10:29,950 --> 01:10:32,364 Mais remarquez il y a juste certains éléments de base. 560 01:10:32,364 --> 01:10:33,780 Il ressemble beaucoup plus fantaisistes, et il est. 561 01:10:33,780 --> 01:10:35,905 Ceci est impressionnant et plus que nous le ferions normalement 562 01:10:35,905 --> 01:10:37,740 attendre, certainement pour le problème mis à zéro. 563 01:10:37,740 --> 01:10:40,809 Je ne sais pas combien de temps cette personne a passé en ligne. 564 01:10:40,809 --> 01:10:41,850 Mais il est tout simplement une boucle. 565 01:10:41,850 --> 01:10:43,180 Il y a un jeu sonore. 566 01:10:43,180 --> 01:10:44,850 Il y a une sorte de boucle l'écoute pour savoir si je suis 567 01:10:44,850 --> 01:10:47,558 frapper la flèche vers le haut ou le bas une flèche ou la gauche et la droite, 568 01:10:47,558 --> 01:10:49,834 puis le cas échéant, il se déplace il un certain nombre de pixels. 569 01:10:49,834 --> 01:10:51,750 Et puis si je clique sur un autre sprite, il est 570 01:10:51,750 --> 01:10:53,390 une sorte de si l'état là. 571 01:10:53,390 --> 01:10:54,806 Ouais, ça devient trop intense. 572 01:10:54,806 --> 01:10:56,100 Nous allons arrêter. 573 01:10:56,100 --> 01:10:57,750 Ce sont tous ces éléments de base. 574 01:10:57,750 --> 01:11:01,530 Il n'y a pas d'autres ingrédients autres que ceux que nous avons examiné déjà. 575 01:11:01,530 --> 01:11:04,670 >> Et pourtant, ici, laissez-moi faire une dernière série d'exemples 576 01:11:04,670 --> 01:11:06,960 qui brosse un tableau trop de ce que vous pouvez faire ici. 577 01:11:06,960 --> 01:11:10,481 Voici un programme très simple qui juste fait this-- la toux, la toux, la toux. 578 01:11:10,481 --> 01:11:12,480 Et sur la base uniquement sur ce que nous avons examiné jusqu'ici, 579 01:11:12,480 --> 01:11:14,570 où est l'évidence possibilité d'amélioration. 580 01:11:14,570 --> 01:11:15,570 Ce programme est correct. 581 01:11:15,570 --> 01:11:17,980 Il tousse trois fois, qui est ce que je voulais. 582 01:11:17,980 --> 01:11:19,650 Mais il est mal appliquée. 583 01:11:19,650 --> 01:11:20,600 Il est mal conçu. 584 01:11:20,600 --> 01:11:22,000 Pourquoi? 585 01:11:22,000 --> 01:11:22,500 Ouais. 586 01:11:22,500 --> 01:11:23,230 Ce n'est pas une boucle. 587 01:11:23,230 --> 01:11:24,610 Et il est pas tellement que ce n'est pas une boucle, 588 01:11:24,610 --> 01:11:26,400 il est qu'il ya beaucoup de redondance. 589 01:11:26,400 --> 01:11:28,830 Il est copié et code collé, pour ainsi dire. 590 01:11:28,830 --> 01:11:31,830 Et la solution probablement est en effet une boucle. 591 01:11:31,830 --> 01:11:34,350 Alors laissez-moi aller de l'avant et d'améliorer cela. 592 01:11:34,350 --> 01:11:36,250 Et je vais faire glisser ces ici. 593 01:11:36,250 --> 01:11:39,986 Laissez-moi aller de l'avant et obtenir une répétition bloc, modifier ce à trois. 594 01:11:39,986 --> 01:11:41,860 Je vais jeter certains de ces blocs. 595 01:11:41,860 --> 01:11:43,150 >> Et vous remarquerez qu'il est assez intuitive. 596 01:11:43,150 --> 01:11:45,691 Vous faites glisser-déposer et les choses apparaître et disparaître à terme. 597 01:11:45,691 --> 01:11:49,170 Et je peux simplement faire glisser cette ici, et maintenant j'ai une version plus propre encore. 598 01:11:49,170 --> 01:11:50,730 Mais tu sais quoi? 599 01:11:50,730 --> 01:11:52,940 Il y a cette possibilité maintenant abstraction-- 600 01:11:52,940 --> 01:11:56,350 pour commencer à définir un nouveau vocabulaire que le MIT n'a pas anticipé. 601 01:11:56,350 --> 01:11:59,110 Il y a attendre et répétez et pour toujours et si, 602 01:11:59,110 --> 01:12:02,590 mais si je veux introduire le mot toux comme un bloc? 603 01:12:02,590 --> 01:12:06,230 Que faire si je veux un morceau de puzzle dont le but dans la vie est de tousser? 604 01:12:06,230 --> 01:12:10,720 >> Eh bien, regardons cette version ici, que je fis comme suit. 605 01:12:10,720 --> 01:12:13,579 Magiquement, j'ai créé ce puzzle morceau ici, 606 01:12:13,579 --> 01:12:14,870 qui Scratch vous permet de faire. 607 01:12:14,870 --> 01:12:16,787 Et en effet, C et Python et sont JavaScript 608 01:12:16,787 --> 01:12:18,370 va vous permettre de faire aussi bien. 609 01:12:18,370 --> 01:12:21,830 Vous pouvez créer votre propre morceaux que vous appelez ce que vous voulez. 610 01:12:21,830 --> 01:12:24,890 Dans ce cas, la toux se sent comme une définition raisonnable. 611 01:12:24,890 --> 01:12:27,880 Et puis avec ces morceaux vers le bas ici vous pouvez définir ce que cela signifie. 612 01:12:27,880 --> 01:12:30,290 >> Je glissés et déposés à partir cette palette ici-- plus 613 01:12:30,290 --> 01:12:33,500 blocks-- ce grand violet bloc, où je tapais dans la toux 614 01:12:33,500 --> 01:12:35,290 comme le nom de ma nouvelle pièce du puzzle. 615 01:12:35,290 --> 01:12:39,920 Et puis je veux dire chaque fois qu'un utilisateur appelle cette nouvelle pièce toux puzzle, 616 01:12:39,920 --> 01:12:41,770 faire un exemple et une attente. 617 01:12:41,770 --> 01:12:46,160 Et ici, dans mon bloc de répétition, Je peux juste tousser trois fois. 618 01:12:46,160 --> 01:12:49,972 >> Et je dirais, en particulier si maintenant vous cachez ce détail. 619 01:12:49,972 --> 01:12:51,430 Qui se soucie de la façon dont la toux est mis en œuvre? 620 01:12:51,430 --> 01:12:54,390 Tout ce que je me soucie comme programmeur que je peux tousser. 621 01:12:54,390 --> 01:12:56,280 Je ne me soucie pas comment dire est mis en œuvre. 622 01:12:56,280 --> 01:12:58,620 Je me soucie seulement que le chat peut dire quelque chose. 623 01:12:58,620 --> 01:13:02,720 Je peux abstraire ce détail et seulement se concentrer sur ce qui est sur l'écran ici. 624 01:13:02,720 --> 01:13:04,400 Mais je peux prendre un peu plus loin. 625 01:13:04,400 --> 01:13:08,070 >> Notez que ici, je dois mis en œuvre la boucle trois fois. 626 01:13:08,070 --> 01:13:11,560 Mais si je prends la place de cette version? 627 01:13:11,560 --> 01:13:14,640 Et si au lieu dans cette version ici, 628 01:13:14,640 --> 01:13:18,730 Je viens de changer ma pièce de puzzle à prendre un argument et entrée à elle-même? 629 01:13:18,730 --> 01:13:21,100 Et cette entrée peut être un nombre comme trois. 630 01:13:21,100 --> 01:13:24,580 Alors maintenant, si je vous écris un programme et je veux que le chat à tousser, 631 01:13:24,580 --> 01:13:28,270 Je peux effectivement dire le casse-tête reconstituer le nombre de fois à la toux, 632 01:13:28,270 --> 01:13:31,990 parce qu'au fond ici, un amateur version de ces pièces de puzzle personnalisé 633 01:13:31,990 --> 01:13:34,500 me permet de préciser que la toux prend effectivement 634 01:13:34,500 --> 01:13:36,951 un input-- prend un argument comme celui-ci. 635 01:13:36,951 --> 01:13:37,700 Et tu sais quoi? 636 01:13:37,700 --> 01:13:38,890 Peut-être que je me rends compte, attendez une minute. 637 01:13:38,890 --> 01:13:40,680 Tousser est le same-- il est fondamentalement 638 01:13:40,680 --> 01:13:42,120 la même idée que les éternuements. 639 01:13:42,120 --> 01:13:44,040 Il est juste un autre mot sur l'écran. 640 01:13:44,040 --> 01:13:46,550 Je peux abstraire plus loin et mettre en œuvre 641 01:13:46,550 --> 01:13:48,750 cette version finale d'un toux, qui à première vue 642 01:13:48,750 --> 01:13:50,660 est beaucoup plus complexe à la recherche. 643 01:13:50,660 --> 01:13:52,140 Mais ce que je remarque ai fait. 644 01:13:52,140 --> 01:13:55,930 J'ai maintenant generalized-- genericized really-- cette pièce de puzzle 645 01:13:55,930 --> 01:13:59,900 d'être appelé disent mot n fois. 646 01:13:59,900 --> 01:14:04,410 >> Et maintenant, j'ai deux nouvelles pièces de puzzle ici définir la toux n fois. 647 01:14:04,410 --> 01:14:06,790 Et qu'est-ce que la fonction de la toux faire? 648 01:14:06,790 --> 01:14:08,420 Qu'est-ce que ma coutume pièce de puzzle faire? 649 01:14:08,420 --> 01:14:11,996 Il appelle simplement le bloc de dire, passant dans le mot que je veux dire, 650 01:14:11,996 --> 01:14:13,870 passant du nombre de fois que je veux dire. 651 01:14:13,870 --> 01:14:18,210 Parce que maintenant je peux mettre en œuvre éternuer en disant simplement achoo, 652 01:14:18,210 --> 01:14:20,320 dans ce cas, un certain nombre de fois. 653 01:14:20,320 --> 01:14:22,360 >> Et donc je suis la superposition et la superposition. 654 01:14:22,360 --> 01:14:25,690 Et encore une fois, la clé ici est pas comment je mis en œuvre, mais le fait 655 01:14:25,690 --> 01:14:28,070 que si je viens littéralement déplacer ceux-ci hors de l'écran, 656 01:14:28,070 --> 01:14:31,280 regarder comment simple sinon joli mon programme ressemble maintenant. 657 01:14:31,280 --> 01:14:33,930 Parce qu'il fait ce qu'il dit, je suis abstrait 658 01:14:33,930 --> 01:14:37,640 loin de ce qui est à l'intérieur de cette boîte noire. il arrive à être une boîte violette ici, 659 01:14:37,640 --> 01:14:41,430 mais je l'ai obstrué loin ce qui est à l'intérieur parce que je ne me soucie pas comment cela fonctionne. 660 01:14:41,430 --> 01:14:43,650 Je me soucie seulement maintenant que cela fonctionne. 661 01:14:43,650 --> 01:14:46,375 >> Et en effet, dans le problème mis à zéro, c'est exactement 662 01:14:46,375 --> 01:14:49,250 le genre de superposition des idées que vous aurez ont la possibilité d'explorer. 663 01:14:49,250 --> 01:14:53,510 Il est exactement l'occasion de appliquer les techniques de résolution de problèmes, 664 01:14:53,510 --> 01:14:55,550 à ce qui est sans doute une environnement inconnu. 665 01:14:55,550 --> 01:14:57,890 Et si vous ne l'avez pas programmé avant ou programmé, 666 01:14:57,890 --> 01:14:59,500 vous trouverez qu'il ya un petit quelquechose 667 01:14:59,500 --> 01:15:00,874 dans cet environnement pour tout le monde. 668 01:15:00,874 --> 01:15:02,770 Et avec problème posé l'un dans le temps d'une semaine, 669 01:15:02,770 --> 01:15:06,630 nous serons passés à se concentrer sur un langage de niveau supérieur appelé 670 01:15:06,630 --> 01:15:09,290 C-- ou plutôt un faible langue de niveau appelé 671 01:15:09,290 --> 01:15:11,347 C-- qui est encore plus puissant, même si elle est 672 01:15:11,347 --> 01:15:12,930 un peu plus cryptique au premier coup d'œil. 673 01:15:12,930 --> 01:15:16,740 >> Et vous vous rendrez compte par la TL d'aujourd'hui: DR, que ce problème posé a une plus courte 674 01:15:16,740 --> 01:15:19,880 fenêtre de temps que celles à venir, tout simplement parce que vous devriez trouver assez 675 01:15:19,880 --> 01:15:20,420 accessible. 676 01:15:20,420 --> 01:15:22,211 Et ne vous inquiétez pas si vous ajoutez la classe en retard. 677 01:15:22,211 --> 01:15:23,920 Nous allons aborder cela avant longtemps. 678 01:15:23,920 --> 01:15:28,480 Et avant de lever la séance pour le gâteau, nous allons finir avec juste un regard de deux minutes 679 01:15:28,480 --> 01:15:30,500 à ce qui vous attend ici à CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUSIC PLAYING] 682 01:17:20,803 --> 01:17:21,302 D'accord. 683 01:17:21,302 --> 01:17:22,690 Voilà pour CS50. 684 01:17:22,690 --> 01:17:23,650 Nous vous reverrons bientôt. 685 01:17:23,650 --> 01:17:25,526 Gâteau est maintenant servi. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUSIC PLAYING] 688 01:18:14,267 --> 01:18:16,350 ENCEINTE 17: Avez-vous entendu d'un congé sabbatique, chef? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 ENCEINTE 18: Peut-être il y a plus sous le capot. 691 01:18:31,920 --> 01:18:38,279