1 00:00:00,000 --> 00:00:03,440 >> [MUSIQUE LECTURE] 2 00:00:03,440 --> 00:01:57,217 3 00:01:57,217 --> 00:02:00,710 >> [Applaudissements] 4 00:02:00,710 --> 00:02:05,700 5 00:02:05,700 --> 00:02:09,669 >> DAVID J. Malan: C'est CS50, L'introduction de l'Université de Harvard 6 00:02:09,669 --> 00:02:12,370 à l'intellectuel entreprises de l'informatique 7 00:02:12,370 --> 00:02:14,180 et l'art de la programmation. 8 00:02:14,180 --> 00:02:17,530 Maintenant, si vous êtes parmi ceux qui chaque année sont assis ici 9 00:02:17,530 --> 00:02:21,450 avec un peu de nerfs dans votre esprit, comme que vous ne pensez pas que vous appartenez ici, 10 00:02:21,450 --> 00:02:24,270 vous pensez que la plupart quelqu'un assis près de vous 11 00:02:24,270 --> 00:02:27,730 sait beaucoup plus que vous, est en effet plus à l'aise que vous à l'ordinateur 12 00:02:27,730 --> 00:02:30,430 la science ou ordinateurs plus généralement, réaliser 13 00:02:30,430 --> 00:02:36,140 que 78% des étudiants qui ont maintenant prendre CS50 n'ont aucune expérience préalable. 14 00:02:36,140 --> 00:02:39,570 >> En effet, il ya 100 points il sur l'affichage, dont 78 15 00:02:39,570 --> 00:02:43,540 sont en vert, ce qui signifie que vous, si vous êtes parmi ce groupe démographique, 16 00:02:43,540 --> 00:02:46,420 sont en très bonne compagnie de maintenant. 17 00:02:46,420 --> 00:02:50,320 Et si vous êtes à la place parmi les 22% des étudiants CS50 qui font effectivement 18 00:02:50,320 --> 00:02:53,920 avoir une expérience préalable, que ce soit dans haute école ou un autre programme, 19 00:02:53,920 --> 00:02:56,430 réaliser que vous aussi, vous être contestée dans le cadre. 20 00:02:56,430 --> 00:02:59,930 >> Non seulement nous avons différentes pistes pour les élèves moins à l'aise et plus 21 00:02:59,930 --> 00:03:03,789 l'aise aussi bien dans les sections, nous ont également dite éditions pirates 22 00:03:03,789 --> 00:03:06,080 de la plupart des modules de problèmes que mettra au défi les étudiants 23 00:03:06,080 --> 00:03:09,650 avec cette expérience supplémentaire d'explorer un matériau similaire 24 00:03:09,650 --> 00:03:12,140 mais d'un plus perspective sophistiquée. 25 00:03:12,140 --> 00:03:13,900 >> Mais ce qui est informatique? 26 00:03:13,900 --> 00:03:17,750 Eh bien, en fin de compte, ce qui se passe à question que vous explorez ce domaine n'est pas 27 00:03:17,750 --> 00:03:20,500 tant où vous vous retrouvez par rapport à vos camarades de classe, 28 00:03:20,500 --> 00:03:25,350 mais où vous vous se retrouvent dans semaine 12 par rapport à l'endroit où vous commencez ici 29 00:03:25,350 --> 00:03:26,720 en semaine zéro. 30 00:03:26,720 --> 00:03:31,850 Maintenant ordinateur science-- bien, nous allons appeler la science de computation-- 31 00:03:31,850 --> 00:03:35,910 où le calcul est vraiment juste une façon élégante de dire, en prenant certaines entrées, 32 00:03:35,910 --> 00:03:39,460 la production de certains de sortie, et faire en exécutant des algorithmes, 33 00:03:39,460 --> 00:03:43,700 jeux d'instructions pour résoudre un problème sur les entrées 34 00:03:43,700 --> 00:03:48,460 afin de produire de l'affichage ou solution dans laquelle vous êtes intéressé. 35 00:03:48,460 --> 00:03:51,310 >> Donc, nous avons récemment occasion de voyager sur 36 00:03:51,310 --> 00:03:53,170 en Californie pour rencontrer une ancienne. 37 00:03:53,170 --> 00:03:54,650 Son nom est Susan Wojcicki. 38 00:03:54,650 --> 00:03:57,190 Et elle aimerait parler vous ici en vidéo 39 00:03:57,190 --> 00:04:01,690 de témoigner à quel point applicable même juste un avant-goût de l'ordinateur 40 00:04:01,690 --> 00:04:03,770 la science au niveau d'introduction peut être. 41 00:04:03,770 --> 00:04:06,870 Même si vous n'allez pas à poursuivre informatique comme un champ, 42 00:04:06,870 --> 00:04:09,330 ou encore l'ingénierie, ou de la tige, plus généralement, 43 00:04:09,330 --> 00:04:12,360 vous verrez, en effet, comment un certain Bien sûr si influencé sa vie. 44 00:04:12,360 --> 00:04:16,630 Et elle ne fait que prit quand elle était une personne âgée ici à Harvard College. 45 00:04:16,630 --> 00:04:19,482 >> Si nous pouvions éteindre les lumières pour Susan. 46 00:04:19,482 --> 00:04:20,690 SUSAN Wójcicki: Bonjour tout le monde. 47 00:04:20,690 --> 00:04:22,100 Je suis Susan Wojcicki. 48 00:04:22,100 --> 00:04:24,110 Je suis le PDG de YouTube. 49 00:04:24,110 --> 00:04:29,150 Et j'ai pris CS50 quand j'étais une personne âgée à Harvard en 1990. 50 00:04:29,150 --> 00:04:31,220 J'étais en fait une histoire et la littérature importante. 51 00:04:31,220 --> 00:04:36,760 >> Et mon été junior, J'ai réalisé que peut-être je 52 00:04:36,760 --> 00:04:39,060 voulu apprendre quelque chose sur les ordinateurs. 53 00:04:39,060 --> 00:04:40,930 Et oui, je suis revenu. 54 00:04:40,930 --> 00:04:42,500 J'ai pris CS50. 55 00:04:42,500 --> 00:04:46,940 C'était dur, mais c'était la plus classe incroyable que j'ai pris. 56 00:04:46,940 --> 00:04:49,630 >> Il a changé la façon dont je pense à tout. 57 00:04:49,630 --> 00:04:55,810 Et quand je suis diplômé de Harvard en 1990, je suis allé à la Silicon Valley. 58 00:04:55,810 --> 00:04:57,140 Et j'ai obtenu un emploi. 59 00:04:57,140 --> 00:05:00,150 Et j'ai travaillé en technologie depuis. 60 00:05:00,150 --> 00:05:02,650 DAVID J. Malan: Maintenant, ce que Susan n'a pas mentionné dans cette vidéo, 61 00:05:02,650 --> 00:05:05,340 que c'était en fait dans son garage que Google lui-même était 62 00:05:05,340 --> 00:05:07,420 fondée par Larry Page et Sergey Brin. 63 00:05:07,420 --> 00:05:11,169 >> Maintenant, nous avons également tendu la main à nos amis à code.org, une organisation qui 64 00:05:11,169 --> 00:05:13,460 au cours de la dernière année a été amener les gens en particulier 65 00:05:13,460 --> 00:05:16,520 heureux de l'informatique et la programmation, en particulier. 66 00:05:16,520 --> 00:05:20,590 Mais il est intéressant de noter que la programmation n'est pas la science de l'ordinateur en soi. 67 00:05:20,590 --> 00:05:22,090 Informatique n'est pas la programmation. 68 00:05:22,090 --> 00:05:24,560 Plutôt programmation est juste un tool-- avec laquelle chacun d'entre vous 69 00:05:24,560 --> 00:05:27,510 sera trop bien familier par la end-- de semestre 70 00:05:27,510 --> 00:05:30,650 de telle sorte que vous pouvez s'applique pas juste pour les cours à venir dans CS 71 00:05:30,650 --> 00:05:33,670 mais quels que soient les domaines d'où vous venez, en sciences humaines, 72 00:05:33,670 --> 00:05:36,090 sciences sociales, naturelles science, ou similaire. 73 00:05:36,090 --> 00:05:39,740 >> En effet, permettre à quelques autres anciens élèves et leurs collègues 74 00:05:39,740 --> 00:05:43,400 de parler de l'applicabilité du champ qui attend. 75 00:05:43,400 --> 00:05:52,340 76 00:05:52,340 --> 00:05:57,350 >> BILL GATES: J'avais 13 ans lorsque je la première a obtenu l'accès à un ordinateur. 77 00:05:57,350 --> 00:06:00,485 >> Jack Dorsey: Mes parents m'a acheté un Macintosh en 1984 78 00:06:00,485 --> 00:06:01,640 quand j'étais huit ans. 79 00:06:01,640 --> 00:06:02,990 >> Mark Zuckerberg: j'étais dans la sixième année. 80 00:06:02,990 --> 00:06:04,670 >> ENCEINTE 1: j'ai appris à coder en collège. 81 00:06:04,670 --> 00:06:09,080 >> RUCHI Sanghvi: Première année, première semestre, Introduction à l'informatique. 82 00:06:09,080 --> 00:06:11,850 >> BILL GATES: J'ai écrit un programme qui a joué tic-tac-toe. 83 00:06:11,850 --> 00:06:14,100 >> DREW HOUSTON: Je pense que c'était assez humbles débuts. 84 00:06:14,100 --> 00:06:16,370 Je pense que le premier programme J'ai écrit des choses comme demandé, 85 00:06:16,370 --> 00:06:17,820 Quelle est votre couleur préférée? 86 00:06:17,820 --> 00:06:18,696 Ou quel âge êtes-vous? 87 00:06:18,696 --> 00:06:21,070 ELENA SILENOK: J'ai d'abord appris comment faire un cercle vert 88 00:06:21,070 --> 00:06:23,670 et un carré rouge apparaît sur l'écran. 89 00:06:23,670 --> 00:06:25,420 Gabe Newell: La première fois que j'ai eu 90 00:06:25,420 --> 00:06:27,360 quelque chose de venir et de dire, bonjour, monde. 91 00:06:27,360 --> 00:06:29,710 Et j'ai fait un ordinateur faire. 92 00:06:29,710 --> 00:06:30,850 C'était étonnant. 93 00:06:30,850 --> 00:06:33,224 >> Mark Zuckerberg: Apprendre le programme n'a pas commencer 94 00:06:33,224 --> 00:06:35,450 que de vouloir apprendre tout de l'informatique 95 00:06:35,450 --> 00:06:38,630 ou d'essayer de maîtriser cette discipline ou quelque chose comme ça. 96 00:06:38,630 --> 00:06:41,591 Il a juste commencé parce que je voulu faire une chose simple. 97 00:06:41,591 --> 00:06:44,340 Je voulais faire quelque chose qui C'était amusant pour moi et mes sœurs. 98 00:06:44,340 --> 00:06:46,399 >> Et j'ai écrit ce petit programme. 99 00:06:46,399 --> 00:06:48,440 Et puis tout simplement de ajouté un peu à elle. 100 00:06:48,440 --> 00:06:49,930 Et puis quand j'ai eu besoin d'apprendre quelque chose de nouveau, 101 00:06:49,930 --> 00:06:52,210 J'ai regardé, soit en un livre ou sur l'Internet, 102 00:06:52,210 --> 00:06:53,240 puis ajouter un peu à elle. 103 00:06:53,240 --> 00:06:56,300 >> DREW HOUSTON: Ce n'est vraiment pas la différence jouer d'un instrument ou quelque chose 104 00:06:56,300 --> 00:07:00,007 ou pratiquer un sport. 105 00:07:00,007 --> 00:07:01,090 DAVID J. Malan: Très bien. 106 00:07:01,090 --> 00:07:04,120 Alors laissez-nous maintenant effectivement plonger dans un peu plus profond. 107 00:07:04,120 --> 00:07:07,430 Quels sont ces entrées et sorties que nous parlons ici? 108 00:07:07,430 --> 00:07:09,110 >> Alors que diriez quelque chose de simple? 109 00:07:09,110 --> 00:07:12,120 Vous le savez sans doute, même si vous avez pas de familiarité avec l'informatique 110 00:07:12,120 --> 00:07:16,570 que ce soit, que les ordinateurs utilisent en quelque sorte et comprend que des zéros et des uns. 111 00:07:16,570 --> 00:07:20,500 Mais comment peut que éventuellement être donné la façon dont Les ordinateurs de bureau et ordinateurs portables de même de beaucoup aujourd'hui 112 00:07:20,500 --> 00:07:21,280 peut faire? 113 00:07:21,280 --> 00:07:24,310 >> L'ADN du jour, le seul alphabet qu'ils comprennent 114 00:07:24,310 --> 00:07:26,410 est un zéro ou un un. 115 00:07:26,410 --> 00:07:27,470 Eh bien, considérez ceci. 116 00:07:27,470 --> 00:07:30,840 Nous, les humains, avons tendance à utiliser la système décimal. "Dec" signifie 10. 117 00:07:30,840 --> 00:07:33,970 Et c'est 10 parce que nous avons 10 chiffres, de 0 à neuf. 118 00:07:33,970 --> 00:07:36,180 >> Maintenant, les ordinateurs, par contraste, ont tendance à utiliser binaire. 119 00:07:36,180 --> 00:07:37,270 "Bi" signifie deux. 120 00:07:37,270 --> 00:07:39,560 Donc, ils ont tendance à utiliser uniquement zéro et un. 121 00:07:39,560 --> 00:07:42,680 Mais il s'avère que, même juste avec zéros et de uns, que 122 00:07:42,680 --> 00:07:45,900 est suffisamment grand alphabet qui représente plus 123 00:07:45,900 --> 00:07:48,490 n'importe quel morceau de données que vous voulez, qu'il s'agisse d'un numéro, 124 00:07:48,490 --> 00:07:52,100 qu'il s'agisse d'une lettre, que ce soit un graphique ou une vidéo sur l'écran. 125 00:07:52,100 --> 00:07:57,140 >> Considérons, par exemple, la façon dont nous, les humains interpréter généralement ce nombre ici. 126 00:07:57,140 --> 00:08:00,010 C'est seulement trois chiffres, une, deux, trois. 127 00:08:00,010 --> 00:08:04,570 Mais nous savons que ce nombre innée maintenant 123. 128 00:08:04,570 --> 00:08:05,510 Mais pourquoi est-ce? 129 00:08:05,510 --> 00:08:07,570 >> Eh bien, si vous repensez peut-être à l'école primaire, 130 00:08:07,570 --> 00:08:11,700 vous avez probablement été appris à penser ces chiffres comme étant en colonnes, 131 00:08:11,700 --> 00:08:14,700 où l'on est dans les centaines lieu, les deux se trouve dans la position des dizaines, 132 00:08:14,700 --> 00:08:16,360 et les trois se trouve dans la position des unités. 133 00:08:16,360 --> 00:08:17,790 Pourquoi est-ce réellement utile? 134 00:08:17,790 --> 00:08:19,665 Eh bien, pensez à la super simple arithmétique 135 00:08:19,665 --> 00:08:22,219 que nous avons tous été faire depuis des années. 136 00:08:22,219 --> 00:08:24,510 En effet, si vous avez un un à la place des centaines, 137 00:08:24,510 --> 00:08:29,610 vous faites le calcul rapide 100 une fois plus 10 fois 2XX 138 00:08:29,610 --> 00:08:33,059 parce que deux est dans les dizaines place-- plus 1 fois 3-- 139 00:08:33,059 --> 00:08:34,830 parce que trois est dans la position des unités. 140 00:08:34,830 --> 00:08:37,039 Alors, bien sûr, si nous effectivement multiplier sur, 141 00:08:37,039 --> 00:08:39,600 ce que nous sommes vraiment représentant avec cette pattern-- une 142 00:08:39,600 --> 00:08:46,150 deux three-- est 100 plus 20 plus 3, qui, bien sûr, est de 123. 143 00:08:46,150 --> 00:08:51,130 >> Maintenant binaire, et les ordinateurs vraiment, parler fondamentalement la même langue 144 00:08:51,130 --> 00:08:51,680 ce que nous faisons. 145 00:08:51,680 --> 00:08:53,400 Ils ont juste un petit alphabet. 146 00:08:53,400 --> 00:08:57,100 Donc ordinateurs n'ont que des zéros et ceux à leur disposition. 147 00:08:57,100 --> 00:09:02,500 Ainsi, alors que nous, les humains ont essentiellement puissances de 10 dans chacun de ces places-- 148 00:09:02,500 --> 00:09:06,810 10 au zéro, l'une à 10, dix pour les deux, vous donnant 110 et 100 149 00:09:06,810 --> 00:09:07,700 respectivement. 150 00:09:07,700 --> 00:09:12,140 >> Parce que les ordinateurs n'ont que deux valeurs ils peuvent comprendre, zéro et un, 151 00:09:12,140 --> 00:09:16,600 ils doivent utiliser des valeurs différentes dans ces colonnes, un, deux, quatre. 152 00:09:16,600 --> 00:09:20,480 Et si nous avons continué, huit, 16, 32, 64, et ainsi de suite. 153 00:09:20,480 --> 00:09:24,220 Mais le motif et la mentalité est exactement le même. 154 00:09:24,220 --> 00:09:27,340 >> Donc, par cette logique, tout le monde, comment Je vais de représenter le nombre 155 00:09:27,340 --> 00:09:28,530 un en binaire? 156 00:09:28,530 --> 00:09:33,080 Si vous n'avez jamais pensé à auparavant, ce qui est votre intestin dire? 157 00:09:33,080 --> 00:09:33,777 >> PUBLIC: Un. 158 00:09:33,777 --> 00:09:34,610 DAVID J. Malan: One. 159 00:09:34,610 --> 00:09:35,660 Exactement. 160 00:09:35,660 --> 00:09:38,100 Nous avons juste besoin d'un un dans la celles lieu parce que les zéros 161 00:09:38,100 --> 00:09:40,610 suffire à nous donner ni un ni deux quatre. 162 00:09:40,610 --> 00:09:42,440 Donc une fois un égale un. 163 00:09:42,440 --> 00:09:43,940 Maintenant, les choses deviennent un peu intéressant. 164 00:09:43,940 --> 00:09:46,830 Si je veux représenter dans binaire, le nombre two-- mais, 165 00:09:46,830 --> 00:09:49,790 encore une fois, même si vous n'avez jamais parlé cette langue avant, 166 00:09:49,790 --> 00:09:54,680 comment pouvons-nous représentons en binaire La valeur que nous les humains savent que deux? 167 00:09:54,680 --> 00:09:55,570 Zéro un zéro. 168 00:09:55,570 --> 00:09:57,620 Il suffit de mettre l'une à l' colonne que vous voulez. 169 00:09:57,620 --> 00:09:59,560 >> Maintenant il devient assez facile probablement maintenant. 170 00:09:59,560 --> 00:10:02,950 Donc, si je veux représenter three-- il est la colonne de numéro trois. 171 00:10:02,950 --> 00:10:06,770 Donc, encore une fois, je peux maintenant ajouter ces valeurs ensemble en mettant une personne ici. 172 00:10:06,770 --> 00:10:10,320 Donc, 2 fois 1 plus 1 temps 1 est, bien sûr, 3. 173 00:10:10,320 --> 00:10:13,480 >> Maintenant, les choses deviennent un peu de plaisir dans ceux qui deviennent alors des zéros. 174 00:10:13,480 --> 00:10:15,480 Et pour représenter quatre, je reçois ce. 175 00:10:15,480 --> 00:10:19,310 Et si on incrémente lentement ici-- ce serait de cinq ans. 176 00:10:19,310 --> 00:10:20,700 Ce serait six. 177 00:10:20,700 --> 00:10:22,100 Ce serait de sept ans. 178 00:10:22,100 --> 00:10:25,310 >> Mais maintenant, il me semble avoir rencontrer un problème. 179 00:10:25,310 --> 00:10:30,520 Comment pourrais-je aller sur le représentant eight-- serait la valeur suivante. 180 00:10:30,520 --> 00:10:31,900 Ouais, donc nous avons besoin de nouveaux bits. 181 00:10:31,900 --> 00:10:33,899 Et, en effet, si vous avez entendu cette phrase avant, 182 00:10:33,899 --> 00:10:37,380 morceaux, c'est un peu moins pour chiffre binaire, zéro ou un. 183 00:10:37,380 --> 00:10:41,520 >> Et si je me trouve à représenter seulement trois de ces morceaux ici. 184 00:10:41,520 --> 00:10:44,900 Mais si j'avais un moyen de stocker pas trois différents bits, mais quatre, 185 00:10:44,900 --> 00:10:47,250 certes, je pourrais représenter huit, puis neuf, puis 186 00:10:47,250 --> 00:10:49,400 10, et même plus haut. 187 00:10:49,400 --> 00:10:52,140 >> Mais qui appelle alors en question la façon dont nous pouvons 188 00:10:52,140 --> 00:10:54,540 aller de représenter ces les choses en premier lieu. 189 00:10:54,540 --> 00:10:56,950 C'est une chose à tirer -les ici sur une lame, 190 00:10:56,950 --> 00:11:00,660 mais comment voulez-vous les représentez si vous êtes un dispositif mécanique? 191 00:11:00,660 --> 00:11:04,390 Qu'est-ce qu'un ordinateur fait pour représenter les entrées et sorties 192 00:11:04,390 --> 00:11:09,020 définir fondamentalement calcul à la fin de la journée,? 193 00:11:09,020 --> 00:11:12,090 >> Eh bien, ce quelque chose super simple comme ça? 194 00:11:12,090 --> 00:11:13,200 C'est juste une ampoule. 195 00:11:13,200 --> 00:11:15,460 Et je peux déclencher ce ampoule à aller sur 196 00:11:15,460 --> 00:11:17,920 en tournant un peu d'électricité et en permettant à des électrons 197 00:11:17,920 --> 00:11:22,585 à s'écouler à travers, ce qui modifie sa état ou sa valeur, pour ainsi dire. 198 00:11:22,585 --> 00:11:24,460 Par exemple, il s'agit d' une lampe de bureau de la vieille école 199 00:11:24,460 --> 00:11:27,250 ici avec une telle ampoule à l'intérieur de celui-ci. 200 00:11:27,250 --> 00:11:29,940 Et en ce moment, ce n'est pas vraiment faire quelque chose d'utile. 201 00:11:29,940 --> 00:11:32,680 Mais dès que je le branche dans une prise électrique 202 00:11:32,680 --> 00:11:36,390 et ensuite utiliser cette switch-- ou nous pouvons même dire que c'est un transistor 203 00:11:36,390 --> 00:11:39,970 ou penser que c'est such-- Je peux maintenant représenter soit 204 00:11:39,970 --> 00:11:44,120 cette valeur, où l'ampoule de évidemment hors, ou cette valeur. 205 00:11:44,120 --> 00:11:46,060 Cette valeur ou cette valeur. 206 00:11:46,060 --> 00:11:47,520 Cette valeur et ainsi de suite. 207 00:11:47,520 --> 00:11:51,220 >> Ainsi, à l'intérieur d'un ordinateur, sans doute, sont beaucoup plus petites pièces de matériel, 208 00:11:51,220 --> 00:11:52,970 mais que, à la fin de la journée tout simplement 209 00:11:52,970 --> 00:11:55,360 à utiliser electricity-- peut-être capturer it-- 210 00:11:55,360 --> 00:11:59,730 et ensuite, soit garder quelque chose ou garder quelque chose sur. 211 00:11:59,730 --> 00:12:02,021 Bien sûr, ce n'est pas particulièrement intéressant de faire 212 00:12:02,021 --> 00:12:03,270 avec une seule ampoule. 213 00:12:03,270 --> 00:12:06,726 >> En fait, à quelle hauteur je peux compter en binaire avec cette lampe de bureau ici? 214 00:12:06,726 --> 00:12:07,420 >> PUBLIC: Un. 215 00:12:07,420 --> 00:12:08,545 >> DAVID J. Malan: un, non? 216 00:12:08,545 --> 00:12:11,020 J'ai besoin de plus de lampes de bureau si je voulez vraiment compter supérieur. 217 00:12:11,020 --> 00:12:12,210 Mais nous pouvons faire mieux que cela. 218 00:12:12,210 --> 00:12:14,460 Parce que les ampoules que nous avons mis en ces choses 219 00:12:14,460 --> 00:12:17,730 sont des ampoules fait fantaisistes que antan permettrait. 220 00:12:17,730 --> 00:12:20,310 Et ils sont en fait ampoules réseau. 221 00:12:20,310 --> 00:12:23,160 Et grappes d'entreprises faire ces choses ces jours-ci. 222 00:12:23,160 --> 00:12:25,190 >> Mais il s'avère que celui-ci en particulier 223 00:12:25,190 --> 00:12:27,680 est livré avec une fonction pour laquelle vous pouvez changer ses couleurs. 224 00:12:27,680 --> 00:12:30,810 Ainsi, par exemple, si vous orné votre chambre d'étudiant 225 00:12:30,810 --> 00:12:33,200 avec un peu de ces lumière ampoules, en fonction de votre humeur, 226 00:12:33,200 --> 00:12:35,366 en fonction de qui arrive, fonction de la météo, 227 00:12:35,366 --> 00:12:37,360 en fonction du temps de la journée, vous pouvez réellement 228 00:12:37,360 --> 00:12:40,300 changer les couleurs de les ampoules dans votre chambre. 229 00:12:40,300 --> 00:12:43,740 Et c'est parce que ceux-ci la lumière ampoules et d'autres comme lui ont ce qui est 230 00:12:43,740 --> 00:12:48,010 appelé une API, une application l'interface de programmation, qui 231 00:12:48,010 --> 00:12:50,920 est un sujet avec lequel vous serez bien familiariser avec la fin de l'semestre. 232 00:12:50,920 --> 00:12:53,710 >> Et ce n'est que fantaisie, manière cryptique de dire, 233 00:12:53,710 --> 00:12:57,570 vous pouvez les programmer lumière ampoules pour faire votre appel d'offres. 234 00:12:57,570 --> 00:13:00,360 Vous pouvez leur envoyer des messages tout comme vous, un être humain, 235 00:13:00,360 --> 00:13:03,640 peut envoyer un message à un serveur Web dire, donnez-moi les nouvelles d'aujourd'hui 236 00:13:03,640 --> 00:13:05,110 ou me donner mon e-mail. 237 00:13:05,110 --> 00:13:08,010 >> Vous pouvez envoyer plus mystérieux messages à ces ampoules 238 00:13:08,010 --> 00:13:09,700 à-dire, allumer et éteindre. 239 00:13:09,700 --> 00:13:11,370 Mais ce n'est pas tout ce qui intéressant. 240 00:13:11,370 --> 00:13:14,280 Vous pouvez dire, devient rouge, tourner sur le vert, tourner sur fond bleu, 241 00:13:14,280 --> 00:13:15,990 tous avec la même ampoule. 242 00:13:15,990 --> 00:13:20,990 Et vous pouvez même, avec un peu plus avertis, dire, tournez-vous vers le bleu 243 00:13:20,990 --> 00:13:24,710 quand c'est un jour sombre à l'extérieur, par exemple. 244 00:13:24,710 --> 00:13:27,910 Il peut effectivement patcher en une API météo et savoir 245 00:13:27,910 --> 00:13:32,260 le temps qu'il fait, ou le temps de la journée, ou d'autres déclencheurs. 246 00:13:32,260 --> 00:13:35,550 >> Donc, en fait, deux de Propres membres du personnel de CS50, 247 00:13:35,550 --> 00:13:38,827 Dan Bradley et Ansel Duff ici, veuillez procura 248 00:13:38,827 --> 00:13:40,410 nous tout un tas de ces ampoules. 249 00:13:40,410 --> 00:13:42,910 Et ils ont construit CS50 de premières ampoules jamais binaires, 250 00:13:42,910 --> 00:13:46,850 où nous avons représenté ici-- avec ces ludique peu magnets-- 251 00:13:46,850 --> 00:13:49,780 les différents espaces réservés nous fait allusion à il ya tout juste un peu. 252 00:13:49,780 --> 00:13:52,572 >> Donc, en venant ici est la les lieu, deux, quatre. 253 00:13:52,572 --> 00:13:54,030 Et nous n'avons pas vu plus que cela. 254 00:13:54,030 --> 00:13:55,613 Mais, bien sûr, ils sont des puissances de deux. 255 00:13:55,613 --> 00:13:59,490 Huit, 16, 32, 64, et 128. 256 00:13:59,490 --> 00:14:03,320 Donc, si je veux maintenant être un peu amateur que l'utilisation de ce vieux interrupteur de l'école, 257 00:14:03,320 --> 00:14:07,310 J'ai ici sur cet iPad une interface super simple 258 00:14:07,310 --> 00:14:10,440 que Dan Bradley, un ancien élève et collègue enseigne maintenant, 259 00:14:10,440 --> 00:14:13,510 programmé à l'aide du code HTML et JavaScript, qui 260 00:14:13,510 --> 00:14:15,685 sont balisage et de programmation langues respectivement. 261 00:14:15,685 --> 00:14:17,560 Et vous pouvez probablement see-- même dans le back-- 262 00:14:17,560 --> 00:14:21,670 il ya un gros plus et un gros inconvénient, plus un bouton pour chacun de ces ampoules. 263 00:14:21,670 --> 00:14:25,740 Et qu'est-ce que cela va me permettre de ne est, par exemple, cliquez sur le signe plus 264 00:14:25,740 --> 00:14:28,250 et représentent désormais, de Bien sûr, ce nombre? 265 00:14:28,250 --> 00:14:28,750 One. 266 00:14:28,750 --> 00:14:30,220 Et je peux frapper à nouveau. 267 00:14:30,220 --> 00:14:31,480 Deux. 268 00:14:31,480 --> 00:14:32,800 Trois. 269 00:14:32,800 --> 00:14:33,950 Quatre. 270 00:14:33,950 --> 00:14:35,200 Cinq. 271 00:14:35,200 --> 00:14:36,360 Six. 272 00:14:36,360 --> 00:14:36,880 Sept. 273 00:14:36,880 --> 00:14:40,740 >> Et voici maintenant que nous obtenons retournement, mais nous avons un quatrième bit ce temps, 274 00:14:40,740 --> 00:14:42,180 alors maintenant nous avons huit. 275 00:14:42,180 --> 00:14:44,000 Donc, nous pourrions le faire pour un certain temps. 276 00:14:44,000 --> 00:14:46,530 En fait, en passant, à quelle hauteur peut-on compter? 277 00:14:46,530 --> 00:14:48,318 N'importe qui? 278 00:14:48,318 --> 00:14:49,270 >> PUBLIC: 255. 279 00:14:49,270 --> 00:14:51,420 >> DAVID J. Malan: 255, non? 280 00:14:51,420 --> 00:14:54,900 Ne vous inquiétez pas trop sur le calcul pour maintenant, mais c'est un chiffre assez décente. 281 00:14:54,900 --> 00:14:59,140 Mais il ne fait lié seulement le nombre des éléments d'information, 282 00:14:59,140 --> 00:15:01,760 comme une lettre ou un graphique que nous pourrions représenter. 283 00:15:01,760 --> 00:15:02,697 >> Mais peu importe pour le moment. 284 00:15:02,697 --> 00:15:04,530 Je vais aller de l'avant et tournez-les tous. 285 00:15:04,530 --> 00:15:09,670 Et si je le pouvais, je voudrais poser pour un bénévole, notre premier volunteer-- 286 00:15:09,670 --> 00:15:11,342 oh, hello-- sur scène. 287 00:15:11,342 --> 00:15:14,050 Le hic, c'est que vous devez être apparaissant à l'aise, comme vous l'avez bien 288 00:15:14,050 --> 00:15:17,421 sont en face de tous vos camarades de classe, ainsi que sur l'internet. 289 00:15:17,421 --> 00:15:20,420 Et laissez-moi regarder un peu au-delà the-- que diriez-vous ici à la chemise blanche? 290 00:15:20,420 --> 00:15:20,920 Et remettre en place. 291 00:15:20,920 --> 00:15:22,071 Venez sur place. 292 00:15:22,071 --> 00:15:22,820 Quel est votre nom? 293 00:15:22,820 --> 00:15:23,760 >> PUBLIC: Jackie. 294 00:15:23,760 --> 00:15:24,718 >> DAVID J. Malan: Jackie. 295 00:15:24,718 --> 00:15:25,820 Jackie, venez sur place. 296 00:15:25,820 --> 00:15:29,820 Donc, ce qu'il ya aussi sur ce iPad, un bouton appelé Mode Jeu. 297 00:15:29,820 --> 00:15:32,570 Et ce mode de jeu est va me permettre d'entrer 298 00:15:32,570 --> 00:15:35,780 à l'avance une décimale particulière, nombre, les chiffres que nous les humains sont 299 00:15:35,780 --> 00:15:36,760 familier. 300 00:15:36,760 --> 00:15:39,820 Et puis, vous serez mis au défi ici pour utiliser les touches 301 00:15:39,820 --> 00:15:42,140 sur l'une de top-- chacun de ces bulbs-- 302 00:15:42,140 --> 00:15:45,050 pour réellement comprendre le modèle d'ampoules 303 00:15:45,050 --> 00:15:46,970 que représente le nombre en question. 304 00:15:46,970 --> 00:15:47,790 >> Et je suis désolé, mais quel est votre nom? 305 00:15:47,790 --> 00:15:48,250 >> PUBLIC: Jackie. 306 00:15:48,250 --> 00:15:48,620 >> DAVID J. Malan: Jackie. 307 00:15:48,620 --> 00:15:48,920 Bien. 308 00:15:48,920 --> 00:15:49,740 Heureux de vous rencontrer. 309 00:15:49,740 --> 00:15:54,580 >> Alors laissez-moi aller de l'avant et programme pour le monde pour voir le numéro 15. 310 00:15:54,580 --> 00:15:56,360 Nous allons continuer ce petit d'abord ici. 311 00:15:56,360 --> 00:15:58,240 Et je vais aller en Mode Jeu. 312 00:15:58,240 --> 00:16:01,160 Et je vais préciser, nous donner le numéro 15. 313 00:16:01,160 --> 00:16:01,900 >> Dáccord. 314 00:16:01,900 --> 00:16:05,510 Et maintenant, avec tout le monde si watching-- vous voulez vous démarquer peut-être de cette façon, 315 00:16:05,510 --> 00:16:09,970 car il sera en ligne up-- aller de l'avant et basculer les huit boutons sur le haut 316 00:16:09,970 --> 00:16:12,530 pour faire tourner les ampoules sur ou désactiver comme bon vous semble. 317 00:16:12,530 --> 00:16:13,530 >> PUBLIC: OK. 318 00:16:13,530 --> 00:16:17,720 >> DAVID J. Malan: Et pas de tricherie en frappant, plus de 15 fois. 319 00:16:17,720 --> 00:16:19,275 Oh, nous allons le faire. 320 00:16:19,275 --> 00:16:20,069 >> PUBLIC: Oh, attendez. 321 00:16:20,069 --> 00:16:20,610 Je suis tellement désolé. 322 00:16:20,610 --> 00:16:22,660 >> DAVID J. Malan: Vous pouvez également activer les ampoules sur individuellement 323 00:16:22,660 --> 00:16:24,076 à chacun de ces boutons sur le dessus. 324 00:16:24,076 --> 00:16:24,844 PUBLIC: Oh, OK. 325 00:16:24,844 --> 00:16:27,429 Donc, il serait like-- 326 00:16:27,429 --> 00:16:28,220 DAVID J. Malan: OK. 327 00:16:28,220 --> 00:16:29,100 Alors maintenant, nous avons huit. 328 00:16:29,100 --> 00:16:31,280 Donc, arrêtons-nous pour l' public à s'engager ici. 329 00:16:31,280 --> 00:16:34,300 Quel numéro est Jackie représentent actuellement? 330 00:16:34,300 --> 00:16:34,800 11. 331 00:16:34,800 --> 00:16:35,730 Donc, nous y sommes presque. 332 00:16:35,730 --> 00:16:38,360 333 00:16:38,360 --> 00:16:39,630 Et excellent. 334 00:16:39,630 --> 00:16:41,487 Donc, nous avons notre premier gagnant. 335 00:16:41,487 --> 00:16:42,445 Félicitations. 336 00:16:42,445 --> 00:16:48,200 >> Et nous avons pensé que nous aurions quelques cadeaux fabuleux. 337 00:16:48,200 --> 00:16:50,860 Si vous souhaitez être l'un de ces Dortoir ici sur le campus, 338 00:16:50,860 --> 00:16:56,126 vous pouvez avoir vous-même un projet final maintenant avec cette API, grâce à Jackie. 339 00:16:56,126 --> 00:16:57,050 Donc maintenant-- 340 00:16:57,050 --> 00:16:58,902 >> [Applaudissements] 341 00:16:58,902 --> 00:17:01,690 342 00:17:01,690 --> 00:17:04,839 >> --si nous le pouvions, un plus autour de cet exemple. 343 00:17:04,839 --> 00:17:07,690 Oh, maintenant tout le monde veut des ampoules. 344 00:17:07,690 --> 00:17:11,790 Pour l'édition dite de pirate, nous allons offrir plus de spectacle un-- oh, 345 00:17:11,790 --> 00:17:12,770 oui, sans engagement. 346 00:17:12,770 --> 00:17:16,010 Je pense que vous venez maintenant si votre main va vers le bas. 347 00:17:16,010 --> 00:17:16,800 Quel est votre nom? 348 00:17:16,800 --> 00:17:17,424 >> PUBLIC: Alex. 349 00:17:17,424 --> 00:17:19,440 DAVID J. Malan: Alex, viens par ici. 350 00:17:19,440 --> 00:17:26,190 Donc, pour Alex, nous allons programme dans un nombre légèrement plus grand. 351 00:17:26,190 --> 00:17:27,790 Peut-être dans l'ordre. 352 00:17:27,790 --> 00:17:29,110 Le nombre de 50. 353 00:17:29,110 --> 00:17:29,744 >> PUBLIC: OK. 354 00:17:29,744 --> 00:17:31,660 DAVID J. Malan: Mais, comme Je dit-- et vous pourriez 355 00:17:31,660 --> 00:17:33,580 vouloir rester ici si que les boutons alignés 356 00:17:33,580 --> 00:17:37,115 comme vous le feriez expect-- mais je n'ai appeler cette édition pirate. 357 00:17:37,115 --> 00:17:47,125 Bonne chance So--! 358 00:17:47,125 --> 00:17:48,416 >> [Rires] 359 00:17:48,416 --> 00:17:58,570 360 00:17:58,570 --> 00:18:02,050 >> Vous serez en mesure de tourner les si vous-- OK. 361 00:18:02,050 --> 00:18:02,880 Excellente. 362 00:18:02,880 --> 00:18:03,675 Magnifique. 363 00:18:03,675 --> 00:18:04,341 Félicitations. 364 00:18:04,341 --> 00:18:08,730 >> [Applaudissements] 365 00:18:08,730 --> 00:18:10,355 Je suppose que je devrais payer. 366 00:18:10,355 --> 00:18:11,830 Félicitations à Alex ainsi. 367 00:18:11,830 --> 00:18:12,330 Dáccord. 368 00:18:12,330 --> 00:18:15,550 >> Donc la livraison finale voici espérons-le, franchement, 369 00:18:15,550 --> 00:18:18,109 la simplicity-- la simplicité avec laquelle 370 00:18:18,109 --> 00:18:20,650 vous pouvez obtenir un peu de lumière agréable ampoules, apparemment en [inaudible]. 371 00:18:20,650 --> 00:18:23,000 Mais ils représentent, en fin de compte, les mêmes idées 372 00:18:23,000 --> 00:18:26,310 avec laquelle nous, les humains sont déjà que trop familier. 373 00:18:26,310 --> 00:18:28,660 Donc, ce qui pourrait la prochaine soit l'étape de la progression 374 00:18:28,660 --> 00:18:30,920 d'essayer de faire quelque chose intéressant avec des données 375 00:18:30,920 --> 00:18:34,950 et représentant les entrées qui ne sont pas seulement nombre, mais sont peut-être des lettres ou plus? 376 00:18:34,950 --> 00:18:37,820 >> Eh bien, il s'avère que la monde de l'informatique, depuis de nombreuses années, 377 00:18:37,820 --> 00:18:43,300 simplement adopté un arbitraire, mais un norme cohérente qui associe les numéros 378 00:18:43,300 --> 00:18:44,610 de lettres de l'alphabet. 379 00:18:44,610 --> 00:18:47,120 Par exemple, voici un extrait de cette cartographie. 380 00:18:47,120 --> 00:18:48,350 C'est ce qu'on appelle Ascii. 381 00:18:48,350 --> 00:18:53,220 A-S-C-I-I. Et c'est tout simplement un tableau qui associe les letters-- majuscule 382 00:18:53,220 --> 00:18:56,600 dans ce case-- nombres décimaux. 383 00:18:56,600 --> 00:18:57,890 >> Mais quelle est la conséquence? 384 00:18:57,890 --> 00:19:01,090 Eh bien, si vous voulez réellement représenter quelque chose comme un email ou un texte 385 00:19:01,090 --> 00:19:03,310 sur une page Web, vous veulent évidemment à montrer 386 00:19:03,310 --> 00:19:06,100 les lettres humaines de l' alphabet, pas des nombres. 387 00:19:06,100 --> 00:19:09,140 Ainsi, en fonction de la contexte du programme 388 00:19:09,140 --> 00:19:12,600 que l'utilisateur se sert, si c'est un navigateur Web ou un client de messagerie, 389 00:19:12,600 --> 00:19:16,090 numéros peuvent certainement être interprétés comme des lettres. 390 00:19:16,090 --> 00:19:20,290 C'est-à-dire, les modèles de bits peut facilement être interprété comme lettres. 391 00:19:20,290 --> 00:19:24,700 >> Et si ce que nous pouvons avoir est la lettre A être 392 00:19:24,700 --> 00:19:28,410 représentée comme 65, B étant représentée comme 66. 393 00:19:28,410 --> 00:19:30,900 Donc, si nous avons une super- à court terme, comme salut, 394 00:19:30,900 --> 00:19:35,740 ce qu'est un ordinateur finirait magasin en décimal mais vraiment en binaire, 395 00:19:35,740 --> 00:19:40,070 en utilisant une séquence de bits, en s'appuyant sur un bit de l'électricité d'une manière quelconque, 396 00:19:40,070 --> 00:19:44,010 seraient les deux nombres 72 et 73. 397 00:19:44,010 --> 00:19:46,780 >> Mais la configuration de bits que représente ces valeurs. 398 00:19:46,780 --> 00:19:49,820 Donc, voilà donc comment nous pouvons représenter nos entrées et sorties. 399 00:19:49,820 --> 00:19:52,630 Et il suffit de dire, nous pouvons faire des représentations plus complexes 400 00:19:52,630 --> 00:19:56,450 en fin de compte avec des choses comme graphiques, vidéos, musique et plus 401 00:19:56,450 --> 00:19:58,190 comme nous le verrons plus tard ce terme. 402 00:19:58,190 --> 00:20:00,630 >> Alors que tout laisse alors algorithmes, ces ensembles 403 00:20:00,630 --> 00:20:03,490 des instructions avec lesquelles nous tentons de résoudre des problèmes réels. 404 00:20:03,490 --> 00:20:05,820 Nous passons en intrants à des algorithmes. 405 00:20:05,820 --> 00:20:09,630 Et ces algorithmes produisent sorties, sorties espérons corriger 406 00:20:09,630 --> 00:20:14,160 et espérons-le, aussi, efficacement recueillies sorties. 407 00:20:14,160 --> 00:20:16,890 En d'autres termes, c'est une chose de mettre en œuvre correctement quelque chose. 408 00:20:16,890 --> 00:20:20,790 C'est une autre chose à mettre en œuvre quelque chose de bien ou efficacement. 409 00:20:20,790 --> 00:20:23,690 >> Par exemple, une démonstration que nous sommes friands de dans le cadre 410 00:20:23,690 --> 00:20:24,460 est celui-ci. 411 00:20:24,460 --> 00:20:26,345 Mais ces choses sont de de plus en plus difficile à trouver. 412 00:20:26,345 --> 00:20:28,930 Mais c'est effectivement une ancienne école annuaire téléphonique, à l'intérieur de laquelle 413 00:20:28,930 --> 00:20:32,580 sont 1000 pages, plus de noms et numéros de téléphone. 414 00:20:32,580 --> 00:20:34,830 Et si je voulais regarder quelqu'un dans ce répertoire, 415 00:20:34,830 --> 00:20:38,640 Je ne pouvais tout simplement faire un algorithme très naïf. 416 00:20:38,640 --> 00:20:42,150 Je pourrais ouvrir à la première page, et Je pourrais commencer à chercher, par exemple, quelqu'un 417 00:20:42,150 --> 00:20:43,130 du nom de Mike Smith. 418 00:20:43,130 --> 00:20:46,160 Et s'il n'est pas le premier Cette page, je progresse à la deuxième, 419 00:20:46,160 --> 00:20:49,120 et ensuite à la troisième, puis à la quatrième, et ainsi de suite, 420 00:20:49,120 --> 00:20:51,430 jusqu'à ce que je trouve enfin Mike Smith. 421 00:20:51,430 --> 00:20:53,010 >> C'est maintenant que l'algorithme correct? 422 00:20:53,010 --> 00:20:53,896 >> PUBLIC: Oui. 423 00:20:53,896 --> 00:20:54,248 >> DAVID J. Malan: Ouais. 424 00:20:54,248 --> 00:20:56,039 S'il est là, je vais finit par le trouver. 425 00:20:56,039 --> 00:20:58,820 Mais c'est sans doute pas très efficace, certainement pas rapide, 426 00:20:58,820 --> 00:21:01,200 parce que, mon Dieu, pourquoi suis-je perdre mon retournement de temps 427 00:21:01,200 --> 00:21:04,500 à travers toutes ces pages quand je le pouvais certainement le faire physiquement plus vite? 428 00:21:04,500 --> 00:21:08,210 >> Eh bien, une légère optimisation, ainsi parler, peut-être pas une page à la fois, 429 00:21:08,210 --> 00:21:11,610 mais deux, quatre, six, huit, 10. 430 00:21:11,610 --> 00:21:12,725 Toujours pas? 431 00:21:12,725 --> 00:21:14,030 >> PUBLIC: Non 432 00:21:14,030 --> 00:21:17,040 >> DAVID J. Malan: Donc pas si je pour exemple sauter sur Mike Smith. 433 00:21:17,040 --> 00:21:20,530 Mais tant que je soutiens pédale une page, si je le dépassement, 434 00:21:20,530 --> 00:21:25,240 nous pourrions corriger ce pourrait autrement être un gotcha. 435 00:21:25,240 --> 00:21:26,020 >> Mais est-ce mieux? 436 00:21:26,020 --> 00:21:27,469 Est-il plus rapide? 437 00:21:27,469 --> 00:21:28,010 Je veux dire, oui. 438 00:21:28,010 --> 00:21:30,950 Il est littéralement deux fois plus vite si je fais deux pages à la fois. 439 00:21:30,950 --> 00:21:35,720 Donc, si je devais à l'origine de 1000 pages, maintenant je n'ai plus qu'à retourner 500 fois, 440 00:21:35,720 --> 00:21:39,429 pas pleinement 1.000 pages pour obtenir potentiellement dans le pire des cas 441 00:21:39,429 --> 00:21:41,220 à la fin du téléphone livre, où quelqu'un 442 00:21:41,220 --> 00:21:44,380 comme Mike Smith ou quelqu'un avec un nom plus tard peut-être en réalité. 443 00:21:44,380 --> 00:21:46,540 >> Mais, bien sûr, nous les humains ne sont certainement pas 444 00:21:46,540 --> 00:21:49,250 va faire que, certainement pas à ce point dans nos vies. 445 00:21:49,250 --> 00:21:51,454 Ce qui est un délai raisonnable humain va probablement faire? 446 00:21:51,454 --> 00:21:52,870 PUBLIC: Allez directement à The9 S de. 447 00:21:52,870 --> 00:21:53,860 DAVID J. Malan: Allez tout droit pour les S? 448 00:21:53,860 --> 00:21:55,563 Comment puis-je aller directement à les S? 449 00:21:55,563 --> 00:21:57,342 >> PUBLIC: Rip en deux. 450 00:21:57,342 --> 00:21:59,050 DAVID J. Malan: Eh bien, il n'y a pas de marquage. 451 00:21:59,050 --> 00:22:02,116 Donc, oui, si il y avait en effet une étiquette ou un onglet collant pour S, 452 00:22:02,116 --> 00:22:03,240 nous devrions sauter là. 453 00:22:03,240 --> 00:22:05,420 Mais il est assez inoffensif. 454 00:22:05,420 --> 00:22:08,480 Donc le mieux que je puisse faire, c'est à peu près à la section S ou peut-être plus ou moins 455 00:22:08,480 --> 00:22:09,650 dans le milieu. 456 00:22:09,650 --> 00:22:12,110 Mais la livraison clé maintenant-- et l'intuition 457 00:22:12,110 --> 00:22:14,430 que vous avez pris pour accordée pour les années probably-- 458 00:22:14,430 --> 00:22:17,103 est que ce que vous faites maintenant savoir sur ce problème? 459 00:22:17,103 --> 00:22:19,320 >> PUBLIC: [inaudible] 460 00:22:19,320 --> 00:22:22,290 >> DAVID J. Malan: Mike Smith est certainement pas dans cette moitié du problème 461 00:22:22,290 --> 00:22:25,600 parce Smith vient après le milieu qui est à peu près la section M, 462 00:22:25,600 --> 00:22:26,510 il semble être. 463 00:22:26,510 --> 00:22:30,340 Donc, comme vous avez pu voir à Visitas, nous pouvons maintenant littéralement 464 00:22:30,340 --> 00:22:31,737 déchirer ce problème en deux. 465 00:22:31,737 --> 00:22:32,320 PUBLIC: Woo! 466 00:22:32,320 --> 00:22:33,690 DAVID J. Malan: C'est plus en plus facile. 467 00:22:33,690 --> 00:22:34,666 [Applaudissements] 468 00:22:34,666 --> 00:22:36,618 Là vous allez. 469 00:22:36,618 --> 00:22:39,060 [Rires] 470 00:22:39,060 --> 00:22:41,870 Et maintenant, je suis fondamentalement avoir le même problème, 471 00:22:41,870 --> 00:22:43,866 mais il est littéralement deux fois plus petit. 472 00:22:43,866 --> 00:22:45,240 Je suis toujours à la recherche de Mike Smith. 473 00:22:45,240 --> 00:22:47,950 Et j'ose dire, je peux encore regarder pour lui de la même manière, 474 00:22:47,950 --> 00:22:51,200 diviser le problème en deux nouveau, de déchirer le problème à nouveau 475 00:22:51,200 --> 00:22:54,140 en deux, ce qui me laisse maintenant avec un problème d'un quart de la taille, 476 00:22:54,140 --> 00:22:58,710 jeter de façon spectaculaire que la moitié de distance, et répéter encore et encore ce processus 477 00:22:58,710 --> 00:23:01,150 et encore, en regardant vers le bas à chaque point de voir 478 00:23:01,150 --> 00:23:03,400 si Mike Smith est sur la page en question. 479 00:23:03,400 --> 00:23:06,190 >> Et si je fais ce droit, finalement, je vais me trouve 480 00:23:06,190 --> 00:23:11,085 avec une seule page sur laquelle Mike Smith est si il est en effet dans l'annuaire téléphonique. 481 00:23:11,085 --> 00:23:13,510 Bien sûr, je pouvais jamais appeler à nouveau Mike. 482 00:23:13,510 --> 00:23:18,800 Mais le fait est que si nous avons commencé avec 1000 pages, mon premier algorithme, 483 00:23:18,800 --> 00:23:21,620 tourner la page, peut-être 1000 times-- nettement moins parce que c'est 484 00:23:21,620 --> 00:23:26,430 un nom de S et non pas un nom de Z, mais comme jusqu'à 1000 pages potentiellement. 485 00:23:26,430 --> 00:23:27,590 >> Deuxième algorithme, mieux c'est. 486 00:23:27,590 --> 00:23:28,480 500 pages. 487 00:23:28,480 --> 00:23:31,230 Troisième algorithme, bien que, combien de pas ne serait-il 488 00:23:31,230 --> 00:23:35,520 prendre pour diviser une page 1000 annuaire de moitié comme ça? 489 00:23:35,520 --> 00:23:37,000 10, donner ou prendre. 490 00:23:37,000 --> 00:23:40,770 Alors que par feuilletant que annuaire, la plongée et la conquête, 491 00:23:40,770 --> 00:23:46,130 pour ainsi dire, 10 fois, je ferai mon chemin vers le bas juste une seule page. 492 00:23:46,130 --> 00:23:48,880 >> Et si nous pouvons saisir cette intuition maintenant un peu graphiquement 493 00:23:48,880 --> 00:23:51,320 si vous considérez juste ce super simple graphique. 494 00:23:51,320 --> 00:23:55,470 Nous sommes sur l'axe des x, ou horizontale axe, est la taille de mon problème, 495 00:23:55,470 --> 00:23:57,100 le nombre de pages dans le livre de téléphone. 496 00:23:57,100 --> 00:23:59,040 Et les informaticiens en général comme pour appeler 497 00:23:59,040 --> 00:24:02,180 la taille d'un problème n, où n est juste une variable qui 498 00:24:02,180 --> 00:24:04,310 represents-- en ce case-- nombre de pages. 499 00:24:04,310 --> 00:24:07,412 >> L'axe vertical y, ou, ici, c'est va être le temps de résoudre, 500 00:24:07,412 --> 00:24:09,870 peut-être le nombre de pages à tour de rôle, peut-être que le nombre de secondes 501 00:24:09,870 --> 00:24:11,960 ou minutes, quel que soit votre unité de mesure est. 502 00:24:11,960 --> 00:24:14,337 Et si cette ligne rouge représente le premier algorithme, 503 00:24:14,337 --> 00:24:16,670 parce qu'il ya une une à une relation entre le nombre 504 00:24:16,670 --> 00:24:18,880 de pages et quantité de temps qu'il faut. 505 00:24:18,880 --> 00:24:22,240 >> Si Verizon double le nombre de pages dans le livre de téléphone de l'année prochaine, 506 00:24:22,240 --> 00:24:24,590 ma course time-- l' temps nécessaire pour exécuter 507 00:24:24,590 --> 00:24:27,610 cette première algorithm-- double dans le pire des cas. 508 00:24:27,610 --> 00:24:30,690 Mais le deuxième algorithme, où je suis renversant par deux, 509 00:24:30,690 --> 00:24:33,650 il faut moins de temps pour un problème de taille donnée. 510 00:24:33,650 --> 00:24:36,090 Donc, si j'ai ce nombre un préavis de pages 511 00:24:36,090 --> 00:24:38,870 que la ligne jaune suggère moins de temps à résoudre. 512 00:24:38,870 --> 00:24:42,490 Et en effet, il représente, nous dirons, n sur deux. 513 00:24:42,490 --> 00:24:47,717 >> Mais ce qui est la forme de la troisième et la courbe finale va ressembler? 514 00:24:47,717 --> 00:24:50,800 Ouais, il est en effet aller à look-- je vous ne savez pas ce que vous alliez dire. 515 00:24:50,800 --> 00:24:52,300 Mais voyons ce que vous alliez dire. 516 00:24:52,300 --> 00:24:53,280 >> PUBLIC: Comme ça. 517 00:24:53,280 --> 00:24:57,060 >> DAVID J. Malan: Ça va ressembler ce, un exactly-- slope-- logarithmique 518 00:24:57,060 --> 00:24:59,770 lequel vous avez cette pente curieux. 519 00:24:59,770 --> 00:25:01,235 Ce n'est plus une ligne droite. 520 00:25:01,235 --> 00:25:05,000 Et ce qui est convaincant à ce sujet, c'est que même si le graphique est maintenant coupé, 521 00:25:05,000 --> 00:25:07,790 vous pouvez extrapoler dans votre l'esprit que la ligne verte n'est pas 522 00:25:07,790 --> 00:25:10,060 va augmenter dans hauteur tant que ça 523 00:25:10,060 --> 00:25:13,500 que vous avancez encore bas que l'axe horizontal. 524 00:25:13,500 --> 00:25:15,890 >> En effet, Verizon, pour exemple, pourrait doubler 525 00:25:15,890 --> 00:25:19,100 le nombre de pages du téléphone livre entre cette année et l'année prochaine 526 00:25:19,100 --> 00:25:22,140 de 1000 à 2000 pages, mais pas grand-chose. 527 00:25:22,140 --> 00:25:24,960 Avec cette troisième et dernière, il ya un algorithme intuitif 528 00:25:24,960 --> 00:25:26,209 de diviser et conquérir. 529 00:25:26,209 --> 00:25:29,000 Il va me prendre combien de étapes l'année prochaine pour trouver quelqu'un 530 00:25:29,000 --> 00:25:29,700 comme Mike Smith? 531 00:25:29,700 --> 00:25:30,560 >> PUBLIC: Un. 532 00:25:30,560 --> 00:25:31,230 >> DAVID J. Malan: Il ya juste un. 533 00:25:31,230 --> 00:25:34,430 Et ils peuvent quadrupler, c'est va me prendre seulement deux autres étapes 534 00:25:34,430 --> 00:25:35,210 et ainsi de suite. 535 00:25:35,210 --> 00:25:38,730 Et si ce n'est témoigne à quel point une certaine conception minutieuse 536 00:25:38,730 --> 00:25:42,437 et une certaine appréciation pour ce vos entrées sont peut faire encore mieux. 537 00:25:42,437 --> 00:25:44,270 Maintenant, nous sommes une tricherie peu dans le sens 538 00:25:44,270 --> 00:25:46,350 que nous tirons parti de l'hypothèse. 539 00:25:46,350 --> 00:25:48,500 Quel est mon hypothèse sur notre annuaire 540 00:25:48,500 --> 00:25:52,720 cela m'a permis de diviser pour régner de cette manière intuitive et toujours correct? 541 00:25:52,720 --> 00:25:53,705 >> PUBLIC: [inaudible] 542 00:25:53,705 --> 00:25:54,580 DAVID J. Malan: Ouais. 543 00:25:54,580 --> 00:25:55,440 Ainsi, il a été ordonné. 544 00:25:55,440 --> 00:25:57,392 Il a été classée par ordre alphabétique la société de l'annuaire téléphonique. 545 00:25:57,392 --> 00:26:00,100 Si c'était dans un ordre aléatoire, que serait un enfer d'un livre de téléphone, 546 00:26:00,100 --> 00:26:02,850 mais il ne serait pas certainement se prêter à l'algorithme 547 00:26:02,850 --> 00:26:05,950 J'avais l'habitude, parce que vous le feriez jamais juste arriver sur Mike Smith 548 00:26:05,950 --> 00:26:09,210 si vous avez gardé divisant en la moitié de cette façon par hasard. 549 00:26:09,210 --> 00:26:12,060 >> Donc, nous allons formaliser maintenant ce qui est clairement intuitive. 550 00:26:12,060 --> 00:26:13,950 Donc, ce qu'on appelle pseudo est où nous allons 551 00:26:13,950 --> 00:26:15,780 commencer certains de nos problèmes initiaux. 552 00:26:15,780 --> 00:26:20,410 Et c'est une façon générique de décrire un algorithme ou d'un programme informatique, 553 00:26:20,410 --> 00:26:24,150 n'utilisant pas C, ou C ++, ou Java, ou n'importe quelle langue spécifique, 554 00:26:24,150 --> 00:26:27,430 mais juste en utilisant l'anglais, avec qui tout être humain peut connaître. 555 00:26:27,430 --> 00:26:31,220 >> Et nous pourrions écrire le pseudo pour résoudre ce problème de la manière suivante. 556 00:26:31,220 --> 00:26:33,520 La première étape, prendre le livre de téléphone. 557 00:26:33,520 --> 00:26:35,840 Deuxième étape, ouverte à mi-annuaire. 558 00:26:35,840 --> 00:26:37,730 Troisième étape, regardez les noms. 559 00:26:37,730 --> 00:26:40,630 Étape quatre, si Smith est parmi names-- 560 00:26:40,630 --> 00:26:42,960 >> Et maintenant, il s'agit d'une construction intéressante. 561 00:26:42,960 --> 00:26:44,290 C'est un point de décision. 562 00:26:44,290 --> 00:26:47,920 C'est une bifurcation de la route, si vous sera, une branche, pour ainsi dire. 563 00:26:47,920 --> 00:26:50,810 Je vais donc mettre en retrait juste par convention step-- 564 00:26:50,810 --> 00:26:53,950 five-- pas qui est à par exemple, je vais appeler Mike. 565 00:26:53,950 --> 00:26:57,290 Donc ce retrait, totalement convention arbitraire humain, mais il est 566 00:26:57,290 --> 00:27:01,160 simplement voulu exprimer sémantiquement Smith est que si les noms, 567 00:27:01,160 --> 00:27:03,310 alors je devrais appeler Mike. 568 00:27:03,310 --> 00:27:06,630 >> Pendant ce temps à l'étape six, avis que l'indentation est parti. 569 00:27:06,630 --> 00:27:10,980 Donc, le reste est l'autre fourchette dans la route, l'autre route que je pourrais voyager. 570 00:27:10,980 --> 00:27:14,130 Donc, d'autre si Smith est plus tôt dans le livre, ce qui est 571 00:27:14,130 --> 00:27:16,964 ma prochaine étape va probablement être ici? 572 00:27:16,964 --> 00:27:18,380 PUBLIC: Vous allez à gauche. 573 00:27:18,380 --> 00:27:21,004 DAVID J. Malan: Ouais, donc aller à la moitié gauche de l'annuaire. 574 00:27:21,004 --> 00:27:24,140 Jeter la moitié droite si Smith est tôt dans le livre. 575 00:27:24,140 --> 00:27:27,140 Donc, ouvert au milieu de la moitié gauche de l'ouvrage. 576 00:27:27,140 --> 00:27:30,240 >> Et puis l'étape huit, allez à la ligne de trois. 577 00:27:30,240 --> 00:27:34,520 Et c'est une boucle curieux je suis induisant une récurrence pour ainsi dire. 578 00:27:34,520 --> 00:27:35,990 Mais plus que dans l'avenir. 579 00:27:35,990 --> 00:27:39,590 >> J'utilise ma même algorithme, mon pseudo même, 580 00:27:39,590 --> 00:27:43,020 pour résoudre le même problème parce que la seule chose qui a changé 581 00:27:43,020 --> 00:27:46,550 est la taille du problème, ne mon objectif, et non la personne 582 00:27:46,550 --> 00:27:47,340 Je suis à la recherche. 583 00:27:47,340 --> 00:27:51,610 Donc, je peux réutiliser l'algorithme que j'ai déjà défini. 584 00:27:51,610 --> 00:27:53,580 >> Sinon, si Smith est plus tard dans book-- vous pourriez 585 00:27:53,580 --> 00:27:56,200 guess-- ouvert au milieu de la moitié droite de l'ouvrage. 586 00:27:56,200 --> 00:27:58,350 Et encore une fois, allez à la ligne de trois. 587 00:27:58,350 --> 00:28:01,480 Else-- ce qui est la dernière ligne dans ce programme va être? 588 00:28:01,480 --> 00:28:03,580 Si il n'est pas parmi les noms sur la page je suis 589 00:28:03,580 --> 00:28:06,870 sur, si il n'est pas plus tôt dans le livre, et il n'est pas tard 590 00:28:06,870 --> 00:28:09,899 dans le livre, ce que je sais est vrai à propos de Mike Smith maintenant? 591 00:28:09,899 --> 00:28:11,190 PUBLIC: Il n'est pas dans le livre. 592 00:28:11,190 --> 00:28:12,731 DAVID J. Malan: Il n'est pas dans le livre. 593 00:28:12,731 --> 00:28:16,040 Donc le mieux que je puisse faire est simplement abandonner et arrêter ce programme. 594 00:28:16,040 --> 00:28:16,540 Bien. 595 00:28:16,540 --> 00:28:20,350 Donc, à ce stade, nous allons jeter un Visite rapide de certains de ce qui attend. 596 00:28:20,350 --> 00:28:23,620 Et en fait, je suis accompagné par un certain nombre de personnel CS50. 597 00:28:23,620 --> 00:28:26,940 Si ces gens pouvaient tout me rejoindre ici sur scène. 598 00:28:26,940 --> 00:28:28,900 >> [Applaudissements] 599 00:28:28,900 --> 00:28:35,280 600 00:28:35,280 --> 00:28:38,170 >> Rappelez-vous, ce n'est que un sous-ensemble du personnel CS50, 601 00:28:38,170 --> 00:28:42,380 puisque chaque année, nous avons près de 100 personnes membres dans des rôles d'assistants de cours, 602 00:28:42,380 --> 00:28:44,410 enseignement boursiers, et plus encore. 603 00:28:44,410 --> 00:28:45,700 Venez sur place. 604 00:28:45,700 --> 00:28:48,820 Alors, ils se joindront à nous ici maladroitement pendant un moment 605 00:28:48,820 --> 00:28:54,230 que nous donnons une visite éclair de ce vous devriez vous attendre ici dans le cours. 606 00:28:54,230 --> 00:28:59,640 >> Alors d'abord et avant tout, nous avons SAT / UNS que l'option de classement en cours. 607 00:28:59,640 --> 00:29:03,180 Cette initiative vise délibérément être une option selon laquelle 608 00:29:03,180 --> 00:29:05,570 si vous êtes un peu mal à l'aise à être en cours, 609 00:29:05,570 --> 00:29:09,390 et vous ne craignez failure-- même si franchement signifie l'échec de blesser votre GPA, 610 00:29:09,390 --> 00:29:13,180 obtenir un B et non un A-- qui est précisément ce qui, certainement pour une passerelle 611 00:29:13,180 --> 00:29:15,750 Bien sûr, comme CS50 et d'autres cours d'introduction, 612 00:29:15,750 --> 00:29:17,540 cette option de classement vise à permettre. 613 00:29:17,540 --> 00:29:19,930 >> J'encourage de tout cœur students-- particulier 614 00:29:19,930 --> 00:29:23,090 si sur le fence-- pour démarrer le Bien sûr SAT / UNS, même restent SAT / UNS. 615 00:29:23,090 --> 00:29:27,310 Mais vous pouvez certainement passer à une lettre année par le cinquième lundi dans la durée. 616 00:29:27,310 --> 00:29:31,560 >> Franchement, quand je était un étudiant de première année en 1995, 617 00:29:31,560 --> 00:29:34,630 Je me n'ai même pas pris CS50 parce que je n'ai pas eu le courage 618 00:29:34,630 --> 00:29:36,540 pour réellement mettre les pieds dans la salle de classe. 619 00:29:36,540 --> 00:29:40,020 Il semblait un domaine trop inconnu pour moi et je n'avais vraiment 620 00:29:40,020 --> 00:29:43,080 pour ceux de mes amis, franchement, qui avait été la programmation 621 00:29:43,080 --> 00:29:45,570 car ils étaient six ou peut-être 10-ans. 622 00:29:45,570 --> 00:29:48,640 Et c'est seulement parce que j'étais en mesure de prendre CS50 dans ma journée 623 00:29:48,640 --> 00:29:52,720 dans la version équivalente d' SAT / passe UNS-- / échec de retour dans le day-- 624 00:29:52,720 --> 00:29:53,850 que j'ai même pris 50. 625 00:29:53,850 --> 00:29:57,440 Et d'une certaine manière ou d'une autre, je suis ici avec vous aujourd'hui. 626 00:29:57,440 --> 00:30:00,690 >> Maintenant, quant à ce que vous devraient garder à l'esprit à propos de 50 627 00:30:00,690 --> 00:30:01,910 est l'inscription simultanée. 628 00:30:01,910 --> 00:30:03,785 Contrairement aux rumeurs qui vous avez pu entendre, 629 00:30:03,785 --> 00:30:07,650 vous pouvez, en effet, en même temps s'inscrire dans CS50 et une autre classe qui 630 00:30:07,650 --> 00:30:12,150 répond au même niveau ou un certain chevauchement temps que les conférences de CS50 ici. 631 00:30:12,150 --> 00:30:16,420 Voir le programme pour les détails de la mise en œuvre de celui-ci. 632 00:30:16,420 --> 00:30:19,540 >> Conférences, quant à lui, contrairement à ce qui est officiellement dans le catalogue, 633 00:30:19,540 --> 00:30:22,060 sera généralement seulement répondre à seulement une heure. 634 00:30:22,060 --> 00:30:24,240 À l'occasion, nous pouvons lancer un peu long. 635 00:30:24,240 --> 00:30:26,800 Mais gardez à l'esprit que la but dans les conférences de CS50 636 00:30:26,800 --> 00:30:28,980 est de vous fournir une vue d'ensemble conceptuelle, 637 00:30:28,980 --> 00:30:31,830 j'espère que certaines manifestations, peut-être même quelques cadeaux, 638 00:30:31,830 --> 00:30:34,390 de ce qui attend pour la semaine qui suit. 639 00:30:34,390 --> 00:30:37,730 >> Et si en cours, nous allons explorer ces sujets et des exemples, ainsi que 640 00:30:37,730 --> 00:30:41,420 amener les élèves sur scène, et personnel sur scène aussi souvent que nous le pouvons, 641 00:30:41,420 --> 00:30:43,740 pour seulement quelques heures chaque semaine. 642 00:30:43,740 --> 00:30:47,435 Les articles, quant à lui, sera offert par ces gens ici-- nombreux 643 00:30:47,435 --> 00:30:50,060 d'entre eux boursiers, certains l'enseignement d'entre eux bien sûr assistants-- 644 00:30:50,060 --> 00:30:51,160 se produire chaque semaine. 645 00:30:51,160 --> 00:30:52,940 >> Et ce qui est essentiel pour maintenir à l'esprit, c'est que nous 646 00:30:52,940 --> 00:30:55,920 ne have-- pas contrairement à d'abord Nuits, la musique class-- 647 00:30:55,920 --> 00:30:59,220 différentes pistes de sections pour les élèves les moins confortables, plus 648 00:30:59,220 --> 00:31:01,150 confortable, et quelque part entre les deux. 649 00:31:01,150 --> 00:31:03,559 Et franchement, vous savez si vous êtes moins à l'aise. 650 00:31:03,559 --> 00:31:05,600 Et vous le savez probablement si vous êtes plus à l'aise. 651 00:31:05,600 --> 00:31:09,920 Et si vous n'êtes pas vraiment sûr, vous êtes par définition, quelque part entre les deux. 652 00:31:09,920 --> 00:31:12,850 Alors, quand vient le temps de section dans une semaine ou deux, par le programme, 653 00:31:12,850 --> 00:31:14,070 nous vous posons cette question. 654 00:31:14,070 --> 00:31:16,890 Et vous pouvez choisir eux-based sur votre propre niveau de confort 655 00:31:16,890 --> 00:31:22,220 et d'être avec students-- être vert dots-- similaire du niveau de confort pour vous. 656 00:31:22,220 --> 00:31:25,710 >> Pendant ce temps, nous avons problème fixe, qui sera en fin de compte 657 00:31:25,710 --> 00:31:28,310 définir votre expérience dans ce cours. 658 00:31:28,310 --> 00:31:30,370 Ils sont offerts généralement dans de multiples éditions. 659 00:31:30,370 --> 00:31:34,150 Une édition standard que nous attendons plus chaque élève au cours de s'attaquer 660 00:31:34,150 --> 00:31:37,900 mais aussi une édition dite de pirate qui n'offre aucune forme de crédit supplémentaire 661 00:31:37,900 --> 00:31:41,980 pure et simple, mais vraiment les droits de vantardise à-dire que vous avez essayé et abordez 662 00:31:41,980 --> 00:31:45,250 Les éditions de pirates du cours que approcher le matériau semblable 663 00:31:45,250 --> 00:31:47,370 mais sous un angle plus sophistiqué. 664 00:31:47,370 --> 00:31:49,480 >> Ce que nous offrons pour l' édition standard, pour, 665 00:31:49,480 --> 00:31:51,420 encore une fois, une majorité super- des étudiants, ne sont pas 666 00:31:51,420 --> 00:31:54,060 seulement des visites virtuelles, qui sont vidéos dirigés par le personnel de l'cours 667 00:31:54,060 --> 00:31:57,840 que vous marchez vraiment à travers la les problèmes de cours et la conception possible 668 00:31:57,840 --> 00:31:58,910 implémentations. 669 00:31:58,910 --> 00:32:01,434 Et nous avons aussi, après la fait, offrir des autopsies, 670 00:32:01,434 --> 00:32:03,350 sorte que, si vous vous demandez comment vous pourriez avoir 671 00:32:03,350 --> 00:32:05,930 ou doivent résoudre un certain problème, le personnel enseignant 672 00:32:05,930 --> 00:32:08,640 vous guidera à travers ceux sur la vidéo ainsi. 673 00:32:08,640 --> 00:32:14,350 >> Pendant ce temps, ce qui attend trop sont cinq jours de retard et le fait 674 00:32:14,350 --> 00:32:16,680 que nous allons laisser tomber votre plus bas problème réglé score. 675 00:32:16,680 --> 00:32:20,370 Nous apprécions certainement que, en échange de la charge de travail qui attend 50 676 00:32:20,370 --> 00:32:24,020 de vous, la vie est dans la manière parfois, sinon cinq fois. 677 00:32:24,020 --> 00:32:26,150 Et si ce offrira vous un peu de souplesse, 678 00:32:26,150 --> 00:32:29,400 prolonger votre délai de, par exemple, un Jeudi midi à vendredi à midi. 679 00:32:29,400 --> 00:32:33,150 Voir le programme de la détails de mise en œuvre de celui-ci. 680 00:32:33,150 --> 00:32:34,702 >> Maintenant ce qui l'attend maintenant? 681 00:32:34,702 --> 00:32:36,660 Et ça ne se produit pour moi maintenant combien de temps 682 00:32:36,660 --> 00:32:38,333 Je vais avoir les gars sommes ici sur scène. 683 00:32:38,333 --> 00:32:39,060 >> [Rires] 684 00:32:39,060 --> 00:32:41,867 >> DAVID J. Malan: Mais nous y reviendrons l'arrivée à son apogée avant longtemps. 685 00:32:41,867 --> 00:32:43,700 Donc ce qui l'attend en termes des ensembles de problèmes? 686 00:32:43,700 --> 00:32:47,099 Eh bien, peut-être un teaser de ce que nous a fait l'année dernière avec vos prédécesseurs. 687 00:32:47,099 --> 00:32:49,140 Dans la première série de problème l'année dernière, nous avons lancé 688 00:32:49,140 --> 00:32:51,630 Scratch, un graphique langage de programmation qui 689 00:32:51,630 --> 00:32:54,570 vous permet de programmer littéralement par glisser-déposer les pièces du puzzle, 690 00:32:54,570 --> 00:32:57,220 comme ceux-ci, qui sont rappelle les constructions 691 00:32:57,220 --> 00:32:59,260 verra une semaine donc, quand on passe 692 00:32:59,260 --> 00:33:01,870 à une plus traditionnelle langue, ou C. 693 00:33:01,870 --> 00:33:03,930 >> L'année dernière, nous avons procédé à cet ensemble de problèmes, 694 00:33:03,930 --> 00:33:06,720 impliquant pour la cryptographie, le brouillage de l'information 695 00:33:06,720 --> 00:33:10,410 pour l'empêcher de gouvernements ou entre amis ' yeux que vous ne voulez pas le voir. 696 00:33:10,410 --> 00:33:12,540 Codé en voici une un message que bientôt vous 697 00:33:12,540 --> 00:33:15,740 sera en mesure de décrypter ou de-mêlée. 698 00:33:15,740 --> 00:33:17,960 >> Breakout est un problème établi l'an dernier, dans laquelle 699 00:33:17,960 --> 00:33:21,530 vous utilisez ces nouveaux programmes trouvés compétences à mettre en œuvre effectivement 700 00:33:21,530 --> 00:33:24,840 un jeu que vous wherein-- peut rappeler de childhood-- 701 00:33:24,840 --> 00:33:28,040 l'objectif était de frapper l' briques qui sont au-dessus de l'écran 702 00:33:28,040 --> 00:33:30,190 ici, l'accumulation d'une marquer le long du chemin, 703 00:33:30,190 --> 00:33:35,460 et mettre en œuvre vos propres algorithmes avec laquelle cette solution en fin de compte 704 00:33:35,460 --> 00:33:37,357 vous permet de jouer le jeu. 705 00:33:37,357 --> 00:33:39,440 Pendant ce temps, plus tard dans le semestre, nous vous donnerons 706 00:33:39,440 --> 00:33:43,470 un dictionnaire de 143 091 mots anglais. 707 00:33:43,470 --> 00:33:46,300 Et vous serez mis au défi d'écrire un programme qui 708 00:33:46,300 --> 00:33:50,260 vérification de l'orthographe, les documents, par chargement que beaucoup de mots en mémoire 709 00:33:50,260 --> 00:33:52,300 aussi efficacement que possible. 710 00:33:52,300 --> 00:33:54,240 En général, vous opposant contre vos camarades de classe 711 00:33:54,240 --> 00:33:56,610 si vous optez dans un peu d'un défi à bord de chef de file 712 00:33:56,610 --> 00:34:00,090 pour voir qui peut utiliser le moins secondes de temps de fonctionnement, 713 00:34:00,090 --> 00:34:03,550 et le plus petit nombre de méga-octets de mémoire, 714 00:34:03,550 --> 00:34:08,659 et effectivement affiner vos programmes être incroyablement efficace des ressources non 715 00:34:08,659 --> 00:34:09,820 juste le temps. 716 00:34:09,820 --> 00:34:13,239 >> L'année dernière, aussi, nous avons examiné à la fin du semestre à la programmation web. 717 00:34:13,239 --> 00:34:16,230 Et en effet, ce que nous ferons à nouveau cette année avec plusieurs séries de problèmes, 718 00:34:16,230 --> 00:34:20,290 vous présenter les techniques et l'état d'esprit avec lequel vous pouvez appliquer 719 00:34:20,290 --> 00:34:23,489 ces compétences en programmation à sites Web, des sites Web dynamiques, 720 00:34:23,489 --> 00:34:26,639 sites qui permettent de résoudre effectivement problèmes et se comporter différemment 721 00:34:26,639 --> 00:34:30,620 et ne sont pas simplement statique sites avec des informations statiques. 722 00:34:30,620 --> 00:34:32,854 >> Le projet final en fin de compte définira, si, 723 00:34:32,854 --> 00:34:34,770 le point culminant du cours pour les étudiants, dans laquelle 724 00:34:34,770 --> 00:34:37,228 vous serez mis au défi de mettre en œuvre plus rien d'intéressant 725 00:34:37,228 --> 00:34:40,590 à vous, tant qu'il en quelque sorte s'appuie sur les leçons du cours. 726 00:34:40,590 --> 00:34:42,930 >> Et comme vous l'avez vu dans le vidéo au début, 727 00:34:42,930 --> 00:34:47,340 nous allons conclure le semestre avec la CS50 Hackathon, qui si, inconnu, 728 00:34:47,340 --> 00:34:51,420 débutera à 19h00 une nuit et terminer à 7h00 le lendemain matin. 729 00:34:51,420 --> 00:34:53,614 Autour de 21h00, nous allons Pour en premier dîner. 730 00:34:53,614 --> 00:34:55,489 Autour de 01h00, nous allons Pour la deuxième dîner. 731 00:34:55,489 --> 00:34:57,490 Et si vous êtes encore debout à 5h00, nous 732 00:34:57,490 --> 00:35:00,320 feront la navette bus vous IHOP pour le petit déjeuner. 733 00:35:00,320 --> 00:35:04,980 >> Le CS50 Fair, quant à lui, est un événement pour qui 2000 ainsi que les professeurs, les étudiants, 734 00:35:04,980 --> 00:35:07,850 et le personnel de l'ensemble du campus sera venir voir vos réalisations 735 00:35:07,850 --> 00:35:10,150 dans le cours et la finale projets et réalisations 736 00:35:10,150 --> 00:35:14,960 que vous créez sur votre ordinateur portable, ordinateurs de bureau, ou peut-être même les ampoules lumineuses. 737 00:35:14,960 --> 00:35:17,340 >> Pendant ce temps, les heures de bureau et la structure de support. 738 00:35:17,340 --> 00:35:20,480 Et maintenant, ça aurait été un meilleur moment pour vous tous élever. 739 00:35:20,480 --> 00:35:24,310 >> Heures d'ouverture auront lieu quatre nuits une semaine pour plusieurs heures chaque nuit 740 00:35:24,310 --> 00:35:27,710 avec en général de 20 à 30 de la Le personnel de cours sur le devoir à la fois 741 00:35:27,710 --> 00:35:31,240 de vous fournir intime tête-à-un les possibilités de soutien 742 00:35:31,240 --> 00:35:33,790 avec les ensembles de problèmes du cours. 743 00:35:33,790 --> 00:35:36,120 Tutorat aussi sera disponibles, en particulier 744 00:35:36,120 --> 00:35:39,630 pour les étudiants de moins comfortable-- ou oser dire moins comfortable-- pour qui 745 00:35:39,630 --> 00:35:41,869 les heures de bureau ne sont pas les plus environnement favorable 746 00:35:41,869 --> 00:35:43,660 et ne sont certainement pas le plus sans stress. 747 00:35:43,660 --> 00:35:47,430 Surtout quand les délais sont pressants, nous vous coupler de manière proactive nous 748 00:35:47,430 --> 00:35:51,440 avec un membre du personnel à travailler avec sur certaines horaire régulier de vos besoins 749 00:35:51,440 --> 00:35:53,850 et leur horaire le permet. 750 00:35:53,850 --> 00:35:55,260 >> Et le personnel. 751 00:35:55,260 --> 00:36:01,020 Permettez-moi de vous présenter Davon, Rob, et Gabriel, les chefs de cette année. 752 00:36:01,020 --> 00:36:02,370 Si vous voulez chaque say-- 753 00:36:02,370 --> 00:36:03,349 >> [Applaudissements] 754 00:36:03,349 --> 00:36:03,849 mot --a. 755 00:36:03,849 --> 00:36:05,328 [Applaudissements] 756 00:36:05,328 --> 00:36:10,270 757 00:36:10,270 --> 00:36:13,220 Davon ici est la le directeur de cours, qui 758 00:36:13,220 --> 00:36:15,730 veut dire dans son rôle à temps plein il aide à l'exécution 759 00:36:15,730 --> 00:36:18,424 et de la logistique de CS50. 760 00:36:18,424 --> 00:36:19,340 DAVON: Ouais, salut les gars. 761 00:36:19,340 --> 00:36:20,965 Vous verrez beaucoup pour moi à des heures de bureau. 762 00:36:20,965 --> 00:36:22,110 Je vais enseigner sections. 763 00:36:22,110 --> 00:36:25,150 Et si vous prenez des e-mails à venir, Je vais probablement répondrai. 764 00:36:25,150 --> 00:36:27,670 Donc je vais voir beaucoup d'entre vous tous semestre. 765 00:36:27,670 --> 00:36:29,890 Et bienvenue à CS50. 766 00:36:29,890 --> 00:36:38,330 >> DAVID J. Malan: Et maintenant, Gabriel, qui lui-même était juste un étudiant de première année l'an dernier, 767 00:36:38,330 --> 00:36:41,820 mais pour les deux dernières années a été l'exploitation de son propre version du CS50 768 00:36:41,820 --> 00:36:44,660 au Brésil, où il a téléchargé tout le content-- de cours 769 00:36:44,660 --> 00:36:46,890 qui est d'être clairement filmé et placé online-- 770 00:36:46,890 --> 00:36:51,480 afin qu'il puisse le traduire en Portugais, puis enseigner plus de 100 771 00:36:51,480 --> 00:36:54,610 de ses camarades de classe au cours de la cours d'une couple d'années, 772 00:36:54,610 --> 00:36:57,650 l'enseignement dans sa langue maternelle Le programme du cours. 773 00:36:57,650 --> 00:36:58,964 >> GABRIEL: Bonjour. 774 00:36:58,964 --> 00:37:00,912 >> [Applaudissements] 775 00:37:00,912 --> 00:37:06,669 776 00:37:06,669 --> 00:37:07,710 GABRIEL: Salut, je suis Gabriel. 777 00:37:07,710 --> 00:37:09,340 Je suis le chef TF du cours. 778 00:37:09,340 --> 00:37:10,780 Et j'espère que vous aimerez CS50. 779 00:37:10,780 --> 00:37:12,830 C'est CS50. 780 00:37:12,830 --> 00:37:14,697 >> DAVID J. Malan: Maintenant pour Rob. 781 00:37:14,697 --> 00:37:15,780 Oh, vous voulez l'introduction? 782 00:37:15,780 --> 00:37:16,696 >> ROB: Non, je ne sais pas. 783 00:37:16,696 --> 00:37:18,225 [Rires] 784 00:37:18,225 --> 00:37:19,475 DAVID J. Malan: Et Rob Boden. 785 00:37:19,475 --> 00:37:22,300 [Rires] 786 00:37:22,300 --> 00:37:23,800 ROB: Salut, je suis Rob. 787 00:37:23,800 --> 00:37:27,220 C'est ma cinquième année impliqué dans le cours. 788 00:37:27,220 --> 00:37:29,220 Chaque année, c'est juste une de mieux en mieux la classe, 789 00:37:29,220 --> 00:37:31,550 si vous les gars sont clairement va être génial. 790 00:37:31,550 --> 00:37:33,181 J'espère que vous avez du plaisir avec elle. 791 00:37:33,181 --> 00:37:34,430 Je vais avoir du plaisir avec elle. 792 00:37:34,430 --> 00:37:36,670 Donc, vous voyez autour. 793 00:37:36,670 --> 00:37:38,445 >> DAVID J. Malan: Et temps ne permettra pas us-- 794 00:37:38,445 --> 00:37:39,670 >> [Applaudissements] 795 00:37:39,670 --> 00:37:41,661 >> Le temps nous permet pas à présenter tout le monde 796 00:37:41,661 --> 00:37:44,660 sur la scène et l'ensemble de leurs collègues qui sont les classes des courses aujourd'hui. 797 00:37:44,660 --> 00:37:47,390 Mais permettez-moi de vous présenter Belinda et CS50 Puzzle 798 00:37:47,390 --> 00:37:49,550 Jour, qui attend ce Samedi prochain, qui 799 00:37:49,550 --> 00:37:51,800 est le premier de l' événements de grande envergure de cours. 800 00:37:51,800 --> 00:37:54,300 >> Celui-ci en particulier signifiait à marteler le point 801 00:37:54,300 --> 00:37:57,580 que l'informatique est en fin de compte pas de programmation, mais plutôt 802 00:37:57,580 --> 00:37:59,280 sur la résolution de problèmes en général. 803 00:37:59,280 --> 00:38:01,450 Et Puzzle Jour, que vous aurez voir, vous apportera 804 00:38:01,450 --> 00:38:04,207 et vos camarades de classe together-- nous espérons que ce samedi. 805 00:38:04,207 --> 00:38:04,961 >> BELINDA: OK. 806 00:38:04,961 --> 00:38:05,750 Salut, les gars. 807 00:38:05,750 --> 00:38:06,740 Alors merci. 808 00:38:06,740 --> 00:38:10,120 Alors que notre illustre capitaine dit, Belinda de mon nom. 809 00:38:10,120 --> 00:38:12,100 Je suis un étudiant en deuxième année à Quincy House. 810 00:38:12,100 --> 00:38:15,730 >> Je, comme vous les gars, pris CS50 l'année dernière, vraiment aimé. 811 00:38:15,730 --> 00:38:17,960 J'ai un faible pour les vous les gars dans la troisième rangée. 812 00:38:17,960 --> 00:38:21,384 Et je suis fier de dire que je suis maintenant dans une relation engagée 813 00:38:21,384 --> 00:38:22,300 avec CS50 [inaudible]. 814 00:38:22,300 --> 00:38:22,799 Dáccord. 815 00:38:22,799 --> 00:38:26,140 C'était ma version boiteux d'une blague. 816 00:38:26,140 --> 00:38:28,320 >> Quoi qu'il en soit, si émouvant sur, je voulais juste d'inviter 817 00:38:28,320 --> 00:38:31,439 vous les gars tout à l'i-lab, ou de l'urticaire HBS. 818 00:38:31,439 --> 00:38:33,730 Nous allons avoir Puzzle jours de 12h00 à 3:00. 819 00:38:33,730 --> 00:38:37,680 Et c'est une grande opportunité pour vous les gars pour répondre à vos amis et compagnons CS, 820 00:38:37,680 --> 00:38:42,780 résoudre des énigmes non-CS, comme le capitaine mentionné, et aussi manger de la nourriture gratuite, 821 00:38:42,780 --> 00:38:46,910 gagner des prix exceptionnels, comme des cartes-cadeaux, 75 $ par personne, 822 00:38:46,910 --> 00:38:48,400 et also-- quoi s'agissait-il? 823 00:38:48,400 --> 00:38:49,540 Wii U ou quelque chose? 824 00:38:49,540 --> 00:38:50,333 Wii U? 825 00:38:50,333 --> 00:38:51,040 Oui. 826 00:38:51,040 --> 00:38:52,330 Pour notre tirage au sort. 827 00:38:52,330 --> 00:38:52,830 Impressionnant. 828 00:38:52,830 --> 00:38:54,310 Donc, je vais rester après la classe. 829 00:38:54,310 --> 00:38:56,770 Et si vous les gars ont tout questions, faites le moi savoir. 830 00:38:56,770 --> 00:38:59,980 >> DAVID J. Malan: Et vous allez voir, au-delà cela, il n'y a rien à faire aujourd'hui. 831 00:38:59,980 --> 00:39:01,920 Le premier problème réglé sortira vendredi. 832 00:39:01,920 --> 00:39:05,420 Mais pour nous ramener à la maison aujourd'hui, je voudrais vous présenter plus précisément un plus 833 00:39:05,420 --> 00:39:09,080 membre du personnel, Colton Ogden ici, dont les mains sont maintenant 834 00:39:09,080 --> 00:39:12,250 protégée au dessus de vous avec ce contrôleur MIDI 835 00:39:12,250 --> 00:39:15,170 à marteler le point plus que l'informatique, aussi, 836 00:39:15,170 --> 00:39:19,130 a applicabilité au-delà de l'ingénierie SOUCHES et de l'informatique elle-même, 837 00:39:19,130 --> 00:39:22,890 s'étendant même à des domaines tels que la musique. 838 00:39:22,890 --> 00:39:30,590 >> Colton a gentiment offered-- je pensais l'un d'eux allait fixer la mise au point. 839 00:39:30,590 --> 00:39:34,400 Andrew, si nous pouvions invoquer accent ici pendant un moment. 840 00:39:34,400 --> 00:39:36,780 >> Qu'est-ce que Colton a fait à l'avance est le programme 841 00:39:36,780 --> 00:39:40,345 ce dispositif, ce bloc de touches que vous voyez décriviez ici, 842 00:39:40,345 --> 00:39:42,470 un contrôleur MIDI, moyennant quoi chacun de ces boutons 843 00:39:42,470 --> 00:39:47,080 est branché à une note de musique particulier ou un solide, et plus généralement d'un enregistrement, 844 00:39:47,080 --> 00:39:50,445 de telle sorte que par la lecture de ces modes boutons, un peu comme motifs de bits, 845 00:39:50,445 --> 00:39:52,620 peut représenter d'autres concepts plus niveau. 846 00:39:52,620 --> 00:39:56,750 Il pourra en fin de compte nous ramener à la maison aujourd'hui? 847 00:39:56,750 --> 00:39:59,540 Sans plus tarder, si nous pourrions éteindre les lumières, 848 00:39:59,540 --> 00:40:03,145 et tourner sur l'écran derrière Colton. 849 00:40:03,145 --> 00:40:03,865 >> PUBLIC: Woo! 850 00:40:03,865 --> 00:40:06,090 >> DAVID J. Malan: C'est CS50. 851 00:40:06,090 --> 00:40:10,518 >> [MUSIQUE LECTURE] 852 00:40:10,518 --> 00:42:46,018 853 00:42:46,018 --> 00:42:49,420 >> [Applaudissements] 854 00:42:49,420 --> 00:42:54,766 855 00:42:54,766 --> 00:42:56,450 >> C'est tout pour CS50. 856 00:42:56,450 --> 00:42:57,950 Nous vous voir vendredi. 857 00:42:57,950 --> 00:42:59,890 Certains gâteau vous attend dans le transept. 858 00:42:59,890 --> 00:43:04,046 859 00:43:04,046 --> 00:43:08,850 >> [MUSIQUE LECTURE] 860 00:43:08,850 --> 00:45:49,227