1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Jouer de la musique] 3 00:00:10,830 --> 00:00:12,080 [MUSIQUE - ROSSINI, "Ranz des VACHES "de Guillaume Tell] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIQUE - THE BEAT ANGLAIS, "MARS DES CHEFS Swivel "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Applaudissements et des acclamations] 8 00:02:31,510 --> 00:02:33,520 >> DAVID MALAN: Donc, c'est CS50. 9 00:02:33,520 --> 00:02:34,730 Mon nom est David Malan. 10 00:02:34,730 --> 00:02:39,250 Et 73% d'entre vous n'ont aucune expérience préalable avec l'informatique, 11 00:02:39,250 --> 00:02:41,300 contrairement à ce que vous pourriez penser. 12 00:02:41,300 --> 00:02:45,290 Donc, aujourd'hui, nous avons pensé gruger à ce manque de connaissance, mais aussi 13 00:02:45,290 --> 00:02:48,970 vous donner une idée de, pour ceux d'entre vous avec plus de confort, quelles directions 14 00:02:48,970 --> 00:02:50,550 vous pouvez aller ce semestre. 15 00:02:50,550 --> 00:02:51,890 >> Donc, nous allons commencer avec ça. 16 00:02:51,890 --> 00:02:55,490 Je n'ai vraiment aucune idée de ce qui est à l'intérieur de un ordinateur, même si, comme vous, je 17 00:02:55,490 --> 00:02:56,780 utiliser tous les jours. 18 00:02:56,780 --> 00:03:00,000 Mais c'est une sorte de boîte, et il ya pas beaucoup d'entrées en elle. 19 00:03:00,000 --> 00:03:01,350 Au minimum, il ya, quoi? 20 00:03:01,350 --> 00:03:03,120 Probablement un cordon d'alimentation. 21 00:03:03,120 --> 00:03:06,640 >> Et en effet, avec ce seul ingrédient, électricité, nous semblons être capables de 22 00:03:06,640 --> 00:03:09,490 faire un peu ces jours-ci. 23 00:03:09,490 --> 00:03:12,130 Mais à la fin de la journée, nous avoir à représenter les choses 24 00:03:12,130 --> 00:03:12,860 que nous nous soucions. 25 00:03:12,860 --> 00:03:15,240 Nous devons représenter l'information dans une certaine forme. 26 00:03:15,240 --> 00:03:18,365 Et vous êtes probablement au moins vaguement familiarisés avec l'idée de binaire ou 27 00:03:18,365 --> 00:03:21,370 morceaux raison ou une autre, les ordinateurs réduit à zéros et de uns. 28 00:03:21,370 --> 00:03:26,320 Mais pouvons-nous accepter cela et au moins mettre un peu de lumière à ce sujet? 29 00:03:26,320 --> 00:03:28,880 >> Je n'ai donc ces petits lampes de bureau ici. 30 00:03:28,880 --> 00:03:30,450 J'ai une prise électrique ici. 31 00:03:30,450 --> 00:03:33,930 Et je vais proposer que l'intérieur mon ordinateur est au moins l'un des 32 00:03:33,930 --> 00:03:37,300 ces choses, quelque chose capable d'être activé ou désactivé. 33 00:03:37,300 --> 00:03:40,200 Dans ce cas, c'est en effet une lampe de bureau, mais au niveau inférieur, c'est quelque chose 34 00:03:40,200 --> 00:03:41,500 un transistor appelé. 35 00:03:41,500 --> 00:03:44,730 >> Mais dans notre monde, c'est une lampe de bureau, de sorte Je vais aller de l'avant et brancher ce 36 00:03:44,730 --> 00:03:47,990 dans mon électricité ici. 37 00:03:47,990 --> 00:03:52,970 Et je prétends que l'utilisation de cette simple, dispositif simple, cet interrupteur simple, je 38 00:03:52,970 --> 00:03:54,850 peut représenter l'information. 39 00:03:54,850 --> 00:03:58,090 Par exemple, en ce moment, je suis représente rien, non? 40 00:03:58,090 --> 00:04:01,820 Je représente ce que j'appellerai 0 ou faux, à l'opposé de quelque chose 41 00:04:01,820 --> 00:04:03,130 réellement être présent. 42 00:04:03,130 --> 00:04:07,050 Mais si je retourne simplement ce commutateur, maintenant j'ai représenté un 1. 43 00:04:07,050 --> 00:04:10,720 Donc, en utilisant cette très simple morceau de mémoire, si vous voulez, je peux représenter 44 00:04:10,720 --> 00:04:11,450 informations. 45 00:04:11,450 --> 00:04:14,350 >> Maintenant, malheureusement, mon ordinateur ne peut pas faire que ça. 46 00:04:14,350 --> 00:04:17,430 Il ne peut représenter deux valeurs dans le monde entier - 47 00:04:17,430 --> 00:04:18,620 0 ou 1. 48 00:04:18,620 --> 00:04:21,839 Mais ce qui est une solution évidente, maintenant, si nous voulons élargir notre ordinateur de 49 00:04:21,839 --> 00:04:25,120 la mémoire et représenter plus pas seulement 0 et 1? 50 00:04:25,120 --> 00:04:27,060 >> Eh bien, nous allons prendre un autre exemple bit. 51 00:04:27,060 --> 00:04:30,260 Nous allons prendre un autre interrupteur, un autre transistor, mais que vous aimeriez 52 00:04:30,260 --> 00:04:31,130 penser. 53 00:04:31,130 --> 00:04:34,170 Permettez-moi d'aller de l'avant et le brancher dans mon ordinateur ainsi. 54 00:04:34,170 --> 00:04:38,270 Et je vais demander, maintenant, que par avec un peu plus d'électricité et 55 00:04:38,270 --> 00:04:42,290 tournant plus de ces commutateurs et off, je peux représenter plus comme 56 00:04:42,290 --> 00:04:43,020 informations. 57 00:04:43,020 --> 00:04:44,660 >> Alors maintenant, c'est 1. 58 00:04:44,660 --> 00:04:48,120 Si je veux représenter maintenant 2, je pouvais le faire. 59 00:04:48,120 --> 00:04:51,510 Mais généralement, convention, comme nous le verrons finalement voir, aura-moi faire. 60 00:04:51,510 --> 00:04:55,260 Donc, c'est 0, c'est 1. 61 00:04:55,260 --> 00:04:56,720 Ce serait 2. 62 00:04:56,720 --> 00:04:59,920 Et sans surprise, ce serait 3. 63 00:04:59,920 --> 00:05:02,610 >> C'est de cette façon, encore, peut nous comptons vous encore? 64 00:05:02,610 --> 00:05:06,500 Si je reçois un troisième bit, un troisième commutateur, quel est le nombre le plus élevé Je peux maintenant 65 00:05:06,500 --> 00:05:09,720 compter jusqu'à de 0? 66 00:05:09,720 --> 00:05:12,020 Donc 7 si je commence à 0, non? 67 00:05:12,020 --> 00:05:15,980 Parce que si je tourne cette lumière et effectivement brancher cette troisième et dernière 68 00:05:15,980 --> 00:05:20,090 Lumière dans ma prise de courant ici, alors j'ai la capacité à représenter 69 00:05:20,090 --> 00:05:24,930 aucun des deux valeurs ici, deux valeurs ici, deux valeurs ici - 70 00:05:24,930 --> 00:05:32,610 et si je peux représenter 2 fois 2 fois 2, ou huit valeurs possibles. 71 00:05:32,610 --> 00:05:36,340 Et si je commence comptabilité à 0, alors c'est 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Donc, ce binaire. 73 00:05:37,480 --> 00:05:39,420 C'est vraiment aussi simple que cela. 74 00:05:39,420 --> 00:05:41,930 Et je dirais que c'est en fait tout à fait familier à la plupart 75 00:05:41,930 --> 00:05:43,180 tout le monde dans cette salle. 76 00:05:43,180 --> 00:05:45,710 Permettez-moi d'aller de l'avant et d'ouvrir une petit éditeur de texte ici. 77 00:05:45,710 --> 00:05:49,040 >> Et vous souvenez peut-être de l'école primaire que nous avions des choses comme les centaines 78 00:05:49,040 --> 00:05:51,970 , le lieu des dizaines, et celles endroit. 79 00:05:51,970 --> 00:05:55,040 Et rappeler que si vous aviez quelque décimal nombre, comme quelque chose au hasard 80 00:05:55,040 --> 00:05:59,470 comme 123, vous le feriez essentiellement écrire que dans la forme 81 00:05:59,470 --> 00:06:00,450 de ces trois colonnes. 82 00:06:00,450 --> 00:06:04,070 Et pourquoi est 1, 2, 3 ce qui nous savons que 123? 83 00:06:04,070 --> 00:06:11,220 Eh bien, dans la colonne de gauche, nous avons un 100 plus deux 10s, donc c'est 120, 84 00:06:11,220 --> 00:06:14,250 plus trois 1s, de sorte que c'est 123. 85 00:06:14,250 --> 00:06:17,990 >> Maintenant, ce monde que nous venons illuminés est exactement le même que 86 00:06:17,990 --> 00:06:21,150 vous avez été au courant depuis des années, Sauf que maintenant, nos colonnes 87 00:06:21,150 --> 00:06:22,060 ne sont pas des puissances de 10. 88 00:06:22,060 --> 00:06:23,780 Ils sont juste des puissances de 2. 89 00:06:23,780 --> 00:06:27,830 Ainsi, alors que c'est la position des unités, ce va être l'endroit deux, c'est 90 00:06:27,830 --> 00:06:29,540 va être la place des pattes. 91 00:06:29,540 --> 00:06:33,260 >> Et parce que je suis seulement en utilisant le plus simple de mécanismes visant à faire changer les choses 92 00:06:33,260 --> 00:06:37,100 sur et en dehors - électricité coule ou de l'électricité ne circule pas - 93 00:06:37,100 --> 00:06:40,880 Je n'ai pas tout à fait la même expression gamme de 0 à neuf. 94 00:06:40,880 --> 00:06:43,270 Nous allons garder super simple dans ce monde de l'informatique. 95 00:06:43,270 --> 00:06:45,060 J'ai seulement 0 ou 1 - 96 00:06:45,060 --> 00:06:47,890 éteint ou allumé, vrai ou faux. 97 00:06:47,890 --> 00:06:52,610 >> Et donc ce que je représente en ce moment est égal à 1, 1, 1, parce que chacun de ceux-ci 98 00:06:52,610 --> 00:06:54,000 lumières sont allumées. 99 00:06:54,000 --> 00:06:59,600 Eh bien, cela me donne une 4 plus un 2, donc c'est 6, plus un 1, et c'est 7. 100 00:06:59,600 --> 00:07:03,450 Et ergo fait cette séquence de trois bits représentent le nombre 7. 101 00:07:03,450 --> 00:07:06,330 >> Donc, tout ce temps, à l'intérieur de votre ordinateur, ont été un certain nombre de 102 00:07:06,330 --> 00:07:08,090 transistors, un nombre de bits. 103 00:07:08,090 --> 00:07:10,380 Mais à la fin de la journée, nous peut représenter l'information 104 00:07:10,380 --> 00:07:12,560 aussi simple que cela. 105 00:07:12,560 --> 00:07:16,770 Maintenant, malheureusement, nous avons seulement compté jusqu'à 7 CS50 jusqu'ici, mais 106 00:07:16,770 --> 00:07:18,550 j'espère que nous pourrons faire un peu mieux que cela. 107 00:07:18,550 --> 00:07:19,550 Et en effet, nous le pouvons. 108 00:07:19,550 --> 00:07:23,570 >> Supposons que nous, les humains juste arbitrairement décidé que nous allons 109 00:07:23,570 --> 00:07:28,750 d'associer les nombres comme 1 et 2, 3, 4, 5, 6, 7, par des lettres particulières de 110 00:07:28,750 --> 00:07:29,410 l'alphabet. 111 00:07:29,410 --> 00:07:32,350 Et pour des raisons historiques, je vais commence quelque peu arbitraire, mais je suis 112 00:07:32,350 --> 00:07:36,880 allez dire, les humains, nous allons décider d'une norme à l'échelle mondiale, qui 113 00:07:36,880 --> 00:07:43,200 65 représente le nombre de la lettre A. 66 représentera B. Dot, point, point. 114 00:07:43,200 --> 00:07:45,140 90 représentera la lettre Z. 115 00:07:45,140 --> 00:07:48,000 >> Et supposons que, si nous mettons vraiment quelque pensée en elle, nous pourrions venir 116 00:07:48,000 --> 00:07:50,860 avec des numéros de points d'exclamation et les minuscules, et en effet, 117 00:07:50,860 --> 00:07:52,710 d'autres personnes l'ont fait pour nous. 118 00:07:52,710 --> 00:07:56,410 Alors maintenant, nous avons eu des bits avec laquelle nous pouvons Les chiffres représentent, les numéros avec lesquels 119 00:07:56,410 --> 00:08:00,130 nous pouvons représenter les lettres, et avec lettres peuvent nous maintenant commencer à composer 120 00:08:00,130 --> 00:08:02,650 e-mails et des caractères d'imprimerie sur l'écran. 121 00:08:02,650 --> 00:08:05,850 >> Alors laissez-moi vous invite, si je le pouvais, huit courageux bénévoles - 122 00:08:05,850 --> 00:08:09,200 qui ne me dérange pas apparaître non seulement devant la caméra, mais sur l'internet - 123 00:08:09,200 --> 00:08:13,130 de venir ici et de représenter huit tels bits, plutôt que trois. 124 00:08:13,130 --> 00:08:14,380 Alors que diriez-vous d'une, deux? 125 00:08:14,380 --> 00:08:16,290 Que diriez-vous trois? 126 00:08:16,290 --> 00:08:20,230 Que diriez-quatre à la lumière bleu, cinq à la fin? 127 00:08:20,230 --> 00:08:21,250 À propos de quelqu'un ici? 128 00:08:21,250 --> 00:08:25,320 Six en face, sept en avant, et huit en avant, aussi bien. 129 00:08:25,320 --> 00:08:29,050 >> Donc, je viens donc arrivé de se préparer avec tout un tas de bouts de papier. 130 00:08:29,050 --> 00:08:34,150 Et sur ces morceaux de papier sont des nombres qui représentent les colonnes 131 00:08:34,150 --> 00:08:35,809 vous les gars vont représenter. 132 00:08:35,809 --> 00:08:36,740 Ainsi, vous serez - quel est ton nom? 133 00:08:36,740 --> 00:08:37,570 >> ETUDIANT: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID MALAN: Anna Leah, vous sera la colonne 128s. 135 00:08:40,370 --> 00:08:41,059 Vous êtes? 136 00:08:41,059 --> 00:08:41,510 >> ETUDIANT: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID MALAN: Chris être la colonne 64s. 138 00:08:43,620 --> 00:08:44,070 Vous êtes? 139 00:08:44,070 --> 00:08:44,540 >> ETUDIANT: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID MALAN: Dan être la colonne 32s. 141 00:08:46,970 --> 00:08:47,470 >> ETUDIANT: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID MALAN: Pramit volonté la colonne de 16s. 143 00:08:49,430 --> 00:08:50,290 >> ETUDIANT: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID MALAN: Lillian sera le 8s. 145 00:08:51,904 --> 00:08:52,768 >> ETUDIANT: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID MALAN: Jill la colonne 4s. 147 00:08:55,025 --> 00:08:55,400 >> ETUDIANT: Marie. 148 00:08:55,400 --> 00:08:57,000 >> DAVID MALAN: Marie seront les 2s, et? 149 00:08:57,000 --> 00:08:57,470 >> ETUDIANT: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID MALAN: David volonté la colonne 1 s. 151 00:08:59,220 --> 00:09:02,030 Donc, si vous pouviez intervenir un peu avant de sorte que tout le monde peut voir. 152 00:09:02,030 --> 00:09:05,370 Que vous les gars ne voyez pas, c'est que sur le Fort de ces bouts de papier est une 153 00:09:05,370 --> 00:09:09,760 petite antisèche qui est sur le point d' instruire ces huit bits soit 154 00:09:09,760 --> 00:09:12,380 lever la main ou pas lever la main. 155 00:09:12,380 --> 00:09:14,100 Si leur part augmente, ils sont représentant un 1. 156 00:09:14,100 --> 00:09:17,120 Si la main reste en bas, ils sont ce qui représente un 0. 157 00:09:17,120 --> 00:09:21,410 >> En attendant, nous devrions être le public en mesure de déterminer, sur la base de cette 158 00:09:21,410 --> 00:09:26,490 la cartographie, ce mot de trois lettres ces les gens sont sur le point d'épeler. 159 00:09:26,490 --> 00:09:29,700 Donc, en un instant, vous allez lire la première ligne de l'arrière d' 160 00:09:29,700 --> 00:09:32,880 votre feuille de triche, et vous êtes soit va augmenter ou pas, levez la main. 161 00:09:32,880 --> 00:09:35,710 Si vous êtes un 1, vous soulevez, si vous êtes un 0, vous vous tenez là 162 00:09:35,710 --> 00:09:38,594 maladroitement, juste comme ça. 163 00:09:38,594 --> 00:09:40,386 Allez. 164 00:09:40,386 --> 00:09:43,945 Quel numéro, d'abord et avant tout, sont ces gars-là représentent? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, non? 168 00:09:49,560 --> 00:09:52,400 Nous avons un 1 dans la colonne 64s, un 1 dans la colonne de 2s. 169 00:09:52,400 --> 00:09:56,340 Cela me donne 66, de sorte que semble de représenter B. Donc, 170 00:09:56,340 --> 00:09:57,075 vous les gars ont précisé - 171 00:09:57,075 --> 00:09:58,300 OK, ça suffit. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Alors maintenant, passons sur notre deuxième lettre. 174 00:10:01,610 --> 00:10:03,530 Allez. 175 00:10:03,530 --> 00:10:06,860 Qui est le plus rapide en maths ici? 176 00:10:06,860 --> 00:10:07,750 Donc 79. 177 00:10:07,750 --> 00:10:11,840 Encore une fois, si l'on additionne toutes les colonnes dans lequel il ya un 1, actuellement, seulement 178 00:10:11,840 --> 00:10:14,840 comme nous l'avons fait auparavant avec le plus simple d'exemples de 7, nous maintenant 179 00:10:14,840 --> 00:10:16,140 obtenir le nombre 79. 180 00:10:16,140 --> 00:10:19,910 Qui, selon notre cartographie est l' lettre O. Donc, nous y sommes presque. 181 00:10:19,910 --> 00:10:22,590 B, O. Enfin, allez. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Que représentent-ils maintenant? 184 00:10:30,120 --> 00:10:31,370 Moins consensus. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 C'est juste un murmure absolue. 187 00:10:36,460 --> 00:10:40,090 Oui, c'est en fait 87. 188 00:10:40,090 --> 00:10:40,490 Bon. 189 00:10:40,490 --> 00:10:44,480 >> Donc, si nous traçons maintenant remonté à - disons commencer à appeler notre table ASCII, 190 00:10:44,480 --> 00:10:46,450 Code américain normalisé pour L'échange d'information. 191 00:10:46,450 --> 00:10:47,700 Cela nous donne la lettre - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 pas "bo" mais "arc". Et c'est un parfait cue pour vous les gars de Take A Bow 194 00:10:54,810 --> 00:10:56,100 et la tête sur le dos. 195 00:10:56,100 --> 00:10:56,980 Merci beaucoup. 196 00:10:56,980 --> 00:10:57,886 >> [Applaudissements] 197 00:10:57,886 --> 00:10:59,136 >> DAVID MALAN: Vous pouvez les garder. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Bien en fait, serait-on comme une lampe de bureau, aussi? 200 00:11:05,942 --> 00:11:07,300 >> [HOOT de l'auditoire] 201 00:11:07,300 --> 00:11:08,390 >> DAVID MALAN: Lampe de bureau? 202 00:11:08,390 --> 00:11:10,850 >> [Rires] 203 00:11:10,850 --> 00:11:11,860 >> DAVID MALAN: Vraiment? 204 00:11:11,860 --> 00:11:13,230 Lampes de bureau pour tout le monde? 205 00:11:13,230 --> 00:11:14,310 Très bien. 206 00:11:14,310 --> 00:11:20,990 Donc, en commençant par le plus simple des principes, nous avons maintenant non seulement compté 207 00:11:20,990 --> 00:11:24,750 à partir de 0 tout le chemin jusqu'à 7, nous avons supposé que, tout en jetant plus 208 00:11:24,750 --> 00:11:28,080 bits ou plus lumières ou plusieurs transistors à ce problème, nous pouvons 209 00:11:28,080 --> 00:11:32,680 représenter des nombres plus en plus gros, et Ergo, gammes de plus en plus gros 210 00:11:32,680 --> 00:11:33,780 alphabets, comme l'anglais. 211 00:11:33,780 --> 00:11:37,770 Et prenons la foi pour aujourd'hui qui pourrait même nous commençons à 212 00:11:37,770 --> 00:11:42,220 représenter graphiques et vidéo et tout certain nombre d'autres médias avec lesquels nous sommes 213 00:11:42,220 --> 00:11:43,610 connaissent aujourd'hui. 214 00:11:43,610 --> 00:11:49,240 >> Donc, c'est CS50, et dans cette classe à côté de vous sont, encore une fois, un très grand nombre 215 00:11:49,240 --> 00:11:53,050 camarades de classe qui ont le moins l'expérience que vous. 216 00:11:53,050 --> 00:11:57,730 Et je dis cela seulement parce que très souvent, notamment en tant que récemment comme l'un des 217 00:11:57,730 --> 00:12:01,860 la première année et à conseiller les événements La deuxième année du printemps dernier conseil 218 00:12:01,860 --> 00:12:06,420 événement, nous entendons souvent des étudiants déclinent en venant à la table CS, eh bien, 219 00:12:06,420 --> 00:12:10,070 J'ai pensé à prendre ce classe intro, mais je ne suis pas vraiment un 220 00:12:10,070 --> 00:12:11,120 La personne à l'ordinateur. 221 00:12:11,120 --> 00:12:13,220 Or, tout le monde, mais sûrement sait plus que moi. 222 00:12:13,220 --> 00:12:17,340 Et j'ai mis cela dans la plus grande police possible, de transmettre ce message que 223 00:12:17,340 --> 00:12:18,730 ce n'est pas vraiment le cas. 224 00:12:18,730 --> 00:12:21,100 >> Et si vous vous demandez, si J'ai, en effet, d'être ici? 225 00:12:21,100 --> 00:12:25,950 Sachez que non seulement il est de ce cours titre Introduction à l'informatique 226 00:12:25,950 --> 00:12:31,740 Science, il est Introduction à l'informatique Sciences I. Donc, il est en effet 227 00:12:31,740 --> 00:12:33,170 une seconde une telle introduction. 228 00:12:33,170 --> 00:12:35,390 Donc vous n'êtes pas, en fait, au mauvais endroit. 229 00:12:35,390 --> 00:12:39,000 Et parmi les objectifs que j'ai pour aujourd'hui sont pour apaiser ces inquiétudes vous 230 00:12:39,000 --> 00:12:42,430 pourrait avoir, mais aussi de dresser un image de ce qui est en magasin pour 231 00:12:42,430 --> 00:12:45,720 étudiants de moins et plus confortable Identique dans ce cours. 232 00:12:45,720 --> 00:12:49,320 >> Mais d'abord, un mot sur l'un des documents vous avez aujourd'hui, parmi lesquels 233 00:12:49,320 --> 00:12:50,780 Un certain nombre de questions fréquentes. 234 00:12:50,780 --> 00:12:54,290 Ça a été une vision qui est le nôtre depuis un certain temps maintenant d'introduire un nouveau classement 235 00:12:54,290 --> 00:12:57,010 possibilité dans ce cours - à savoir, SAT / UNSAT. 236 00:12:57,010 --> 00:13:01,930 Philosophiquement, pour moi, c'est beaucoup, beaucoup, beaucoup plus important que le 237 00:13:01,930 --> 00:13:05,050 élèves de cette classe s'engager avec le matériel, être contestée par le 238 00:13:05,050 --> 00:13:09,800 matériel, et s'inquiéter beaucoup, beaucoup moins sur la mécanique des scores réels 239 00:13:09,800 --> 00:13:12,590 et les notes en lettres au semestre de fin, mais vraiment embrasser l' 240 00:13:12,590 --> 00:13:13,970 cours et son matériel. 241 00:13:13,970 --> 00:13:18,140 Et vraiment cela se sent, plus généralement, pour ce qui est intéressant pour eux, 242 00:13:18,140 --> 00:13:21,390 se sentir menacés et récompensés mais sans peur de l'échec. 243 00:13:21,390 --> 00:13:25,030 >> Et en effet, cela aussi est un thème récurrent dans ce thème et d'autres d'introduction 244 00:13:25,030 --> 00:13:28,680 cours dans d'autres domaines, que vous avez cette appréhension quand il s'agit de 245 00:13:28,680 --> 00:13:31,040 mettre ses orteils dans des eaux inconnues. 246 00:13:31,040 --> 00:13:34,880 Moi-même, en 1995, était un étudiant de première année. 247 00:13:34,880 --> 00:13:37,990 J'étais très concentrée à être un concentrateur Gov ici. 248 00:13:37,990 --> 00:13:41,060 Et pourtant, j'ai toujours grandi avec un peu d'une participation dans l'informatique. 249 00:13:41,060 --> 00:13:42,180 J'ai toujours été curieux. 250 00:13:42,180 --> 00:13:47,610 >> Mais à l'époque, même, j'ai eu cette peur de même de mettre le pied dans CS50, tellement 251 00:13:47,610 --> 00:13:49,420 de sorte que je n'ai même pas des emplettes il première année. 252 00:13:49,420 --> 00:13:53,460 Et la seule raison pour laquelle j'ai mis un pied dans la porte l'année de sophomore parce que je 253 00:13:53,460 --> 00:13:55,340 a été autorisé à prendre réussite / échec. 254 00:13:55,340 --> 00:13:58,920 Mais même réussite / échec exigé que je reçois le courage de prendre rendez-vous 255 00:13:58,920 --> 00:14:01,970 avec le professeur Kernehan à l'époque, apporter cette grande feuille de papier et demandez 256 00:14:01,970 --> 00:14:04,470 lui pour sa signature et son permission d'explorer 257 00:14:04,470 --> 00:14:05,700 ces eaux inconnues. 258 00:14:05,700 --> 00:14:09,030 >> Et il n'a pas aidé ces dernières années que quand vous le faites en CS50, lorsque nous 259 00:14:09,030 --> 00:14:12,500 l'habitude d'être de réussite / échec, même serait des dizaines ou des centaines de vos camarades de classe 260 00:14:12,500 --> 00:14:15,970 avoir à venir, à Dieu ne plaise, à l' devant Sanders avec ce formulaire, qui 261 00:14:15,970 --> 00:14:19,520 dans certains esprits représente une incapacité, J'ose le dire, pour effectuer 262 00:14:19,520 --> 00:14:20,800 sont le niveau de vos pairs. 263 00:14:20,800 --> 00:14:23,410 Ce qui est ridicule, mais je ne pense il ya cette mentalité. 264 00:14:23,410 --> 00:14:27,210 Et il n'ya jamais eu dans cette culture de SAT / UNSAT ou réussite / échec plus 265 00:14:27,210 --> 00:14:30,610 généralement, dans ce cours, ou vraiment sur ce campus. 266 00:14:30,610 --> 00:14:32,310 >> Ainsi, cette année nous avons changé cela. 267 00:14:32,310 --> 00:14:35,630 Je serais ravi de moitié cette classe ou plus fin 268 00:14:35,630 --> 00:14:38,700 par prendre CS50 SAT / UNSAT. 269 00:14:38,700 --> 00:14:42,130 Dans un délai d'un an, ce serait merveilleux si presque tout le monde est. 270 00:14:42,130 --> 00:14:44,410 Par la suite, peut-être que nous allons travailler sur les notes en lettres à Harvard 271 00:14:44,410 --> 00:14:45,480 Collège manière plus générale. 272 00:14:45,480 --> 00:14:48,900 Mais pour l'instant, nous allons faire cela au sein de notre propre sphère, et je voudrais chaleureusement 273 00:14:48,900 --> 00:14:53,400 vous invitons à consulter les FAQ et poser des questions comme bon vous semble, de sorte que 274 00:14:53,400 --> 00:14:58,000 j'espère que vous, contrairement à moi, ne sera pas tout à fait avoir le même facteur de la peur lorsque 275 00:14:58,000 --> 00:15:01,040 explorer ce qui est probablement un lieu inconnu. 276 00:15:01,040 --> 00:15:02,786 >> Alors, quelle est CS50? 277 00:15:02,786 --> 00:15:06,150 Il s'agit d'une introduction à l' entreprises intellectuelles de l'ordinateur 278 00:15:06,150 --> 00:15:07,700 la science et l'art de la programmation. 279 00:15:07,700 --> 00:15:08,770 Mais qu'est-ce que cela signifie vraiment? 280 00:15:08,770 --> 00:15:12,510 >> Eh bien, jusqu'à présent, nous avons parlé très brièvement de représenter l'information. 281 00:15:12,510 --> 00:15:15,070 Mais supposons que nous voulons réellement de faire quelque chose avec elle. 282 00:15:15,070 --> 00:15:17,890 Nous avons besoin d'introduire la notion de ce que nous appellerons un algorithme. 283 00:15:17,890 --> 00:15:21,540 Un algorithme est une procédure, d'un processus, un ensemble d'instructions pour 284 00:15:21,540 --> 00:15:22,780 faire quelque chose. 285 00:15:22,780 --> 00:15:25,620 >> Et un algorithme peut être quelque chose super simple. 286 00:15:25,620 --> 00:15:28,660 Par exemple, un exemple que certains d'entre vous connaissent peut-être est-ce 287 00:15:28,660 --> 00:15:29,350 chose ici. 288 00:15:29,350 --> 00:15:32,510 Alors ce livre est ici de plus en plus daté, mais il était une fois, il 289 00:15:32,510 --> 00:15:34,720 contenue tout un tas de noms et numéros de téléphone. 290 00:15:34,720 --> 00:15:37,710 Et en effet, si je voulais trouver quelqu'un dans ce répertoire - 291 00:15:37,710 --> 00:15:39,800 dire, quelqu'un du nom de Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Je ne pouvais trouver Mike Smith dans un certain nombre des moyens assez simples. 293 00:15:43,810 --> 00:15:47,700 Je pourrais commencer par le commencement et passer à la page 1, pas là. 294 00:15:47,700 --> 00:15:49,240 Page 2, pas là. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 Est-ce que l'algorithme est que processus, c'est exact? 297 00:15:53,430 --> 00:15:54,620 >> Donc, il est correct, non? 298 00:15:54,620 --> 00:15:58,070 Je suis un peu un idiot pour faire en de cette manière, mais finalement je vais 299 00:15:58,070 --> 00:16:02,670 trouver le nom de famille S, et nous espérons que Mike C'est dans cette section, et je deviendrai 300 00:16:02,670 --> 00:16:04,100 fait avec mon algorithme. 301 00:16:04,100 --> 00:16:05,440 Mais assurément ce n'est pas intuitive. 302 00:16:05,440 --> 00:16:08,020 La plupart de chaque homme raisonnable dans ce chambre n'aurait pas fait cela. 303 00:16:08,020 --> 00:16:10,180 Qu'auriez-vous fait? 304 00:16:10,180 --> 00:16:11,480 >> Vous auriez allé directement au milieu, à droite? 305 00:16:11,480 --> 00:16:12,000 À peu près au milieu. 306 00:16:12,000 --> 00:16:16,310 Et vous vous rendez compte, oh, ce sont les Mme Donc, Mike Smith, le dernier nom étant Smith, 307 00:16:16,310 --> 00:16:19,050 n'est pas, de toute évidence, puis dans l' la moitié gauche de l'ouvrage. 308 00:16:19,050 --> 00:16:21,040 Il doit être orienté vers le S est dans la droite. 309 00:16:21,040 --> 00:16:24,090 Et à ce stade, même si la plupart d'entre nous ne faites pas cela dans la réalité, nous pouvons 310 00:16:24,090 --> 00:16:27,125 littéralement déchirer ce problème en deux. 311 00:16:27,125 --> 00:16:27,640 >> [Acclamations et applaudissements] 312 00:16:27,640 --> 00:16:28,950 >> DAVID MALAN: Merci. 313 00:16:28,950 --> 00:16:30,150 >> [Acclamations et applaudissements] 314 00:16:30,150 --> 00:16:34,660 >> DAVID MALAN: Vous pouvez littéralement déchirer cette problème dans la moitié, me laissant avec, 315 00:16:34,660 --> 00:16:36,120 littéralement, un problème à moitié aussi grand. 316 00:16:36,120 --> 00:16:39,750 Donc, si ce livre de téléphone était - et il était probablement - environ 1.000 pages, maintenant 317 00:16:39,750 --> 00:16:40,840 c'est seulement 500. 318 00:16:40,840 --> 00:16:44,710 Si je fais ça encore une fois et je me rends compte, oh, putain, je suis allé trop loin, je suis dans le Ts 319 00:16:44,710 --> 00:16:46,480 section, je ne peux même - 320 00:16:46,480 --> 00:16:48,030 au sens figuré ou littéralement - 321 00:16:48,030 --> 00:16:50,260 déchirer le livre de téléphone - c'était en fait beaucoup plus facile que le temps. 322 00:16:50,260 --> 00:16:53,610 Je peux littéralement déchirer l'annuaire dans la moitié, me laissant maintenant avec 323 00:16:53,610 --> 00:16:55,186 pas 1000, pas 500 - 324 00:16:55,186 --> 00:16:56,680 250 pages. 325 00:16:56,680 --> 00:17:00,210 Et je peux aller 125, et la moitié de cela, et la moitié, et la moitié de ce que, 326 00:17:00,210 --> 00:17:04,760 jusqu'à ce que finalement je serai parti avec juste une seule page. 327 00:17:04,760 --> 00:17:06,430 >> [Rires] 328 00:17:06,430 --> 00:17:07,589 >> DAVID MALAN: C'est l' partie j'échoue sur. 329 00:17:07,589 --> 00:17:10,400 Une seule page sur laquelle Mike est plein d'espoir. 330 00:17:10,400 --> 00:17:14,630 Maintenant, ces différents algorithmes peuvent être sorte de mesuré et évalué en 331 00:17:14,630 --> 00:17:15,270 manières différentes. 332 00:17:15,270 --> 00:17:17,300 Le premier était très linéaire, non? 333 00:17:17,300 --> 00:17:18,500 Tourner la page, pour trouver Mike. 334 00:17:18,500 --> 00:17:19,630 Tourner la page, pour trouver Mike. 335 00:17:19,630 --> 00:17:20,560 Il est très linéaire. 336 00:17:20,560 --> 00:17:23,339 S'il ya une page de plus dans le téléphone livre, il va probablement me prendre 337 00:17:23,339 --> 00:17:27,380 une seconde de plus, une unité de temps plus, Cependant, nous sommes temps de calcul. 338 00:17:27,380 --> 00:17:32,470 >> Donc je pourrais tirer comme ça cette ligne ici, de sorte que lorsque la taille de l' 339 00:17:32,470 --> 00:17:34,700 problème augmente de gauche à droite - 340 00:17:34,700 --> 00:17:37,480 annuaire téléphonique devient plus petit au plus grand - 341 00:17:37,480 --> 00:17:41,080 et le temps va augmenter le l'axe vertical, le plus grand 342 00:17:41,080 --> 00:17:42,030 le livre de téléphone est. 343 00:17:42,030 --> 00:17:46,180 Donc n est juste une variable générale qui les informaticiens utilisent pour représenter 344 00:17:46,180 --> 00:17:48,210 une certaine valeur, un certain nombre. 345 00:17:48,210 --> 00:17:50,740 Alors n va augmenter de façon linéaire. 346 00:17:50,740 --> 00:17:53,040 Doubler la taille de l'annuaire, c'est va me prendre deux fois plus de 347 00:17:53,040 --> 00:17:54,780 temps, très probablement, de trouver Mike. 348 00:17:54,780 --> 00:17:56,390 >> Maintenant, j'aurais pu être intelligent à ce sujet, non? 349 00:17:56,390 --> 00:17:57,800 Je m'ennuyais rapidement. 350 00:17:57,800 --> 00:17:58,910 Aurait pu faire cela en deux. 351 00:17:58,910 --> 00:18:01,870 Donc, deux pages, puis quatre, puis six, puis huit. 352 00:18:01,870 --> 00:18:05,220 Et je pourrais commencer à voler à travers un peu plus vite, mais à risque minime d' 353 00:18:05,220 --> 00:18:09,210 dépassement Mike, mais cette courbe n'est pas va être très différente. 354 00:18:09,210 --> 00:18:12,550 Il va toujours être une ligne droite La ligne, mais un peu plus rapide. 355 00:18:12,550 --> 00:18:13,710 >> Mais qu'ai-je fait? 356 00:18:13,710 --> 00:18:15,845 En fait, j'ai fait quelque chose fondamentalement mieux. 357 00:18:15,845 --> 00:18:21,990 J'ai réalisé ce que nous appellerons logarithmique temps, le journal de n, où ce vert 358 00:18:21,990 --> 00:18:27,730 ligne a beaucoup, beaucoup, beaucoup bord inférieur droit au but. 359 00:18:27,730 --> 00:18:33,050 Et au contraire, il suggère, comme il sorte de tend vers l'infini tant soit peu à peu, 360 00:18:33,050 --> 00:18:36,700 que je pouvais prendre une page de 1000 annuaire, doubler sa taille 361 00:18:36,700 --> 00:18:39,610 l'année prochaine - supposons que parce que beaucoup plus de gens se déplacent en ville. 362 00:18:39,610 --> 00:18:43,250 >> Alors maintenant, je dois 2.000 pages, mais comment De nombreuses mesures sont que plus intelligent 363 00:18:43,250 --> 00:18:45,200 algorithme va prendre? 364 00:18:45,200 --> 00:18:46,060 Juste une. 365 00:18:46,060 --> 00:18:48,060 Je veux dire, c'est une chose puissante. 366 00:18:48,060 --> 00:18:51,400 Si nous allons à 4.000 pages l'année prochaine, qui va me prendre 367 00:18:51,400 --> 00:18:53,020 seulement deux étapes. 368 00:18:53,020 --> 00:18:56,500 Ainsi, vous pouvez jeter plus en plus gros problèmes à moi, un peu comme le web est 369 00:18:56,500 --> 00:18:59,560 jetant des problèmes toujours plus grands tous les jours à Googles et Facebooks d' 370 00:18:59,560 --> 00:19:01,590 le monde, et ce n'est pas une grosse affaire. 371 00:19:01,590 --> 00:19:05,840 Parce que j'ai mis plus de réflexion et de soins en mon algorithme qui pour résoudre 372 00:19:05,840 --> 00:19:07,020 les problèmes efficacement. 373 00:19:07,020 --> 00:19:09,260 >> Et en effet, ce sera l'un des les objectifs de ce cours. 374 00:19:09,260 --> 00:19:11,230 Vous aurez, le long du chemin, apprendre à programmer. 375 00:19:11,230 --> 00:19:13,360 Vous allez apprendre à programmer en n'importe quel nombre de langues. 376 00:19:13,360 --> 00:19:16,670 Mais à la fin de la journée, le cours est de résoudre des problèmes et d'obtenir 377 00:19:16,670 --> 00:19:20,490 mieux à résoudre les problèmes - et, comme dans des cas comme cela, la résolution de problèmes 378 00:19:20,490 --> 00:19:22,030 de manière plus efficace. 379 00:19:22,030 --> 00:19:23,990 >> Maintenant, à ce jour, nous avons fait ce assez intuitive. 380 00:19:23,990 --> 00:19:27,420 Rajoutons quelque chose d'assez générique appelé pseudo. 381 00:19:27,420 --> 00:19:29,150 Donc, nous finirons par arriver, Dans ce cours, à 382 00:19:29,150 --> 00:19:30,570 divers langages de programmation. 383 00:19:30,570 --> 00:19:34,280 Mais aujourd'hui, nous le ferons en anglais comme syntaxe, où vous venez de genre de dire 384 00:19:34,280 --> 00:19:37,330 ce que vous voulez dire, mais vous êtes toujours si succincte et vous ne vous inquiétez pas 385 00:19:37,330 --> 00:19:38,960 la grammaire et des phrases complètes. 386 00:19:38,960 --> 00:19:41,600 Vous venez de vous exprimer en tant que concise que possible. 387 00:19:41,600 --> 00:19:45,400 >> Donc pseudo est en anglais comme syntaxe qui représente 388 00:19:45,400 --> 00:19:46,750 un langage de programmation. 389 00:19:46,750 --> 00:19:51,170 Et à cette fin, je vous propose que nous maintenant modéliser le processus que nous venons de 390 00:19:51,170 --> 00:19:54,990 décrit de compter quelque chose d'un peu différemment, en prenant cette fois un 391 00:19:54,990 --> 00:19:59,040 regardez cette vidéo de cinq minutes produite par nos amis de TED qui 392 00:19:59,040 --> 00:20:03,170 définit ce pseudo est, définit ce pensée algorithmique est, et même 393 00:20:03,170 --> 00:20:07,030 si l'exemple que vous êtes sur le point de voir est, en soi, super simple, c'est 394 00:20:07,030 --> 00:20:09,820 va commencer à nous donner le mental modèle, le vocabulaire, avec lequel 395 00:20:09,820 --> 00:20:14,588 faire beaucoup, beaucoup plus complexe algorithmes assez rapidement. 396 00:20:14,588 --> 00:20:15,576 >> [Commencer la lecture de VIDEO] 397 00:20:15,576 --> 00:20:29,920 >> [Jouer de la musique] 398 00:20:29,920 --> 00:20:31,100 >> Narrateur: Qu'est-ce qu'un algorithme? 399 00:20:31,100 --> 00:20:34,730 En informatique, un algorithme est une ensemble d'instructions pour résoudre certains 400 00:20:34,730 --> 00:20:36,620 l'étape de problème par étape. 401 00:20:36,620 --> 00:20:39,650 En règle générale, les algorithmes sont exécutés par les ordinateurs, mais nous, les humains ont 402 00:20:39,650 --> 00:20:41,230 algorithmes, aussi bien. 403 00:20:41,230 --> 00:20:43,290 Par exemple, comment feriez-vous de compter le nombre 404 00:20:43,290 --> 00:20:44,750 des personnes dans une chambre? 405 00:20:44,750 --> 00:20:47,980 Eh bien, si vous êtes comme moi, vous seriez probablement point à chaque personne, un à 406 00:20:47,980 --> 00:20:50,120 un temps, et à compter à partir de 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, et ainsi de suite. 408 00:20:52,970 --> 00:20:54,140 >> Eh bien, c'est un algorithme. 409 00:20:54,140 --> 00:20:57,600 En fait, nous allons essayer d'exprimer une peu plus formellement en pseudo - 410 00:20:57,600 --> 00:21:00,700 La syntaxe anglaise qui ressemble au un langage de programmation. 411 00:21:00,700 --> 00:21:02,580 Soit N égale à 0. 412 00:21:02,580 --> 00:21:06,970 Pour chaque personne dans la salle, régler N égal à N + 1. 413 00:21:06,970 --> 00:21:08,400 >> Comment interpréter ce pseudo? 414 00:21:08,400 --> 00:21:12,840 Eh bien, d'une ligne déclare, pour ainsi dire, une variable appelée N et initialise 415 00:21:12,840 --> 00:21:14,250 sa valeur à 0. 416 00:21:14,250 --> 00:21:17,550 Cela signifie simplement que, au début de notre algorithme, la chose avec laquelle 417 00:21:17,550 --> 00:21:19,650 nous comptons a une valeur de 0. 418 00:21:19,650 --> 00:21:22,620 Après tout, avant de commencer le comptage, nous n'avons pas encore compté rien. 419 00:21:22,620 --> 00:21:25,340 L'appel de cette variable de N c'est juste une convention. 420 00:21:25,340 --> 00:21:26,890 J'aurais pu appeler cela plus rien. 421 00:21:26,890 --> 00:21:30,560 >> Maintenant ligne deux Demarks le début d'une boucle, une séquence d'étapes qui 422 00:21:30,560 --> 00:21:32,310 répéter certain nombre de fois. 423 00:21:32,310 --> 00:21:35,910 Ainsi, dans notre exemple, l'étape que nous prenons est comptage de personnes dans la salle. 424 00:21:35,910 --> 00:21:38,730 Sous la deuxième ligne est la ligne trois, qui décrit exactement comment 425 00:21:38,730 --> 00:21:40,160 nous irons sur le comptage. 426 00:21:40,160 --> 00:21:43,440 L'indentation implique qu'il est trois lignes qui se répétera. 427 00:21:43,440 --> 00:21:47,380 >> Alors que le pseudo-dit est qu'après commençant à 0 pour chaque 428 00:21:47,380 --> 00:21:50,690 personne dans la salle, nous allons N augmenter de 1. 429 00:21:50,690 --> 00:21:53,050 C'est maintenant cet algorithme correct? 430 00:21:53,050 --> 00:21:54,580 Eh bien, nous allons taper sur un peu. 431 00:21:54,580 --> 00:21:57,270 Est-ce qu'il fonctionnera que s'il n'y deux personnes dans la salle? 432 00:21:57,270 --> 00:21:58,170 Voyons voir. 433 00:21:58,170 --> 00:22:00,260 >> À la première ligne, on initialise N à 0. 434 00:22:00,260 --> 00:22:03,660 Pour chacune de ces deux personnes, Nous avons ensuite incrémente N en 1. 435 00:22:03,660 --> 00:22:07,310 Ainsi, sur le premier voyage à travers l' boucle, nous mettons à jour N 0-1. 436 00:22:07,310 --> 00:22:11,070 Sur le deuxième voyage à travers cette même boucle, nous mettons à jour N 1-2. 437 00:22:11,070 --> 00:22:15,780 Et si à la fin de cet algorithme, n est 2, qui correspond en effet le nombre de 438 00:22:15,780 --> 00:22:16,700 personnes dans la salle. 439 00:22:16,700 --> 00:22:17,760 >> Jusqu'ici, tout va bien. 440 00:22:17,760 --> 00:22:19,610 Que diriez-vous d'un cas d'angle, si? 441 00:22:19,610 --> 00:22:22,590 Supposons qu'il ya 0 personnes dans la salle - en dehors de moi, 442 00:22:22,590 --> 00:22:24,170 Qui fait le décompte. 443 00:22:24,170 --> 00:22:27,150 À la première ligne, on initialise N à 0. 444 00:22:27,150 --> 00:22:30,280 Cette fois, cependant, la troisième ligne ne exécuter du tout car il n'y a pas un 445 00:22:30,280 --> 00:22:31,370 personne dans la pièce. 446 00:22:31,370 --> 00:22:35,260 Et si N reste à 0, ce qui correspond à la nombre de personnes dans la salle. 447 00:22:35,260 --> 00:22:36,420 Assez simple, non? 448 00:22:36,420 --> 00:22:39,630 >> Mais le comptage de personnes une à la fois est assez inefficace, trop, non? 449 00:22:39,630 --> 00:22:40,920 Nous pouvons certainement faire mieux. 450 00:22:40,920 --> 00:22:43,120 Pourquoi ne pas compter deux personnes à la fois? 451 00:22:43,120 --> 00:22:49,300 Au lieu de compter 1, 2, 3, 4, 5, 6, 7, 8, et ainsi de suite, pourquoi ne pas compter, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, et ainsi de suite? 453 00:22:51,460 --> 00:22:53,700 Il semble encore plus rapide, et ce n'est sûrement. 454 00:22:53,700 --> 00:22:56,240 >> Exprimons cette optimisation en pseudo-code. 455 00:22:56,240 --> 00:22:57,800 Soit N égale à 0. 456 00:22:57,800 --> 00:23:02,450 Pour chaque paire de personnes dans la salle, Jeu N égal à N + 2. 457 00:23:02,450 --> 00:23:04,120 Changement assez simple, non? 458 00:23:04,120 --> 00:23:06,750 Plutôt que de compter les gens un à un moment, nous comptons place 459 00:23:06,750 --> 00:23:08,300 les deux à la fois. 460 00:23:08,300 --> 00:23:10,980 Cet algorithme est donc deux fois plus vite que le précédent. 461 00:23:10,980 --> 00:23:12,180 >> Mais est-il exact? 462 00:23:12,180 --> 00:23:12,920 Voyons voir. 463 00:23:12,920 --> 00:23:15,330 Est-ce qu'il fonctionnera que s'il n'y deux personnes dans la salle? 464 00:23:15,330 --> 00:23:17,550 À la première ligne, on initialise N à 0. 465 00:23:17,550 --> 00:23:20,920 Pour qu'une paire de personnes, Nous avons ensuite incrémente N par deux. 466 00:23:20,920 --> 00:23:24,860 Et si à la fin de cet algorithme, N 2, qui correspond en effet le nombre de 467 00:23:24,860 --> 00:23:25,650 personnes dans la salle. 468 00:23:25,650 --> 00:23:28,250 >> Supposons ensuite que, il ya 0 personnes dans la salle. 469 00:23:28,250 --> 00:23:30,840 À la première ligne, on initialise N à 0. 470 00:23:30,840 --> 00:23:34,330 Comme précédemment, la ligne de trois n'exécute pas du tout, car il n'y a pas de paires 471 00:23:34,330 --> 00:23:35,380 de personnes dans la salle. 472 00:23:35,380 --> 00:23:38,350 Et si N reste à 0, ce qui en fait correspond au nombre de 473 00:23:38,350 --> 00:23:39,570 personnes dans la salle. 474 00:23:39,570 --> 00:23:42,280 >> Mais que faire si il ya trois personnes dans la salle? 475 00:23:42,280 --> 00:23:44,130 Comment cela tarif algorithme? 476 00:23:44,130 --> 00:23:44,990 Voyons voir. 477 00:23:44,990 --> 00:23:47,460 À la première ligne, on initialise N à 0. 478 00:23:47,460 --> 00:23:50,870 Pour une paire de ces personnes, Nous avons ensuite incrémente N par 2. 479 00:23:50,870 --> 00:23:51,800 Mais alors quoi? 480 00:23:51,800 --> 00:23:54,960 Il n'y a pas une autre paire plein de gens dans la chambre, alors la ligne deux pas 481 00:23:54,960 --> 00:23:56,180 s'applique plus. 482 00:23:56,180 --> 00:24:00,530 Et si à la fin de cet algorithme, N est toujours de 2, ce qui n'est pas correct. 483 00:24:00,530 --> 00:24:03,810 >> En effet, cet algorithme est dit être poussette, parce qu'il a commis une erreur. 484 00:24:03,810 --> 00:24:05,820 Permet de réparation avec un nouveau pseudo. 485 00:24:05,820 --> 00:24:09,670 Soit n égal à 0 pour chaque paire de personnes dans la salle. 486 00:24:09,670 --> 00:24:12,550 Réglez N égal à N + 2. 487 00:24:12,550 --> 00:24:17,140 Si une personne reste non apparié, Jeu N égal à N + 1. 488 00:24:17,140 --> 00:24:20,140 Pour résoudre ce problème, nous avons introduit, dans la quatrième ligne, une 489 00:24:20,140 --> 00:24:24,520 état, autrement connu comme une branche qui ne s'exécute que s'il ya une 490 00:24:24,520 --> 00:24:26,640 personne que nous ne pouvions pas paire avec l'autre. 491 00:24:26,640 --> 00:24:30,440 Et maintenant, si il ya un ou trois ou tout nombre impair de personnes dans 492 00:24:30,440 --> 00:24:33,290 la chambre, cet algorithme seront désormais compter. 493 00:24:33,290 --> 00:24:34,560 >> Pouvons-nous faire mieux? 494 00:24:34,560 --> 00:24:38,820 Eh bien, nous pouvions compter dans 3s ou 4s ou même 5 et 10, mais au-delà, c'est 495 00:24:38,820 --> 00:24:41,360 allez obtenir un peu difficile à pointer. 496 00:24:41,360 --> 00:24:44,660 A la fin de la journée, que ce soit exécuté par des ordinateurs ou des humains, 497 00:24:44,660 --> 00:24:46,750 algorithmes sont juste un ensemble des instructions avec 498 00:24:46,750 --> 00:24:48,290 qui pour résoudre les problèmes. 499 00:24:48,290 --> 00:24:49,792 Ce sont seulement trois. 500 00:24:49,792 --> 00:24:52,404 Quel problème souhaitez-vous résoudre avec un algorithme? 501 00:24:52,404 --> 00:24:52,901 >> [FIN LECTURE VIDÉO] 502 00:24:52,901 --> 00:24:55,883 >> DAVID MALAN: C'est la seule fois Je vais apparaître sous forme de bande dessinée. 503 00:24:55,883 --> 00:25:01,050 Mais là où cette histoire s'arrête, la maintenant, est de savoir comment pouvons-nous faire mieux? 504 00:25:01,050 --> 00:25:04,680 Trois et quatre, nous revendiquons, nous pouvons compter personnes beaucoup plus rapide, mais pouvons-nous 505 00:25:04,680 --> 00:25:06,290 faire fondamentalement mieux que ça? 506 00:25:06,290 --> 00:25:07,540 Et je parie que nous pouvons. 507 00:25:07,540 --> 00:25:11,980 >> Si nous introduisons un peu de notre propre pseudo ici, je vais proposer 508 00:25:11,980 --> 00:25:14,550 que nous pouvons réaliser une ligne de ce genre. 509 00:25:14,550 --> 00:25:17,280 Nous n'allons pas compter les gens un, deux, trois, quatre. 510 00:25:17,280 --> 00:25:19,470 Nous n'allons pas aller deux, quatre, six, huit. 511 00:25:19,470 --> 00:25:23,390 Nous allons faire fondamentalement mieux en repensant le problème, et dans ce 512 00:25:23,390 --> 00:25:27,080 cas, en s'appuyant sur un autre sous-utilisés ressource. 513 00:25:27,080 --> 00:25:31,460 >> Dans un instant, j'espère que vous me pardonnerez et nous complaire en se tenant debout dans 514 00:25:31,460 --> 00:25:34,470 lieu, à quel point nous allons demander à chacun de vous de prendre dans votre 515 00:25:34,470 --> 00:25:36,400 esprit le numéro 1. 516 00:25:36,400 --> 00:25:39,560 Vous êtes alors aller de plus en plus maladroitement, comme le temps passe, trouver 517 00:25:39,560 --> 00:25:42,740 quelqu'un qui se tient debout, se combinent vos numéros ainsi 518 00:25:42,740 --> 00:25:43,720 en les additionnant. 519 00:25:43,720 --> 00:25:47,490 L'un de vous va alors courir pour s'asseoir en premier, et l'autre personne 520 00:25:47,490 --> 00:25:48,880 qui va se répéter. 521 00:25:48,880 --> 00:25:53,090 >> Donc, en d'autres termes, en semant tous vous avec le numéro 1, puis 522 00:25:53,090 --> 00:25:57,800 combinant ceux 1s 2s et dans ces 2s en 4s, avec tout le monde de plus en plus 523 00:25:57,800 --> 00:26:02,740 assis, nous devrions, à la fin de cet algorithme, ont juste un prêt 524 00:26:02,740 --> 00:26:07,570 âme qui ne s'est pas assis assez rapidement mais qui a toute la numération des audiences 525 00:26:07,570 --> 00:26:09,180 dans son esprit. 526 00:26:09,180 --> 00:26:13,730 >> Donc, si vous le voulez bien, nous allons aller de l'avant et - Première étape - se lever en place. 527 00:26:13,730 --> 00:26:15,600 Et à exécuter. 528 00:26:15,600 --> 00:26:36,580 >> [Foule murmurant] 529 00:26:36,580 --> 00:26:38,820 >> DAVID MALAN: Savez-vous où Lauren est? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Foule murmurant] 532 00:27:23,350 --> 00:27:24,340 >> DAVID MALAN: Tout va bien? 533 00:27:24,340 --> 00:27:39,110 >> [Foule murmurant] 534 00:27:39,110 --> 00:27:41,365 >> DAVID MALAN: Très bien, nous devrions être approchent de la fin. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 On voit un gars debout ici encore. 537 00:27:47,670 --> 00:27:48,770 Qui a besoin d'autre pour être appareillé? 538 00:27:48,770 --> 00:27:50,020 Si vous voulez les gars à appareiller. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Quelqu'un là-haut. 541 00:27:56,520 --> 00:27:58,150 Pourquoi ne pas donner un coup de main ici. 542 00:27:58,150 --> 00:28:01,370 Pour les rares personnes qui sont encore debout, ce chiffres ne vous 543 00:28:01,370 --> 00:28:02,790 avoir dans votre esprit? 544 00:28:02,790 --> 00:28:04,020 >> ETUDIANT: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID MALAN: 78 plus - 546 00:28:06,010 --> 00:28:07,840 qui est debout ici? 547 00:28:07,840 --> 00:28:08,370 >> ETUDIANT: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID MALAN: plus 39. 549 00:28:09,590 --> 00:28:12,310 De plus qui d'autre est toujours debout? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, qui d'autre? 552 00:28:15,960 --> 00:28:17,200 Un autre 81? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 Et puis ce qui est en arrière? 555 00:28:19,210 --> 00:28:20,360 >> ETUDIANT: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID MALAN: 49, plus? 557 00:28:21,812 --> 00:28:22,950 >> ETUDIANT: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID MALAN: 98 Plus? 559 00:28:24,980 --> 00:28:28,190 Est-ce que quelqu'un d'autre? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Good job. 562 00:28:30,460 --> 00:28:33,610 >> [Rires] 563 00:28:33,610 --> 00:28:34,690 >> DAVID MALAN: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Good job! 566 00:28:36,220 --> 00:28:38,660 >> [Rires] 567 00:28:38,660 --> 00:28:42,570 >> [Applaudissements] 568 00:28:42,570 --> 00:28:43,820 >> DAVID MALAN: Quelqu'un d'autre encore debout? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Désolé? 571 00:28:47,260 --> 00:28:48,110 >> ETUDIANT: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID MALAN: 99. 573 00:28:49,810 --> 00:28:52,620 N'importe qui d'autre encore debout? 574 00:28:52,620 --> 00:28:57,290 Et le nombre total d'étudiants ici est en réalité, selon - 575 00:28:57,290 --> 00:28:59,400 avez-vous un numéro? 576 00:28:59,400 --> 00:29:03,170 Oh, le nombre réel de personnes dans le chambre, selon le compte que 577 00:29:03,170 --> 00:29:07,660 les boursiers de l'enseignement faisaient sur le chemin de tout le monde dans, était 729. 578 00:29:07,660 --> 00:29:11,070 Ainsi, sur un parterre d'étudiants de Harvard qui se compté, le 579 00:29:11,070 --> 00:29:14,126 réponse est 637. 580 00:29:14,126 --> 00:29:15,480 >> [Rires] 581 00:29:15,480 --> 00:29:16,350 >> DAVID MALAN: So close. 582 00:29:16,350 --> 00:29:17,360 Mais tout de même. 583 00:29:17,360 --> 00:29:22,110 OK, donc c'est un enseignement moment, non? 584 00:29:22,110 --> 00:29:24,120 C'est maintenant ce que nous décrivons comme un bug. 585 00:29:24,120 --> 00:29:28,120 Quelque part le long du chemin, nous avons fait quelques arithmétique mal, ou quelqu'un s'assit, 586 00:29:28,120 --> 00:29:29,930 ou à gauche, ou quelque chose n'allait pas. 587 00:29:29,930 --> 00:29:30,930 Mais c'est très bien. 588 00:29:30,930 --> 00:29:33,390 Parce que même encore, nous eu assez proche. 589 00:29:33,390 --> 00:29:37,480 Et je dirais que nous sommes arrivés à la mauvaise répondre beaucoup plus vite que je n'aurais 590 00:29:37,480 --> 00:29:39,770 en utilisant mon approche plus linéaire. 591 00:29:39,770 --> 00:29:42,630 >> Donc, supposons que nous n'avons en fait obtenons que corriger, mais maintenant penser à ce que 592 00:29:42,630 --> 00:29:46,870 qui se passait à chaque fois, par rapport à mon propre algorithme pointant naïf. 593 00:29:46,870 --> 00:29:48,420 Un, deux, trois. 594 00:29:48,420 --> 00:29:53,010 Si il ya bien 729 ou 637 personnes ici, qui m'aurait pris 595 00:29:53,010 --> 00:29:57,720 littéralement 637 ou 729 pointages du doigt et 596 00:29:57,720 --> 00:29:59,490 incrémentation mon décompte total. 597 00:29:59,490 --> 00:30:01,910 Et je pourrais faire un peu mieux par aller à deux, quatre, six, huit et 598 00:30:01,910 --> 00:30:05,660 doubler cette vitesse, peut-être même triple ou quadruple, selon la façon dont je peux 599 00:30:05,660 --> 00:30:07,110 faire compter dans ma tête. 600 00:30:07,110 --> 00:30:10,720 >> Mais cette approche que vous avez pris était fondamentalement différente. 601 00:30:10,720 --> 00:30:12,770 Parce qu'au début, chacun d'entre vous se sont levés. 602 00:30:12,770 --> 00:30:14,620 Donc, les 729. 603 00:30:14,620 --> 00:30:17,370 Et puis littéralement la moitié de vous vous êtes assis. 604 00:30:17,370 --> 00:30:19,720 Et après cela, un autre la moitié d'entre vous assis. 605 00:30:19,720 --> 00:30:22,650 Et après cela, un autre la moitié d'entre vous assis. 606 00:30:22,650 --> 00:30:27,470 >> Et le nombre total de fois que vous les gars auraient pu s'asseoir est à peu près 607 00:30:27,470 --> 00:30:31,740 huit ou neuf ou dix fois au total, en fonction de ce que notre nombre total est. 608 00:30:31,740 --> 00:30:33,300 Et nous pouvons trier de faire dans l'autre sens. 609 00:30:33,300 --> 00:30:37,740 Si nous avions 1.024 personnes dans la salle, l' nombre total de fois où vous pourriez 610 00:30:37,740 --> 00:30:41,870 réduire de moitié 1.024 personnes est de 10. 611 00:30:41,870 --> 00:30:43,370 >> Maintenant, pensez à ce sujet dans l'autre sens. 612 00:30:43,370 --> 00:30:49,170 Supposons, ridiculement, que nous avons eu, par exemple quatre milliards de personnes dans cette salle, 613 00:30:49,170 --> 00:30:50,860 ou une pièce un peu plus grande. 614 00:30:50,860 --> 00:30:54,550 Combien de fois nous sommes allés grâce à cet algorithme, telle que la moitié 615 00:30:54,550 --> 00:30:58,110 de cette classe s'assoit? 616 00:30:58,110 --> 00:31:03,050 Il va seulement prendre 32 comme opérations, même dans une classe de taille 617 00:31:03,050 --> 00:31:03,770 quatre milliards. 618 00:31:03,770 --> 00:31:04,055 Pourquoi? 619 00:31:04,055 --> 00:31:06,980 Parce que quatre milliards va à deux milliards d'euros, va à un million, va à 620 00:31:06,980 --> 00:31:09,925 500 millions, va à 250 M, point, point, point. 621 00:31:09,925 --> 00:31:14,940 Je ne peux que faire cette division quelque 32 fois, à quel point, tout le monde sauf 622 00:31:14,940 --> 00:31:17,820 une personne serait laissé au repos. 623 00:31:17,820 --> 00:31:21,590 >> Et cela, aussi, est une sorte de puissant idée que de plus en plus, nous allons essayer d' 624 00:31:21,590 --> 00:31:24,690 tirer parti de ce cours, et dans programmation et l'informatique plus 625 00:31:24,690 --> 00:31:29,400 généralement, ces germes d'une idée avec que nous pourrons résoudre les problèmes beaucoup, 626 00:31:29,400 --> 00:31:31,130 beaucoup plus puissamment. 627 00:31:31,130 --> 00:31:34,610 Nous avons donc commencé assez simple avec qui pseudo et un gars dans une chambre, mais 628 00:31:34,610 --> 00:31:38,205 maintenant avec une pièce remplie de personnes avons-nous fait fondamentalement mieux. 629 00:31:38,205 --> 00:31:41,460 >> Eh bien, nous allons maintenant transition pseudo à un code réelle. 630 00:31:41,460 --> 00:31:44,200 Cette langue que vous êtes sur le point de voir arriver d'être appelé JavaScript, et 631 00:31:44,200 --> 00:31:46,190 Nous reviendrons sur ce vers la fin de semestre. 632 00:31:46,190 --> 00:31:49,960 C'est un langage de programmation que vous utiliser pour rendre les sites Web et d'autres 633 00:31:49,960 --> 00:31:51,360 logiciel de nos jours. 634 00:31:51,360 --> 00:31:54,890 Et nous l'avons utilisé, grâce à un ami qui est le nôtre à Stanford, pour encoder 635 00:31:54,890 --> 00:31:56,630 certaines informations cachées ici. 636 00:31:56,630 --> 00:31:59,500 C'est l'art de la stéganographie, pour ainsi dire, où vous pouvez cacher 637 00:31:59,500 --> 00:32:03,990 informations dans ce qui semble contraire à être un bruit ou un tout autre 638 00:32:03,990 --> 00:32:05,220 l'image tout à fait. 639 00:32:05,220 --> 00:32:10,120 Mais embarqué dans cette image particulière est en effet un message secret de toutes sortes. 640 00:32:10,120 --> 00:32:12,950 >> Alors laissez-moi aller de l'avant et tirez ici la même image, ce 641 00:32:12,950 --> 00:32:14,270 temps dans un navigateur Web. 642 00:32:14,270 --> 00:32:17,710 Et je vais brandir ma main à quelques-uns des les détails d'aujourd'hui, en particulier 643 00:32:17,710 --> 00:32:21,780 Pour ceux d'entre vous qui ce ressemble non seulement le JavaScript, mais grec, comme un 644 00:32:21,780 --> 00:32:23,930 complètement langue inconnue. 645 00:32:23,930 --> 00:32:26,190 Mais ceci est un exemple de un langage de programmation. 646 00:32:26,190 --> 00:32:30,660 >> Et pour l'instant, prendre sur la foi que cette première ligne de code - 647 00:32:30,660 --> 00:32:32,470 et par code, je viens de dire du texte. 648 00:32:32,470 --> 00:32:35,660 Le texte que je pouvais littéralement tapé dans Microsoft Word, si j'avais l' 649 00:32:35,660 --> 00:32:37,630 bon logiciel pour ensuite faire quelque chose avec elle. 650 00:32:37,630 --> 00:32:42,120 le code source de programmation, la programmation code, est vraiment juste texte, et il 651 00:32:42,120 --> 00:32:45,420 semble différent en fonction de ce langage que vous utilisez, pas contrairement à l'anglais et 652 00:32:45,420 --> 00:32:49,200 Espagnol et russe tout regard différent lorsque vous tapez au clavier. 653 00:32:49,200 --> 00:32:53,520 >> Donc, cette première ligne, pour l'instant prendre foi, ouvre simplement un graphique à partir de la 654 00:32:53,520 --> 00:32:56,160 Internet, ce graphique bruyant nous venons de voir. 655 00:32:56,160 --> 00:32:59,900 Cette ligne suivante Voici un exemple de boucle, et nous avons effectivement vu que même 656 00:32:59,900 --> 00:33:01,130 jargon dans la vidéo TED. 657 00:33:01,130 --> 00:33:03,750 Une boucle est quelque chose qui arrive à nouveau et encore, et même si cette 658 00:33:03,750 --> 00:33:08,440 semble tout à fait énigmatique, avec l' mot-clé pour, et quelques parenthèses, et 659 00:33:08,440 --> 00:33:09,510 certains points-virgules. 660 00:33:09,510 --> 00:33:13,070 Nous allons revenir à ce que d'ici peu, mais que la boucle il n'y a essentiellement 661 00:33:13,070 --> 00:33:17,310 dire le programme, itérer sur tous les de ces points bruyants, de gauche à 662 00:33:17,310 --> 00:33:18,980 droite, de haut en bas. 663 00:33:18,980 --> 00:33:21,260 >> Parce qu'à la fin de la journée, une image comme cela - et vous pouvez réellement 664 00:33:21,260 --> 00:33:22,860 sorte de le voir sur ce projecteur - 665 00:33:22,860 --> 00:33:25,280 C'est vraiment juste une grille de points. 666 00:33:25,280 --> 00:33:29,730 Ainsi, nous pouvons identifier chacun de ces points par une coordonnée x, y, et avec cette 667 00:33:29,730 --> 00:33:33,890 programme, maintenant nous pouvons commencer à faire quelque chose pour ces points. 668 00:33:33,890 --> 00:33:37,540 >> Donc ce que je vais aller de l'avant ici et faire, c'est que je vais faire quelques changements. 669 00:33:37,540 --> 00:33:41,000 D'abord, je vais aller de l'avant et de se débarrasser de tout cela verdâtre et bleuâtre 670 00:33:41,000 --> 00:33:43,520 bruit, et je vais aller de l'avant et tapez la commande suivante 671 00:33:43,520 --> 00:33:45,710 Certes syntaxe cryptique. 672 00:33:45,710 --> 00:33:48,020 im pour l'image. 673 00:33:48,020 --> 00:33:53,380 mis en bleu à l'emplacement x, virgule, emplacement y à 0. 674 00:33:53,380 --> 00:33:55,610 En d'autres termes, je veux juste éteindre toutes les bleu 675 00:33:55,610 --> 00:33:56,920 points dans cette image. 676 00:33:56,920 --> 00:33:59,800 >> Je vais aller de l'avant maintenant et cliquez sur Cette touche Run / Save, et vous 677 00:33:59,800 --> 00:34:02,850 remarquer sur le côté droit, l'image apparaît. 678 00:34:02,850 --> 00:34:06,120 Maintenant son écrin de verdure superbe, mais ce n'est pas surprenant, parce que je me suis littéralement tourné 679 00:34:06,120 --> 00:34:11,070 off, en faisant un 1 a 0, l'ensemble des le bleu dans cette image. 680 00:34:11,070 --> 00:34:12,540 >> Eh bien, maintenant nous allons faire un peu plus. 681 00:34:12,540 --> 00:34:16,989 im pour l'image, point setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 Et cela signifie juste itération de gauche à droite et de haut en bas. 683 00:34:20,659 --> 00:34:23,520 Éteindre ça avec une valeur de 0, ainsi. 684 00:34:23,520 --> 00:34:24,750 Enregistrer. 685 00:34:24,750 --> 00:34:28,100 Et sur le projecteur, vous ne pouvez pas réellement vraiment rien voir du tout. 686 00:34:28,100 --> 00:34:31,380 >> Sur mon écran d'ordinateur, si je les pairs dans tout le droit chemin, je peux voir un peu d'un 687 00:34:31,380 --> 00:34:33,300 l'image, parce qu'ils sont toujours un peu de rouge à l'intérieur. 688 00:34:33,300 --> 00:34:35,540 Si vous avez déjà entendu l'acronyme RGB - 689 00:34:35,540 --> 00:34:36,830 rouge, vert, bleu - 690 00:34:36,830 --> 00:34:39,110 il fait référence à cette composition d'une image en utilisant 691 00:34:39,110 --> 00:34:40,230 seulement ces trois couleurs. 692 00:34:40,230 --> 00:34:43,159 Et maintenant, nous avons jeté tout vert, tout bleu, mais 693 00:34:43,159 --> 00:34:44,500 il n'y a pas beaucoup de rouge. 694 00:34:44,500 --> 00:34:45,920 >> Alors laissez-moi monter le rouge. 695 00:34:45,920 --> 00:34:47,070 Comment puis-je faire cela? 696 00:34:47,070 --> 00:34:49,300 Eh bien, d'abord, je vais demander à ce programme une question. 697 00:34:49,300 --> 00:34:52,030 Je vais aller de l'avant et que nous appellerons une variable, comme en algèbre. 698 00:34:52,030 --> 00:34:54,060 Vous pouvez avoir x, y ou z. 699 00:34:54,060 --> 00:34:57,230 Je vais déclarer une variable et dire, mettre de cette variable, 700 00:34:57,230 --> 00:35:02,790 provisoirement, la valeur de l' images getRed valeur à x, y. 701 00:35:02,790 --> 00:35:05,870 >> Et encore une fois, nous reviendrons à tous de ce détail dans l'avenir. 702 00:35:05,870 --> 00:35:10,630 Mais pour l'instant, il suffit de prendre sur la foi que cette ligne demande au programme, ce qui 703 00:35:10,630 --> 00:35:12,740 est la valeur de rouge à x, y? 704 00:35:12,740 --> 00:35:14,450 A ce point particulier? 705 00:35:14,450 --> 00:35:15,710 >> Ensuite, je vais faire quelque chose pour elle. 706 00:35:15,710 --> 00:35:21,100 Alors je vais faire image de points ensemble rouge à x, y, y, mais cette fois, je vais 707 00:35:21,100 --> 00:35:24,760 booster en faisant fois en rouge, disons, 10. 708 00:35:24,760 --> 00:35:26,870 Donc l'augmenter par un facteur de 10. 709 00:35:26,870 --> 00:35:29,880 Permettez-moi de faire un zoom arrière maintenant et Cliquez pourrait Run / Enregistrer. 710 00:35:29,880 --> 00:35:36,430 Et voila, qui était là tout le temps, même si nos yeux humains 711 00:35:36,430 --> 00:35:37,900 ne pouvait pas vraiment voir. 712 00:35:37,900 --> 00:35:41,470 >> Encore une fois, ce moment est vrai code, un exemple d'une langue que nous viendrons 713 00:35:41,470 --> 00:35:42,770 d'avant longtemps. 714 00:35:42,770 --> 00:35:46,670 Mais se rendre compte, en particulier ceux d'entre vous avec une telle expérience, il est tout à fait 715 00:35:46,670 --> 00:35:50,280 Dès que nous nous serons écrire du code comme celui là. 716 00:35:50,280 --> 00:35:54,520 En fait, un outil avec lequel vous êtes tous un peu familier, peut-être, est CS50 de 717 00:35:54,520 --> 00:35:57,330 propre outil sûr-shopping, qui était en fait redémarré cet été par certains 718 00:35:57,330 --> 00:36:01,070 de ses propres anciens étudiants CS50, maintenant tourner FO. 719 00:36:01,070 --> 00:36:04,740 >> Donc ce qui se passe pour être un site web construit dans un langage appelé PHP. 720 00:36:04,740 --> 00:36:08,510 Il utilise une base de données appelée MySQL, les choses avec qui nous aurons entre nos mains 721 00:36:08,510 --> 00:36:10,190 sale tard dans le semestre. 722 00:36:10,190 --> 00:36:14,140 Mais croyez-le ou non, même chose comme cela réduit finalement à la 723 00:36:14,140 --> 00:36:19,480 simple de boucles et conditions et branches, comme ceux que nous avons vu qu'un 724 00:36:19,480 --> 00:36:21,530 Il ya actuellement dans la vidéo TED. 725 00:36:21,530 --> 00:36:25,180 >> Ce que je pensais que je fais maintenant est part pas juste quelque chose que nous avons fait le personnel 726 00:36:25,180 --> 00:36:28,010 pour le campus, mais plutôt quelque chose un ancien étudiant - trois 727 00:36:28,010 --> 00:36:29,080 étudiants, en fait - 728 00:36:29,080 --> 00:36:33,950 fait de cette dernière année, Sierra, Daniel, et Sam, le dernier d'entre eux n'avait pas avant 729 00:36:33,950 --> 00:36:36,370 expérience de programmation quand il a pris CS50. 730 00:36:36,370 --> 00:36:39,950 Et pour leur projet final, ils expose à la Foire CS50, un 731 00:36:39,950 --> 00:36:43,720 application appelée wrdly, qui est un programme basé sur le Web pour lequel ils ont fait 732 00:36:43,720 --> 00:36:47,670 cette vidéo que j'ai pensé que je partagerais à vous donner une idée de tout ce qui est 733 00:36:47,670 --> 00:36:49,280 possible à la fin de terme. 734 00:36:49,280 --> 00:37:57,170 >> [Jouer de la musique] 735 00:37:57,170 --> 00:38:00,570 >> DAVID MALAN: C'est à partir de la semaine zéro à la semaine 12 de cette année écoulée. 736 00:38:00,570 --> 00:38:05,470 >> [Applaudissements] 737 00:38:05,470 --> 00:38:09,520 >> DAVID MALAN: Comme un teaser, trop, vraiment pour aiguiser votre appétit pour ce qui est 738 00:38:09,520 --> 00:38:14,580 possible, vous avez peut-être déjà vu, ou peut-être bientôt voir, market.cs50.net, un 739 00:38:14,580 --> 00:38:17,710 nouvel outil que l'équipe du cours a travaille sur, cette fois dans 740 00:38:17,710 --> 00:38:21,530 collaboration avec Harvard Student Des organismes tels que dès cette année 741 00:38:21,530 --> 00:38:24,980 et j'espère continuer dans cette l'été à venir, vous aurez une norme 742 00:38:24,980 --> 00:38:27,890 occasion sur le campus d'acheter et de vendre des choses qui vous intéressent. 743 00:38:27,890 --> 00:38:32,220 Et avec le partenariat à travers HSA, vous aurez également être en mesure de déposer des éléments hors 744 00:38:32,220 --> 00:38:35,950 dans l'un des magasins physiques de HSA à un point dans le futur, de façon à 745 00:38:35,950 --> 00:38:39,150 choses proxy, notamment en vous diplôme et ne veulent pas nécessairement 746 00:38:39,150 --> 00:38:44,110 jeter des choses, mais en fait payer transmettre à des gens qui pourraient vous suivre 747 00:38:44,110 --> 00:38:45,270 ici sur le campus. 748 00:38:45,270 --> 00:38:46,740 Donc, plus sur cela pour venir. 749 00:38:46,740 --> 00:38:49,830 >> Mais un peu plus concrètement, un outil qui est sorti de CS50 au cours des dernières 750 00:38:49,830 --> 00:38:52,760 ans, avec laquelle certains d'entre vous pourraient être familier et d'autres d'entre vous pourraient être 751 00:38:52,760 --> 00:38:57,940 googler maintenant, à CS50.net/2x, vous trouver un lien vers une extension Chrome 752 00:38:57,940 --> 00:39:01,250 qui est démonstratif de la façon dont vous pouvez utiliser JavaScript, ce même langage que nous 753 00:39:01,250 --> 00:39:06,660 utilisée avec la tour Eiffel il ya un moment, pour mettre en œuvre la vitesse de lecture 2x 754 00:39:06,660 --> 00:39:09,000 pour toutes les vidéos Harvard iSites. 755 00:39:09,000 --> 00:39:11,880 C'est quelque chose qui est construit dans son propre lecteur vidéo CS50. 756 00:39:11,880 --> 00:39:14,870 Mais cela, aussi, si vous commencez à creuser dans le code source, que nous allons 757 00:39:14,870 --> 00:39:18,840 heureusement rendre disponible, vous verrez comment vous pouvez même résoudre des problèmes tels que 758 00:39:18,840 --> 00:39:23,180 l'accélération de widgets dans les sites Web avec que vous êtes déjà bien familier. 759 00:39:23,180 --> 00:39:26,630 >> Ainsi, un mot maintenant sur le parcours et attentes et ce qui nous attend. 760 00:39:26,630 --> 00:39:29,445 En général, nous allons en effet réunis ici les lundis et mercredis - si 761 00:39:29,445 --> 00:39:31,490 ce vendredi, nous rassemblons parce que de la Semaine de Shopping - 762 00:39:31,490 --> 00:39:34,640 1 heures 00-14h00, mais parfois jusqu'à 2h30. 763 00:39:34,640 --> 00:39:38,700 Étant donné que vous voudrez donc ou avoir à prendre un peu de classe à 14h00 764 00:39:38,700 --> 00:39:42,480 avant, ou même avant, ne réaliser l' est bien sûr favorable à ce qu'on appelle 765 00:39:42,480 --> 00:39:45,900 inscription simultanée, par laquelle nous allons soutenir une pétition au conseil des annonces 766 00:39:45,900 --> 00:39:49,400 votre résidence doyens en votre nom si vous avez un conflit quelque part dans ce 767 00:39:49,400 --> 00:39:50,790 1:00-2:30 gamme. 768 00:39:50,790 --> 00:39:54,110 Dirigez-vous vers cette URL en ligne pour plus de détails. 769 00:39:54,110 --> 00:39:57,750 >> Mais en termes de structure de soutien qui caractérise le CS50, pour les étudiants 770 00:39:57,750 --> 00:40:01,750 plus et moins à l'aise aussi bien, nous offrir des pistes distinctes de sections. 771 00:40:01,750 --> 00:40:04,730 Et c'est un couple de semaines de congé, mais Avant longtemps, vous serez invité à 772 00:40:04,730 --> 00:40:05,770 votre niveau de confort. 773 00:40:05,770 --> 00:40:08,590 Êtes-vous parmi ceux qui sont moins à l'aise, plus à l'aise, ou 774 00:40:08,590 --> 00:40:10,520 quelque part entre les deux? 775 00:40:10,520 --> 00:40:13,150 >> Et nous avons trois groupes distincts pistes qui répondent aux 776 00:40:13,150 --> 00:40:14,470 précisément ces audiences. 777 00:40:14,470 --> 00:40:17,900 Donc, à aucun moment dans le terme devrait vous même l'impression que vous êtes en compétition 778 00:40:17,900 --> 00:40:21,390 contre tout étudiant avec plus ou moins fond de vous. 779 00:40:21,390 --> 00:40:24,160 En effet, le cours est censé être beaucoup plus collaborative et plus 780 00:40:24,160 --> 00:40:25,650 plus ouverte que celle. 781 00:40:25,650 --> 00:40:29,030 >> En ce qui concerne les ensembles de problèmes, vous aurez trouver, aussi, qu'en plus de l' 782 00:40:29,030 --> 00:40:32,130 édition standard du problème de chaque semaine défini, il ya souvent un "hacker 783 00:40:32,130 --> 00:40:37,010 édition "qui est destiné à être ciblés à l'extrémité 5% à 10%, ou de l' 784 00:40:37,010 --> 00:40:40,270 démographique qui est en effet parmi ceux plus à l'aise et que vous souhaitez plus d' 785 00:40:40,270 --> 00:40:43,960 un défi que la norme édition de cette pset attend. 786 00:40:43,960 --> 00:40:46,390 Plus de détails sur celles qui seront trouvé dans le programme. 787 00:40:46,390 --> 00:40:49,430 >> Mais aussi dans on peut trouver les détails sur les cours fin des jours. 788 00:40:49,430 --> 00:40:51,570 Typiquement problème fixe sont dus tous les jeudis. 789 00:40:51,570 --> 00:40:55,550 Cependant, vous pouvez prolonger la plupart de vos échéances cet automne du jeudi au 790 00:40:55,550 --> 00:41:00,010 Vendredi simplement en nous rencontrant à mi-chemin, pour ainsi dire, en répondant à quelques warm-up 791 00:41:00,010 --> 00:41:03,370 questions dans une certaine du problème de la semaine ensembles, qui sera automatiquement 792 00:41:03,370 --> 00:41:05,710 puis vous donner un supplément de 24 heures. 793 00:41:05,710 --> 00:41:09,120 Nous allons aussi déposer votre plus bas score, selon le programme. 794 00:41:09,120 --> 00:41:12,170 >> Pour vous donner une idée de ce que le problème ensembles sont - car il s'agit bien d' 795 00:41:12,170 --> 00:41:15,120 le problème du cours fixe qui finalement définir presque tous les 796 00:41:15,120 --> 00:41:18,760 L'expérience de l'élève, plus que conférences, plus que les sections, plus 797 00:41:18,760 --> 00:41:21,230 de sorte que la plupart des autres aspect de la formation. 798 00:41:21,230 --> 00:41:25,140 L'année dernière, par exemple, nous avons commencé, comme nous allons commencer cette année, avec Scratch. 799 00:41:25,140 --> 00:41:29,150 En particulier, ce vendredi, nous allons utiliser, pour le temps juste un jour, un graphique 800 00:41:29,150 --> 00:41:32,260 langage de programmation, avec lequel on commencer la programmation par glisser- 801 00:41:32,260 --> 00:41:37,580 tomber des pièces de puzzle qui ne assembler physiquement si elle fait sens 802 00:41:37,580 --> 00:41:38,990 à faire de manière logique. 803 00:41:38,990 --> 00:41:43,460 >> La semaine prochaine, nous allons passer rapidement à C, un assez vieux mais très petite et 804 00:41:43,460 --> 00:41:48,510 un langage simple qui nous permettra d' vraiment aller de 0 à 60 au cours 805 00:41:48,510 --> 00:41:52,290 de quelques semaines, puis Parlay ces mêmes compétences et les connaissances des 806 00:41:52,290 --> 00:41:56,160 constructions de programmation de base dans langages de haut niveau tels que PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, et encore d'autres encore. 808 00:41:58,240 --> 00:42:02,560 >> L'an dernier, le troisième ensemble de processeurs dans le cadre était celle de la cryptographie, une 809 00:42:02,560 --> 00:42:06,380 domaine d'application spécifique à laquelle nous les étudiants au défi de mettre en œuvre une 810 00:42:06,380 --> 00:42:11,140 les programmes de nombre de chiffres, avec lequel pour brouiller ou décrypter l'information, 811 00:42:11,140 --> 00:42:11,880 à chiffrer. 812 00:42:11,880 --> 00:42:16,300 Pour l'édition de pirate, en revanche, nous avons donné aux étudiants de piratage d'un fichier 813 00:42:16,300 --> 00:42:19,900 partir d'un ordinateur Unix standard contenant noms d'utilisateur et mots de passe, 814 00:42:19,900 --> 00:42:22,740 ce dernier ayant été crypté, et nous avons contesté ceux pirate 815 00:42:22,740 --> 00:42:26,850 étudiants à décrypter, tant bien que mal, ces mots de passe, toujours sur cette 816 00:42:26,850 --> 00:42:27,770 même domaine. 817 00:42:27,770 --> 00:42:30,580 >> Scramble, un jeu avec lequel certains vous êtes peut-être familier. 818 00:42:30,580 --> 00:42:34,410 Un morceau de médecine légale, où nous demandons aux étudiants pour récupérer les données qui avaient été 819 00:42:34,410 --> 00:42:38,530 sinon supprimé de mon propre numérique carte compact flash de l'appareil photo, par 820 00:42:38,530 --> 00:42:42,740 en fait l'écriture de logiciels à comprendre, où étaient les zéros et de uns dans 821 00:42:42,740 --> 00:42:46,850 cette caméra numérique qui, auparavant, composé d'un graphique JPEG? 822 00:42:46,850 --> 00:42:49,710 >> L'année dernière Un défi de toutes sortes impliquant écrit le plus rapide 823 00:42:49,710 --> 00:42:53,160 correcteur orthographique possible, en concurrence contre des amis et camarades de classe si 824 00:42:53,160 --> 00:42:53,860 qu'ils aimeraient. 825 00:42:53,860 --> 00:42:56,330 La mise en œuvre Huff 'n Puff, un programme de compression. 826 00:42:56,330 --> 00:43:01,930 Et puis fin du semestre avec CS50 Finance, une application basée sur le Web avec 827 00:43:01,930 --> 00:43:06,570 que vous créez un site eTrade-like d'acheter et de vendre des actions, ainsi 828 00:43:06,570 --> 00:43:09,860 dire, en fait, tirant presque cotations en temps réel Yahoo! 829 00:43:09,860 --> 00:43:10,450 Finances. 830 00:43:10,450 --> 00:43:13,590 >> Ce que nous n'avons pas fait l'année dernière était un ensemble de problèmes que reste 831 00:43:13,590 --> 00:43:14,810 néanmoins un favori. 832 00:43:14,810 --> 00:43:18,400 Si vous n'avez jamais allé à shuttle.cs50.net, vous verrez un utilisateur 833 00:43:18,400 --> 00:43:19,670 interfacer un peu comme ça. 834 00:43:19,670 --> 00:43:23,530 Mais il ya deux ans, la classe mis en œuvre, en utilisant Google Maps et la 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in et un peu de savvy avec la conduite sur le campus, 836 00:43:28,570 --> 00:43:33,290 de sorte que l'objectif de ce jeu est, comme vous pouvez le voir sur les visages, 837 00:43:33,290 --> 00:43:37,530 est de conduire sur le campus à la recherche d' personnel, les boursiers de l'enseignement et des AR, et 838 00:43:37,530 --> 00:43:40,080 Quand vous faites, de les mettre sur votre navette. 839 00:43:40,080 --> 00:43:44,035 Aucun d'entre eux semblent réellement d'être ici, Nous allons donc entrer un code de triche. 840 00:43:44,035 --> 00:43:47,150 >> [Rires] 841 00:43:47,150 --> 00:43:48,430 >> DAVID MALAN: Nous y voilà. 842 00:43:48,430 --> 00:43:49,240 Très bien. 843 00:43:49,240 --> 00:43:51,750 Et voici maintenant le personnel lacé à travers le campus. 844 00:43:51,750 --> 00:43:54,530 Et comme vous pouvez le voir, sur la droite côté de l'écran, la navette 845 00:43:54,530 --> 00:43:55,510 a des sièges vides. 846 00:43:55,510 --> 00:43:59,000 Et l'objectif était d'écrire l' code avec lequel pour simuler cette 847 00:43:59,000 --> 00:44:01,790 conduire et ramasser et déposer hors de passagers. 848 00:44:01,790 --> 00:44:04,960 Celui-là, aussi, en utilisant un langage appelé JavaScript. 849 00:44:04,960 --> 00:44:10,030 Donc, comprendre que les programmes de ce genre va soit sur notre trajectoire même cette 850 00:44:10,030 --> 00:44:10,910 année, aussi bien. 851 00:44:10,910 --> 00:44:13,640 >> En ce qui concerne, maintenant, d'un soutien supplémentaire, nous avons des heures de bureau. 852 00:44:13,640 --> 00:44:16,520 Comme vous l'avez vu dans votre propre maison salle à manger ou dans Annenberg, 853 00:44:16,520 --> 00:44:19,280 nous serons dans la salle de la maison halls quatre nuits par semaine - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot et Annenberg cette année, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 Et ce que nous avons pensé que nous faisons cette année C'est quelque chose d'un peu différent. 856 00:44:26,830 --> 00:44:29,650 >> Si vous avez entendu des rumeurs que l'an dernier il était un peu trop stressant, 857 00:44:29,650 --> 00:44:32,800 Les heures d'ouverture de l'année, que nous décrirons la semaine prochaine, sera plus organique, 858 00:44:32,800 --> 00:44:36,900 où à l'arrivée, vous serez expédiés vers une table particulière 859 00:44:36,900 --> 00:44:39,860 où plusieurs membres du personnel attendent, et nous ferons les choses beaucoup plus 860 00:44:39,860 --> 00:44:40,440 organiquement. 861 00:44:40,440 --> 00:44:43,740 Pas plus la file d'attente, pas plus iPad, mais plutôt avoir plus intime 862 00:44:43,740 --> 00:44:47,300 conversations autour d'une table de juste environ huit élèves, afin que nous 863 00:44:47,300 --> 00:44:50,880 environ la sensation de ce qui autrement serait une classe beaucoup plus petit. 864 00:44:50,880 --> 00:44:54,120 >> Nous vous proposons, ainsi, ces choses que nous appelé soluces, des vidéos filmées dans 865 00:44:54,120 --> 00:44:57,330 avancer par l'un des enseignements du cours boursiers, Zamyla, dans lequel elle 866 00:44:57,330 --> 00:45:00,690 vous guide à travers le problème de la semaine ensembles, offrant des conseils et astuces pour le 867 00:45:00,690 --> 00:45:02,640 défis qui l'attendent. 868 00:45:02,640 --> 00:45:06,230 Et inversement, après ensembles de problèmes sont en raison, cette année, nous allons également communiquer 869 00:45:06,230 --> 00:45:09,100 petits clips appellent autopsies qui en fait vous guidera à travers 870 00:45:09,100 --> 00:45:13,630 solutions de représentation, à la fois bon et mauvais, via lequel vous pouvez déduire comment 871 00:45:13,630 --> 00:45:17,550 vous pourriez avoir ou aurait dû mis en place votre propre solution. 872 00:45:17,550 --> 00:45:20,500 >> Et ce que nous vous offrirons pour la première fois cette année aussi, en particulier 873 00:45:20,500 --> 00:45:23,420 pour les étudiants qui se prévalent du cours de autre 874 00:45:23,420 --> 00:45:28,580 ressources, mais néanmoins luttez beaucoup trop, le cours 875 00:45:28,580 --> 00:45:33,030 elle permet de jumeler les étudiants, les ressources le permettent, avec les tuteurs afin que 876 00:45:33,030 --> 00:45:35,840 vous avez une bien plus intime possibilité de maison salles à manger 877 00:45:35,840 --> 00:45:38,700 permettre une-à-une assistance. 878 00:45:38,700 --> 00:45:42,780 >> Maintenant, un aperçu final à certains des jeux de fin en vue. 879 00:45:42,780 --> 00:45:44,580 Vous connaissez peut-être le CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Eh bien, à venir en Décembre, à partir de 08h00 PM à 07h00, au début de 881 00:45:48,120 --> 00:45:51,410 Période de lecture, sera l'occasion de se réunir avec ses camarades de classe - 882 00:45:51,410 --> 00:45:53,130 ce serait autour de 9:00 PM - 883 00:45:53,130 --> 00:45:56,550 au cours de laquelle vous plongez dans votre finale la mise en œuvre du projet aux côtés de 884 00:45:56,550 --> 00:45:59,910 camarades de classe, amis, et de la nourriture. 885 00:45:59,910 --> 00:46:03,680 Ce serait vers 1h00 du matin, lorsque le premier lot de nourriture est arrivé. 886 00:46:03,680 --> 00:46:08,470 Et c'est environ 4h00 qui année donnée à la CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Mais le vrai point culminant du cours est destiné à la Foire CS50, un campus à l'échelle 888 00:46:12,000 --> 00:46:15,790 exposition de vos propres projets définitifs, à laquelle la famille et les amis sont tous 889 00:46:15,790 --> 00:46:18,730 invité, comme nos recruteurs et nos amis de l'industrie. 890 00:46:18,730 --> 00:46:22,170 C'est, par exemple, est un aperçu de l' 2.000 personnes et plus qui ont assisté 891 00:46:22,170 --> 00:46:23,160 dernières années. 892 00:46:23,160 --> 00:46:27,180 De telles expressions ne sont pas rares, et faire de même votre 893 00:46:27,180 --> 00:46:29,660 camarades de classe se plaisent dans les choses vous avez accompli. 894 00:46:29,660 --> 00:46:33,170 >> Et effectivement, à cette fin, nous avons un événement de début de mandat, aussi bien. 895 00:46:33,170 --> 00:46:37,400 Si ce genre de choses vous plaisent, ou vous êtes au moins curieux de ce que 896 00:46:37,400 --> 00:46:41,590 ce, sachez qu'une nouvelle tradition de l' cours est appelé CS50 Journée Puzzle. 897 00:46:41,590 --> 00:46:45,710 Et cela a été institué un couple de années pour vraiment signaler au campus 898 00:46:45,710 --> 00:46:48,930 que l'informatique n'est pas une question programmation, et ce n'est certainement pas 899 00:46:48,930 --> 00:46:51,960 d'embrasser seuls les élèves qui ont une expérience préalable. 900 00:46:51,960 --> 00:46:54,200 Il s'agit vraiment de la résolution de problèmes plus généralement. 901 00:46:54,200 --> 00:46:57,360 >> Et si Puzzle Day, au cours des dernières années, a évolué pour devenir une belle 902 00:46:57,360 --> 00:47:00,500 partenariat avec nos amis de Facebook, par lequel il va être fabuleux 903 00:47:00,500 --> 00:47:04,830 prix et de la pizza à travers le fleuve à le i-lab ce samedi. 904 00:47:04,830 --> 00:47:09,180 Dirigez-vous vers cette URL avec deux ou trois amis, si vous souhaitez participer 905 00:47:09,180 --> 00:47:10,830 dans cette nouvelle tradition. 906 00:47:10,830 --> 00:47:14,180 >> Donc, je voudrais vous demander de garder une chose à l'esprit, et nous avons juste un 907 00:47:14,180 --> 00:47:17,070 deux clips minute sur lequel de fermer aujourd'hui. 908 00:47:17,070 --> 00:47:19,640 73% est le numéro à retenir. 909 00:47:19,640 --> 00:47:23,900 Gâteau, elle aussi, au rendez-vous en dehors de cette transept que nous levions en un 910 00:47:23,900 --> 00:47:26,710 quelques instants, ce qui est une tradition de la formation, aussi bien. 911 00:47:26,710 --> 00:47:29,860 Mais c'est la citation clé de l' Le syllabus de cours à garder à l'esprit. 912 00:47:29,860 --> 00:47:32,820 Ce qui importe en fin de compte dans ce cours n'est pas tellement où vous vous retrouvez 913 00:47:32,820 --> 00:47:36,580 par rapport à vos camarades de classe, mais où vous, en semaine 12, finissez par rapport à 914 00:47:36,580 --> 00:47:37,960 vous dans la semaine 0. 915 00:47:37,960 --> 00:47:43,670 >> Mais l'aperçu que nous vous laisserons avec ici aujourd'hui, c'est cette dernière ici 916 00:47:43,670 --> 00:47:47,580 par notre même Daniel, qui a fait l' vidéo wrdly il ya quelques instants. 917 00:47:47,580 --> 00:47:50,000 Je vous laisse avec cet aperçu de ce qui nous attend. 918 00:47:50,000 --> 00:47:53,360 Et comme nous le faisons, si nous pouvions avoir CS50 Le personnel de l'avant de la salle 919 00:47:53,360 --> 00:47:57,280 à venir sur place au stade de peindre tous plus d'une image visuelle à 920 00:47:57,280 --> 00:47:59,100 ce qui vous attend cette année - 921 00:47:59,100 --> 00:48:00,350 obtenir maladroit. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Nous allons conclure avec cette ici à l'écran. 924 00:48:05,188 --> 00:48:18,634 >> [Jouer de la musique] 925 00:48:18,634 --> 00:48:21,124 >> DAVID MALAN: C'est CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIQUE - MATT & KIM, "Tout va bien"] 927 00:50:00,226 --> 00:50:03,245 >> ENCEINTE 1: J'aime CS50 plus de chats. 928 00:50:03,245 --> 00:50:06,030 >> ENCEINTE 2: whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Rires] 930 00:50:06,990 --> 00:50:08,140 >> DAVID MALAN: Ce n'est donc CS50. 931 00:50:08,140 --> 00:50:10,050 Nous allons vous voir vendredi. 932 00:50:10,050 --> 00:50:13,370 >> [Applaudissements et des acclamations] 933 00:50:13,370 --> 00:50:17,540 >> Narrateur: Lors de la prochaine CS50, une scène démo ne va pas comme prévu. 934 00:50:17,540 --> 00:50:19,080 >> DAVID MALAN: nous voulons trouver Mike Smith dans cet annuaire. 935 00:50:19,080 --> 00:50:20,380 Eh bien, quelles sont vos instincts? 936 00:50:20,380 --> 00:50:23,750 Je pourrais sauter à peu près au milieu de l'annuaire téléphonique, le regard vers le bas, voir que 937 00:50:23,750 --> 00:50:26,830 Je suis à M, et je sais maintenant que Mike Smith n'est pas à gauche. 938 00:50:26,830 --> 00:50:27,840 Il doit être à droite. 939 00:50:27,840 --> 00:50:30,515 Et donc, à ce stade, nous peut littéralement déchirer - 940 00:50:30,515 --> 00:50:33,300 À ce stade, nous pouvons littéralement déchirer - 941 00:50:33,300 --> 00:50:36,490 À ce stade, nous pouvons au sens figuré déchirer le livre de téléphone de moitié. 942 00:50:36,490 --> 00:50:38,954 >> [Strumming UKELELE]