1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Bermain muzik] 3 00:00:10,830 --> 00:00:12,080 [MUSIC - Rossini, "RANZ DES VACHES "DARIPADA WILLIAM BERITAHU] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIC - THE BEAT INGGERIS, "MAC DARI KETUA SWIVEL "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Tepuk tangan dan bersorak] 8 00:02:31,510 --> 00:02:33,520 >> DAVID MALAN: Jadi ini adalah CS50. 9 00:02:33,520 --> 00:02:34,730 Nama saya David Malan. 10 00:02:34,730 --> 00:02:39,250 Dan 73% daripada anda tidak mempunyai pengalaman sebelum dengan sains komputer, 11 00:02:39,250 --> 00:02:41,300 bertentangan dengan apa yang anda mungkin berfikir. 12 00:02:41,300 --> 00:02:45,290 Jadi hari ini kita fikir kita akan cip jauh pada yang tidak biasa, tetapi juga 13 00:02:45,290 --> 00:02:48,970 memberikan anda rasa, bagi mereka yang anda dengan lebih selesa, yang arahan 14 00:02:48,970 --> 00:02:50,550 anda boleh pergi semester ini. 15 00:02:50,550 --> 00:02:51,890 >> Jadi mari kita mulakan dengan ini. 16 00:02:51,890 --> 00:02:55,490 Saya benar-benar tidak tahu apa yang di dalam komputer, walaupun, seperti anda, saya 17 00:02:55,490 --> 00:02:56,780 menggunakannya setiap hari. 18 00:02:56,780 --> 00:03:00,000 Tetapi ia adalah beberapa jenis kotak, dan ada tidak banyak input ke dalamnya. 19 00:03:00,000 --> 00:03:01,350 Minimal, ada, apa? 20 00:03:01,350 --> 00:03:03,120 Mungkin kord kuasa. 21 00:03:03,120 --> 00:03:06,640 >> Dan sesungguhnya dengan bahan yang satu ini, elektrik, kita seolah-olah mampu 22 00:03:06,640 --> 00:03:09,490 melakukan agak sedikit pada hari ini. 23 00:03:09,490 --> 00:03:12,130 Tetapi pada akhir hari, kita perlu mewakili perkara-perkara 24 00:03:12,130 --> 00:03:12,860 bahawa kita mengambil berat tentang. 25 00:03:12,860 --> 00:03:15,240 Kita perlu untuk mewakili maklumat dalam bentuk tertentu. 26 00:03:15,240 --> 00:03:18,365 Dan anda mungkin sekurang-kurangnya samar-samar biasa dengan idea oleh binari atau 27 00:03:18,365 --> 00:03:21,370 bit entah bagaimana atau lain-lain, komputer dikurangkan kepada sifar dan orang-orang. 28 00:03:21,370 --> 00:03:26,320 Tetapi kita boleh menerima itu dan sekurang-kurangnya meletakkan sedikit cahaya untuk itu? 29 00:03:26,320 --> 00:03:28,880 >> Jadi saya mempunyai ini sedikit lampu meja di sini. 30 00:03:28,880 --> 00:03:30,450 Saya mempunyai soket elektrik di sini. 31 00:03:30,450 --> 00:03:33,930 Dan saya akan mencadangkan dalam yang komputer saya adalah sekurang-kurangnya satu 32 00:03:33,930 --> 00:03:37,300 perkara-perkara ini, sesuatu yang mampu daripada dihidupkan atau dimatikan. 33 00:03:37,300 --> 00:03:40,200 Dalam kes ini, ia merupakan satu lampu meja, tetapi pada tahap yang lebih rendah, ia adalah sesuatu yang 34 00:03:40,200 --> 00:03:41,500 dipanggil transistor. 35 00:03:41,500 --> 00:03:44,730 >> Tetapi dalam dunia kita, ia adalah lampu meja, jadi Saya akan pergi ke hadapan dan palam ini 36 00:03:44,730 --> 00:03:47,990 kepada elektrik saya di sini. 37 00:03:47,990 --> 00:03:52,970 Dan saya mendakwa bahawa menggunakan ini mudah, peranti mudah, suis ini mudah, saya 38 00:03:52,970 --> 00:03:54,850 boleh mewakili maklumat. 39 00:03:54,850 --> 00:03:58,090 Sebagai contoh, sekarang, saya mewakili apa-apa, kan? 40 00:03:58,090 --> 00:04:01,820 Saya mewakili apa yang saya akan memanggil 0 atau palsu, yang bertentangan dengan sesuatu 41 00:04:01,820 --> 00:04:03,130 sebenarnya hadir. 42 00:04:03,130 --> 00:04:07,050 Tetapi jika saya hanya menghidupkan suis ini, sekarang saya telah mewakili 1. 43 00:04:07,050 --> 00:04:10,720 Jadi menggunakan sekeping ini yang sangat mudah ingatan, jika anda akan, saya boleh mewakili 44 00:04:10,720 --> 00:04:11,450 maklumat. 45 00:04:11,450 --> 00:04:14,350 >> Sekarang malangnya, komputer saya tidak boleh melakukan semua yang banyak. 46 00:04:14,350 --> 00:04:17,430 Ia hanya boleh mewakili dua nilai di seluruh dunia - 47 00:04:17,430 --> 00:04:18,620 0 atau 1. 48 00:04:18,620 --> 00:04:21,839 Tetapi apa yang satu penyelesaian yang jelas, sekarang, jika kita mahu mengembangkan komputer kita 49 00:04:21,839 --> 00:04:25,120 ingatan dan mewakili lebih daripada hanya 0 dan 1? 50 00:04:25,120 --> 00:04:27,060 >> Nah, mari kita mengambil satu lagi sedikit itu. 51 00:04:27,060 --> 00:04:30,260 Mari kita merebut suis lain, satu lagi transistor, tetapi anda ingin 52 00:04:30,260 --> 00:04:31,130 berfikir mengenainya. 53 00:04:31,130 --> 00:04:34,170 Biar saya pergi ke hadapan dan palam ini ke dalam komputer saya juga. 54 00:04:34,170 --> 00:04:38,270 Dan saya akan menuntut, sekarang, bahawa dengan menggunakan sedikit lebih elektrik dan 55 00:04:38,270 --> 00:04:42,290 beralih lebih daripada suis ini pada dan kira, saya boleh mewakili lebih seperti 56 00:04:42,290 --> 00:04:43,020 maklumat. 57 00:04:43,020 --> 00:04:44,660 >> Jadi sekarang, ini ialah 1. 58 00:04:44,660 --> 00:04:48,120 Jika saya mahu kini mewakili 2, saya boleh melakukan ini. 59 00:04:48,120 --> 00:04:51,510 Tetapi biasanya, konvensyen, kerana kita akan akhirnya lihat, saya akan melakukan ini. 60 00:04:51,510 --> 00:04:55,260 Jadi ini adalah 0, ini ialah 1. 61 00:04:55,260 --> 00:04:56,720 Ini akan menjadi 2. 62 00:04:56,720 --> 00:04:59,920 Dan tidak menghairankan, ini akan menjadi 3. 63 00:04:59,920 --> 00:05:02,610 >> Jadi dengan cara ini, masih, boleh kita mengira sehingga lebih jauh? 64 00:05:02,610 --> 00:05:06,500 Jika saya mendapat sedikit ketiga, suis ketiga, apa yang paling tinggi saya kini boleh 65 00:05:06,500 --> 00:05:09,720 mengira sehingga dari 0? 66 00:05:09,720 --> 00:05:12,020 Jadi 7 jika saya bermula pada 0, betul? 67 00:05:12,020 --> 00:05:15,980 Kerana jika saya menghidupkan lampu ini di dalam dan di sebenarnya palam ini ketiga dan terakhir 68 00:05:15,980 --> 00:05:20,090 cahaya ke dalam soket elektrik saya di sini, maka saya mempunyai keupayaan untuk mewakili 69 00:05:20,090 --> 00:05:24,930 mana-mana dua nilai di sini, dua nilai di sini, dua nilai di sini - 70 00:05:24,930 --> 00:05:32,610 dan saya boleh mewakili 2 kali 2 kali 2, atau lapan nilai yang mungkin. 71 00:05:32,610 --> 00:05:36,340 Dan jika saya memulakan perakaunan pada 0, jadi itulah 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Jadi perduaan ini. 73 00:05:37,480 --> 00:05:39,420 Ia benar-benar adalah semudah itu. 74 00:05:39,420 --> 00:05:41,930 Dan saya berpendapat bahawa ini adalah sebenarnya agak biasa kepada kebanyakan 75 00:05:41,930 --> 00:05:43,180 semua orang di dalam bilik ini. 76 00:05:43,180 --> 00:05:45,710 Biar saya pergi ke hadapan dan membuka editor teks kecil di sini. 77 00:05:45,710 --> 00:05:49,040 >> Dan anda mungkin ingat dari sekolah rendah bahawa kita mempunyai perkara-perkara seperti beratus-ratus 78 00:05:49,040 --> 00:05:51,970 tempat, tempat puluh, dan tempat yang. 79 00:05:51,970 --> 00:05:55,040 Dan ingat bahawa jika anda mempunyai beberapa perpuluhan nombor, seperti sesuatu yang rawak 80 00:05:55,040 --> 00:05:59,470 seperti 123, anda akan pada dasarnya menulis bahawa di dalam bentuk 81 00:05:59,470 --> 00:06:00,450 ketiga-tiga tiang. 82 00:06:00,450 --> 00:06:04,070 Dan mengapa adalah 1, 2, 3 apa kita tahu sebagai 123? 83 00:06:04,070 --> 00:06:11,220 Nah, dalam ruang paling kiri, kita mempunyai satu 100 campur dua 10s, supaya 120, 84 00:06:11,220 --> 00:06:14,250 ditambah tiga 1s, supaya 123. 85 00:06:14,250 --> 00:06:17,990 >> Sekarang dunia ini yang kita hanya diterangi adalah sama seperti 86 00:06:17,990 --> 00:06:21,150 anda telah biasa dengan bertahun-tahun, kecuali kini, tiang kami 87 00:06:21,150 --> 00:06:22,060 tidak kuasa 10. 88 00:06:22,060 --> 00:06:23,780 Mereka hanya kuasa 2. 89 00:06:23,780 --> 00:06:27,830 Jadi sedangkan itulah tempat orang-orang itu, ini akan menjadi tempat yang berdua-dua, ini adalah 90 00:06:27,830 --> 00:06:29,540 akan menjadi tempat yang merangkak. 91 00:06:29,540 --> 00:06:33,260 >> Dan kerana saya hanya menggunakan yang paling mudah mekanisme untuk mengubah keadaan 92 00:06:33,260 --> 00:06:37,100 dalam dan di luar - elektrik yang mengalir atau elektrik tidak mengalir - 93 00:06:37,100 --> 00:06:40,880 Saya tidak mempunyai cukup ekspresif sama pelbagai sebagai 0 melalui sembilan. 94 00:06:40,880 --> 00:06:43,270 Kami akan memastikan ia sangat mudah di dunia ini komputer. 95 00:06:43,270 --> 00:06:45,060 Saya hanya mempunyai 0 atau 1 - 96 00:06:45,060 --> 00:06:47,890 Mati atau, palsu atau benar. 97 00:06:47,890 --> 00:06:52,610 >> Dan supaya apa yang saya mewakili sekarang 1, 1, 1, kerana masing-masing 98 00:06:52,610 --> 00:06:54,000 lampu diterangi. 99 00:06:54,000 --> 00:06:59,600 Well, yang memberikan saya satu 4 tambah satu 2, jadi itu 6, tambah satu 1, dan itulah 7. 100 00:06:59,600 --> 00:07:03,450 Dan ergo tidak urutan ini daripada tiga bit mewakili nombor 7. 101 00:07:03,450 --> 00:07:06,330 >> Jadi semua masa ini, di dalam anda komputer, telah menjadi apa-apa bilangan 102 00:07:06,330 --> 00:07:08,090 transistor, apa-apa bilangan bit. 103 00:07:08,090 --> 00:07:10,380 Tetapi pada akhir hari, kita boleh mewakili maklumat 104 00:07:10,380 --> 00:07:12,560 sebagai hanya sekali. 105 00:07:12,560 --> 00:07:16,770 Sekarang malangnya, kami hanya dikira sehingga 7 dalam CS50 setakat ini, tetapi 106 00:07:16,770 --> 00:07:18,550 mudah-mudahan kita boleh melakukan sedikit yang lebih baik daripada itu. 107 00:07:18,550 --> 00:07:19,550 Dan sesungguhnya kita boleh. 108 00:07:19,550 --> 00:07:23,570 >> Katakan bahawa kita sebagai manusia hanya sewenang-wenangnya membuat keputusan bahawa kita akan 109 00:07:23,570 --> 00:07:28,750 untuk mengaitkan nombor seperti 1 dan 2, 3, 4, 5, 6, 7, dengan huruf tertentu 110 00:07:28,750 --> 00:07:29,410 abjad. 111 00:07:29,410 --> 00:07:32,350 Dan atas sebab-sebab sejarah, saya akan mula agak sewenang-wenangnya, tetapi saya 112 00:07:32,350 --> 00:07:36,880 akan berkata, manusia, kita akan memutuskan standard, di seluruh dunia, yang 113 00:07:36,880 --> 00:07:43,200 65 mewakili bilangan huruf A. 66 akan mewakili B. Dot, dot, dot. 114 00:07:43,200 --> 00:07:45,140 90 akan mewakili Z. surat 115 00:07:45,140 --> 00:07:48,000 >> Dan mari kita andaikan, jika kita benar-benar meletakkan beberapa berfikir ke dalamnya, kita boleh datang 116 00:07:48,000 --> 00:07:50,860 dengan nombor untuk tanda seru dan huruf kecil, dan sesungguhnya, 117 00:07:50,860 --> 00:07:52,710 orang lain telah dilakukan bahawa untuk kita. 118 00:07:52,710 --> 00:07:56,410 Jadi sekarang kita mempunyai bit yang kita boleh mewakili nombor, nombor dengan yang 119 00:07:56,410 --> 00:08:00,130 kita boleh mewakili huruf, dan dengan surat boleh kita kini mula mengarang 120 00:08:00,130 --> 00:08:02,650 e-mel dan watak-watak percetakan pada skrin. 121 00:08:02,650 --> 00:08:05,850 >> Jadi biarlah saya menjemput, jika saya boleh, lapan sukarelawan berani - 122 00:08:05,850 --> 00:08:09,200 yang tidak keberatan muncul bukan sahaja pada kamera tetapi di internet - 123 00:08:09,200 --> 00:08:13,130 untuk tampil di sini dan mewakili lapan seperti bit, dan bukannya tiga. 124 00:08:13,130 --> 00:08:14,380 Jadi bagaimana kira-kira satu, dua? 125 00:08:14,380 --> 00:08:16,290 Bagaimana kira-kira tiga? 126 00:08:16,290 --> 00:08:20,230 Bagaimana kira-kira empat dalam cahaya biru, lima di akhir? 127 00:08:20,230 --> 00:08:21,250 Tentang seseorang di sini? 128 00:08:21,250 --> 00:08:25,320 Enam di hadapan, tujuh di hadapan, dan lapan di hadapan, serta. 129 00:08:25,320 --> 00:08:29,050 >> Jadi saya hanya kebetulan datang bersedia dengan sekumpulan seluruh slip kertas. 130 00:08:29,050 --> 00:08:34,150 Dan pada keping kertas nombor yang mewakili apa tiang 131 00:08:34,150 --> 00:08:35,809 anda semua akan mewakili. 132 00:08:35,809 --> 00:08:36,740 Jadi, anda akan - apa nama anda? 133 00:08:36,740 --> 00:08:37,570 >> PELAJAR: Anna Lea. 134 00:08:37,570 --> 00:08:40,370 >> DAVID MALAN: Anna Leah, anda akan menjadi ruang 128s. 135 00:08:40,370 --> 00:08:41,059 Anda? 136 00:08:41,059 --> 00:08:41,510 >> PELAJAR: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID MALAN: Chris akan menjadi ruang 64s. 138 00:08:43,620 --> 00:08:44,070 Anda? 139 00:08:44,070 --> 00:08:44,540 >> PELAJAR: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID MALAN: Dan akan menjadi ruang 32s. 141 00:08:46,970 --> 00:08:47,470 >> PELAJAR: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID MALAN: Pramit akan menjadi ruang 16s itu. 143 00:08:49,430 --> 00:08:50,290 >> PELAJAR: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID MALAN: Lillian akan 8s itu. 145 00:08:51,904 --> 00:08:52,768 >> PELAJAR: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID MALAN: Jill akan menjadi ruang 4s. 147 00:08:55,025 --> 00:08:55,400 >> PELAJAR: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID MALAN: Mary akan menjadi 2s, dan? 149 00:08:57,000 --> 00:08:57,470 >> PELAJAR: Daud. 150 00:08:57,470 --> 00:08:59,220 >> DAVID MALAN: David akan menjadi ruang 1s. 151 00:08:59,220 --> 00:09:02,030 Jadi, jika anda semua boleh melangkah sedikit hadapan supaya semua orang boleh melihat. 152 00:09:02,030 --> 00:09:05,370 Apa yang lelaki tidak melihat bahawa pada belakang ini slip kertas adalah 153 00:09:05,370 --> 00:09:09,760 lembaran menipu kecil yang kira-kira untuk mengarahkan lapan bit untuk sama ada 154 00:09:09,760 --> 00:09:12,380 mengangkat tangan atau tidak mengangkat tangan mereka. 155 00:09:12,380 --> 00:09:14,100 Jika tangan mereka naik, mereka mewakili 1. 156 00:09:14,100 --> 00:09:17,120 Jika tangan mereka tetap di bawah, mereka mewakili 0. 157 00:09:17,120 --> 00:09:21,410 >> Sementara itu, kami penonton harus dapat mengetahui, berdasarkan ini 158 00:09:21,410 --> 00:09:26,490 pemetaan, apa yang tiga huruf perkataan ini orang kira-kira untuk menyatakan. 159 00:09:26,490 --> 00:09:29,700 Jadi dalam hanya seketika, anda akan membaca baris pertama dari belakang 160 00:09:29,700 --> 00:09:32,880 lembaran menipu anda, dan anda sama ada akan menaikkan atau tidak mengangkat tangan anda. 161 00:09:32,880 --> 00:09:35,710 Jika anda seorang 1, anda meningkatkan, jika anda 0, anda berdiri di sana 162 00:09:35,710 --> 00:09:38,594 canggung, sama seperti itu. 163 00:09:38,594 --> 00:09:40,386 Go. 164 00:09:40,386 --> 00:09:43,945 Apakah nombor yang, pertama sekali, yang lelaki ini mewakili? 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, betul? 168 00:09:49,560 --> 00:09:52,400 Kami mempunyai 1 dalam ruang 64s, 1 dalam ruangan 2s itu. 169 00:09:52,400 --> 00:09:56,340 Yang memberikan saya 66, jadi yang muncul untuk mewakili B. Jadi 170 00:09:56,340 --> 00:09:57,075 anda semua telah dinyatakan - 171 00:09:57,075 --> 00:09:58,300 OK, itu sudah cukup. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Jadi sekarang mari kita bergerak ke surat kedua kami. 174 00:10:01,610 --> 00:10:03,530 Go. 175 00:10:03,530 --> 00:10:06,860 Siapa cepat pada matematik di sini? 176 00:10:06,860 --> 00:10:07,750 Jadi 79. 177 00:10:07,750 --> 00:10:11,840 Sekali lagi, jika kita menambah semua daripada tiang-tiang di mana ada 1, pada masa ini, hanya 178 00:10:11,840 --> 00:10:14,840 seperti yang kami lakukan sebelum ini dengan yang paling mudah contoh 7, kita sekarang 179 00:10:14,840 --> 00:10:16,140 mendapatkan nombor 79. 180 00:10:16,140 --> 00:10:19,910 Yang menurut pemetaan kita adalah surat O. Jadi, kita sudah hampir. 181 00:10:19,910 --> 00:10:22,590 B, O. Dan akhir sekali, pergi. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Apa yang mereka mewakili sekarang? 184 00:10:30,120 --> 00:10:31,370 Konsensus kurang. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Itu hanya satu bisikan mutlak. 187 00:10:36,460 --> 00:10:40,090 Ya, ia sebenarnya 87. 188 00:10:40,090 --> 00:10:40,490 Baik. 189 00:10:40,490 --> 00:10:44,480 >> Jadi, jika kita merancang kembali bahawa sehingga - mari kita mula memanggil carta ASCII kami, 190 00:10:44,480 --> 00:10:46,450 American Standard Code Pertukaran Maklumat. 191 00:10:46,450 --> 00:10:47,700 Itu memberikan kami surat - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 tidak "bo" tetapi "tunduk." Dan itulah yang sempurna petunjuk untuk anda semua untuk mengambil tunduk 194 00:10:54,810 --> 00:10:56,100 dan kepala di belakang. 195 00:10:56,100 --> 00:10:56,980 Thank you very much. 196 00:10:56,980 --> 00:10:57,886 >> [Tepuk tangan] 197 00:10:57,886 --> 00:10:59,136 >> DAVID MALAN: Anda boleh menjaga mereka. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Walaupun sebenarnya, akan sesiapa seperti lampu meja, juga? 200 00:11:05,942 --> 00:11:07,300 >> [Berteriak DARI PENONTON] 201 00:11:07,300 --> 00:11:08,390 >> DAVID MALAN: lampu meja? 202 00:11:08,390 --> 00:11:10,850 >> [Ketawa] 203 00:11:10,850 --> 00:11:11,860 >> DAVID MALAN: Betul ke? 204 00:11:11,860 --> 00:11:13,230 Lampu meja untuk semua orang? 205 00:11:13,230 --> 00:11:14,310 Baiklah. 206 00:11:14,310 --> 00:11:20,990 Jadi bermula dengan yang paling mudah prinsip, kita kini bukan sahaja dikira 207 00:11:20,990 --> 00:11:24,750 daripada 0 sepanjang jalan sehingga 7, kami telah menganggap bahawa hanya dengan membuang lebih banyak 208 00:11:24,750 --> 00:11:28,080 bit atau lebih lampu atau lebih transistor pada masalah ini, kita boleh 209 00:11:28,080 --> 00:11:32,680 mewakili nombor-nombor yang lebih besar dan lebih besar, dan ergo, antara yang lebih besar dan lebih besar 210 00:11:32,680 --> 00:11:33,780 huruf, seperti bahasa Inggeris. 211 00:11:33,780 --> 00:11:37,770 Dan hanya mari kita pada kepercayaan untuk hari ini yang sama kita boleh mula 212 00:11:37,770 --> 00:11:42,220 mewakili grafik dan video dan apa-apa beberapa media lain yang dengannya kita 213 00:11:42,220 --> 00:11:43,610 biasa hari ini. 214 00:11:43,610 --> 00:11:49,240 >> Jadi ini adalah CS50, dan di dalam kelas ini bersama-sama anda, sekali lagi, sangat banyak 215 00:11:49,240 --> 00:11:53,050 rakan-rakan yang mempunyai masa pengalaman seperti anda. 216 00:11:53,050 --> 00:11:57,730 Dan saya menyebut ini hanya kerana agak sering, termasuk baru-baru ini sebagai salah satu 217 00:11:57,730 --> 00:12:01,860 bayat menasihati peristiwa dan pada mahasiswa tingkat kedua musim bunga lepas menasihati 218 00:12:01,860 --> 00:12:06,420 Sekiranya, kita sering mendengar pelajar menolak apabila datang ke meja CS, baik, 219 00:12:06,420 --> 00:12:10,070 Saya telah memikirkan tentang mengambil ini kelas intro, tetapi saya tidak benar-benar 220 00:12:10,070 --> 00:12:11,120 orang komputer. 221 00:12:11,120 --> 00:12:13,220 Atau, tetapi semua orang pasti tahu lebih daripada saya. 222 00:12:13,220 --> 00:12:17,340 Dan saya meletakkan ini dalam tulisan terbesar mungkin, untuk menyampaikan mesej ini bahawa 223 00:12:17,340 --> 00:12:18,730 itu bukan sebenarnya kes itu. 224 00:12:18,730 --> 00:12:21,100 >> Dan jika anda tertanya-tanya, sekiranya Saya, sebenarnya, berada di sini? 225 00:12:21,100 --> 00:12:25,950 Sedar bahawa bukan sahaja ini kursus ini Tajuk Pengenalan kepada Komputer 226 00:12:25,950 --> 00:12:31,740 Sains, ia adalah Pengenalan kepada Komputer Sains I. Jadi memang ada 227 00:12:31,740 --> 00:12:33,170 pengenalan yang kedua itu. 228 00:12:33,170 --> 00:12:35,390 Jadi anda tidak, sebenarnya, di tempat yang salah. 229 00:12:35,390 --> 00:12:39,000 Dan di antara matlamat saya untuk hari ini untuk meredakan sebarang kebimbangan itu anda 230 00:12:39,000 --> 00:12:42,430 mungkin ada, tetapi juga untuk melukis gambar apa yang di kedai untuk 231 00:12:42,430 --> 00:12:45,720 pelajar-pelajar yang kurang dan lebih selesa sama dalam kursus ini. 232 00:12:45,720 --> 00:12:49,320 >> Tetapi pertama, satu perkataan pada satu daripada pemberian anda mempunyai hari ini, antaranya 233 00:12:49,320 --> 00:12:50,780 beberapa Lazim. 234 00:12:50,780 --> 00:12:54,290 Ia adalah satu wawasan kita untuk beberapa ketika sekarang untuk memperkenalkan penggredan baru 235 00:12:54,290 --> 00:12:57,010 pilihan ke dalam kursus ini - iaitu Sab / UNSAT. 236 00:12:57,010 --> 00:13:01,930 Falsafah bagi saya, ia adalah lebih banyak, lebih penting bahawa 237 00:13:01,930 --> 00:13:05,050 pelajar-pelajar di dalam kelas ini melibatkan diri dengan material, boleh dicabar oleh 238 00:13:05,050 --> 00:13:09,800 material, dan bimbang jauh, jauh kurang tentang mekanik skor sebenar 239 00:13:09,800 --> 00:13:12,590 dan gred surat pada semester akhir, tetapi benar-benar memeluk 240 00:13:12,590 --> 00:13:13,970 kursus dan bahan-bahan itu. 241 00:13:13,970 --> 00:13:18,140 Dan benar-benar ini berasa lebih amnya, untuk apa yang menarik kepada mereka, 242 00:13:18,140 --> 00:13:21,390 berasa dicabar dan ganjaran tetapi tanpa rasa takut kegagalan. 243 00:13:21,390 --> 00:13:25,030 >> Dan sesungguhnya, ini juga adalah yang berulang-ulang tema dalam ini dan lain-lain pengenalan 244 00:13:25,030 --> 00:13:28,680 kursus-kursus dalam bidang-bidang lain, bahawa anda mempunyai trepidation ini apabila ia datang kepada 245 00:13:28,680 --> 00:13:31,040 meletakkan jari seseorang dalam perairan yang tidak dikenali. 246 00:13:31,040 --> 00:13:34,880 Saya sendiri, kembali pada tahun 1995, adalah bayat. 247 00:13:34,880 --> 00:13:37,990 Saya amat memberi tumpuan kepada yang a concentrator Gov sini. 248 00:13:37,990 --> 00:13:41,060 Dan lagi saya sentiasa membesar dengan sedikit kepentingan dalam sains komputer. 249 00:13:41,060 --> 00:13:42,180 Saya sentiasa ingin tahu. 250 00:13:42,180 --> 00:13:47,610 >> Tetapi ketika itu, walaupun, saya takut ini walaupun melangkah kaki di CS50, begitu banyak 251 00:13:47,610 --> 00:13:49,420 supaya saya tidak membeli-belah ia tahun bayat. 252 00:13:49,420 --> 00:13:53,460 Dan satu-satunya sebab saya meletakkan kaki di pintu tahun kedua adalah kerana saya 253 00:13:53,460 --> 00:13:55,340 telah dibenarkan untuk mengambil lulus / gagal. 254 00:13:55,340 --> 00:13:58,920 Tetapi walaupun lulus / gagal diperlukan bahawa saya mendapat sehingga saraf untuk membuat temujanji 255 00:13:58,920 --> 00:14:01,970 dengan Profesor Kernehan pada masa itu, membawa lembaran ini besar kertas, dan meminta 256 00:14:01,970 --> 00:14:04,470 dia untuk tandatangan beliau dan beliau kebenaran untuk meneroka 257 00:14:04,470 --> 00:14:05,700 perairan ini yang tidak dikenali. 258 00:14:05,700 --> 00:14:09,030 >> Dan ia tidak membantu dalam beberapa tahun kebelakangan apabila melakukan ini dalam CS50, apabila kita 259 00:14:09,030 --> 00:14:12,500 digunakan untuk lulus / gagal, begitu juga akan berpuluh-puluh atau beratus-ratus rakan-rakan anda 260 00:14:12,500 --> 00:14:15,970 perlu datang, Allah melarang, di hadapan Sanders dengan borang ini, bahawa 261 00:14:15,970 --> 00:14:19,520 dalam sesetengah minda mewakili ketidakupayaan, Saya berani mengatakan, untuk melaksanakan 262 00:14:19,520 --> 00:14:20,800 adalah tahap rakan-rakan anda. 263 00:14:20,800 --> 00:14:23,410 Yang tidak masuk akal, tetapi saya fikir ada mentaliti itu. 264 00:14:23,410 --> 00:14:27,210 Dan ada tidak pernah menjadi dalam budaya ini daripada SAT / UNSAT, atau lulus / gagal lebih 265 00:14:27,210 --> 00:14:30,610 secara amnya, dalam kursus ini, atau benar-benar di kampus ini. 266 00:14:30,610 --> 00:14:32,310 >> Jadi tahun ini kita berubah itu. 267 00:14:32,310 --> 00:14:35,630 Saya akan gembira separuh daripada kelas ini atau lebih berakhir 268 00:14:35,630 --> 00:14:38,700 sehingga mengambil CS50 Sab / UNSAT. 269 00:14:38,700 --> 00:14:42,130 Dalam masa setahun, ia akan menjadi indah jika hampir semua orang. 270 00:14:42,130 --> 00:14:44,410 Selepas itu mungkin kita akan bekerja pada gred surat di Harvard 271 00:14:44,410 --> 00:14:45,480 Kolej amnya. 272 00:14:45,480 --> 00:14:48,900 Tetapi untuk sekarang, kita akan melakukan ini dalam kami bidang sendiri, dan saya akan sepenuh hati 273 00:14:48,900 --> 00:14:53,400 menggalakkan anda untuk mengkaji semula dan Soalan Lazim bertanya soalan seperti yang anda lihat patut, supaya 274 00:14:53,400 --> 00:14:58,000 diharapkan anda, tidak seperti saya, tidak akan cukup mempunyai bahawa faktor ketakutan yang sama apabila 275 00:14:58,000 --> 00:15:01,040 meneroka apa yang mungkin tempat yang tidak dikenali. 276 00:15:01,040 --> 00:15:02,786 >> Jadi apa CS50? 277 00:15:02,786 --> 00:15:06,150 Ia adalah satu pengenalan kepada perusahaan intelektual komputer 278 00:15:06,150 --> 00:15:07,700 sains dan seni pengaturcaraan. 279 00:15:07,700 --> 00:15:08,770 Tetapi apa yang benar-benar bermakna? 280 00:15:08,770 --> 00:15:12,510 >> Well, setakat ini, kita berbincang secara ringkas kira-kira mewakili maklumat. 281 00:15:12,510 --> 00:15:15,070 Tetapi menganggap bahawa kita benar-benar mahu untuk melakukan sesuatu dengannya. 282 00:15:15,070 --> 00:15:17,890 Kita perlu memperkenalkan konsep apa yang kita akan memanggil algoritma. 283 00:15:17,890 --> 00:15:21,540 Algoritma adalah satu prosedur, proses, satu set arahan untuk 284 00:15:21,540 --> 00:15:22,780 melakukan sesuatu. 285 00:15:22,780 --> 00:15:25,620 >> Dan algoritma boleh menjadi sesuatu mudah super. 286 00:15:25,620 --> 00:15:28,660 Sebagai contoh, satu contoh yang mana beberapa anda mungkin biasa ialah 287 00:15:28,660 --> 00:15:29,350 perkara di sini. 288 00:15:29,350 --> 00:15:32,510 Jadi buku ini di sini adalah semakin tarikh, tetapi pada satu ketika dahulu, ia 289 00:15:32,510 --> 00:15:34,720 terkandung banyak seluruh nama-nama dan nombor telefon. 290 00:15:34,720 --> 00:15:37,710 Dan sesungguhnya, jika saya mahu mencari seseorang di dalam buku telefon ini - 291 00:15:37,710 --> 00:15:39,800 berkata, seseorang yang bernama Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Saya dapat mencari Mike Smith dalam apa-apa bilangan cara yang agak mudah. 293 00:15:43,810 --> 00:15:47,700 Saya boleh bermula pada awal dan bergerak ke muka surat 1, tidak ada. 294 00:15:47,700 --> 00:15:49,240 Page 2, tidak ada. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 Adalah algoritma itu, adalah bahawa proses, betul? 297 00:15:53,430 --> 00:15:54,620 >> Jadi ia adalah betul, bukan? 298 00:15:54,620 --> 00:15:58,070 Saya jenis bodoh untuk melakukannya di bahawa cara, tetapi akhirnya saya akan 299 00:15:58,070 --> 00:16:02,670 mencari nama keluarga S, dan diharapkan Mike adalah dalam seksyen itu, dan saya akan menjadi 300 00:16:02,670 --> 00:16:04,100 dilakukan dengan algoritma saya. 301 00:16:04,100 --> 00:16:05,440 Tetapi sudah tentu ia bukan intuitif. 302 00:16:05,440 --> 00:16:08,020 Setiap manusia yang paling munasabah dalam bilik tidak akan berbuat begitu. 303 00:16:08,020 --> 00:16:10,180 Apa yang akan anda lakukan? 304 00:16:10,180 --> 00:16:11,480 >> Anda akan telah lurus ke tengah, betul-betul? 305 00:16:11,480 --> 00:16:12,000 Kira-kira ke tengah. 306 00:16:12,000 --> 00:16:16,310 Dan anda sedar, oh, ini adalah Cik Jadi Mike Smith, nama terakhir adalah Smith, 307 00:16:16,310 --> 00:16:19,050 tidak, jelas, maka dalam separuh kiri buku ini. 308 00:16:19,050 --> 00:16:21,040 Dia mesti ke arah S adalah di sebelah kanan. 309 00:16:21,040 --> 00:16:24,090 Dan pada ketika ini, walaupun kebanyakan kita tidak melakukan ini pada hakikatnya, kita boleh 310 00:16:24,090 --> 00:16:27,125 betul-betul lusuh masalah ini pada separuh. 311 00:16:27,125 --> 00:16:27,640 >> [Bersorak dan tepukan] 312 00:16:27,640 --> 00:16:28,950 >> DAVID MALAN: Terima kasih. 313 00:16:28,950 --> 00:16:30,150 >> [Bersorak dan tepukan] 314 00:16:30,150 --> 00:16:34,660 >> DAVID MALAN: Anda benar-benar boleh lusuh ini masalah dalam separuh, meninggalkan saya dengan, 315 00:16:34,660 --> 00:16:36,120 secara literal, setengah masalah kerana besar. 316 00:16:36,120 --> 00:16:39,750 Jadi, jika buku telefon ini adalah - dan ia mungkin adalah - kira-kira 1,000 muka surat, kini 317 00:16:39,750 --> 00:16:40,840 ia hanya 500. 318 00:16:40,840 --> 00:16:44,710 Jika saya melakukan ini sekali lagi dan saya sedar, oh, damn, saya pergi terlalu jauh, saya dalam Ts 319 00:16:44,710 --> 00:16:46,480 seksyen, saya boleh juga - 320 00:16:46,480 --> 00:16:48,030 kiasan atau harfiah - 321 00:16:48,030 --> 00:16:50,260 merobek buku telefon - ia adalah benar-benar lebih mudah ketika itu. 322 00:16:50,260 --> 00:16:53,610 Saya benar-benar boleh merobek buku telefon pada separuh, meninggalkan saya sekarang dengan 323 00:16:53,610 --> 00:16:55,186 tidak 1000, bukan 500 - 324 00:16:55,186 --> 00:16:56,680 250 muka surat. 325 00:16:56,680 --> 00:17:00,210 Dan saya boleh pergi 125, dan separuh daripada itu, dan separuh daripada itu, dan separuh daripada itu, 326 00:17:00,210 --> 00:17:04,760 sehingga akhirnya saya akan ditinggalkan dengan hanya satu halaman. 327 00:17:04,760 --> 00:17:06,430 >> [Ketawa] 328 00:17:06,430 --> 00:17:07,589 >> DAVID MALAN: Itulah bahagian I gagal pada. 329 00:17:07,589 --> 00:17:10,400 Satu halaman tunggal yang Mike adalah diharapkan. 330 00:17:10,400 --> 00:17:14,630 Sekarang mereka algoritma yang berbeza boleh jenis dinilai atau dinilai dalam 331 00:17:14,630 --> 00:17:15,270 cara yang berbeza. 332 00:17:15,270 --> 00:17:17,300 Yang pertama adalah sangat linear, bukan? 333 00:17:17,300 --> 00:17:18,500 Menjadikan halaman, mencari Mike. 334 00:17:18,500 --> 00:17:19,630 Menjadikan halaman, mencari Mike. 335 00:17:19,630 --> 00:17:20,560 Ia amat linear. 336 00:17:20,560 --> 00:17:23,339 Jika ada satu halaman yang lebih dalam telefon buku, ia mungkin akan mengambil saya 337 00:17:23,339 --> 00:17:27,380 satu lagi kedua, satu unit masa, Walau bagaimanapun kita mengira masa. 338 00:17:27,380 --> 00:17:32,470 >> Jadi saya mungkin menarik seperti ini baris ini di sini, di mana seperti saiz 339 00:17:32,470 --> 00:17:34,700 masalah kenaikan dari kiri ke kanan - 340 00:17:34,700 --> 00:17:37,480 buku telefon mendapat yang lebih kecil untuk lebih besar - 341 00:17:37,480 --> 00:17:41,080 dan masa akan meningkat pada paksi menegak, yang lebih besar 342 00:17:41,080 --> 00:17:42,030 buku telefon itu. 343 00:17:42,030 --> 00:17:46,180 Jadi n hanya ubah umum bahawa saintis komputer digunakan untuk mewakili 344 00:17:46,180 --> 00:17:48,210 beberapa nilai, nombor tertentu. 345 00:17:48,210 --> 00:17:50,740 Jadi n akan meningkatkan linear. 346 00:17:50,740 --> 00:17:53,040 Menggandakan saiz buku telefon, ia akan membawa saya dua kali ganda 347 00:17:53,040 --> 00:17:54,780 masa, kemungkinan besar, untuk mencari Mike. 348 00:17:54,780 --> 00:17:56,390 >> Sekarang saya boleh menjadi pintar tentang perkara ini, bukan? 349 00:17:56,390 --> 00:17:57,800 Saya bosan dengan cepat. 350 00:17:57,800 --> 00:17:58,910 Boleh melakukan ini dengan berdua-dua. 351 00:17:58,910 --> 00:18:01,870 Jadi dua muka surat, kemudian empat, kemudian enam, maka lapan. 352 00:18:01,870 --> 00:18:05,220 Dan saya boleh mula terbang melalui satu sedikit lebih cepat, walaupun pada risiko kecil 353 00:18:05,220 --> 00:18:09,210 overshooting Mike, tetapi keluk yang tidak akan semua yang berbeza. 354 00:18:09,210 --> 00:18:12,550 Ia masih akan menjadi lurus line, tetapi sedikit lebih cepat. 355 00:18:12,550 --> 00:18:13,710 >> Tetapi apa yang saya lakukan? 356 00:18:13,710 --> 00:18:15,845 Saya benar-benar melakukan sesuatu asasnya yang lebih baik. 357 00:18:15,845 --> 00:18:21,990 Saya mencapai apa yang kita akan memanggil logaritma masa, log n, di mana hijau ini 358 00:18:21,990 --> 00:18:27,730 talian mempunyai banyak, banyak, banyak kelebihan kurang lurus kepadanya. 359 00:18:27,730 --> 00:18:33,050 Dan sebaliknya, ia menunjukkan, kerana ia semacam menghampiri infiniti pernah jadi secara beransur-ansur, 360 00:18:33,050 --> 00:18:36,700 bahawa saya sebenarnya boleh mengambil-page 1000 buku telefon, dua kali ganda saiz 361 00:18:36,700 --> 00:18:39,610 tahun depan - kerana rasa banyak lebih ramai orang berpindah ke bandar. 362 00:18:39,610 --> 00:18:43,250 >> Jadi sekarang saya telah mendapat 2,000 muka surat, tetapi bagaimana banyak lagi langkah-langkah yang bijak adalah 363 00:18:43,250 --> 00:18:45,200 algoritma akan mengambil? 364 00:18:45,200 --> 00:18:46,060 Hanya satu. 365 00:18:46,060 --> 00:18:48,060 Maksud saya, itu adalah satu perkara yang berkuasa. 366 00:18:48,060 --> 00:18:51,400 Jika kita pergi ke muka surat 4,000 tahun depan, yang akan mengambil saya 367 00:18:51,400 --> 00:18:53,020 hanya dua langkah. 368 00:18:53,020 --> 00:18:56,500 Jadi, anda boleh membuang lebih besar dan lebih besar masalah pada saya, tidak seperti web adalah 369 00:18:56,500 --> 00:18:59,560 membuang masalah yang lebih besar dan lebih besar setiap hari di Google dan Facebooks daripada 370 00:18:59,560 --> 00:19:01,590 dunia, dan ia tidak apa-apa masalah besar. 371 00:19:01,590 --> 00:19:05,840 Kerana saya meletakkan pemikiran lebih dan penjagaan ke algoritma saya dengan yang untuk menyelesaikan 372 00:19:05,840 --> 00:19:07,020 masalah cekap. 373 00:19:07,020 --> 00:19:09,260 >> Dan sesungguhnya, yang akan menjadi salah satu matlamat kursus ini. 374 00:19:09,260 --> 00:19:11,230 Anda akan, di sepanjang jalan, belajar bagaimana untuk program. 375 00:19:11,230 --> 00:19:13,360 Anda akan belajar bagaimana untuk program di apa-apa bilangan bahasa. 376 00:19:13,360 --> 00:19:16,670 Tetapi pada akhir hari, kursus ini mengenai menyelesaikan masalah dan mendapat 377 00:19:16,670 --> 00:19:20,490 lebih baik pada menyelesaikan masalah - dan, seperti dalam kes-kes seperti ini, penyelesaian masalah 378 00:19:20,490 --> 00:19:22,030 dengan lebih cekap. 379 00:19:22,030 --> 00:19:23,990 >> Sekarang setakat ini, kami telah melakukan ini agak intuitif. 380 00:19:23,990 --> 00:19:27,420 Mari kita memperkenalkan sesuatu yang agak generik dipanggil kod pseudo. 381 00:19:27,420 --> 00:19:29,150 Oleh itu, kita akhirnya akan dapat, dalam kursus ini, untuk 382 00:19:29,150 --> 00:19:30,570 pelbagai bahasa pengaturcaraan. 383 00:19:30,570 --> 00:19:34,280 Tetapi hari ini kita akan buat dalam bahasa Inggeris seperti sintaks, di mana anda hanya jenis mengatakan 384 00:19:34,280 --> 00:19:37,330 apa yang anda maksudkan, tetapi anda pernah jadi ringkas dan anda tidak bimbang tentang 385 00:19:37,330 --> 00:19:38,960 tatabahasa dan ayat yang lengkap. 386 00:19:38,960 --> 00:19:41,600 Anda hanya menyatakan diri sebagai ringkas yang mungkin. 387 00:19:41,600 --> 00:19:45,400 >> Jadi pseudokod adalah Bahasa Inggeris seperti sintaksis yang mewakili 388 00:19:45,400 --> 00:19:46,750 bahasa pengaturcaraan. 389 00:19:46,750 --> 00:19:51,170 Dan ke arah itu, izinkan saya mencadangkan supaya kita kini model proses kita hanya 390 00:19:51,170 --> 00:19:54,990 diterangkan mengira sesuatu yang sedikit berbeza, kali ini mengambil 391 00:19:54,990 --> 00:19:59,040 melihat video ini lima minit dihasilkan oleh rakan-rakan kami di TED yang 392 00:19:59,040 --> 00:20:03,170 mentakrifkan apa pseudokod adalah, mentakrifkan apa pemikiran algoritma adalah, dan juga 393 00:20:03,170 --> 00:20:07,030 walaupun contoh yang anda kira-kira untuk melihat adalah, dalam dirinya sendiri, super mudah, ia adalah 394 00:20:07,030 --> 00:20:09,820 akan mula memberi kita mental model, perbendaharaan kata, dengan yang 395 00:20:09,820 --> 00:20:14,588 berbuat banyak, lebih kompleks algoritma agak cepat. 396 00:20:14,588 --> 00:20:15,576 >> [MULA MAIN SEMULA VIDEO] 397 00:20:15,576 --> 00:20:29,920 >> [Bermain muzik] 398 00:20:29,920 --> 00:20:31,100 >> Pencerita: Apakah algoritma? 399 00:20:31,100 --> 00:20:34,730 Dalam sains komputer, algoritma adalah set arahan untuk menyelesaikan beberapa 400 00:20:34,730 --> 00:20:36,620 masalah langkah demi langkah. 401 00:20:36,620 --> 00:20:39,650 Biasanya, algoritma dilaksanakan oleh komputer, tetapi kita manusia mempunyai 402 00:20:39,650 --> 00:20:41,230 algoritma, juga. 403 00:20:41,230 --> 00:20:43,290 Sebagai contoh, bagaimana anda akan pergi kira-kira mengira bilangan 404 00:20:43,290 --> 00:20:44,750 orang di dalam bilik? 405 00:20:44,750 --> 00:20:47,980 Nah, jika anda seperti saya, anda lebih mungkin mata pada setiap orang, satu di 406 00:20:47,980 --> 00:20:50,120 masa, dan mengira dari 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, dan sebagainya. 408 00:20:52,970 --> 00:20:54,140 >> Nah, itu algoritma. 409 00:20:54,140 --> 00:20:57,600 Malah, mari kita cuba untuk menyatakan ia sedikit lebih secara rasmi di pseudokod - 410 00:20:57,600 --> 00:21:00,700 Sintaks bahasa Inggeris seperti yang menyerupai bahasa pengaturcaraan. 411 00:21:00,700 --> 00:21:02,580 Mari N 0 sama. 412 00:21:02,580 --> 00:21:06,970 Bagi setiap orang di dalam bilik, yang ditetapkan N sama dengan N campur 1. 413 00:21:06,970 --> 00:21:08,400 >> Bagaimana untuk mentafsir pseudokod ini? 414 00:21:08,400 --> 00:21:12,840 Nah, satu baris mengisytiharkan, jadi untuk bercakap, ubah yang dipanggil N dan kepada asal 415 00:21:12,840 --> 00:21:14,250 nilai kepada 0. 416 00:21:14,250 --> 00:21:17,550 Ini hanya bermakna bahawa pada awal algoritma kami, perkara yang dengannya 417 00:21:17,550 --> 00:21:19,650 kami mengira mempunyai nilai 0. 418 00:21:19,650 --> 00:21:22,620 Lagipun, sebelum kita mula mengira, kami tidak dikira apa-apa lagi. 419 00:21:22,620 --> 00:21:25,340 Panggilan ini N ubah hanya konvensyen. 420 00:21:25,340 --> 00:21:26,890 Saya boleh memanggilnya apa-apa yang paling. 421 00:21:26,890 --> 00:21:30,560 >> Sekarang garis dua demarks permulaan gelung, satu urutan langkah-langkah yang akan 422 00:21:30,560 --> 00:21:32,310 mengulangi beberapa beberapa kali. 423 00:21:32,310 --> 00:21:35,910 Jadi, dalam contoh kita, langkah yang kita ambil mengharapkan orang di dalam bilik. 424 00:21:35,910 --> 00:21:38,730 Di bawah garis dua adalah barisan tiga, yang menerangkan bagaimana 425 00:21:38,730 --> 00:21:40,160 kami akan pergi kira-kira mengira. 426 00:21:40,160 --> 00:21:43,440 Kasturi ini menunjukkan bahawa ia adalah tiga baris yang akan berulang. 427 00:21:43,440 --> 00:21:47,380 >> Jadi apa pseudokod yang dikatakan adalah bahawa selepas bermula pada 0, bagi setiap 428 00:21:47,380 --> 00:21:50,690 orang di dalam bilik, kami akan meningkatkan N oleh 1. 429 00:21:50,690 --> 00:21:53,050 Sekarang adalah algoritma ini betul? 430 00:21:53,050 --> 00:21:54,580 Nah, mari kita bang pada sedikit. 431 00:21:54,580 --> 00:21:57,270 Adakah ia berfungsi jika terdapat dua orang di dalam bilik? 432 00:21:57,270 --> 00:21:58,170 Mari kita lihat. 433 00:21:58,170 --> 00:22:00,260 >> Selaras satu, kita memulakan N kepada 0. 434 00:22:00,260 --> 00:22:03,660 Bagi setiap dua orang, kita kemudian kenaikan N oleh 1. 435 00:22:03,660 --> 00:22:07,310 Jadi dalam perjalanan pertama melalui gelung, kita kini N dari 0 kepada 1. 436 00:22:07,310 --> 00:22:11,070 Pada perjalanan kedua melalui yang sama gelung, kita kini N dari 1 hingga 2. 437 00:22:11,070 --> 00:22:15,780 Dan sebagainya dengan tujuan ini algoritma ini, n 2, yang sememangnya sepadan dengan bilangan 438 00:22:15,780 --> 00:22:16,700 orang di dalam bilik. 439 00:22:16,700 --> 00:22:17,760 >> Setakat ini, begitu baik. 440 00:22:17,760 --> 00:22:19,610 Bagaimana pula dengan kes sudut, walaupun? 441 00:22:19,610 --> 00:22:22,590 Katakan terdapat 0 orang di dalam bilik - selain saya, 442 00:22:22,590 --> 00:22:24,170 siapa yang melakukan pengiraan. 443 00:22:24,170 --> 00:22:27,150 Selaras satu, kita memulakan N kepada 0. 444 00:22:27,150 --> 00:22:30,280 Kali ini, walaupun, garis tiga tidak melaksanakan di semua kerana tidak ada 445 00:22:30,280 --> 00:22:31,370 orang di dalam bilik. 446 00:22:31,370 --> 00:22:35,260 Dan sebagainya N masih 0, yang sepadan dengan beberapa orang di dalam bilik. 447 00:22:35,260 --> 00:22:36,420 Agak mudah, bukan? 448 00:22:36,420 --> 00:22:39,630 >> Tetapi orang-orang mengira pada satu masa agak tidak cekap, terlalu, tidak? 449 00:22:39,630 --> 00:22:40,920 Sesungguhnya kita boleh melakukan yang lebih baik. 450 00:22:40,920 --> 00:22:43,120 Mengapa tidak mengira dua orang pada satu masa? 451 00:22:43,120 --> 00:22:49,300 Sebaliknya mengira 1, 2, 3, 4, 5, 6, 7, 8, dan sebagainya, mengapa tidak mengira, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, dan sebagainya? 453 00:22:51,460 --> 00:22:53,700 Ia juga kedengaran lebih cepat, dan ia pasti adalah. 454 00:22:53,700 --> 00:22:56,240 >> Mari kita meluahkan pengoptimuman ini dalam kod pseudo. 455 00:22:56,240 --> 00:22:57,800 Mari N 0 sama. 456 00:22:57,800 --> 00:23:02,450 Bagi setiap pasangan orang di dalam bilik, ditetapkan N sama dengan N campur 2. 457 00:23:02,450 --> 00:23:04,120 Perubahan yang agak mudah, bukan? 458 00:23:04,120 --> 00:23:06,750 Bukannya orang kiraan satu pada satu masa, kita bukannya mengira 459 00:23:06,750 --> 00:23:08,300 mereka dua pada satu masa. 460 00:23:08,300 --> 00:23:10,980 Algoritma ini adalah dengan itu dua kali secepat yang lalu. 461 00:23:10,980 --> 00:23:12,180 >> Tetapi adakah ia betul? 462 00:23:12,180 --> 00:23:12,920 Mari kita lihat. 463 00:23:12,920 --> 00:23:15,330 Adakah ia berfungsi jika terdapat dua orang di dalam bilik? 464 00:23:15,330 --> 00:23:17,550 Selaras satu, kita memulakan N kepada 0. 465 00:23:17,550 --> 00:23:20,920 Bagi pasangan satu orang, kita kemudian kenaikan N dengan dua. 466 00:23:20,920 --> 00:23:24,860 Dan sebagainya dengan tujuan ini algoritma, N 2, yang sememangnya sepadan dengan bilangan 467 00:23:24,860 --> 00:23:25,650 orang di dalam bilik. 468 00:23:25,650 --> 00:23:28,250 >> Katakan seterusnya yang terdapat 0 orang di dalam bilik. 469 00:23:28,250 --> 00:23:30,840 Selaras satu, kita memulakan N kepada 0. 470 00:23:30,840 --> 00:23:34,330 Seperti sebelum ini, barisan tiga tidak melaksanakan pada semua, kerana tidak ada mana-mana pasangan 471 00:23:34,330 --> 00:23:35,380 orang di dalam bilik. 472 00:23:35,380 --> 00:23:38,350 Dan sebagainya N masih 0, yang sememangnya sepadan dengan bilangan 473 00:23:38,350 --> 00:23:39,570 orang di dalam bilik. 474 00:23:39,570 --> 00:23:42,280 >> Tetapi bagaimana jika terdapat tiga orang di dalam bilik itu? 475 00:23:42,280 --> 00:23:44,130 Bagaimana ini tambang algoritma? 476 00:23:44,130 --> 00:23:44,990 Mari kita lihat. 477 00:23:44,990 --> 00:23:47,460 Selaras satu, kita memulakan N kepada 0. 478 00:23:47,460 --> 00:23:50,870 Untuk sepasang orang-orang, kita kemudian kenaikan N dengan 2. 479 00:23:50,870 --> 00:23:51,800 Tetapi apa? 480 00:23:51,800 --> 00:23:54,960 Tidak ada satu lagi pasangan yang penuh dengan orang di dalam bilik, jadi dua baris tidak 481 00:23:54,960 --> 00:23:56,180 lagi terpakai. 482 00:23:56,180 --> 00:24:00,530 Dan sebagainya dengan tujuan ini algoritma, N masih 2, yang tidak betul. 483 00:24:00,530 --> 00:24:03,810 >> Malah, algoritma ini yang dikatakan kereta, kerana ia mempunyai kesilapan. 484 00:24:03,810 --> 00:24:05,820 Mari pembelaan dengan beberapa pseudokod baru. 485 00:24:05,820 --> 00:24:09,670 Mari n 0 sama untuk setiap pasangan orang di dalam bilik. 486 00:24:09,670 --> 00:24:12,550 Set N sama dengan N campur 2. 487 00:24:12,550 --> 00:24:17,140 Jika seseorang masih berpasangan, ditetapkan N sama dengan N campur 1. 488 00:24:17,140 --> 00:24:20,140 Untuk menyelesaikan masalah ini khususnya, kami telah diperkenalkan, selaras empat, yang 489 00:24:20,140 --> 00:24:24,520 keadaan, atau dikenali sebagai cawangan yang hanya melaksanakan jika ada satu 490 00:24:24,520 --> 00:24:26,640 orang yang kita tidak boleh pasangan dengan yang lain. 491 00:24:26,640 --> 00:24:30,440 Dan sehingga kini, sama ada satu atau tiga atau apa-apa bilangan ganjil orang di 492 00:24:30,440 --> 00:24:33,290 Bilik, algoritma ini kini akan mengira mereka. 493 00:24:33,290 --> 00:24:34,560 >> Bolehkah kita melakukan yang lebih baik? 494 00:24:34,560 --> 00:24:38,820 Nah, kita boleh mengira dalam 3 yang atau 4s atau 5S dan 10s, tetapi lebih dari itu, ia adalah 495 00:24:38,820 --> 00:24:41,360 akan mendapat sedikit sukar untuk mata. 496 00:24:41,360 --> 00:24:44,660 Pada akhir hari ini, sama ada dilaksanakan oleh komputer atau manusia, 497 00:24:44,660 --> 00:24:46,750 algoritma hanya satu set arahan dengan 498 00:24:46,750 --> 00:24:48,290 untuk menyelesaikan masalah. 499 00:24:48,290 --> 00:24:49,792 Ini hanya tiga. 500 00:24:49,792 --> 00:24:52,404 Apa masalah yang anda menyelesaikan dengan algoritma? 501 00:24:52,404 --> 00:24:52,901 >> [AKHIR VIDEO MAIN SEMULA] 502 00:24:52,901 --> 00:24:55,883 >> DAVID MALAN: Itu adalah satu-satunya masa Saya akan muncul dalam bentuk kartun. 503 00:24:55,883 --> 00:25:01,050 Tetapi di mana cerita yang daun dari, sekarang, bagaimana kita boleh melakukan yang lebih baik? 504 00:25:01,050 --> 00:25:04,680 Bertiga dan merangkak, kita mendakwa, kita boleh mengira orang-orang yang lebih cepat, tetapi kita boleh 505 00:25:04,680 --> 00:25:06,290 asasnya melakukan lebih baik daripada itu? 506 00:25:06,290 --> 00:25:07,540 Dan saya taruhan kita boleh. 507 00:25:07,540 --> 00:25:11,980 >> Jika kita memperkenalkan sedikit kita sendiri pseudokod di sini, saya akan mencadangkan 508 00:25:11,980 --> 00:25:14,550 bahawa kita boleh mencapai baris seperti ini. 509 00:25:14,550 --> 00:25:17,280 Kami tidak akan mengira orang satu, dua, tiga, empat. 510 00:25:17,280 --> 00:25:19,470 Kami tidak akan pergi ke dua, empat, enam, lapan. 511 00:25:19,470 --> 00:25:23,390 Kami akan melakukan yang lebih baik pada asasnya memikirkan semula oleh masalah itu, dan dalam hal ini 512 00:25:23,390 --> 00:25:27,080 kes, sebaliknya memanfaatkan digunakan sepenuhnya sumber. 513 00:25:27,080 --> 00:25:31,460 >> Dalam seketika, saya berharap anda akan memaafkan dan humor kami oleh berdiri di 514 00:25:31,460 --> 00:25:34,470 tempat, di mana titik kita akan bertanya kepada setiap kamu untuk mengambil di anda 515 00:25:34,470 --> 00:25:36,400 minda nombor 1. 516 00:25:36,400 --> 00:25:39,560 Anda kemudian akan semakin canggung, sebagai masa berlalu, mencari 517 00:25:39,560 --> 00:25:42,740 orang lain yang berdiri, menggabungkan nombor anda bersama-sama 518 00:25:42,740 --> 00:25:43,720 dengan menambah mereka. 519 00:25:43,720 --> 00:25:47,490 Salah seorang daripada kamu kemudiannya akan berlumba untuk duduk turun pertama, dan orang lain 520 00:25:47,490 --> 00:25:48,880 akan berulang. 521 00:25:48,880 --> 00:25:53,090 >> Jadi, dalam erti kata lain, dengan kekuatan semua anda dengan nombor 1, dan kemudian 522 00:25:53,090 --> 00:25:57,800 menggabungkan mereka ke dalam 1s 2s 2s dan orang-orang ke 4s, dengan semua orang semakin 523 00:25:57,800 --> 00:26:02,740 duduk, kita harus, pada akhir algoritma ini, mempunyai hanya satu pinjaman 524 00:26:02,740 --> 00:26:07,570 jiwa yang tidak duduk dengan cukup pantas tetapi yang mempunyai jumlah keseluruhan penonton 525 00:26:07,570 --> 00:26:09,180 dalam atau fikirannya. 526 00:26:09,180 --> 00:26:13,730 >> Jadi, jika anda akan, mari kita pergi ke hadapan dan - langkah satu - berdiri di tempat. 527 00:26:13,730 --> 00:26:15,600 Dan melaksanakan. 528 00:26:15,600 --> 00:26:36,580 >> [Orang ramai merungut] 529 00:26:36,580 --> 00:26:38,820 >> DAVID MALAN: Adakah anda tahu mana Lauren adalah? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Orang ramai merungut] 532 00:27:23,350 --> 00:27:24,340 >> DAVID MALAN: Semua betul? 533 00:27:24,340 --> 00:27:39,110 >> [Orang ramai merungut] 534 00:27:39,110 --> 00:27:41,365 >> DAVID MALAN: Baiklah, kita harus akan hampir akhir. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Kita melihat satu rakan-rakan di sini masih berdiri. 537 00:27:47,670 --> 00:27:48,770 Siapa lagi yang perlu berpasangan? 538 00:27:48,770 --> 00:27:50,020 Jika anda semua ingin berpasangan. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Seseorang top up. 541 00:27:56,520 --> 00:27:58,150 Kenapa saya tidak menghulurkan tangan di sini. 542 00:27:58,150 --> 00:28:01,370 Bagi segelintir orang yang masih berdiri, apa nombor yang anda 543 00:28:01,370 --> 00:28:02,790 ada di dalam fikiran anda? 544 00:28:02,790 --> 00:28:04,020 >> PELAJAR: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID MALAN: 78 plus - 546 00:28:06,010 --> 00:28:07,840 siapa yang berdiri di bawah sini? 547 00:28:07,840 --> 00:28:08,370 >> PELAJAR: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID MALAN: Plus 39. 549 00:28:09,590 --> 00:28:12,310 Plus yang lain masih berdiri? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, siapa lagi? 552 00:28:15,960 --> 00:28:17,200 81 yang lain? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 Dan kemudian apa yang ada di belakang? 555 00:28:19,210 --> 00:28:20,360 >> PELAJAR: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID MALAN: 49, ditambah? 557 00:28:21,812 --> 00:28:22,950 >> PELAJAR: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID MALAN: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Adalah bahawa orang lain? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Kerja yang baik. 562 00:28:30,460 --> 00:28:33,610 >> [Ketawa] 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 Baik kerja! 566 00:28:36,220 --> 00:28:38,660 >> [Ketawa] 567 00:28:38,660 --> 00:28:42,570 >> [Tepuk tangan] 568 00:28:42,570 --> 00:28:43,820 >> DAVID MALAN: Sesiapa sahaja masih berdiri? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Maaf? 571 00:28:47,260 --> 00:28:48,110 >> PELAJAR: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID MALAN: 99. 573 00:28:49,810 --> 00:28:52,620 Sesiapa sahaja yang masih berdiri? 574 00:28:52,620 --> 00:28:57,290 Dan jumlah pelajar-pelajar di sini sebenarnya, menurut - 575 00:28:57,290 --> 00:28:59,400 adakah anda mempunyai nombor? 576 00:28:59,400 --> 00:29:03,170 Oh, bilangan sebenar orang di bilik, mengikut akaun yang 577 00:29:03,170 --> 00:29:07,660 rakan-rakan yang mengajar telah melakukan dalam perjalanan semua orang dalam, adalah 729. 578 00:29:07,660 --> 00:29:11,070 Jadi keluar dari sebilik penuh pelajar Harvard yang dikira sendiri, 579 00:29:11,070 --> 00:29:14,126 Jawapannya adalah 637. 580 00:29:14,126 --> 00:29:15,480 >> [Ketawa] 581 00:29:15,480 --> 00:29:16,350 >> DAVID MALAN: Jadi dekat. 582 00:29:16,350 --> 00:29:17,360 Tetapi masih. 583 00:29:17,360 --> 00:29:22,110 OK, supaya pengajaran masa, bukan? 584 00:29:22,110 --> 00:29:24,120 Sekarang ini adalah apa yang kita gambarkan sebagai bug. 585 00:29:24,120 --> 00:29:28,120 Tempat di sepanjang perjalanan, kami melakukan beberapa aritmetik salah, atau orang yang duduk, 586 00:29:28,120 --> 00:29:29,930 atau kiri, atau sesuatu yang salah. 587 00:29:29,930 --> 00:29:30,930 Tetapi itu tidak mengapa. 588 00:29:30,930 --> 00:29:33,390 Kerana walaupun masih, kita mendapat cukup dekat. 589 00:29:33,390 --> 00:29:37,480 Dan saya berpendapat bahawa kita dapat yang salah menjawab banyak yang lebih cepat daripada saya akan mempunyai 590 00:29:37,480 --> 00:29:39,770 menggunakan pendekatan saya lebih linear. 591 00:29:39,770 --> 00:29:42,630 >> Jadi mari kita menganggap kita sebenarnya tidak mendapat bahawa membetulkan, tetapi berfikir tentang apa yang kini 592 00:29:42,630 --> 00:29:46,870 yang berlaku setiap kali, berbanding saya sendiri algoritma menunjuk naif. 593 00:29:46,870 --> 00:29:48,420 Satu, dua, tiga. 594 00:29:48,420 --> 00:29:53,010 Jika ada sememangnya adalah 729 atau 637 orang di sini, yang akan mengambil saya 595 00:29:53,010 --> 00:29:57,720 betul-betul 637 atau 729 pointings satu jari dan 596 00:29:57,720 --> 00:29:59,490 menokok jumlah kiraan saya. 597 00:29:59,490 --> 00:30:01,910 Dan saya boleh melakukan sedikit lebih baik dengan akan dua, empat, enam, lapan, dan 598 00:30:01,910 --> 00:30:05,660 dua kali ganda kelajuan itu, mungkin juga tiga atau empat kali ganda, bergantung bagaimana saya boleh 599 00:30:05,660 --> 00:30:07,110 berbuat demikian mengira dalam kepala saya. 600 00:30:07,110 --> 00:30:10,720 >> Tetapi pendekatan ini yang anda semua mengambil adalah berbeza. 601 00:30:10,720 --> 00:30:12,770 Kerana pada mulanya, anda semua berdiri. 602 00:30:12,770 --> 00:30:14,620 Jadi semua 729. 603 00:30:14,620 --> 00:30:17,370 Dan kemudian benar-benar separuh anda duduk. 604 00:30:17,370 --> 00:30:19,720 Dan selepas itu, satu lagi separuh daripada anda duduk. 605 00:30:19,720 --> 00:30:22,650 Dan selepas itu, satu lagi separuh daripada anda duduk. 606 00:30:22,650 --> 00:30:27,470 >> Dan jumlah masa yang anda lelaki boleh duduk adalah lebih kurang 607 00:30:27,470 --> 00:30:31,740 lapan atau sembilan atau sepuluh jumlah masa, bergantung kepada apa yang jumlah kiraan kita. 608 00:30:31,740 --> 00:30:33,300 Dan kita boleh menyusun daripada melakukan ini cara yang lain. 609 00:30:33,300 --> 00:30:37,740 Jika kita mempunyai 1,024 orang di dalam bilik itu, jumlah masa anda boleh 610 00:30:37,740 --> 00:30:41,870 mengurangkan separuh 1,024 orang adalah 10. 611 00:30:41,870 --> 00:30:43,370 >> Sekarang berfikir tentang hal itu dalam arah lain. 612 00:30:43,370 --> 00:30:49,170 Katakan, sungguh, bahawa kita mempunyai, katakan empat bilion orang di dalam bilik ini, 613 00:30:49,170 --> 00:30:50,860 atau bilik lebih besar. 614 00:30:50,860 --> 00:30:54,550 Berapa kali kita akan pergi melalui algoritma ini, seperti separuh 615 00:30:54,550 --> 00:30:58,110 kelas yang duduk? 616 00:30:58,110 --> 00:31:03,050 Ia hanya akan mengambil 32 seperti operasi, walaupun dalam kelas saiz 617 00:31:03,050 --> 00:31:03,770 empat bilion. 618 00:31:03,770 --> 00:31:04,055 Mengapa? 619 00:31:04,055 --> 00:31:06,980 Kerana empat bilion pergi ke dua bilion, pergi ke satu juta, pergi ke 620 00:31:06,980 --> 00:31:09,925 500 juta, pergi ke 250 juta, dot, dot, dot. 621 00:31:09,925 --> 00:31:14,940 Saya hanya boleh melakukan bahagian yang kira-kira 32 kali, di mana ketika, semua orang kecuali 622 00:31:14,940 --> 00:31:17,820 seseorang akan dibiarkan berdiri. 623 00:31:17,820 --> 00:31:21,590 >> Dan itu juga adalah jenis yang kuat idea yang semakin kita akan cuba 624 00:31:21,590 --> 00:31:24,690 leverage dalam kursus ini, dan dalam pengaturcaraan dan sains komputer yang lebih 625 00:31:24,690 --> 00:31:29,400 secara amnya, kuman sesuatu idea dengan yang kita boleh menyelesaikan masalah banyak, 626 00:31:29,400 --> 00:31:31,130 lebih kuat. 627 00:31:31,130 --> 00:31:34,610 Jadi kami mula agak mudah dengan pseudokod dan seorang lelaki di dalam bilik, tetapi 628 00:31:34,610 --> 00:31:38,205 kini dengan seluruh bilik penuh dengan orang yang telah kita lakukan pada asasnya yang lebih baik. 629 00:31:38,205 --> 00:31:41,460 >> Nah, mari kita kini peralihan dari pseudokod untuk beberapa kod sebenar. 630 00:31:41,460 --> 00:31:44,200 Bahasa ini anda kira-kira untuk melihat berlaku akan dipanggil JavaScript, dan 631 00:31:44,200 --> 00:31:46,190 kami akan kembali ini ke arah akhir semester. 632 00:31:46,190 --> 00:31:49,960 Ia adalah satu bahasa pengaturcaraan yang anda digunakan untuk membuat laman web dan lain-lain 633 00:31:49,960 --> 00:31:51,360 perisian pada hari ini. 634 00:31:51,360 --> 00:31:54,890 Dan kita telah digunakan, terima kasih kepada rakan daripada kita di Stanford, untuk mengekod 635 00:31:54,890 --> 00:31:56,630 beberapa maklumat tersembunyi di sini. 636 00:31:56,630 --> 00:31:59,500 Ini adalah seni steganografi, jadi untuk bercakap, di mana anda boleh menyembunyikan 637 00:31:59,500 --> 00:32:03,990 maklumat apa yang sebaliknya kelihatan bunyi bising atau yang sama sekali berbeza 638 00:32:03,990 --> 00:32:05,220 imej sama sekali. 639 00:32:05,220 --> 00:32:10,120 Tetapi tertanam dalam imej ini tertentu merupakan satu mesej rahsia kejayaannya. 640 00:32:10,120 --> 00:32:12,950 >> Jadi biarlah saya pergi ke hadapan dan tarik sehingga imej yang sama di sini, ini 641 00:32:12,950 --> 00:32:14,270 masa dalam pelayar web. 642 00:32:14,270 --> 00:32:17,710 Dan saya akan melambai tangan saya pada beberapa butiran untuk hari ini, terutamanya 643 00:32:17,710 --> 00:32:21,780 untuk anda yang ini kelihatan seperti bukan sahaja JavaScript tetapi Greek, sebagai 644 00:32:21,780 --> 00:32:23,930 sepenuhnya bahasa asing. 645 00:32:23,930 --> 00:32:26,190 Tetapi ini adalah satu contoh bahasa pengaturcaraan. 646 00:32:26,190 --> 00:32:30,660 >> Dan sekarang, mengambil kepercayaan bahawa baris ini pertama kod - 647 00:32:30,660 --> 00:32:32,470 dan oleh kod, saya hanya bermakna teks. 648 00:32:32,470 --> 00:32:35,660 Text yang boleh saya telah benar-benar ditaip ke dalam Microsoft Word, jika saya mempunyai 649 00:32:35,660 --> 00:32:37,630 perisian hak untuk kemudian melakukan sesuatu dengan ia. 650 00:32:37,630 --> 00:32:42,120 Kod sumber pengaturcaraan, pengaturcaraan kod, adalah benar-benar hanya teks, dan ia 651 00:32:42,120 --> 00:32:45,420 kelihatan berbeza berdasarkan apa bahasa anda menggunakan, tidak seperti bahasa Inggeris dan 652 00:32:45,420 --> 00:32:49,200 Sepanyol dan Rusia semua kelihatan berbeza apabila anda menaip mereka pada papan kekunci anda. 653 00:32:49,200 --> 00:32:53,520 >> Jadi baris pertama ini, buat masa ini mengambil iman, hanya membuka grafik dari 654 00:32:53,520 --> 00:32:56,160 internet, grafik yang bising kita hanya melihat. 655 00:32:56,160 --> 00:32:59,900 Ini sejajar seterusnya di sini adalah satu contoh gelung, dan kita sebenarnya melihat bahawa sama 656 00:32:59,900 --> 00:33:01,130 jargon dalam video TED. 657 00:33:01,130 --> 00:33:03,750 Gelung adalah sesuatu yang berlaku sekali lagi dan sekali lagi, dan walaupun ini 658 00:33:03,750 --> 00:33:08,440 benar-benar kelihatan samar, dengan kata kunci untuk, dan beberapa kurungan, dan 659 00:33:08,440 --> 00:33:09,510 beberapa koma bertitik. 660 00:33:09,510 --> 00:33:13,070 Kami akan kembali kepada yang lama, tetapi gelung bahawa terdapat pada asasnya adalah 661 00:33:13,070 --> 00:33:17,310 memberitahu program ini, melelar atas segala orang-orang titik bising, dari kiri ke 662 00:33:17,310 --> 00:33:18,980 kanan, atas ke bawah. 663 00:33:18,980 --> 00:33:21,260 >> Kerana pada akhir hari, imej seperti ini - dan anda boleh sebenarnya 664 00:33:21,260 --> 00:33:22,860 jenis melihatnya pada projektor ini - 665 00:33:22,860 --> 00:33:25,280 adalah benar-benar hanya grid titik. 666 00:33:25,280 --> 00:33:29,730 Oleh itu, kita dapat mengenal pasti setiap orang-orang titik oleh koordinat, x, y, dan dengan ini 667 00:33:29,730 --> 00:33:33,890 program, sekarang kita boleh mula melakukan sesuatu untuk mereka titik. 668 00:33:33,890 --> 00:33:37,540 >> Jadi apa yang saya akan pergi ke hadapan di sini dan lakukan adalah saya akan membuat beberapa perubahan. 669 00:33:37,540 --> 00:33:41,000 Pertama saya akan pergi ke hadapan dan menghilangkan semua yang kehijauan dan kebiruan 670 00:33:41,000 --> 00:33:43,520 bunyi, dan saya akan pergi ke hadapan dan taip yang berikut 671 00:33:43,520 --> 00:33:45,710 diakui sintaks samar. 672 00:33:45,710 --> 00:33:48,020 im untuk imej. 673 00:33:48,020 --> 00:33:53,380 set biru di lokasi x, koma, lokasi y, kepada 0. 674 00:33:53,380 --> 00:33:55,610 Dalam erti kata lain, saya mahu hanya mematikan semua biru 675 00:33:55,610 --> 00:33:56,920 titik dalam gambar itu. 676 00:33:56,920 --> 00:33:59,800 >> Saya akan pergi ke hadapan sekarang dan klik Run ini / butang Simpan, dan anda akan 677 00:33:59,800 --> 00:34:02,850 notis pada sebelah kanan, imej yang terhasil muncul. 678 00:34:02,850 --> 00:34:06,120 Sekarang hijau super, tetapi itu bukan menghairankan, kerana saya benar-benar bertukar 679 00:34:06,120 --> 00:34:11,070 luar, dengan membuat 1 0 a, semua biru dalam gambar itu. 680 00:34:11,070 --> 00:34:12,540 >> Nah, sekarang mari kita buat ia sedikit lebih. 681 00:34:12,540 --> 00:34:16,989 im untuk imej, titik setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 Dan itu hanya bermakna Itekadar dari kiri ke kanan dan kemudian atas ke bawah. 683 00:34:20,659 --> 00:34:23,520 Mematikannya dengan nilai 0, juga. 684 00:34:23,520 --> 00:34:24,750 Simpan. 685 00:34:24,750 --> 00:34:28,100 Dan pada projektor, anda tidak boleh benar-benar benar-benar melihat apa-apa pada semua. 686 00:34:28,100 --> 00:34:31,380 >> Pada skrin komputer riba saya, jika saya rakan sebaya dalam hanya dengan cara yang betul, saya dapat melihat sedikit daripada 687 00:34:31,380 --> 00:34:33,300 imej, kerana mereka masih beberapa merah di sana. 688 00:34:33,300 --> 00:34:35,540 Jika anda pernah mendengar singkatan RGB - 689 00:34:35,540 --> 00:34:36,830 merah, hijau, biru - 690 00:34:36,830 --> 00:34:39,110 ia merujuk kepada komposisi ini imej menggunakan 691 00:34:39,110 --> 00:34:40,230 hanya mereka tiga warna. 692 00:34:40,230 --> 00:34:43,159 Dan sekarang, kita telah dibuang semua hijau, semua biru, tetapi 693 00:34:43,159 --> 00:34:44,500 tidak banyak merah. 694 00:34:44,500 --> 00:34:45,920 >> Jadi biarlah saya engkol sehingga merah. 695 00:34:45,920 --> 00:34:47,070 Bagaimana saya boleh berbuat demikian? 696 00:34:47,070 --> 00:34:49,300 Well, pertama, saya akan bertanya program ini soalan. 697 00:34:49,300 --> 00:34:52,030 Saya akan pergi ke hadapan dan mari kita memanggilnya berubah-ubah, seperti dalam algebra. 698 00:34:52,030 --> 00:34:54,060 Anda boleh mempunyai x atau y atau z. 699 00:34:54,060 --> 00:34:57,230 Saya akan mengisytiharkan pembolehubah dan berkata, meletakkan dalam pembolehubah ini, 700 00:34:57,230 --> 00:35:02,790 buat sementara waktu, nilai imej getRed nilai pada x, y. 701 00:35:02,790 --> 00:35:05,870 >> Dan sekali lagi, kita akan kembali kepada semua butiran ini pada masa hadapan. 702 00:35:05,870 --> 00:35:10,630 Tetapi untuk sekarang, hanya mengambil pada kepercayaan bahawa baris ini meminta program, apa 703 00:35:10,630 --> 00:35:12,740 nilai merah di x, y? 704 00:35:12,740 --> 00:35:14,450 Pada titik tertentu? 705 00:35:14,450 --> 00:35:15,710 >> Kemudian saya akan melakukan sesuatu untuk itu. 706 00:35:15,710 --> 00:35:21,100 Kemudian saya akan melakukan imej titik set merah pada x, y, y tetapi kali ini saya akan 707 00:35:21,100 --> 00:35:24,760 meningkatkan dengan melakukan kali merah, katakan, 10. 708 00:35:24,760 --> 00:35:26,870 Jadi peningkatan sebanyak faktor 10. 709 00:35:26,870 --> 00:35:29,880 Biar saya zum keluar sekarang dan klik dapat Run / Simpan. 710 00:35:29,880 --> 00:35:36,430 Dan VoilĂ , yang berada di sana keseluruhan masa, walaupun mata manusia 711 00:35:36,430 --> 00:35:37,900 tidak cukup melihatnya. 712 00:35:37,900 --> 00:35:41,470 >> Jadi sekali lagi, sekarang ini adalah kod yang sebenar, satu contoh bahasa yang kami akan datang 713 00:35:41,470 --> 00:35:42,770 kembali ke tidak lama lagi. 714 00:35:42,770 --> 00:35:46,670 Tetapi sedar, terutama orang-orang yang anda tidak mempunyai pengalaman itu, ia agak 715 00:35:46,670 --> 00:35:50,280 tidak lama lagi yang kita sendiri akan menulis kod seperti itu di sana. 716 00:35:50,280 --> 00:35:54,520 Malah, alat dengan yang anda semua agak biasa, mungkin, adalah yang CS50 717 00:35:54,520 --> 00:35:57,330 sendiri alat kursus-membeli-belah, yang merupakan sebenarnya reboot musim panas ini oleh beberapa 718 00:35:57,330 --> 00:36:01,070 bekas pelajar CS50 sendiri, kini giliran TFS. 719 00:36:01,070 --> 00:36:04,740 >> Jadi ini berlaku untuk menjadi sebuah laman web yang dibina dalam bahasa yang dikenali sebagai PHP. 720 00:36:04,740 --> 00:36:08,510 Ia menggunakan pangkalan data yang dipanggil MySQL, perkara-perkara yang kita akan mendapat tangan kita 721 00:36:08,510 --> 00:36:10,190 kotor kemudian pada semester tersebut. 722 00:36:10,190 --> 00:36:14,140 Tetapi percaya atau tidak, walaupun sesuatu seperti ini akhirnya mengurangkan ke 723 00:36:14,140 --> 00:36:19,480 mudah gelung dan syarat-syarat dan cawangan, seperti yang kita lihat hanya 724 00:36:19,480 --> 00:36:21,530 masa lalu dalam video TED. 725 00:36:21,530 --> 00:36:25,180 >> Apa yang saya fikir saya akan lakukan sekarang ialah saham tidak hanya sesuatu yang kita kakitangan telah dibuat 726 00:36:25,180 --> 00:36:28,010 untuk kampus, tetapi sesuatu bekas pelajar - tiga 727 00:36:28,010 --> 00:36:29,080 pelajar, sebenarnya - 728 00:36:29,080 --> 00:36:33,950 dibuat pada tahun ini yang lalu, Sierra, Daniel, dan Sam, yang terakhir yang tidak mempunyai sebelum 729 00:36:33,950 --> 00:36:36,370 pengalaman programing apabila dia telah mengambil CS50. 730 00:36:36,370 --> 00:36:39,950 Dan untuk projek akhir mereka, mereka dipamerkan, di Pesta CS50, satu 731 00:36:39,950 --> 00:36:43,720 permohonan dipanggil wrdly, yang merupakan program berasaskan web yang mana mereka dibuat 732 00:36:43,720 --> 00:36:47,670 video ini yang saya fikir saya akan berkongsi kepada memberi anda rasa hanya apa yang 733 00:36:47,670 --> 00:36:49,280 mungkin pada akhir tempoh itu. 734 00:36:49,280 --> 00:37:57,170 >> [Bermain muzik] 735 00:37:57,170 --> 00:38:00,570 >> DAVID MALAN: Itu dari Minggu Zero untuk Minggu 12 tahun lepas. 736 00:38:00,570 --> 00:38:05,470 >> [Tepuk tangan] 737 00:38:05,470 --> 00:38:09,520 >> DAVID MALAN: Sebagai memujuknya juga benar-benar untuk membangkitkan selera anda adalah untuk apa yang 738 00:38:09,520 --> 00:38:14,580 mungkin, anda mungkin telah melihat sudah, atau tidak lama lagi boleh melihat, market.cs50.net, satu 739 00:38:14,580 --> 00:38:17,710 alat baru pasukan itu tentu mempunyai telah bekerja di, kali ini dalam 740 00:38:17,710 --> 00:38:21,530 dengan kerjasama Pelajar Harvard Agensi seperti yang bermula tahun ini 741 00:38:21,530 --> 00:38:24,980 dan berterusan ke dalam ini diharapkan datang musim panas anda akan mempunyai standard yang 742 00:38:24,980 --> 00:38:27,890 peluang di kampus untuk membeli dan menjual perkara-perkara yang menarik minat anda. 743 00:38:27,890 --> 00:38:32,220 Dan dengan perkongsian melalui HSA, anda akan juga dapat melepas item off 744 00:38:32,220 --> 00:38:35,950 dalam salah satu daripada kedai-kedai fizikal HSA di beberapa titik di masa depan, supaya 745 00:38:35,950 --> 00:38:39,150 perkara proksi, terutamanya kerana anda lulus dan tidak semestinya mahu 746 00:38:39,150 --> 00:38:44,110 membuang perkara-perkara, tetapi sebenarnya membayar mengemukakan kepada orang yang mungkin mengikuti anda 747 00:38:44,110 --> 00:38:45,270 di sini di kampus. 748 00:38:45,270 --> 00:38:46,740 Jadi lebih pada yang akan datang. 749 00:38:46,740 --> 00:38:49,830 >> Tetapi yang lebih konkrit, alat itu keluar dari CS50 di baru-baru ini 750 00:38:49,830 --> 00:38:52,760 tahun, yang mana sebahagian dari kamu mungkin biasa dan lain-lain anda mungkin 751 00:38:52,760 --> 00:38:57,940 Googling sekarang, di CS50.net/2x, anda akan mencari pautan kepada lanjutan Chrome 752 00:38:57,940 --> 00:39:01,250 yang demikian menggambarkan bagaimana anda boleh menggunakan JavaScript, bahasa yang sama kita 753 00:39:01,250 --> 00:39:06,660 digunakan dengan menara Eiffel masa yang lalu, untuk melaksanakan kelajuan main 2x 754 00:39:06,660 --> 00:39:09,000 untuk semua Harvard iSites video. 755 00:39:09,000 --> 00:39:11,880 Ini adalah sesuatu yang dibina ke dalam pemain video CS50 sendiri. 756 00:39:11,880 --> 00:39:14,870 Tetapi ini, juga, jika anda mula menggali kepada kod sumber, yang kita akan 757 00:39:14,870 --> 00:39:18,840 gembira menjadikan tersedia, anda akan melihat bagaimana anda juga boleh menyelesaikan masalah-masalah seperti itu, 758 00:39:18,840 --> 00:39:23,180 mempercepatkan widget di laman web dengan yang anda sudah biasa. 759 00:39:23,180 --> 00:39:26,630 >> Jadi perkataan sekarang kursus dan harapan dan apa yang akan berlaku. 760 00:39:26,630 --> 00:39:29,445 Secara umum, kita memang akan berkumpul di sini pada hari Isnin dan Rabu - walaupun 761 00:39:29,445 --> 00:39:31,490 Jumaat ini, kita akan berkumpul kerana Minggu Membeli-belah - 762 00:39:31,490 --> 00:39:34,640 1:00-2:00, walaupun kadang-kadang sehingga 02:30. 763 00:39:34,640 --> 00:39:38,700 Memandangkan bahawa anda itu mungkin mahu atau perlu mengambil beberapa kelas pada 2:00 PM 764 00:39:38,700 --> 00:39:42,480 seterusnya, malah sebelum ini, tidak menyedari sememangnya menyokong apa yang dipanggil 765 00:39:42,480 --> 00:39:45,900 pendaftaran serentak, di mana kita akan menyokong petisyen kepada Lembaga Iklan dan 766 00:39:45,900 --> 00:39:49,400 dekan bermastautin anda bagi pihak anda jika anda mempunyai konflik di suatu tempat di ini 767 00:39:49,400 --> 00:39:50,790 1:00-2:30 range. 768 00:39:50,790 --> 00:39:54,110 Ketua kepada bahawa talian URL untuk butiran tambahan. 769 00:39:54,110 --> 00:39:57,750 >> Tetapi dari segi struktur sokongan yang menyifatkan CS50, pelajar 770 00:39:57,750 --> 00:40:01,750 lebih dan kurang selesa sama, kita menawarkan trek yang berbeza bahagian. 771 00:40:01,750 --> 00:40:04,730 Dan ini adalah beberapa minggu di luar, tetapi tidak lama lagi, anda akan diminta untuk 772 00:40:04,730 --> 00:40:05,770 tahap keselesaan anda. 773 00:40:05,770 --> 00:40:08,590 Adakah anda di kalangan mereka yang kurang selesa, lebih selesa, atau 774 00:40:08,590 --> 00:40:10,520 di suatu tempat di antara keduanya? 775 00:40:10,520 --> 00:40:13,150 >> Dan kita akan mempunyai tiga berbeza trek yang memenuhi 776 00:40:13,150 --> 00:40:14,470 tepat orang-orang penonton. 777 00:40:14,470 --> 00:40:17,900 Jadi pada tiada titik dalam jangka sekiranya anda walaupun berasa seperti anda sedang bersaing 778 00:40:17,900 --> 00:40:21,390 terhadap mana-mana pelajar yang lebih atau latar belakang kurang daripada anda. 779 00:40:21,390 --> 00:40:24,160 Malah, kursus ini bertujuan untuk menjadi lebih banyak kerjasama dan 780 00:40:24,160 --> 00:40:25,650 lebih terbuka daripada itu. 781 00:40:25,650 --> 00:40:29,030 >> Dari segi set masalah, anda akan mencari, juga, bahawa di samping 782 00:40:29,030 --> 00:40:32,130 edisi standard masalah setiap minggu ditetapkan, terdapat sering "penggodam 783 00:40:32,130 --> 00:40:37,010 edisi "yang bertujuan untuk disasarkan pada 5% kepada 10% atau lebih daripada 784 00:40:37,010 --> 00:40:40,270 demografi yang sememangnya di kalangan mereka lebih selesa dan ingin lebih 785 00:40:40,270 --> 00:40:43,960 daripada cabaran daripada standard edisi pset yang menjangka. 786 00:40:43,960 --> 00:40:46,390 Maklumat lanjut mengenai orang-orang untuk menjadi yang terdapat dalam sukatan pelajaran. 787 00:40:46,390 --> 00:40:49,430 >> Tetapi juga di sana boleh didapati butir-butir pada kursus-kursus hari lewat. 788 00:40:49,430 --> 00:40:51,570 Biasanya masalah menetapkan adalah disebabkan pada hari Khamis. 789 00:40:51,570 --> 00:40:55,550 Walau bagaimanapun, anda boleh melanjutkan banyak anda tarikh akhir ini jatuh dari Khamis untuk 790 00:40:55,550 --> 00:41:00,010 Jumaat hanya dengan memenuhi kita separuh jalan, jadi untuk bercakap, menjawab beberapa memanaskan badan 791 00:41:00,010 --> 00:41:03,370 soalan di dalam beberapa masalah minggu ini set, yang akan secara automatik 792 00:41:03,370 --> 00:41:05,710 kemudian memberi anda tambahan 24 jam. 793 00:41:05,710 --> 00:41:09,120 Kami juga akan jatuh paling rendah anda skor, seperti sukatan pelajaran. 794 00:41:09,120 --> 00:41:12,170 >> Untuk memberi anda rasa apa masalah set - kerana ia sememangnya 795 00:41:12,170 --> 00:41:15,120 masalah tentu telah menetapkan bahawa akhirnya menentukan hampir setiap 796 00:41:15,120 --> 00:41:18,760 pengalaman pelajar, lebih-lebih lagi daripada ceramah, lebih-lebih lagi daripada bahagian, lebih 797 00:41:18,760 --> 00:41:21,230 jadi daripada kebanyakan yang lain aspek kursus. 798 00:41:21,230 --> 00:41:25,140 Tahun lepas, misalnya, kita bermula, sebagai kita akan bermula tahun ini, dengan calar. 799 00:41:25,140 --> 00:41:29,150 Terutama Jumaat ini, kami akan menggunakan, untuk hanya masa satu hari, grafik 800 00:41:29,150 --> 00:41:32,260 bahasa pengaturcaraan, yang mana kita akan mulakan program dengan menarik dan 801 00:41:32,260 --> 00:41:37,580 menjatuhkan kepingan teka-teki yang hanya berhimpun secara fizikal jika ia masuk akal 802 00:41:37,580 --> 00:41:38,990 untuk berbuat demikian secara logik. 803 00:41:38,990 --> 00:41:43,460 >> Minggu depan, kita akan cepat peralihan kepada C, yang agak lama tetapi sangat kecil dan 804 00:41:43,460 --> 00:41:48,510 bahasa yang mudah yang akan membolehkan kita untuk benar-benar pergi 0-60 sepanjang 805 00:41:48,510 --> 00:41:52,290 hanya beberapa minggu, dan kemudian parlay kemahiran yang sama dan pengetahuan 806 00:41:52,290 --> 00:41:56,160 membina asas pengaturcaraan ke bahasa peringkat tinggi seperti PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, dan yang lain masih. 808 00:41:58,240 --> 00:42:02,560 >> Tahun lepas, pset ketiga dalam perjalanan ialah kriptografi, satu 809 00:42:02,560 --> 00:42:06,380 permohonan domain khusus di mana kami pelajar dicabar untuk melaksanakan apa-apa 810 00:42:06,380 --> 00:42:11,140 beberapa rahsia, program-program dengan yang untuk berebut atau menguraikan maklumat, 811 00:42:11,140 --> 00:42:11,880 untuk menyulitkan itu. 812 00:42:11,880 --> 00:42:16,300 Untuk edisi penggodam, sebaliknya, kami memberikan pelajar hacker fail 813 00:42:16,300 --> 00:42:19,900 dari komputer Unix standard yang mengandungi nama pengguna dan kata laluan, 814 00:42:19,900 --> 00:42:22,740 kedua yang tidak disulitkan, dan kami mencabar mereka penggodam 815 00:42:22,740 --> 00:42:26,850 pelajar untuk menyahsulit, sebaik mereka boleh, mereka kata laluan, yang masih di 816 00:42:26,850 --> 00:42:27,770 domain yang sama. 817 00:42:27,770 --> 00:42:30,580 >> Kacau, permainan dengan yang ada daripada anda mungkin biasa. 818 00:42:30,580 --> 00:42:34,410 Sekeping forensik, di mana kita minta pelajar untuk memulihkan data yang telah 819 00:42:34,410 --> 00:42:38,530 jika tidak dipadam dari digital saya sendiri kad kilat padat kamera, oleh 820 00:42:38,530 --> 00:42:42,740 sebenarnya menulis perisian untuk memikirkan, mana adalah sifar dan orang-orang di 821 00:42:42,740 --> 00:42:46,850 bahawa kamera digital yang sebelum ini terdiri grafik JPEG? 822 00:42:46,850 --> 00:42:49,710 >> Cabaran macam tahun lepas melibatkan bertulis yang paling cepat 823 00:42:49,710 --> 00:42:53,160 ejaan pemeriksa boleh, bersaing terhadap rakan-rakan dan rakan-rakan jika 824 00:42:53,160 --> 00:42:53,860 mereka suka. 825 00:42:53,860 --> 00:42:56,330 Melaksanakan Huff 'n Puff, program mampatan. 826 00:42:56,330 --> 00:43:01,930 Dan kemudian berakhir semester dengan CS50 Kewangan, satu aplikasi berasaskan web dengan 827 00:43:01,930 --> 00:43:06,570 yang anda mewujudkan satu laman web seperti Etrade untuk membeli dan menjual saham, jadi untuk 828 00:43:06,570 --> 00:43:09,860 bercakap, dengan benar-benar menarik hampir petikan masa nyata Yahoo! 829 00:43:09,860 --> 00:43:10,450 Kewangan. 830 00:43:10,450 --> 00:43:13,590 >> Apa yang kita tidak buat tahun lepas adalah satu masalah set yang kekal 831 00:43:13,590 --> 00:43:14,810 tetap kegemaran. 832 00:43:14,810 --> 00:43:18,400 Jika anda tidak pernah pergi ke shuttle.cs50.net, anda akan melihat pengguna 833 00:43:18,400 --> 00:43:19,670 muka sedikit seperti ini. 834 00:43:19,670 --> 00:43:23,530 Tetapi dua tahun yang lalu, kelas dilaksanakan, menggunakan Google Maps dan 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in dan sedikit daripada celik dengan memandu di sekitar kampus, 836 00:43:28,570 --> 00:43:33,290 supaya Objektif permainan ini adalah, seperti yang anda lihat beberapa muka, 837 00:43:33,290 --> 00:43:37,530 adalah untuk memandu di sekitar kampus mencari kakitangan, rakan-rakan pengajaran dan CA, dan 838 00:43:37,530 --> 00:43:40,080 apabila anda, meletakkan mereka ke bas ulang-alik anda. 839 00:43:40,080 --> 00:43:44,035 Tiada seorang pun daripada mereka benar-benar seolah-olah berada di sini, jadi kita akan memasukkan kod menipu. 840 00:43:44,035 --> 00:43:47,150 >> [Ketawa] 841 00:43:47,150 --> 00:43:48,430 >> DAVID MALAN: Ada kita pergi. 842 00:43:48,430 --> 00:43:49,240 Baiklah. 843 00:43:49,240 --> 00:43:51,750 Dan di sini kini adalah kakitangan dicampur di seluruh kampus. 844 00:43:51,750 --> 00:43:54,530 Dan seperti yang anda boleh lihat, di sebelah kanan sisi skrin, bas ulang-alik 845 00:43:54,530 --> 00:43:55,510 mempunyai tempat duduk kosong. 846 00:43:55,510 --> 00:43:59,000 Dan objektif adalah untuk menulis kod yang boleh digunakan untuk simulasi 847 00:43:59,000 --> 00:44:01,790 memandu dan mengambil dan menurunkan kira penumpang. 848 00:44:01,790 --> 00:44:04,960 Yang satu, terlalu, dengan menggunakan bahasa dipanggil JavaScript. 849 00:44:04,960 --> 00:44:10,030 Jadi menyedari bahawa program-program seperti yang akan berada di landasan yang sama kita ini 850 00:44:10,030 --> 00:44:10,910 tahun, juga. 851 00:44:10,910 --> 00:44:13,640 >> Dari segi, sekarang, sokongan tambahan, kita mempunyai waktu pejabat. 852 00:44:13,640 --> 00:44:16,520 Seperti yang anda mungkin telah melihat di rumah anda sendiri dewan makan atau Annenberg, 853 00:44:16,520 --> 00:44:19,280 kami akan berada di rumah makan dewan empat malam seminggu - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot dan Annenberg tahun ini, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 Dan apa yang kita fikir kita akan lakukan pada tahun ini adalah sesuatu yang sedikit berbeza. 856 00:44:26,830 --> 00:44:29,650 >> Jika anda mendengar rumblings tahun lepas bahawa ia adalah sedikit terlalu tertekan, ini 857 00:44:29,650 --> 00:44:32,800 waktu pejabat tahun ini, seperti yang kita akan menggambarkan minggu depan, akan lebih organik, 858 00:44:32,800 --> 00:44:36,900 mana semasa ketibaan, anda akan dihantar ke satu meja tertentu 859 00:44:36,900 --> 00:44:39,860 mana ahli-ahli kakitangan pelbagai menanti, dan kami akan melakukan perkara-perkara yang lebih 860 00:44:39,860 --> 00:44:40,440 organik. 861 00:44:40,440 --> 00:44:43,740 Tiada beratur lebih, tidak lebih iPad, tetapi agak mempunyai lebih intim 862 00:44:43,740 --> 00:44:47,300 perbualan di sekeliling meja hanya lapan atau lebih pelajar, supaya kita 863 00:44:47,300 --> 00:44:50,880 anggaran rasa apa yang sebaliknya akan menjadi kelas yang lebih kecil. 864 00:44:50,880 --> 00:44:54,120 >> Kami menawarkan, serta, perkara-perkara ini kita dipanggil walkthroughs, video difilemkan di 865 00:44:54,120 --> 00:44:57,330 terlebih dahulu oleh satu pengajaran kursus ini rakan-rakan, Zamyla, di mana dia 866 00:44:57,330 --> 00:45:00,690 berjalan anda melalui masalah minggu ini set, menawarkan tips dan cara untuk 867 00:45:00,690 --> 00:45:02,640 cabaran yang menanti di hadapan. 868 00:45:02,640 --> 00:45:06,230 Dan sebaliknya, selepas set masalah adalah kerana, pada tahun ini, kami akan juga melepaskan 869 00:45:06,230 --> 00:45:09,100 klip sedikit memanggil bedah siasat yang sebenarnya berjalan anda melalui 870 00:45:09,100 --> 00:45:13,630 penyelesaian wakil, baik dan buruk, melalui mana anda boleh membuat kesimpulan bagaimana 871 00:45:13,630 --> 00:45:17,550 anda boleh mempunyai atau sepatutnya melaksanakan penyelesaian anda sendiri. 872 00:45:17,550 --> 00:45:20,500 >> Dan apa yang kita akan menawarkan untuk kali pertama tahun ini juga, terutamanya 873 00:45:20,500 --> 00:45:23,420 bagi pelajar yang memanfaatkan kursus yang lain 874 00:45:23,420 --> 00:45:28,580 sumber tetapi tetap berjuang terlalu banyak, tentu semua 875 00:45:28,580 --> 00:45:33,030 sendiri akan berpasangan pelajar, kerana sumber membenarkan, dengan tutor supaya 876 00:45:33,030 --> 00:45:35,840 anda mempunyai lebih intim peluang daripada dewan makan rumah 877 00:45:35,840 --> 00:45:38,700 membolehkan bantuan pada satu-satu. 878 00:45:38,700 --> 00:45:42,780 >> Sekarang gambaran akhir di beberapa satu permainan akhir di sisi. 879 00:45:42,780 --> 00:45:44,580 Anda mungkin biasa dengan yang CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Nah, datang Disember ini, dari pukul 8:00 PM hingga 7:00 pagi, pada permulaan 881 00:45:48,120 --> 00:45:51,410 Tempoh membaca, akan menjadi satu peluang untuk berkumpul dengan rakan-rakan - 882 00:45:51,410 --> 00:45:53,130 ini akan menjadi kira-kira 9:00 PM - 883 00:45:53,130 --> 00:45:56,550 di mana anda menyelam ke akhir anda pelaksanaan projek ini di samping 884 00:45:56,550 --> 00:45:59,910 rakan-rakan, kawan-kawan, dan makanan. 885 00:45:59,910 --> 00:46:03,680 Ini akan menjadi kira-kira 01:00, apabila kumpulan pertama makanan tiba. 886 00:46:03,680 --> 00:46:08,470 Dan ini adalah kira-kira 4:00 yang tahun tertentu di CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Tetapi kemuncak sebenar kursus adalah bertujuan untuk Fair CS50, sebuah kampus di seluruh 888 00:46:12,000 --> 00:46:15,790 pameran projek-projek anda sendiri akhir, mana keluarga dan rakan-rakan semua 889 00:46:15,790 --> 00:46:18,730 dijemput, sebagai perekrut dan rakan-rakan kami dari industri. 890 00:46:18,730 --> 00:46:22,170 Ini, misalnya, adalah satu gambaran tentang Orang 2,000-plus yang telah dihadiri 891 00:46:22,170 --> 00:46:23,160 tahun yang lalu. 892 00:46:23,160 --> 00:46:27,180 Ungkapan seperti ini adalah bukan luar biasa, dan begitu juga buat anda 893 00:46:27,180 --> 00:46:29,660 rakan sekelas menggembirakan dalam perkara-perkara anda telah dicapai. 894 00:46:29,660 --> 00:46:33,170 >> Dan sebenarnya, ke arah itu, kita perlu acara start-of-panjang, juga. 895 00:46:33,170 --> 00:46:37,400 Jika perkara seperti ini rayuan kepada anda, atau anda sekurang-kurangnya ingin tahu tentang apa yang 896 00:46:37,400 --> 00:46:41,590 ini, tahu bahawa satu tradisi baru tentu dipanggil CS50 teki Day. 897 00:46:41,590 --> 00:46:45,710 Dan ini telah dimulakan beberapa daripada tahun yang lalu benar-benar memberi isyarat ke kampus 898 00:46:45,710 --> 00:46:48,930 bahawa sains komputer tidak kira-kira pengaturcaraan, dan ia sudah tentu tidak 899 00:46:48,930 --> 00:46:51,960 kira-kira memeluk hanya pelajar yang mempunyai pengalaman terdahulu. 900 00:46:51,960 --> 00:46:54,200 Ia adalah benar-benar tentang menyelesaikan masalah amnya. 901 00:46:54,200 --> 00:46:57,360 >> Teka-teki dan sebagainya Hari, sejak beberapa lalu tahun sekarang, telah berkembang menjadi yang bagus 902 00:46:57,360 --> 00:47:00,500 perkongsian dengan rakan-rakan kami di Facebook, di mana akan ada hebat 903 00:47:00,500 --> 00:47:04,830 hadiah dan pizza di seberang sungai di i-makmal Sabtu ini akan datang. 904 00:47:04,830 --> 00:47:09,180 Menuju ke URL yang dengan dua atau tiga rakan-rakan jika anda ingin mengambil bahagian 905 00:47:09,180 --> 00:47:10,830 dalam tradisi baru ini. 906 00:47:10,830 --> 00:47:14,180 >> Jadi saya ingin meminta anda menyimpan satu perkara dalam fikiran, dan kami mempunyai hanya 907 00:47:14,180 --> 00:47:17,070 dua minit klip yang untuk menutup hari ini. 908 00:47:17,070 --> 00:47:19,640 73% adalah nombor untuk diingati. 909 00:47:19,640 --> 00:47:23,900 Kek juga akan menanti anda di luar ini gereja yg merupakan salib seperti yang kita menangguhkan hanya dalam 910 00:47:23,900 --> 00:47:26,710 beberapa detik-detik, yang merupakan tradisi kursus ini, juga. 911 00:47:26,710 --> 00:47:29,860 Tetapi ini adalah petikan utama dari sukatan pelajaran kursus untuk ingat. 912 00:47:29,860 --> 00:47:32,820 Apa yang akhirnya perkara-perkara dalam kursus ini tidak begitu banyak di mana anda berakhir 913 00:47:32,820 --> 00:47:36,580 berbanding dengan rakan-rakan anda tetapi jika anda, dalam Minggu 12, akhirnya relatif kepada 914 00:47:36,580 --> 00:47:37,960 diri dalam Minggu 0. 915 00:47:37,960 --> 00:47:43,670 >> Tetapi melihat bahawa kita akan meninggalkan anda dengan di sini hari ini adalah yang satu ini terakhir di sini 916 00:47:43,670 --> 00:47:47,580 oleh Daniel sama kami, yang melakukan video wrdly seketika lalu. 917 00:47:47,580 --> 00:47:50,000 Saya tinggalkan anda dengan gambaran ini apa yang akan berlaku. 918 00:47:50,000 --> 00:47:53,360 Dan seperti yang kita lakukan ini, jika kita boleh mempunyai CS50 kakitangan dari hadapan bilik 919 00:47:53,360 --> 00:47:57,280 untuk datang sehingga ke peringkat untuk cat semua lebih daripada gambaran visual untuk 920 00:47:57,280 --> 00:47:59,100 apa yang menanti anda tahun ini - 921 00:47:59,100 --> 00:48:00,350 semakin janggal. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Kami akan membuat kesimpulan dengan ini di sini pada skrin. 924 00:48:05,188 --> 00:48:18,634 >> [Bermain muzik] 925 00:48:18,634 --> 00:48:21,124 >> DAVID MALAN: Ini adalah CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIC - MATT & KIM, "Tak mengapa"] 927 00:50:00,226 --> 00:50:03,245 >> SPEAKER 1: Saya suka CS50 lebih daripada kucing. 928 00:50:03,245 --> 00:50:06,030 >> SPEAKER 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Ketawa] 930 00:50:06,990 --> 00:50:08,140 >> DAVID MALAN: Ini, maka, adalah CS50. 931 00:50:08,140 --> 00:50:10,050 Kami akan melihat anda pada hari Jumaat. 932 00:50:10,050 --> 00:50:13,370 >> [Tepuk tangan dan bersorak] 933 00:50:13,370 --> 00:50:17,540 >> Pencerita: Pada CS50 yang akan datang, satu di atas pentas demo tidak pergi seperti yang dirancang. 934 00:50:17,540 --> 00:50:19,080 >> DAVID MALAN: Kami ingin mencari Mike Smith dalam buku telefon ini. 935 00:50:19,080 --> 00:50:20,380 Nah, apakah naluri anda? 936 00:50:20,380 --> 00:50:23,750 Saya mungkin kira-kira melompat ke tengah buku telefon, pandang ke bawah, melihat bahawa 937 00:50:23,750 --> 00:50:26,830 Saya di M, dan saya tahu sekarang bahawa Mike Smith tidak ke kiri. 938 00:50:26,830 --> 00:50:27,840 Dia mesti ke kanan. 939 00:50:27,840 --> 00:50:30,515 Dan sebagainya pada masa ini, kita benar-benar boleh lusuh - 940 00:50:30,515 --> 00:50:33,300 pada ketika ini, kita benar-benar boleh pemedih mata - 941 00:50:33,300 --> 00:50:36,490 pada ketika ini, kita boleh secara kiasan lusuh buku telefon pada separuh. 942 00:50:36,490 --> 00:50:38,954 >> [Strumming UKELELE]