1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [MUSIC PLAYING] 3 00:00:10,830 --> 00:00:12,080 [MUSIC - ROSSINI, "Ranz DES Vaches "DARI WILLIAM TELL] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIC - THE ENGLISH BEAT, "MARET DARI KEPALA 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% dari Anda tidak memiliki pengalaman sebelumnya dengan ilmu komputer, 11 00:02:39,250 --> 00:02:41,300 bertentangan dengan apa yang mungkin Anda pikirkan. 12 00:02:41,300 --> 00:02:45,290 Jadi hari ini kami pikir kami akan chip jauh pada saat itu kurangnya keakraban, tetapi juga 13 00:02:45,290 --> 00:02:48,970 memberikan rasa, bagi anda dengan lebih nyaman, yang arah 14 00:02:48,970 --> 00:02:50,550 Anda dapat pergi semester ini. 15 00:02:50,550 --> 00:02:51,890 >> Jadi mari kita mulai dengan ini. 16 00:02:51,890 --> 00:02:55,490 Aku benar-benar tidak tahu apa yang ada dalam komputer, meskipun, seperti Anda, saya 17 00:02:55,490 --> 00:02:56,780 menggunakannya setiap hari. 18 00:02:56,780 --> 00:03:00,000 Tapi itu semacam kotak, dan ada tidak banyak masukan ke dalamnya. 19 00:03:00,000 --> 00:03:01,350 Minimal, ada, apa? 20 00:03:01,350 --> 00:03:03,120 Mungkin kabel listrik. 21 00:03:03,120 --> 00:03:06,640 >> Dan memang dengan satu bahan, listrik, sepertinya kita harus mampu 22 00:03:06,640 --> 00:03:09,490 melakukan sedikit hari ini. 23 00:03:09,490 --> 00:03:12,130 Tetapi pada akhir hari, kita harus mewakili hal-hal 24 00:03:12,130 --> 00:03:12,860 bahwa kita peduli. 25 00:03:12,860 --> 00:03:15,240 Kita harus merepresentasikan informasi dalam beberapa bentuk. 26 00:03:15,240 --> 00:03:18,365 Dan kau mungkin setidaknya samar-samar akrab dengan ide dengan biner atau 27 00:03:18,365 --> 00:03:21,370 bit entah bagaimana, komputer dikurangi menjadi nol dan satu. 28 00:03:21,370 --> 00:03:26,320 Tapi bisa kita merangkul itu dan setidaknya menaruh sedikit cahaya itu? 29 00:03:26,320 --> 00:03:28,880 >> Jadi saya punya ini sedikit lampu meja di sini. 30 00:03:28,880 --> 00:03:30,450 Saya memiliki outlet listrik di sini. 31 00:03:30,450 --> 00:03:33,930 Dan aku akan mengusulkan dalam yang komputer saya setidaknya satu dari 32 00:03:33,930 --> 00:03:37,300 hal-hal ini, sesuatu yang mampu dari yang dinyalakan atau dimatikan. 33 00:03:37,300 --> 00:03:40,200 Dalam kasus ini, itu memang lampu meja, tetapi pada tingkat yang lebih rendah, itu adalah sesuatu 34 00:03:40,200 --> 00:03:41,500 disebut transistor. 35 00:03:41,500 --> 00:03:44,730 >> Tapi dalam dunia kita, itu adalah lampu meja, sehingga Aku akan pergi ke depan dan pasang ini 36 00:03:44,730 --> 00:03:47,990 menjadi listrik saya di sini. 37 00:03:47,990 --> 00:03:52,970 Dan saya menyatakan bahwa menggunakan sederhana ini, perangkat sederhana, switch ini sederhana, saya 38 00:03:52,970 --> 00:03:54,850 dapat mewakili informasi. 39 00:03:54,850 --> 00:03:58,090 Misalnya, sekarang, saya mewakili apa-apa, kan? 40 00:03:58,090 --> 00:04:01,820 Saya mewakili apa yang saya akan menelepon atau 0 palsu, kebalikan dari sesuatu 41 00:04:01,820 --> 00:04:03,130 benar-benar hadir. 42 00:04:03,130 --> 00:04:07,050 Tapi jika saya hanya menyalakan saklar ini, sekarang saya sudah mewakili 1. 43 00:04:07,050 --> 00:04:10,720 Jadi menggunakan ini bagian yang sangat sederhana memori, jika Anda mau, saya bisa mewakili 44 00:04:10,720 --> 00:04:11,450 informasi. 45 00:04:11,450 --> 00:04:14,350 >> Sekarang sayangnya, komputer saya tidak bisa melakukan semua itu banyak. 46 00:04:14,350 --> 00:04:17,430 Hal ini hanya dapat 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 Tapi apa solusi yang jelas, sekarang, jika kita ingin memperluas komputer kita 49 00:04:21,839 --> 00:04:25,120 memori dan mewakili lebih dari hanya 0 dan 1? 50 00:04:25,120 --> 00:04:27,060 >> Nah, mari kita ambil lagi bit tersebut. 51 00:04:27,060 --> 00:04:30,260 Mari kita ambil tombol lain, yang lain transistor, namun Anda ingin 52 00:04:30,260 --> 00:04:31,130 berpikir tentang hal ini. 53 00:04:31,130 --> 00:04:34,170 Biarkan aku pergi ke depan dan pasang ini ke komputer saya juga. 54 00:04:34,170 --> 00:04:38,270 Dan aku akan mengklaim, sekarang, bahwa dengan menggunakan sedikit lebih banyak listrik dan 55 00:04:38,270 --> 00:04:42,290 berputar lebih dari switch ini dan off, saya bisa mewakili lebih seperti 56 00:04:42,290 --> 00:04:43,020 informasi. 57 00:04:43,020 --> 00:04:44,660 >> Jadi sekarang, ini adalah 1. 58 00:04:44,660 --> 00:04:48,120 Jika saya ingin sekarang merupakan 2, aku bisa melakukan ini. 59 00:04:48,120 --> 00:04:51,510 Tapi biasanya, konvensi, seperti yang kita akan akhirnya melihat, akan saya lakukan ini. 60 00:04:51,510 --> 00:04:55,260 Jadi ini adalah 0, ini adalah 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 mengherankan, ini akan menjadi 3. 63 00:04:59,920 --> 00:05:02,610 >> Jadi dengan cara ini, masih, bisa kita menghitung lebih jauh? 64 00:05:02,610 --> 00:05:06,500 Jika saya mendapatkan sedikit ketiga, switch ketiga, apa jumlah tertinggi sekarang saya bisa 65 00:05:06,500 --> 00:05:09,720 menghitung sampai dari 0? 66 00:05:09,720 --> 00:05:12,020 Jadi 7 jika saya mulai dari 0, bukan? 67 00:05:12,020 --> 00:05:15,980 Karena jika saya mengubah cahaya ini dan sebenarnya pasang ini ketiga dan terakhir 68 00:05:15,980 --> 00:05:20,090 cahaya ke dalam soket listrik saya di sini, maka saya memiliki kemampuan untuk mewakili 69 00:05:20,090 --> 00:05:24,930 salah satu dari dua nilai di sini, dua nilai di sini, dua nilai di sini - 70 00:05:24,930 --> 00:05:32,610 dan jadi saya bisa mewakili 2 kali 2 kali 2, atau delapan nilai yang mungkin. 71 00:05:32,610 --> 00:05:36,340 Dan jika saya mulai akuntansi pada 0, sehingga itu 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Jadi biner ini. 73 00:05:37,480 --> 00:05:39,420 Itu benar-benar adalah yang sederhana seperti itu. 74 00:05:39,420 --> 00:05:41,930 Dan aku berpendapat bahwa ini sebenarnya cukup akrab bagi kebanyakan 75 00:05:41,930 --> 00:05:43,180 semua orang di ruangan ini. 76 00:05:43,180 --> 00:05:45,710 Biarkan aku pergi ke depan dan membuka editor teks kecil di sini. 77 00:05:45,710 --> 00:05:49,040 >> Dan Anda mungkin ingat dari sekolah dasar bahwa kita memiliki hal-hal seperti ratusan 78 00:05:49,040 --> 00:05:51,970 tempat, tempat puluhan, dan yang tempat. 79 00:05:51,970 --> 00:05:55,040 Dan ingat bahwa jika Anda memiliki beberapa desimal nomor, seperti sesuatu yang acak 80 00:05:55,040 --> 00:05:59,470 seperti 123, Anda akan dasarnya menulis yang keluar dalam bentuk 81 00:05:59,470 --> 00:06:00,450 dari tiga kolom. 82 00:06:00,450 --> 00:06:04,070 Dan mengapa 1, 2, 3 apa kita kenal sebagai 123? 83 00:06:04,070 --> 00:06:11,220 Nah, di kolom paling kiri, kita memiliki satu 100 ditambah dua 10s, jadi itu 120, 84 00:06:11,220 --> 00:06:14,250 ditambah tiga 1s, jadi itu 123. 85 00:06:14,250 --> 00:06:17,990 >> Sekarang dunia ini bahwa kita hanya diterangi adalah persis sama dengan 86 00:06:17,990 --> 00:06:21,150 Anda sudah akrab dengan selama bertahun-tahun, kecuali sekarang, kolom kami 87 00:06:21,150 --> 00:06:22,060 tidak pangkat 10. 88 00:06:22,060 --> 00:06:23,780 Mereka hanya kekuatan dari 2. 89 00:06:23,780 --> 00:06:27,830 Jadi sementara itu adalah tempat yang, ini akan menjadi tempat yang berpasangan, ini 90 00:06:27,830 --> 00:06:29,540 akan menjadi tempat merangkak. 91 00:06:29,540 --> 00:06:33,260 >> Dan karena saya hanya menggunakan sederhana mekanisme untuk membalikkan keadaan 92 00:06:33,260 --> 00:06:37,100 dan mematikan - listrik mengalir atau listrik tidak mengalir - 93 00:06:37,100 --> 00:06:40,880 Saya tidak cukup memiliki ekspresif yang sama range 0 sampai sembilan. 94 00:06:40,880 --> 00:06:43,270 Kita akan tetap super sederhana di dunia ini komputer. 95 00:06:43,270 --> 00:06:45,060 Saya hanya memiliki 0 atau 1 - 96 00:06:45,060 --> 00:06:47,890 off atau on, palsu atau benar. 97 00:06:47,890 --> 00:06:52,610 >> Dan apa yang saya mewakili sekarang adalah 1, 1, 1, karena masing-masing 98 00:06:52,610 --> 00:06:54,000 lampu menyala. 99 00:06:54,000 --> 00:06:59,600 Nah, yang memberi saya satu 4 ditambah satu 2, sehingga itu 6, ditambah satu 1, dan itu 7. 100 00:06:59,600 --> 00:07:03,450 Dan ergo melakukan ini urutan tiga bit mewakili angka 7. 101 00:07:03,450 --> 00:07:06,330 >> Jadi selama ini, dalam Anda komputer, telah sejumlah 102 00:07:06,330 --> 00:07:08,090 transistor, jumlah bit. 103 00:07:08,090 --> 00:07:10,380 Tetapi pada akhir hari, kita dapat mewakili informasi 104 00:07:10,380 --> 00:07:12,560 sesederhana itu. 105 00:07:12,560 --> 00:07:16,770 Sekarang sayangnya, kita hanya menghitung sampai dengan 7 di CS50 sejauh ini, tetapi 106 00:07:16,770 --> 00:07:18,550 mudah-mudahan kita bisa melakukan sedikit lebih baik dari itu. 107 00:07:18,550 --> 00:07:19,550 Dan memang kita bisa. 108 00:07:19,550 --> 00:07:23,570 >> Misalkan kita sebagai manusia hanya sewenang-wenang memutuskan bahwa kita akan 109 00:07:23,570 --> 00:07:28,750 untuk mengasosiasikan angka seperti 1 dan 2, 3, 4, 5, 6, 7, dengan huruf spesifik 110 00:07:28,750 --> 00:07:29,410 alfabet. 111 00:07:29,410 --> 00:07:32,350 Dan untuk alasan historis, aku akan mulai agak sewenang-wenang, tapi aku 112 00:07:32,350 --> 00:07:36,880 akan mengatakan, manusia, kita akan memutuskan sebagai standar, secara global, yang 113 00:07:36,880 --> 00:07:43,200 65 merupakan jumlah huruf A. 66 akan mewakili B. Dot, titik, titik. 114 00:07:43,200 --> 00:07:45,140 90 akan mewakili huruf Z. 115 00:07:45,140 --> 00:07:48,000 >> Dan mari kita misalkan, jika kita benar-benar menaruh beberapa berpikir ke dalamnya, kita bisa datang 116 00:07:48,000 --> 00:07:50,860 dengan nomor untuk tanda seru dan huruf kecil, dan memang, 117 00:07:50,860 --> 00:07:52,710 orang lain telah melakukan itu untuk kita. 118 00:07:52,710 --> 00:07:56,410 Jadi sekarang kita memiliki bit yang kita dapat mewakili angka, angka dengan yang 119 00:07:56,410 --> 00:08:00,130 kita dapat mewakili huruf, dan dengan surat yang kami dapat sekarang mulai membuat 120 00:08:00,130 --> 00:08:02,650 email dan mencetak karakter di layar. 121 00:08:02,650 --> 00:08:05,850 >> Jadi biarkan aku mengundang, jika aku bisa, delapan relawan berani - 122 00:08:05,850 --> 00:08:09,200 yang tidak keberatan muncul tidak hanya di depan kamera tapi di internet - 123 00:08:09,200 --> 00:08:13,130 untuk datang ke sini dan mewakili delapan seperti bit, bukan tiga. 124 00:08:13,130 --> 00:08:14,380 Jadi bagaimana satu, dua? 125 00:08:14,380 --> 00:08:16,290 Bagaimana tiga? 126 00:08:16,290 --> 00:08:20,230 Bagaimana empat 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 depan, tujuh di depan, dan delapan di depan, juga. 129 00:08:25,320 --> 00:08:29,050 >> Jadi saya hanya kebetulan datang disiapkan dengan sejumlah besar potongan kertas. 130 00:08:29,050 --> 00:08:34,150 Dan pada potongan-potongan kertas nomor yang mewakili apa yang kolom 131 00:08:34,150 --> 00:08:35,809 kalian akan mewakili. 132 00:08:35,809 --> 00:08:36,740 Jadi Anda akan - siapa namamu? 133 00:08:36,740 --> 00:08:37,570 >> SISWA: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID Malan: Anna Leah, Anda akan menjadi kolom 128s. 135 00:08:40,370 --> 00:08:41,059 Anda? 136 00:08:41,059 --> 00:08:41,510 >> SISWA: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID Malan: Chris akan menjadi kolom 64s. 138 00:08:43,620 --> 00:08:44,070 Anda? 139 00:08:44,070 --> 00:08:44,540 >> SISWA: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID Malan: Dan akan menjadi kolom 32s. 141 00:08:46,970 --> 00:08:47,470 >> SISWA: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID Malan: Pramit akan menjadi kolom 16. 143 00:08:49,430 --> 00:08:50,290 >> SISWA: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID Malan: Lillian akan 8s tersebut. 145 00:08:51,904 --> 00:08:52,768 >> SISWA: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID Malan: Jill akan menjadi kolom 4s. 147 00:08:55,025 --> 00:08:55,400 >> SISWA: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID Malan: Maria akan menjadi 2s, dan? 149 00:08:57,000 --> 00:08:57,470 >> SISWA: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID Malan: David akan menjadi kolom 1s. 151 00:08:59,220 --> 00:09:02,030 Jadi, jika kalian bisa melangkah sedikit ke depan sehingga semua orang bisa melihatnya. 152 00:09:02,030 --> 00:09:05,370 Apa yang kalian tidak lihat adalah bahwa pada kembali dari potongan kertas adalah 153 00:09:05,370 --> 00:09:09,760 sedikit contekan yang akan menginstruksikan delapan bit untuk baik 154 00:09:09,760 --> 00:09:12,380 mengangkat tangan mereka 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, kita penonton harus dapat mengetahui, berdasarkan ini 158 00:09:21,410 --> 00:09:26,490 pemetaan, apa tiga huruf kata tersebut orang sekitar untuk mengeja. 159 00:09:26,490 --> 00:09:29,700 Jadi hanya dalam beberapa saat, Anda akan membaca baris pertama dari belakang 160 00:09:29,700 --> 00:09:32,880 contekan Anda, dan Anda baik akan menaikkan atau tidak menaikkan tangan Anda. 161 00:09:32,880 --> 00:09:35,710 Jika Anda seorang 1, Anda meningkatkan, jika Anda seorang 0, Anda berdiri di sana 162 00:09:35,710 --> 00:09:38,594 canggung, begitu saja. 163 00:09:38,594 --> 00:09:40,386 Go. 164 00:09:40,386 --> 00:09:43,945 Nomor berapa, pertama dan terutama, adalah orang-orang yang 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, kan? 168 00:09:49,560 --> 00:09:52,400 Kami memiliki 1 di kolom 64s, 1 di kolom 2s. 169 00:09:52,400 --> 00:09:56,340 Itu memberi saya 66, jadi yang muncul akan mewakili B. Jadi 170 00:09:56,340 --> 00:09:57,075 kalian telah dieja - 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 pindah ke Surat kedua kami. 174 00:10:01,610 --> 00:10:03,530 Go. 175 00:10:03,530 --> 00:10:06,860 Siapa tercepat di matematika 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 menambahkan semua kolom di mana ada 1, saat ini, hanya 178 00:10:11,840 --> 00:10:14,840 seperti yang kita lakukan sebelumnya dengan sederhana contoh 7, sekarang kita 179 00:10:14,840 --> 00:10:16,140 mendapatkan nomor 79. 180 00:10:16,140 --> 00:10:19,910 Yang menurut kami adalah pemetaan Surat O. Jadi kita sudah hampir sampai. 181 00:10:19,910 --> 00:10:22,590 B, O. Dan terakhir, 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 Kurang konsensus. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Itu hanya sebuah gumaman mutlak. 187 00:10:36,460 --> 00:10:40,090 Ya, itu sebenarnya 87. 188 00:10:40,090 --> 00:10:40,490 Baik. 189 00:10:40,490 --> 00:10:44,480 >> Jadi jika sekarang kita memetakan kembali bahwa sampai - mari mulai memanggil grafik ASCII kami, 190 00:10:44,480 --> 00:10:46,450 American Standard Kode untuk Informasi Interchange. 191 00:10:46,450 --> 00:10:47,700 Yang memberi kita surat - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 bukan "bo" tapi "busur." Dan itu sempurna isyarat bagi kalian untuk mengambil busur 194 00:10:54,810 --> 00:10:56,100 dan kepala di bagian belakang. 195 00:10:56,100 --> 00:10:56,980 Terima kasih banyak. 196 00:10:56,980 --> 00:10:57,886 >> [Tepuk Tangan] 197 00:10:57,886 --> 00:10:59,136 >> DAVID Malan: Anda dapat menjaga mereka. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Meskipun sebenarnya, siapa pun akan seperti lampu meja, juga? 200 00:11:05,942 --> 00:11:07,300 >> [BAGASI DARI PENONTON] 201 00:11:07,300 --> 00:11:08,390 >> DAVID Malan: Lampu meja? 202 00:11:08,390 --> 00:11:10,850 >> [Tertawa] 203 00:11:10,850 --> 00:11:11,860 >> DAVID Malan: Benarkah? 204 00:11:11,860 --> 00:11:13,230 Lampu meja untuk semua orang? 205 00:11:13,230 --> 00:11:14,310 Baik. 206 00:11:14,310 --> 00:11:20,990 Jadi dimulai dengan sangat sederhana prinsip, kita sekarang tidak hanya dihitung 207 00:11:20,990 --> 00:11:24,750 naik dari 0 semua jalan sampai dengan 7, kami telah diasumsikan bahwa hanya dengan melemparkan lebih 208 00:11:24,750 --> 00:11:28,080 bit atau lebih lampu atau lebih transistor pada masalah ini, kita bisa 209 00:11:28,080 --> 00:11:32,680 merupakan angka yang lebih besar dan lebih besar, dan ergo, rentang yang lebih besar dan lebih besar dari 210 00:11:32,680 --> 00:11:33,780 huruf, seperti bahasa Inggris. 211 00:11:33,780 --> 00:11:37,770 Dan mari kita pada iman untuk hari ini yang sama bisa kita mulai 212 00:11:37,770 --> 00:11:42,220 mewakili grafis dan video dan jumlah media lain yang kita 213 00:11:42,220 --> 00:11:43,610 akrab hari. 214 00:11:43,610 --> 00:11:49,240 >> Jadi ini adalah CS50, dan di kelas ini bersama Anda, sekali lagi, sangat banyak 215 00:11:49,240 --> 00:11:53,050 teman sekelas yang memiliki sesedikit pengalaman seperti Anda. 216 00:11:53,050 --> 00:11:57,730 Dan saya menyebutkan ini hanya karena cukup sering, termasuk baru-baru ini sebagai salah satu 217 00:11:57,730 --> 00:12:01,860 mahasiswa menasihati peristiwa dan pada sophomore musim semi lalu menasihati 218 00:12:01,860 --> 00:12:06,420 acara, kita sering mendengar siswa melepaskan ketika datang ke meja CS, baik, 219 00:12:06,420 --> 00:12:10,070 Aku sudah berpikir tentang mengambil ini kelas intro, tapi aku tidak benar-benar 220 00:12:10,070 --> 00:12:11,120 orang komputer. 221 00:12:11,120 --> 00:12:13,220 Atau, tapi semua orang pasti lebih tahu dari saya. 222 00:12:13,220 --> 00:12:17,340 Dan saya menempatkan ini dalam font terbesar mungkin, untuk menyampaikan pesan ini bahwa 223 00:12:17,340 --> 00:12:18,730 itu tidak pada kenyataannya kasus ini. 224 00:12:18,730 --> 00:12:21,100 >> Dan jika Anda bertanya-tanya, harus Saya, pada kenyataannya, berada di sini? 225 00:12:21,100 --> 00:12:25,950 Sadarilah bahwa tidak hanya ini saja yang Judul Pengantar Komputer 226 00:12:25,950 --> 00:12:31,740 Ilmu pengetahuan, Pengantar Komputer Ilmu I. Jadi memang ada 227 00:12:31,740 --> 00:12:33,170 pengenalan seperti kedua. 228 00:12:33,170 --> 00:12:35,390 Jadi Anda tidak, pada kenyataannya, di tempat yang salah. 229 00:12:35,390 --> 00:12:39,000 Dan di antara tujuan saya miliki untuk hari ini untuk meredakan kekhawatiran seperti itu Anda 230 00:12:39,000 --> 00:12:42,430 mungkin, tetapi juga untuk melukis gambaran tentang apa yang ada di toko untuk 231 00:12:42,430 --> 00:12:45,720 siswa yang kurang dan lebih nyaman sama dalam kursus ini. 232 00:12:45,720 --> 00:12:49,320 >> Tapi pertama-tama, sebuah kata pada salah satu handout Anda miliki saat ini, di antaranya 233 00:12:49,320 --> 00:12:50,780 sejumlah FAQ. 234 00:12:50,780 --> 00:12:54,290 Sudah visi kami selama beberapa waktu sekarang untuk memperkenalkan gradasi baru 235 00:12:54,290 --> 00:12:57,010 pilihan dalam kursus ini - yaitu, SAT / UNSAT. 236 00:12:57,010 --> 00:13:01,930 Secara filosofis bagi saya, itu jauh banyak, jauh lebih penting bahwa 237 00:13:01,930 --> 00:13:05,050 siswa di kelas ini terlibat dengan material, ditantang oleh 238 00:13:05,050 --> 00:13:09,800 materi, dan khawatir jauh, jauh lebih sedikit tentang mekanisme nilai aktual 239 00:13:09,800 --> 00:13:12,590 dan nilai huruf pada semester end, tapi benar-benar merangkul 240 00:13:12,590 --> 00:13:13,970 kursus dan materialnya. 241 00:13:13,970 --> 00:13:18,140 Dan sungguh ini terasa, lebih umum, untuk apa yang menarik bagi mereka, untuk 242 00:13:18,140 --> 00:13:21,390 merasa tertantang dan dihargai tapi tanpa takut gagal. 243 00:13:21,390 --> 00:13:25,030 >> Dan memang, ini juga merupakan berulang Tema dalam hal ini dan lainnya pengantar 244 00:13:25,030 --> 00:13:28,680 program di bidang lain, bahwa Anda memiliki gentar ini ketika datang ke 245 00:13:28,680 --> 00:13:31,040 menempatkan jari kaki seseorang dalam perairan asing. 246 00:13:31,040 --> 00:13:34,880 Saya sendiri, kembali pada tahun 1995, adalah mahasiswa baru. 247 00:13:34,880 --> 00:13:37,990 Saya sangat fokus untuk menjadi konsentrator Gov di sini. 248 00:13:37,990 --> 00:13:41,060 Namun aku selalu tumbuh dengan sedikit suatu kepentingan dalam ilmu komputer. 249 00:13:41,060 --> 00:13:42,180 Aku selalu penasaran. 250 00:13:42,180 --> 00:13:47,610 >> Tapi saat itu, bahkan, aku punya rasa takut ini bahkan melangkah kaki di CS50, begitu banyak 251 00:13:47,610 --> 00:13:49,420 sehingga saya bahkan tidak berbelanja itu tahun pertama. 252 00:13:49,420 --> 00:13:53,460 Dan satu-satunya alasan aku meletakkan kaki di Pintu tahun kedua adalah karena saya 253 00:13:53,460 --> 00:13:55,340 diizinkan untuk mengambil lulus / gagal. 254 00:13:55,340 --> 00:13:58,920 Tetapi bahkan lulus / gagal diperlukan bahwa saya mendapatkan keberanian untuk membuat janji 255 00:13:58,920 --> 00:14:01,970 dengan Profesor Kernehan pada saat itu, membawa lembar kertas besar, dan meminta 256 00:14:01,970 --> 00:14:04,470 dia untuk tanda tangan dan nya izin untuk mengeksplorasi 257 00:14:04,470 --> 00:14:05,700 perairan asing. 258 00:14:05,700 --> 00:14:09,030 >> Dan itu tidak membantu dalam beberapa tahun terakhir bahwa ketika melakukan hal ini dalam CS50, ketika kita 259 00:14:09,030 --> 00:14:12,500 digunakan untuk menjadi lulus / gagal, sama akan puluhan atau ratusan teman sekelas Anda 260 00:14:12,500 --> 00:14:15,970 harus datang, Allah melarang, di depan Sanders dengan formulir ini, bahwa 261 00:14:15,970 --> 00:14:19,520 dalam beberapa pikiran merupakan ketidakmampuan, Saya berani mengatakan, untuk melakukan 262 00:14:19,520 --> 00:14:20,800 adalah tingkat rekan-rekan Anda. 263 00:14:20,800 --> 00:14:23,410 Yang konyol, tapi saya pikir ada mentalitas itu. 264 00:14:23,410 --> 00:14:27,210 Dan tidak pernah ada dalam budaya ini SAT / UNSAT, atau lulus / gagal lebih 265 00:14:27,210 --> 00:14:30,610 umumnya, dalam kursus ini, atau benar-benar di kampus ini. 266 00:14:30,610 --> 00:14:32,310 >> Jadi tahun ini kami mengubah itu. 267 00:14:32,310 --> 00:14:35,630 Aku akan setengah gembira dari kelas ini atau lebih berakhir 268 00:14:35,630 --> 00:14:38,700 up mengambil CS50 SAT / UNSAT. 269 00:14:38,700 --> 00:14:42,130 Dalam waktu satu tahun, itu akan menjadi indah jika hampir semua orang. 270 00:14:42,130 --> 00:14:44,410 Setelah itu mungkin kita akan bekerja pada nilai surat di Harvard 271 00:14:44,410 --> 00:14:45,480 Perguruan tinggi lebih umum. 272 00:14:45,480 --> 00:14:48,900 Tetapi untuk sekarang, kita akan melakukan ini dalam kami wilayahnya sendiri, dan saya akan sungguh-sungguh 273 00:14:48,900 --> 00:14:53,400 mendorong Anda untuk meninjau mereka FAQ dan mengajukan pertanyaan sesuai keinginan Anda, sehingga 274 00:14:53,400 --> 00:14:58,000 mudah-mudahan Anda, seperti saya, tidak akan cukup memiliki faktor ketakutan yang sama ketika 275 00:14:58,000 --> 00:15:01,040 mengeksplorasi apa yang mungkin tempat yang asing. 276 00:15:01,040 --> 00:15:02,786 >> Jadi apa CS50? 277 00:15:02,786 --> 00:15:06,150 Ini adalah pengenalan perusahaan intelektual komputer 278 00:15:06,150 --> 00:15:07,700 ilmu pengetahuan dan seni pemrograman. 279 00:15:07,700 --> 00:15:08,770 Tapi apa benar-benar berarti? 280 00:15:08,770 --> 00:15:12,510 >> Nah, sejauh ini, kami berbicara sangat singkat tentang mewakili informasi. 281 00:15:12,510 --> 00:15:15,070 Tapi misalkan kita benar-benar ingin untuk melakukan sesuatu dengan itu. 282 00:15:15,070 --> 00:15:17,890 Kita perlu untuk memperkenalkan gagasan apa yang akan kita sebut algoritma. 283 00:15:17,890 --> 00:15:21,540 Algoritma adalah suatu prosedur, proses, satu set instruksi untuk 284 00:15:21,540 --> 00:15:22,780 melakukan sesuatu. 285 00:15:22,780 --> 00:15:25,620 >> Dan algoritma dapat menjadi sesuatu super sederhana. 286 00:15:25,620 --> 00:15:28,660 Misalnya, contoh dengan yang beberapa Anda mungkin akrab ini 287 00:15:28,660 --> 00:15:29,350 hal di sini. 288 00:15:29,350 --> 00:15:32,510 Jadi buku ini di sini adalah semakin tanggal, tapi sekali waktu, itu 289 00:15:32,510 --> 00:15:34,720 berisi seluruh banyak nama dan nomor telepon. 290 00:15:34,720 --> 00:15:37,710 Dan memang, jika saya ingin menemukan seseorang dalam buku telepon ini - 291 00:15:37,710 --> 00:15:39,800 mengatakan, seseorang bernama Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Aku bisa menemukan Mike Smith dalam jumlah cara cukup mudah. 293 00:15:43,810 --> 00:15:47,700 Aku bisa mulai dari awal dan pindah ke halaman 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 Halaman 3. 296 00:15:49,960 --> 00:15:53,430 Apakah algoritma itu, adalah bahwa proses, benar? 297 00:15:53,430 --> 00:15:54,620 >> Jadi benar, kan? 298 00:15:54,620 --> 00:15:58,070 Aku agak idiot untuk melakukannya dalam cara itu, tapi akhirnya aku akan 299 00:15:58,070 --> 00:16:02,670 menemukan nama S, dan mudah-mudahan Mike adalah pada bagian tersebut, 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 Tapi tentunya itu tidak intuitif. 302 00:16:05,440 --> 00:16:08,020 Kebanyakan setiap manusia yang wajar dalam kamar tidak akan melakukan itu. 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 pergi langsung ke tengah, kan? 305 00:16:11,480 --> 00:16:12,000 Kira-kira ke tengah. 306 00:16:12,000 --> 00:16:16,310 Dan Anda menyadari, oh, ini adalah Ms Jadi Mike Smith, nama terakhir menjadi Smith, 307 00:16:16,310 --> 00:16:19,050 tidak, jelas, maka dalam kiri setengah dari buku ini. 308 00:16:19,050 --> 00:16:21,040 Ia harus menuju S ada di sebelah kanan. 309 00:16:21,040 --> 00:16:24,090 Dan pada titik ini, meskipun sebagian besar dari kita jangan lakukan ini pada kenyataannya, kita bisa 310 00:16:24,090 --> 00:16:27,125 harfiah merobek masalah ini di setengah. 311 00:16:27,125 --> 00:16:27,640 >> [Bersorak DAN Tepuk Tangan] 312 00:16:27,640 --> 00:16:28,950 >> DAVID Malan: Terima kasih. 313 00:16:28,950 --> 00:16:30,150 >> [Bersorak DAN Tepuk Tangan] 314 00:16:30,150 --> 00:16:34,660 >> DAVID Malan: Anda benar-benar dapat merobek ini masalah dalam setengah, meninggalkan saya dengan, 315 00:16:34,660 --> 00:16:36,120 harfiah, masalah setengah besar. 316 00:16:36,120 --> 00:16:39,750 Jadi jika buku telepon ini - dan itu mungkin itu - sekitar 1.000 halaman, sekarang 317 00:16:39,750 --> 00:16:40,840 itu hanya 500. 318 00:16:40,840 --> 00:16:44,710 Jika saya melakukan ini lagi dan saya menyadari, oh, sialan, aku pergi terlalu jauh, aku di Ts ini 319 00:16:44,710 --> 00:16:46,480 bagian, aku sama bisa - 320 00:16:46,480 --> 00:16:48,030 kiasan atau secara harfiah - 321 00:16:48,030 --> 00:16:50,260 merobek buku telepon - itu benar-benar waktu itu jauh lebih mudah. 322 00:16:50,260 --> 00:16:53,610 Aku benar-benar dapat merobek buku telepon dalam setengah, meninggalkan aku sekarang dengan 323 00:16:53,610 --> 00:16:55,186 tidak 1.000, tidak 500 - 324 00:16:55,186 --> 00:16:56,680 250 halaman. 325 00:16:56,680 --> 00:17:00,210 Dan aku bisa pergi 125, dan setengah dari itu, dan setengah dari itu, dan setengah dari itu, 326 00:17:00,210 --> 00:17:04,760 sampai akhirnya aku akan pergi dengan hanya satu halaman. 327 00:17:04,760 --> 00:17:06,430 >> [Tertawa] 328 00:17:06,430 --> 00:17:07,589 >> DAVID Malan: Itulah bagian I gagal pada. 329 00:17:07,589 --> 00:17:10,400 Satu halaman di mana Mike mudah-mudahan. 330 00:17:10,400 --> 00:17:14,630 Sekarang mereka algoritma yang berbeda dapat semacam dinilai atau dievaluasi 331 00:17:14,630 --> 00:17:15,270 cara yang berbeda. 332 00:17:15,270 --> 00:17:17,300 Yang pertama adalah sangat linier, kan? 333 00:17:17,300 --> 00:17:18,500 Mengubah halaman, mencari Mike. 334 00:17:18,500 --> 00:17:19,630 Mengubah halaman, mencari Mike. 335 00:17:19,630 --> 00:17:20,560 Ini sangat linear. 336 00:17:20,560 --> 00:17:23,339 Jika ada satu halaman yang lebih dalam telepon buku, itu mungkin akan membawa saya 337 00:17:23,339 --> 00:17:27,380 satu detik, satu unit lebih banyak waktu, namun kami sedang menghitung waktu. 338 00:17:27,380 --> 00:17:32,470 >> Jadi saya mungkin menarik seperti ini baris ini di sini, dimana sebagai ukuran 339 00:17:32,470 --> 00:17:34,700 masalah meningkat dari kiri ke kanan - 340 00:17:34,700 --> 00:17:37,480 buku telepon semakin kecil ke besar - 341 00:17:37,480 --> 00:17:41,080 dan waktu akan meningkat pada sumbu vertikal, semakin besar 342 00:17:41,080 --> 00:17:42,030 buku telepon. 343 00:17:42,030 --> 00:17:46,180 Jadi n hanyalah sebuah variabel umum bahwa ilmuwan komputer digunakan untuk mewakili 344 00:17:46,180 --> 00:17:48,210 beberapa nilai, beberapa nomor. 345 00:17:48,210 --> 00:17:50,740 Jadi n akan meningkat secara linear. 346 00:17:50,740 --> 00:17:53,040 Dua kali ukuran buku telepon, itu akan membawa saya dua kali lebih banyak 347 00:17:53,040 --> 00:17:54,780 waktu, kemungkinan besar, untuk menemukan Mike. 348 00:17:54,780 --> 00:17:56,390 >> Sekarang saya bisa pintar tentang hal ini, kan? 349 00:17:56,390 --> 00:17:57,800 Aku mulai bosan dengan cepat. 350 00:17:57,800 --> 00:17:58,910 Bisa melakukan ini dengan berpasangan. 351 00:17:58,910 --> 00:18:01,870 Jadi dua halaman, lalu empat, lalu enam, lalu delapan. 352 00:18:01,870 --> 00:18:05,220 Dan aku bisa mulai terbang melalui sebuah sedikit lebih cepat, meskipun dengan risiko kecil 353 00:18:05,220 --> 00:18:09,210 overshoot Mike, tapi kurva yang tidak akan semua yang berbeda. 354 00:18:09,210 --> 00:18:12,550 Ini masih akan menjadi lurus line, tetapi sedikit lebih cepat. 355 00:18:12,550 --> 00:18:13,710 >> Tapi apa yang saya lakukan? 356 00:18:13,710 --> 00:18:15,845 Aku benar-benar melakukan sesuatu fundamental yang lebih baik. 357 00:18:15,845 --> 00:18:21,990 Aku mencapai apa yang akan kita sebut logaritma waktu, log n, dimana hijau ini 358 00:18:21,990 --> 00:18:27,730 garis memiliki banyak, banyak, banyak tepi kurang langsung ke itu. 359 00:18:27,730 --> 00:18:33,050 Dan sebaliknya, itu menunjukkan, seperti semacam mendekati tak terhingga pernah secara bertahap, 360 00:18:33,050 --> 00:18:36,700 bahwa saya benar-benar bisa mengambil 1.000 halaman buku telepon, dua kali lipat ukurannya 361 00:18:36,700 --> 00:18:39,610 tahun depan - karena kira banyak lebih banyak orang pindah ke kota. 362 00:18:39,610 --> 00:18:43,250 >> Jadi sekarang aku punya 2.000 halaman, tapi bagaimana banyak langkah cerdas adalah bahwa 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 Maksudku, itu adalah hal yang sangat kuat. 366 00:18:48,060 --> 00:18:51,400 Jika kita pergi ke 4.000 halaman tahun depan, itu akan membawaku 367 00:18:51,400 --> 00:18:53,020 hanya dua langkah lagi. 368 00:18:53,020 --> 00:18:56,500 Jadi Anda bisa melempar besar dan lebih besar masalah pada saya, tidak seperti web adalah 369 00:18:56,500 --> 00:18:59,560 melemparkan masalah yang lebih besar dan lebih besar setiap hari di Googles dan facebooks dari 370 00:18:59,560 --> 00:19:01,590 dunia, dan itu tidak masalah besar. 371 00:19:01,590 --> 00:19:05,840 Karena saya menempatkan lebih banyak pemikiran dan perawatan ke algoritma saya yang dapat digunakan untuk memecahkan 372 00:19:05,840 --> 00:19:07,020 masalah efisien. 373 00:19:07,020 --> 00:19:09,260 >> Dan memang, yang akan menjadi salah satu tujuan dari program ini. 374 00:19:09,260 --> 00:19:11,230 Anda akan, sepanjang jalan, mempelajari bagaimana program. 375 00:19:11,230 --> 00:19:13,360 Anda akan belajar bagaimana program di sejumlah bahasa. 376 00:19:13,360 --> 00:19:16,670 Tetapi pada akhir hari, program ini tentang memecahkan masalah dan mendapatkan 377 00:19:16,670 --> 00:19:20,490 lebih baik untuk memecahkan masalah - dan, seperti dalam kasus seperti ini, pemecahan masalah 378 00:19:20,490 --> 00:19:22,030 lebih efisien. 379 00:19:22,030 --> 00:19:23,990 >> Sekarang sejauh ini, kami telah melakukan ini cukup intuitif. 380 00:19:23,990 --> 00:19:27,420 Mari kita memperkenalkan sesuatu yang cukup generik disebut pseudocode. 381 00:19:27,420 --> 00:19:29,150 Jadi kita akhirnya akan mendapatkan, dalam kursus ini, untuk 382 00:19:29,150 --> 00:19:30,570 berbagai bahasa pemrograman. 383 00:19:30,570 --> 00:19:34,280 Tapi hari ini kita akan melakukannya dalam bahasa Inggris-seperti sintaks, di mana Anda hanya semacam mengatakan 384 00:19:34,280 --> 00:19:37,330 apa yang Anda maksud, tapi kau pernah jadi ringkas dan Anda tidak perlu khawatir tentang 385 00:19:37,330 --> 00:19:38,960 tata bahasa dan kalimat lengkap. 386 00:19:38,960 --> 00:19:41,600 Anda hanya mengekspresikan diri sebagai seringkas mungkin. 387 00:19:41,600 --> 00:19:45,400 >> Jadi pseudocode adalah bahasa Inggris-seperti sintaks yang mewakili 388 00:19:45,400 --> 00:19:46,750 bahasa pemrograman. 389 00:19:46,750 --> 00:19:51,170 Dan untuk mencapai tujuan itu, saya mengusulkan bahwa sekarang kita memodelkan proses kita hanya 390 00:19:51,170 --> 00:19:54,990 dijelaskan menghitung sesuatu yang sedikit berbeda, kali ini mengambil 391 00:19:54,990 --> 00:19:59,040 lihat ini lima menit video yang dihasilkan oleh teman-teman kita di TED yang 392 00:19:59,040 --> 00:20:03,170 mendefinisikan apa pseudocode adalah, mendefinisikan apa berpikir algoritmik adalah, dan bahkan 393 00:20:03,170 --> 00:20:07,030 meskipun contoh Anda akan melihat adalah, dalam dirinya sendiri, super sederhana, itu 394 00:20:07,030 --> 00:20:09,820 akan mulai memberi kami mental Model, kosa kata, yang dapat digunakan untuk 395 00:20:09,820 --> 00:20:14,588 berbuat banyak, jauh lebih kompleks algoritma cukup cepat. 396 00:20:14,588 --> 00:20:15,576 >> [BEGIN VIDEO PEMUTARAN] 397 00:20:15,576 --> 00:20:29,920 >> [MUSIC PLAYING] 398 00:20:29,920 --> 00:20:31,100 >> Narator: Apa itu algoritma? 399 00:20:31,100 --> 00:20:34,730 Dalam ilmu komputer, sebuah algoritma adalah set instruksi untuk memecahkan 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 dieksekusi oleh komputer, tetapi kita manusia memiliki 402 00:20:39,650 --> 00:20:41,230 algoritma, juga. 403 00:20:41,230 --> 00:20:43,290 Misalnya, bagaimana Anda akan pergi tentang menghitung jumlah 404 00:20:43,290 --> 00:20:44,750 dari orang di sebuah ruangan? 405 00:20:44,750 --> 00:20:47,980 Nah, jika Anda seperti saya, Anda mungkin akan titik pada setiap orang, satu di 406 00:20:47,980 --> 00:20:50,120 waktu, dan menghitung 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 sebuah algoritma. 409 00:20:54,140 --> 00:20:57,600 Bahkan, mari kita coba untuk mengekspresikan itu sedikit lebih formal dalam pseudo - 410 00:20:57,600 --> 00:21:00,700 Inggris-seperti sintaks yang menyerupai bahasa pemrograman. 411 00:21:00,700 --> 00:21:02,580 Mari N sama 0. 412 00:21:02,580 --> 00:21:06,970 Untuk setiap orang di ruangan, mengatur N sama dengan N ditambah 1. 413 00:21:06,970 --> 00:21:08,400 >> Bagaimana menafsirkan pseudocode ini? 414 00:21:08,400 --> 00:21:12,840 Nah, satu baris menyatakan, sehingga untuk berbicara, variabel yang disebut N dan menginisialisasi 415 00:21:12,840 --> 00:21:14,250 nilainya ke 0. 416 00:21:14,250 --> 00:21:17,550 Ini hanya berarti bahwa pada awal algoritma kami, hal yang dengan 417 00:21:17,550 --> 00:21:19,650 kita menghitung memiliki nilai 0. 418 00:21:19,650 --> 00:21:22,620 Setelah semua, sebelum kita mulai menghitung, kami belum menghitung apa pun. 419 00:21:22,620 --> 00:21:25,340 Memanggil variabel ini N hanya konvensi. 420 00:21:25,340 --> 00:21:26,890 Saya bisa menyebutnya apa yang paling. 421 00:21:26,890 --> 00:21:30,560 >> Sekarang lini dua demarks awal dari lingkaran, urutan langkah-langkah yang akan 422 00:21:30,560 --> 00:21:32,310 mengulang beberapa beberapa kali. 423 00:21:32,310 --> 00:21:35,910 Jadi, dalam contoh kita, langkah yang kami ambil adalah menghitung orang di ruangan itu. 424 00:21:35,910 --> 00:21:38,730 Di bawah baris kedua adalah line tiga, yang menggambarkan dengan tepat bagaimana 425 00:21:38,730 --> 00:21:40,160 kita akan pergi tentang menghitung. 426 00:21:40,160 --> 00:21:43,440 Lekukan menyiratkan bahwa itu tiga baris yang akan mengulangi. 427 00:21:43,440 --> 00:21:47,380 >> Jadi apa yang dikatakan pseudocode adalah bahwa setelah mulai 0, untuk setiap 428 00:21:47,380 --> 00:21:50,690 orang di ruangan itu, kita akan meningkatkan N oleh 1. 429 00:21:50,690 --> 00:21:53,050 Sekarang algoritma ini benar? 430 00:21:53,050 --> 00:21:54,580 Nah, mari kita menggedor sedikit. 431 00:21:54,580 --> 00:21:57,270 Apakah itu bekerja jika ada dua orang di ruangan itu? 432 00:21:57,270 --> 00:21:58,170 Mari kita lihat. 433 00:21:58,170 --> 00:22:00,260 >> Sejalan satu, kita menginisialisasi N ke 0. 434 00:22:00,260 --> 00:22:03,660 Untuk masing-masing dua orang, kita kemudian kenaikan N oleh 1. 435 00:22:03,660 --> 00:22:07,310 Jadi pada perjalanan pertama melalui lingkaran, kami memperbarui N dari 0 ke 1. 436 00:22:07,310 --> 00:22:11,070 Pada perjalanan kedua melalui itu sama lingkaran, kami memperbarui N 1 ke 2. 437 00:22:11,070 --> 00:22:15,780 Dan pada akhir ini algoritma, n adalah 2, yang memang sesuai dengan jumlah 438 00:22:15,780 --> 00:22:16,700 orang di ruangan itu. 439 00:22:16,700 --> 00:22:17,760 >> Sejauh ini, begitu baik. 440 00:22:17,760 --> 00:22:19,610 Bagaimana tentang kasus sudut, meskipun? 441 00:22:19,610 --> 00:22:22,590 Misalkan ada 0 orang di kamar - selain saya, 442 00:22:22,590 --> 00:22:24,170 siapa yang melakukan penghitungan. 443 00:22:24,170 --> 00:22:27,150 Sejalan satu, kita menginisialisasi N ke 0. 444 00:22:27,150 --> 00:22:30,280 Kali ini, meskipun, baris ketiga tidak mengeksekusi sama sekali karena tidak ada 445 00:22:30,280 --> 00:22:31,370 orang di ruangan. 446 00:22:31,370 --> 00:22:35,260 Dan N tetap 0, yang sesuai dengan jumlah orang di dalam ruangan. 447 00:22:35,260 --> 00:22:36,420 Cukup sederhana, kan? 448 00:22:36,420 --> 00:22:39,630 >> Tetapi orang-orang menghitung satu per satu sangat tidak efisien, juga, bukan? 449 00:22:39,630 --> 00:22:40,920 Tentunya kita bisa berbuat lebih baik. 450 00:22:40,920 --> 00:22:43,120 Mengapa tidak menghitung dua orang sekaligus? 451 00:22:43,120 --> 00:22:49,300 Alih-alih menghitung 1, 2, 3, 4, 5, 6, 7, 8, dan sebagainya, mengapa tidak menghitung, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, dan seterusnya? 453 00:22:51,460 --> 00:22:53,700 Bahkan terdengar lebih cepat, dan itu pasti. 454 00:22:53,700 --> 00:22:56,240 >> Mari mengungkapkan optimasi ini dalam pseudocode. 455 00:22:56,240 --> 00:22:57,800 Mari N sama 0. 456 00:22:57,800 --> 00:23:02,450 Untuk setiap pasangan orang di ruangan, mengatur N sama dengan N ditambah 2. 457 00:23:02,450 --> 00:23:04,120 Perubahan yang cukup sederhana, kan? 458 00:23:04,120 --> 00:23:06,750 Daripada orang hitungan satu pada suatu waktu, kita malah menghitung 459 00:23:06,750 --> 00:23:08,300 mereka dua sekaligus. 460 00:23:08,300 --> 00:23:10,980 Algoritma ini adalah dengan demikian dua kali secepat terakhir. 461 00:23:10,980 --> 00:23:12,180 >> Tapi apakah itu benar? 462 00:23:12,180 --> 00:23:12,920 Mari kita lihat. 463 00:23:12,920 --> 00:23:15,330 Apakah itu bekerja jika ada dua orang di ruangan itu? 464 00:23:15,330 --> 00:23:17,550 Sejalan satu, kita menginisialisasi N ke 0. 465 00:23:17,550 --> 00:23:20,920 Untuk itu sepasang orang, kita kemudian kenaikan N oleh dua. 466 00:23:20,920 --> 00:23:24,860 Dan pada akhir ini algoritma, N adalah 2, yang memang sesuai dengan jumlah 467 00:23:24,860 --> 00:23:25,650 orang di ruangan itu. 468 00:23:25,650 --> 00:23:28,250 >> Misalkan berikutnya bahwa ada 0 orang di ruangan itu. 469 00:23:28,250 --> 00:23:30,840 Sejalan satu, kita menginisialisasi N ke 0. 470 00:23:30,840 --> 00:23:34,330 Seperti sebelumnya, line tiga tidak mengeksekusi sama sekali, karena tidak ada pasangan 471 00:23:34,330 --> 00:23:35,380 orang di ruangan. 472 00:23:35,380 --> 00:23:38,350 Dan N tetap 0, yang memang sesuai dengan jumlah 473 00:23:38,350 --> 00:23:39,570 orang di ruangan itu. 474 00:23:39,570 --> 00:23:42,280 >> Tapi bagaimana jika ada tiga orang di ruangan itu? 475 00:23:42,280 --> 00:23:44,130 Bagaimana ini algoritma tarif? 476 00:23:44,130 --> 00:23:44,990 Mari kita lihat. 477 00:23:44,990 --> 00:23:47,460 Sejalan satu, kita menginisialisasi N ke 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 Tapi kemudian apa? 480 00:23:51,800 --> 00:23:54,960 Tidak ada sepasang penuh orang lain di dalam ruangan, sehingga garis kedua ada 481 00:23:54,960 --> 00:23:56,180 lagi berlaku. 482 00:23:56,180 --> 00:24:00,530 Dan pada akhir ini algoritma, N masih 2, yang tidak benar. 483 00:24:00,530 --> 00:24:03,810 >> Memang, algoritma ini dikatakan menjadi buggy, karena memiliki kesalahan. 484 00:24:03,810 --> 00:24:05,820 Mari kita ganti rugi dengan beberapa pseudocode baru. 485 00:24:05,820 --> 00:24:09,670 Misalkan n sama dengan 0 untuk setiap pasangan orang di ruangan. 486 00:24:09,670 --> 00:24:12,550 Set N sama dengan N ditambah 2. 487 00:24:12,550 --> 00:24:17,140 Jika seseorang tetap berpasangan, mengatur N sama dengan N ditambah 1. 488 00:24:17,140 --> 00:24:20,140 Untuk mengatasi masalah khusus ini, kami telah diperkenalkan, sejalan empat, seorang 489 00:24:20,140 --> 00:24:24,520 kondisi, atau dikenal sebagai cabang yang hanya mengeksekusi jika ada satu 490 00:24:24,520 --> 00:24:26,640 orang bahwa kita tidak bisa pasangan dengan yang lain. 491 00:24:26,640 --> 00:24:30,440 Dan sekarang, apakah ada satu atau tiga atau ganjil orang 492 00:24:30,440 --> 00:24:33,290 ruang, algoritma ini sekarang akan menghitungnya. 493 00:24:33,290 --> 00:24:34,560 >> Bisakah kita melakukan bahkan lebih baik? 494 00:24:34,560 --> 00:24:38,820 Nah, kita bisa menghitung dalam 3s 4s atau atau bahkan 5s dan 10s, tetapi di luar itu, itu 495 00:24:38,820 --> 00:24:41,360 akan mendapatkan sedikit sulit untuk titik. 496 00:24:41,360 --> 00:24:44,660 Pada akhir hari, apakah dieksekusi oleh komputer atau manusia, 497 00:24:44,660 --> 00:24:46,750 algoritma hanya satu set instruksi dengan 498 00:24:46,750 --> 00:24:48,290 yang untuk memecahkan masalah. 499 00:24:48,290 --> 00:24:49,792 Ini adalah hanya tiga. 500 00:24:49,792 --> 00:24:52,404 Masalah apa yang akan Anda memecahkan dengan algoritma? 501 00:24:52,404 --> 00:24:52,901 >> [END VIDEO PEMUTARAN] 502 00:24:52,901 --> 00:24:55,883 >> DAVID Malan: Itulah satu-satunya waktu Aku akan muncul dalam bentuk kartun. 503 00:24:55,883 --> 00:25:01,050 Tapi di mana cerita itu daun off, sekarang, adalah bagaimana kita bisa berbuat lebih baik? 504 00:25:01,050 --> 00:25:04,680 Bertiga dan merangkak, kita mengklaim, kita dapat menghitung orang jauh lebih cepat, tapi bisa kita 505 00:25:04,680 --> 00:25:06,290 lakukan secara fundamental lebih baik dari itu? 506 00:25:06,290 --> 00:25:07,540 Dan saya bertaruh kami bisa. 507 00:25:07,540 --> 00:25:11,980 >> Jika kami memperkenalkan sedikit kita sendiri pseudocode di sini, aku akan mengusulkan 508 00:25:11,980 --> 00:25:14,550 bahwa kita dapat mencapai garis seperti ini. 509 00:25:14,550 --> 00:25:17,280 Kami tidak akan menghitung orang satu, dua, tiga, empat. 510 00:25:17,280 --> 00:25:19,470 Kami tidak akan pergi dua, empat, enam, delapan. 511 00:25:19,470 --> 00:25:23,390 Kami akan melakukan yang lebih baik fundamental dengan mengkaji ulang masalah, dan dalam hal ini 512 00:25:23,390 --> 00:25:27,080 kasus, memanfaatkan sebaliknya kurang dimanfaatkan sumber daya. 513 00:25:27,080 --> 00:25:31,460 >> Dalam sesaat, saya harap Anda akan memaafkan dan humor kami dengan berdiri di 514 00:25:31,460 --> 00:25:34,470 tempat, di mana titik kita akan meminta Anda masing-masing untuk mengambil di Anda 515 00:25:34,470 --> 00:25:36,400 pikiran nomor 1. 516 00:25:36,400 --> 00:25:39,560 Anda kemudian akan semakin canggung, dengan berjalannya waktu, cari 517 00:25:39,560 --> 00:25:42,740 orang lain yang berdiri, menggabungkan nomor Anda bersama-sama 518 00:25:42,740 --> 00:25:43,720 dengan menambahkan mereka. 519 00:25:43,720 --> 00:25:47,490 Salah satu dari kalian kemudian akan berlomba untuk duduk pertama turun, dan orang lain 520 00:25:47,490 --> 00:25:48,880 akan mengulangi. 521 00:25:48,880 --> 00:25:53,090 >> Jadi dengan kata lain, dengan pembenihan semua Anda dengan nomor 1, dan kemudian 522 00:25:53,090 --> 00:25:57,800 menggabungkan mereka ke dalam 1s 2s dan mereka 2s ke 4s, dengan semua orang semakin 523 00:25:57,800 --> 00:26:02,740 duduk, kita harus, di akhir algoritma ini, hanya memiliki satu pinjaman 524 00:26:02,740 --> 00:26:07,570 jiwa yang tidak duduk cukup cepat tetapi yang memiliki seluruh jumlah penonton 525 00:26:07,570 --> 00:26:09,180 dalam pikirannya. 526 00:26:09,180 --> 00:26:13,730 >> Jadi, jika Anda akan, mari kita pergi ke depan dan - langkah satu - berdiri di tempat. 527 00:26:13,730 --> 00:26:15,600 Dan mengeksekusi. 528 00:26:15,600 --> 00:26:36,580 >> [Banyak membisikkan] 529 00:26:36,580 --> 00:26:38,820 >> DAVID Malan: Apakah Anda tahu mana Lauren? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Banyak membisikkan] 532 00:27:23,350 --> 00:27:24,340 >> DAVID Malan: Baiklah? 533 00:27:24,340 --> 00:27:39,110 >> [Banyak membisikkan] 534 00:27:39,110 --> 00:27:41,365 >> DAVID Malan: Baiklah, kita harus akan mendekati akhir. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Kami melihat satu rekan berdiri di sini masih. 537 00:27:47,670 --> 00:27:48,770 Siapa lagi yang perlu dipasangkan? 538 00:27:48,770 --> 00:27:50,020 Jika kalian ingin berpasangan. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Seseorang di bagian atas. 541 00:27:56,520 --> 00:27:58,150 Mengapa saya tidak meminjamkan tangan di sini. 542 00:27:58,150 --> 00:28:01,370 Untuk sangat sedikit orang yang masih berdiri, apa nomor yang Anda 543 00:28:01,370 --> 00:28:02,790 ada dalam pikiran Anda? 544 00:28:02,790 --> 00:28:04,020 >> SISWA: 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 sini? 547 00:28:07,840 --> 00:28:08,370 >> SISWA: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID Malan: Ditambah 39. 549 00:28:09,590 --> 00:28:12,310 Ditambah siapa lagi yang 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 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 >> SISWA: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID Malan: 49, ditambah? 557 00:28:21,812 --> 00:28:22,950 >> SISWA: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID Malan: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Apakah itu orang lain? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Good job. 562 00:28:30,460 --> 00:28:33,610 >> [Tertawa] 563 00:28:33,610 --> 00:28:34,690 >> DAVID Malan: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Good job! 566 00:28:36,220 --> 00:28:38,660 >> [Tertawa] 567 00:28:38,660 --> 00:28:42,570 >> [Tepuk Tangan] 568 00:28:42,570 --> 00:28:43,820 >> DAVID Malan: Orang lain 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 >> SISWA: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID Malan: 99. 573 00:28:49,810 --> 00:28:52,620 Orang lain masih berdiri? 574 00:28:52,620 --> 00:28:57,290 Dan jumlah siswa di sini sebenarnya, menurut - 575 00:28:57,290 --> 00:28:59,400 Anda punya nomor? 576 00:28:59,400 --> 00:29:03,170 Oh, jumlah sebenarnya orang di kamar, menurut account yang 577 00:29:03,170 --> 00:29:07,660 rekan-rekan mengajar lakukan di jalan semua orang di, 729. 578 00:29:07,660 --> 00:29:11,070 Begitu keluar dari sebuah ruangan penuh mahasiswa Harvard yang dihitung sendiri, 579 00:29:11,070 --> 00:29:14,126 Jawabannya adalah 637. 580 00:29:14,126 --> 00:29:15,480 >> [Tertawa] 581 00:29:15,480 --> 00:29:16,350 >> DAVID Malan: Begitu dekat. 582 00:29:16,350 --> 00:29:17,360 Tapi tetap. 583 00:29:17,360 --> 00:29:22,110 OK, jadi itu suatu ajaran saat, kan? 584 00:29:22,110 --> 00:29:24,120 Ini sekarang adalah apa yang kita gambarkan sebagai bug. 585 00:29:24,120 --> 00:29:28,120 Di suatu tempat di sepanjang jalan, kami melakukan beberapa aritmatika yang salah, atau seseorang duduk, 586 00:29:28,120 --> 00:29:29,930 atau kiri, atau sesuatu yang tidak beres. 587 00:29:29,930 --> 00:29:30,930 Tapi itu baik-baik saja. 588 00:29:30,930 --> 00:29:33,390 Karena bahkan masih, kami mendapat cukup dekat. 589 00:29:33,390 --> 00:29:37,480 Dan aku berpendapat bahwa kita harus salah menjawab jauh lebih cepat dari saya akan 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 asumsikan kita sebenarnya mendapatkan bahwa benar, tapi pikirkan sekarang tentang apa yang 592 00:29:42,630 --> 00:29:46,870 yang terjadi setiap kali, dibandingkan saya sendiri naif menunjuk algoritma. 593 00:29:46,870 --> 00:29:48,420 Satu, dua, tiga. 594 00:29:48,420 --> 00:29:53,010 Jika memang ada 729 atau 637 orang di sini, yang akan membawaku 595 00:29:53,010 --> 00:29:57,720 harfiah 637 atau 729 pointings dari jari dan 596 00:29:57,720 --> 00:29:59,490 incrementing jumlah total saya. 597 00:29:59,490 --> 00:30:01,910 Dan aku bisa melakukan sedikit lebih baik dengan akan dua, empat, enam, delapan, dan 598 00:30:01,910 --> 00:30:05,660 dua kali lipat kecepatan itu, bahkan mungkin tiga atau quadruple, tergantung seberapa baik aku bisa 599 00:30:05,660 --> 00:30:07,110 melakukan itu menghitung dalam kepala saya. 600 00:30:07,110 --> 00:30:10,720 >> Tetapi pendekatan ini bahwa kalian mengambil secara fundamental berbeda. 601 00:30:10,720 --> 00:30:12,770 Karena pada awalnya, kalian 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 secara harfiah setengah Anda duduk. 604 00:30:17,370 --> 00:30:19,720 Dan setelah itu, yang lain setengah dari Anda duduk. 605 00:30:19,720 --> 00:30:22,650 Dan setelah itu, yang lain setengah dari Anda duduk. 606 00:30:22,650 --> 00:30:27,470 >> Dan jumlah waktu yang Anda orang bisa duduk kira-kira 607 00:30:27,470 --> 00:30:31,740 delapan atau sembilan atau sepuluh kali jumlah, tergantung pada apa jumlah total kita. 608 00:30:31,740 --> 00:30:33,300 Dan kita bisa melakukan semacam ini cara lain. 609 00:30:33,300 --> 00:30:37,740 Jika kita memiliki 1.024 orang di ruangan, jumlah kali Anda bisa 610 00:30:37,740 --> 00:30:41,870 membagi 1.024 orang adalah 10. 611 00:30:41,870 --> 00:30:43,370 >> Sekarang pikirkan tentang hal itu dalam arah lain. 612 00:30:43,370 --> 00:30:49,170 Misalkan, ridiculously, yang kita miliki, katakanlah empat miliar orang di ruangan ini, 613 00:30:49,170 --> 00:30:50,860 atau ruang yang lebih besar. 614 00:30:50,860 --> 00:30:54,550 Berapa kali kita harus pergi melalui algoritma ini, seperti setengah 615 00:30:54,550 --> 00:30:58,110 kelas yang duduk? 616 00:30:58,110 --> 00:31:03,050 Ini hanya akan mengambil 32 seperti operasi, bahkan dalam kelas ukuran 617 00:31:03,050 --> 00:31:03,770 empat miliar. 618 00:31:03,770 --> 00:31:04,055 Kenapa? 619 00:31:04,055 --> 00:31:06,980 Karena empat miliar pergi ke dua miliar, pergi ke satu juta, pergi ke 620 00:31:06,980 --> 00:31:09,925 500 juta, pergi ke 250 juta, titik, titik, titik. 621 00:31:09,925 --> 00:31:14,940 Saya hanya bisa melakukan pembagian bahwa beberapa 32 kali, di mana titik, semua orang kecuali 622 00:31:14,940 --> 00:31:17,820 satu orang akan dibiarkan berdiri. 623 00:31:17,820 --> 00:31:21,590 >> Dan itu juga, adalah semacam kuat gagasan bahwa semakin kita akan mencoba untuk 624 00:31:21,590 --> 00:31:24,690 leverage dalam kursus ini, dan dalam pemrograman dan ilmu komputer lebih 625 00:31:24,690 --> 00:31:29,400 umumnya, ini kuman dari sebuah ide dengan yang kemudian kita bisa memecahkan masalah banyak, 626 00:31:29,400 --> 00:31:31,130 jauh lebih kuat. 627 00:31:31,130 --> 00:31:34,610 Jadi kami mulai cukup sederhana dengan pseudocode dan seorang pria dalam sebuah ruangan, tetapi 628 00:31:34,610 --> 00:31:38,205 sekarang dengan seluruh ruangan penuh orang telah kita lakukan secara fundamental lebih baik. 629 00:31:38,205 --> 00:31:41,460 >> Nah, mari kita transisi dari pseudo untuk beberapa kode yang sebenarnya. 630 00:31:41,460 --> 00:31:44,200 Bahasa ini Anda akan melihat terjadi untuk disebut JavaScript, dan 631 00:31:44,200 --> 00:31:46,190 kita akan kembali ke arah ini akhir semester. 632 00:31:46,190 --> 00:31:49,960 Ini adalah bahasa pemrograman yang Anda gunakan untuk membuat website dan lain seperti 633 00:31:49,960 --> 00:31:51,360 perangkat lunak hari ini. 634 00:31:51,360 --> 00:31:54,890 Dan kami telah menggunakannya, berkat teman dari kami di Stanford, untuk mengkodekan 635 00:31:54,890 --> 00:31:56,630 beberapa informasi tersembunyi di sini. 636 00:31:56,630 --> 00:31:59,500 Ini adalah seni steganografi, sehingga untuk berbicara, di mana Anda dapat menyembunyikan 637 00:31:59,500 --> 00:32:03,990 informasi apa yang sebaliknya tampaknya ada kebisingan atau sama sekali berbeda 638 00:32:03,990 --> 00:32:05,220 gambar sama sekali. 639 00:32:05,220 --> 00:32:10,120 Tapi tertanam dalam gambar ini khususnya memang pesan rahasia macam. 640 00:32:10,120 --> 00:32:12,950 >> Jadi biarkan aku pergi ke depan dan menarik gambar yang sama di sini, ini 641 00:32:12,950 --> 00:32:14,270 waktu dalam browser web. 642 00:32:14,270 --> 00:32:17,710 Dan aku akan melambaikan tangan saya di beberapa rincian untuk saat ini, terutama 643 00:32:17,710 --> 00:32:21,780 bagi anda yang ini tampak seperti tidak hanya JavaScript tetapi Yunani, sebagai 644 00:32:21,780 --> 00:32:23,930 benar bahasa asing. 645 00:32:23,930 --> 00:32:26,190 Tapi ini adalah contoh bahasa pemrograman. 646 00:32:26,190 --> 00:32:30,660 >> Dan untuk saat ini, mengambil keyakinan bahwa ini baris pertama dari kode - 647 00:32:30,660 --> 00:32:32,470 dan menurut kode, saya hanya berarti teks. 648 00:32:32,470 --> 00:32:35,660 Teks yang saya bisa benar-benar mengetik ke Microsoft Word, jika aku punya 649 00:32:35,660 --> 00:32:37,630 perangkat lunak yang tepat untuk kemudian melakukan sesuatu dengan itu. 650 00:32:37,630 --> 00:32:42,120 Kode sumber pemrograman, pemrograman kode, benar-benar hanya teks, dan 651 00:32:42,120 --> 00:32:45,420 terlihat berbeda berdasarkan bahasa apa Anda menggunakan, tidak seperti bahasa Inggris dan 652 00:32:45,420 --> 00:32:49,200 Spanyol dan Rusia semua terlihat berbeda saat Anda mengetikkannya di keyboard Anda. 653 00:32:49,200 --> 00:32:53,520 >> Jadi baris pertama ini, untuk saat mengambil iman, hanya membuka grafik dari 654 00:32:53,520 --> 00:32:56,160 internet, yang bising grafis kita hanya melihat. 655 00:32:56,160 --> 00:32:59,900 Baris ini berikutnya di sini adalah contoh dari lingkaran, dan kita benar-benar melihat bahwa sama 656 00:32:59,900 --> 00:33:01,130 jargon dalam video TED. 657 00:33:01,130 --> 00:33:03,750 Sebuah lingkaran adalah sesuatu yang terjadi lagi dan lagi, dan meskipun ini 658 00:33:03,750 --> 00:33:08,440 benar-benar terlihat samar, dengan kata kunci untuk, dan beberapa tanda kurung, dan 659 00:33:08,440 --> 00:33:09,510 beberapa titik koma. 660 00:33:09,510 --> 00:33:13,070 Kami akan datang kembali ke sebelum lama, tetapi loop yang ada pada dasarnya adalah 661 00:33:13,070 --> 00:33:17,310 mengatakan program, iterate atas semua dari titik-titik berisik, 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 >> Karena pada akhir hari, gambar seperti ini - dan Anda dapat benar-benar 664 00:33:21,260 --> 00:33:22,860 jenis melihatnya pada proyektor ini - 665 00:33:22,860 --> 00:33:25,280 benar-benar hanya grid titik. 666 00:33:25,280 --> 00:33:29,730 Jadi kita dapat mengidentifikasi masing-masing titik oleh koordinat, x, y, dan dengan ini 667 00:33:29,730 --> 00:33:33,890 Program, sekarang dapat kita mulai melakukan sesuatu untuk titik-titik. 668 00:33:33,890 --> 00:33:37,540 >> Jadi apa yang saya akan pergi ke depan di sini dan lakukan adalah saya akan membuat beberapa perubahan. 669 00:33:37,540 --> 00:33:41,000 Pertama aku akan pergi ke depan dan menyingkirkan dari semua itu kehijauan dan kebiruan 670 00:33:41,000 --> 00:33:43,520 kebisingan, dan aku akan pergi ke depan dan ketik berikut 671 00:33:43,520 --> 00:33:45,710 diakui samar sintaks. 672 00:33:45,710 --> 00:33:48,020 im untuk gambar. 673 00:33:48,020 --> 00:33:53,380 mengatur biru di lokasi x, koma, lokasi y, untuk 0. 674 00:33:53,380 --> 00:33:55,610 Dengan kata lain, saya ingin hanya matikan semua dari biru 675 00:33:55,610 --> 00:33:56,920 titik di foto itu. 676 00:33:56,920 --> 00:33:59,800 >> Aku akan pergi ke depan sekarang lalu klik Run ini / tombol Simpan, dan Anda akan 677 00:33:59,800 --> 00:34:02,850 perhatikan di sisi kanan, gambar yang dihasilkan muncul. 678 00:34:02,850 --> 00:34:06,120 Sekarang hijau super, tapi itu tidak mengejutkan, karena saya benar-benar berubah 679 00:34:06,120 --> 00:34:11,070 off, dengan membuat 1 0, semua biru di foto itu. 680 00:34:11,070 --> 00:34:12,540 >> Nah, sekarang mari kita lakukan sedikit lebih. 681 00:34:12,540 --> 00:34:16,989 im untuk gambar, dot setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 Dan itu hanya berarti iterate dari kiri ke kanan dan kemudian atas ke bawah. 683 00:34:20,659 --> 00:34:23,520 Menghidupkan yang mati 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 proyektor, Anda tidak bisa benar-benar benar-benar melihat apa-apa sama sekali. 686 00:34:28,100 --> 00:34:31,380 >> Pada layar laptop saya, jika saya mengintip hanya dengan cara yang benar, aku bisa melihat sedikit 687 00:34:31,380 --> 00:34:33,300 gambar, karena 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 itu mengacu pada komposisi ini dari suatu gambar dengan menggunakan 691 00:34:39,110 --> 00:34:40,230 hanya tiga warna. 692 00:34:40,230 --> 00:34:43,159 Dan sekarang, kami telah dibuang semua hijau, biru semua, tapi 693 00:34:43,159 --> 00:34:44,500 tidak ada banyak merah. 694 00:34:44,500 --> 00:34:45,920 >> Jadi biarkan aku mendongkrak merah. 695 00:34:45,920 --> 00:34:47,070 Bagaimana saya bisa melakukannya? 696 00:34:47,070 --> 00:34:49,300 Yah, pertama, aku akan meminta Program daftarnya. 697 00:34:49,300 --> 00:34:52,030 Aku akan pergi ke depan dan sebut saja variabel, seperti dalam aljabar. 698 00:34:52,030 --> 00:34:54,060 Anda dapat memiliki x atau y atau z. 699 00:34:54,060 --> 00:34:57,230 Aku akan mendeklarasikan variabel dan berkata, dimasukkan ke dalam variabel ini, 700 00:34:57,230 --> 00:35:02,790 sementara, nilai dari gambar getRed nilai pada x, y. 701 00:35:02,790 --> 00:35:05,870 >> Dan lagi, kami akan kembali ke semua detail ini di masa depan. 702 00:35:05,870 --> 00:35:10,630 Tapi untuk saat ini, hanya mengambil pada iman bahwa baris ini meminta program, apa 703 00:35:10,630 --> 00:35:12,740 adalah nilai merah pada x, y? 704 00:35:12,740 --> 00:35:14,450 Pada saat itu titik tertentu? 705 00:35:14,450 --> 00:35:15,710 >> Lalu aku akan melakukan sesuatu untuk itu. 706 00:35:15,710 --> 00:35:21,100 Lalu aku akan melakukan gambar dot set red pada x, y, y tapi kali ini aku akan 707 00:35:21,100 --> 00:35:24,760 meningkatkan dengan melakukan kali merah, katakanlah, 10. 708 00:35:24,760 --> 00:35:26,870 Jadi meningkatkan dengan faktor 10. 709 00:35:26,870 --> 00:35:29,880 Mari saya zoom out sekarang dan klik bisa Jalankan / Simpan. 710 00:35:29,880 --> 00:35:36,430 Dan voila, yang ada di sana seluruh waktu, meskipun mata manusia 711 00:35:36,430 --> 00:35:37,900 tak bisa melihatnya. 712 00:35:37,900 --> 00:35:41,470 >> Jadi sekali lagi, ini sekarang adalah kode nyata, sebuah contoh bahasa yang kita akan datang 713 00:35:41,470 --> 00:35:42,770 kembali ke sebelum lama. 714 00:35:42,770 --> 00:35:46,670 Tapi menyadari, terutama bagi Anda tanpa pengalaman seperti itu, itu cukup 715 00:35:46,670 --> 00:35:50,280 segera bahwa kita sendiri akan menulis kode seperti itu ada. 716 00:35:50,280 --> 00:35:54,520 Bahkan, alat dengan mana Anda semua agak akrab, mungkin, adalah CS50 ini 717 00:35:54,520 --> 00:35:57,330 sendiri alat kursus-belanja, yang sebenarnya reboot musim panas ini oleh beberapa 718 00:35:57,330 --> 00:36:01,070 mantan mahasiswa CS50 sendiri, kini giliran TF. 719 00:36:01,070 --> 00:36:04,740 >> Jadi ini terjadi untuk menjadi sebuah website yang dibangun dalam bahasa yang disebut PHP. 720 00:36:04,740 --> 00:36:08,510 Ini menggunakan database yang disebut MySQL, hal dengan yang kita akan mendapatkan tangan kami 721 00:36:08,510 --> 00:36:10,190 kotor kemudian dalam semester. 722 00:36:10,190 --> 00:36:14,140 Tapi percaya atau tidak, bahkan sesuatu seperti ini pada akhirnya mengurangi ke 723 00:36:14,140 --> 00:36:19,480 sederhana dan kondisi loop dan cabang, seperti yang kita lihat hanya 724 00:36:19,480 --> 00:36:21,530 saat yang lalu dalam video TED. 725 00:36:21,530 --> 00:36:25,180 >> Apa yang saya pikir saya akan lakukan sekarang adalah berbagi tidak hanya sesuatu yang kita staf telah membuat 726 00:36:25,180 --> 00:36:28,010 untuk kampus, melainkan sesuatu mantan mahasiswa - tiga 727 00:36:28,010 --> 00:36:29,080 siswa, pada kenyataannya - 728 00:36:29,080 --> 00:36:33,950 membuat ini tahun lalu, Sierra, Daniel, dan Sam, yang terakhir di antaranya tidak memiliki sebelum 729 00:36:33,950 --> 00:36:36,370 Pengalaman programing ketika ia mengambil CS50. 730 00:36:36,370 --> 00:36:39,950 Dan untuk proyek akhir mereka, mereka dipamerkan, di CS50 Adil, sebuah 731 00:36:39,950 --> 00:36:43,720 aplikasi bernama wrdly, yang merupakan program berbasis web yang mereka buat 732 00:36:43,720 --> 00:36:47,670 video ini yang saya pikir saya akan berbagi dengan memberikan rasa apa yang 733 00:36:47,670 --> 00:36:49,280 mungkin pada akhir istilah itu. 734 00:36:49,280 --> 00:37:57,170 >> [MUSIC PLAYING] 735 00:37:57,170 --> 00:38:00,570 >> DAVID Malan: Itu dari Nol Minggu Week 12 tahun terakhir ini. 736 00:38:00,570 --> 00:38:05,470 >> [Tepuk Tangan] 737 00:38:05,470 --> 00:38:09,520 >> DAVID Malan: Sebagai teaser, juga, benar-benar untuk merangsang selera Anda adalah apa yang 738 00:38:09,520 --> 00:38:14,580 mungkin, Anda mungkin telah melihat sudah, atau akan segera melihat, market.cs50.net, sebuah 739 00:38:14,580 --> 00:38:17,710 alat baru bahwa tim tentu memiliki telah bekerja pada, kali ini di 740 00:38:17,710 --> 00:38:21,530 bekerjasama dengan Harvard Mahasiswa Agen, sehingga mulai tahun ini 741 00:38:21,530 --> 00:38:24,980 dan mudah-mudahan terus ke ini datang musim panas Anda akan memiliki standar 742 00:38:24,980 --> 00:38:27,890 kesempatan di kampus untuk membeli dan menjual sesuatu yang menarik bagi Anda. 743 00:38:27,890 --> 00:38:32,220 Dan dengan kemitraan melalui HSA, Anda akan juga bisa drop item off 744 00:38:32,220 --> 00:38:35,950 di salah satu toko fisik HSA ini di beberapa titik di masa depan, sehingga 745 00:38:35,950 --> 00:38:39,150 hal proxy, terutama karena Anda lulus dan tidak selalu ingin 746 00:38:39,150 --> 00:38:44,110 membuang hal, tapi benar-benar membayar meneruskan kepada orang-orang yang mungkin mengikuti Anda 747 00:38:44,110 --> 00:38:45,270 di kampus. 748 00:38:45,270 --> 00:38:46,740 Jadi lebih pada datang. 749 00:38:46,740 --> 00:38:49,830 >> Tapi sedikit lebih konkret, alat yang keluar dari CS50 di akhir 750 00:38:49,830 --> 00:38:52,760 tahun, dengan mana sebagian dari Anda mungkin akrab dan orang lain Anda mungkin 751 00:38:52,760 --> 00:38:57,940 googling sekarang, CS50.net/2x, Anda akan menemukan link ke sebuah ekstensi Chrome 752 00:38:57,940 --> 00:39:01,250 yang demonstratif tentang bagaimana Anda bisa menggunakan JavaScript, bahwa bahasa yang sama kita 753 00:39:01,250 --> 00:39:06,660 digunakan dengan menara Eiffel saat yang lalu, untuk menerapkan kecepatan pemutaran 2x 754 00:39:06,660 --> 00:39:09,000 untuk semua Harvard video iSites. 755 00:39:09,000 --> 00:39:11,880 Ini adalah sesuatu yang dibangun ke CS50 itu pemutar video sendiri. 756 00:39:11,880 --> 00:39:14,870 Tapi ini, juga, jika Anda mulai menggali ke kode sumber, yang kita akan 757 00:39:14,870 --> 00:39:18,840 dengan senang hati membuat tersedia, Anda akan melihat bagaimana Anda bahkan dapat memecahkan masalah seperti itu, 758 00:39:18,840 --> 00:39:23,180 mempercepat widget di website dengan yang Anda sudah baik akrab. 759 00:39:23,180 --> 00:39:26,630 >> Jadi kata sekarang di lapangan dan harapan dan apa yang ada di depan. 760 00:39:26,630 --> 00:39:29,445 Secara umum, kami memang akan berkumpul di sini pada hari Senin dan Rabu - meskipun 761 00:39:29,445 --> 00:39:31,490 Jumat ini, kita akan berkumpul karena Belanja Minggu - 762 00:39:31,490 --> 00:39:34,640 1:00-2:00, meskipun kadang-kadang sampai 2:30. 763 00:39:34,640 --> 00:39:38,700 Mengingat bahwa Anda mungkin karena ingin atau harus mengambil beberapa kelas di 02:00 764 00:39:38,700 --> 00:39:42,480 seterusnya, atau bahkan sebelumnya, jangan menyadari tentu saja mendukung apa yang disebut 765 00:39:42,480 --> 00:39:45,900 pendaftaran simultan, dimana kita akan mendukung petisi kepada Dewan Iklan dan 766 00:39:45,900 --> 00:39:49,400 penduduk Anda dekan atas nama Anda jika Anda memiliki konflik di suatu tempat di 767 00:39:49,400 --> 00:39:50,790 1:00-2:30 jangkauan. 768 00:39:50,790 --> 00:39:54,110 Kepala ke URL online untuk rincian tambahan. 769 00:39:54,110 --> 00:39:57,750 >> Namun dalam hal struktur penyangga yang mencirikan CS50, bagi siswa 770 00:39:57,750 --> 00:40:01,750 lebih dan kurang nyaman sama, kita menawarkan trek yang berbeda bagian. 771 00:40:01,750 --> 00:40:04,730 Dan ini adalah beberapa minggu off, tapi tak lama, Anda akan diminta untuk 772 00:40:04,730 --> 00:40:05,770 tingkat kenyamanan Anda. 773 00:40:05,770 --> 00:40:08,590 Apakah Anda termasuk orang yang kurang nyaman, lebih nyaman, atau 774 00:40:08,590 --> 00:40:10,520 suatu tempat di antara? 775 00:40:10,520 --> 00:40:13,150 >> Dan kita akan memiliki tiga berbeda trek yang melayani 776 00:40:13,150 --> 00:40:14,470 justru mereka penonton. 777 00:40:14,470 --> 00:40:17,900 Jadi tanpa titik dalam istilah harus Anda bahkan merasa seperti Anda bersaing 778 00:40:17,900 --> 00:40:21,390 terhadap setiap siswa dengan lebih atau latar belakang kurang dari Anda. 779 00:40:21,390 --> 00:40:24,160 Memang, tentu saja ini dimaksudkan untuk menjadi jauh lebih kolaboratif dan banyak 780 00:40:24,160 --> 00:40:25,650 lebih terbuka dari itu. 781 00:40:25,650 --> 00:40:29,030 >> Dalam hal set masalah, Anda akan menemukan, juga, bahwa di samping 782 00:40:29,030 --> 00:40:32,130 edisi standar masalah setiap minggu ditetapkan, sering ada "hacker 783 00:40:32,130 --> 00:40:37,010 edisi "yang dimaksudkan untuk ditargetkan pada 5% sampai 10% atau lebih dari 784 00:40:37,010 --> 00:40:40,270 demografis siapa di antara mereka memang lebih nyaman dan ingin lebih 785 00:40:40,270 --> 00:40:43,960 dari tantangan daripada standar edisi pset yang mengharapkan. 786 00:40:43,960 --> 00:40:46,390 Rincian lebih lanjut tentang orang-orang untuk menjadi ditemukan dalam silabus. 787 00:40:46,390 --> 00:40:49,430 >> Tapi juga dalam ada dapat menemukan rincian pada kursus hari terlambat. 788 00:40:49,430 --> 00:40:51,570 Biasanya masalah set akan jatuh tempo pada hari Kamis. 789 00:40:51,570 --> 00:40:55,550 Namun, Anda dapat memperpanjang banyak Anda tenggat waktu ini jatuh dari Kamis sampai 790 00:40:55,550 --> 00:41:00,010 Jumat hanya dengan pertemuan kita di tengah jalan, sehingga untuk berbicara, menjawab pemanasan beberapa 791 00:41:00,010 --> 00:41:03,370 pertanyaan dalam beberapa masalah minggu set, yang akan secara otomatis 792 00:41:03,370 --> 00:41:05,710 kemudian memberikan Anda tambahan 24 jam. 793 00:41:05,710 --> 00:41:09,120 Kami juga akan turun terendah Anda skor, sesuai silabus. 794 00:41:09,120 --> 00:41:12,170 >> Untuk memberikan rasa apa masalahnya set adalah - karena itu memang 795 00:41:12,170 --> 00:41:15,120 masalah saja dandanan yang akhirnya menentukan hampir setiap 796 00:41:15,120 --> 00:41:18,760 Pengalaman siswa, lebih dari kuliah, lebih daripada bagian, lebih 797 00:41:18,760 --> 00:41:21,230 daripada kebanyakan lainnya aspek saja. 798 00:41:21,230 --> 00:41:25,140 Tahun lalu, misalnya, kami mulai, seperti kami akan mulai tahun ini, dengan Scratch. 799 00:41:25,140 --> 00:41:29,150 Terutama hari Jumat ini, kita akan menggunakan, untuk waktu hanya satu hari, sebuah grafis 800 00:41:29,150 --> 00:41:32,260 bahasa pemrograman, dengan mana kita akan memulai pemrograman dengan menyeret dan 801 00:41:32,260 --> 00:41:37,580 menjatuhkan potongan puzzle yang hanya merakit secara fisik jika masuk akal 802 00:41:37,580 --> 00:41:38,990 untuk melakukannya secara logis. 803 00:41:38,990 --> 00:41:43,460 >> Minggu depan, kami akan cepat transisi ke C, yang cukup tua tapi sangat kecil dan 804 00:41:43,460 --> 00:41:48,510 bahasa yang sederhana yang akan memungkinkan kita untuk benar-benar pergi dari 0 hingga 60 selama kursus 805 00:41:48,510 --> 00:41:52,290 hanya beberapa minggu, dan kemudian Parlay keterampilan dan pengetahuan yang sama 806 00:41:52,290 --> 00:41:56,160 konstruksi pemrograman dasar menjadi bahasa tingkat 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 lalu, pset ketiga dalam kursus adalah bahwa kriptografi, sebuah 809 00:42:02,560 --> 00:42:06,380 aplikasi domain-spesifik dimana kita siswa ditantang untuk mengimplementasikan 810 00:42:06,380 --> 00:42:11,140 jumlah cipher, program dengan mana untuk berebut atau menguraikan informasi, 811 00:42:11,140 --> 00:42:11,880 untuk mengenkripsi itu. 812 00:42:11,880 --> 00:42:16,300 Untuk edisi hacker, sebaliknya, kami memberikan siswa hacker file 813 00:42:16,300 --> 00:42:19,900 dari komputer Unix standar yang mengandung nama pengguna dan password, 814 00:42:19,900 --> 00:42:22,740 yang terakhir yang dienkripsi, dan kami menantang hacker tersebut 815 00:42:22,740 --> 00:42:26,850 siswa untuk mendekripsi, sebisa mungkin, mereka password, masih itu 816 00:42:26,850 --> 00:42:27,770 domain yang sama. 817 00:42:27,770 --> 00:42:30,580 >> Perebutan, permainan dengan yang beberapa dari Anda mungkin familiar. 818 00:42:30,580 --> 00:42:34,410 Sepotong forensik, di mana kami meminta siswa untuk memulihkan data yang telah 819 00:42:34,410 --> 00:42:38,530 jika tidak dihapus dari digital saya sendiri kartu compact flash kamera, dengan 820 00:42:38,530 --> 00:42:42,740 sebenarnya menulis perangkat lunak untuk mencari tahu, di mana adalah nol dan yang di 821 00:42:42,740 --> 00:42:46,850 bahwa kamera digital yang sebelumnya terdiri grafis JPEG? 822 00:42:46,850 --> 00:42:49,710 >> Sebuah tantangan macam tahun lalu melibatkan menulis tercepat 823 00:42:49,710 --> 00:42:53,160 pemeriksa ejaan mungkin, bersaing terhadap teman-teman dan teman sekelas jika 824 00:42:53,160 --> 00:42:53,860 mereka ingin. 825 00:42:53,860 --> 00:42:56,330 Menerapkan Huff 'n Puff, program kompresi. 826 00:42:56,330 --> 00:43:01,930 Dan kemudian mengakhiri semester dengan CS50 Keuangan, sebuah aplikasi berbasis web dengan 827 00:43:01,930 --> 00:43:06,570 mana Anda membuat sebuah website Etrade seperti untuk membeli dan menjual saham, sehingga untuk 828 00:43:06,570 --> 00:43:09,860 berbicara, dengan benar-benar menarik hampir real-time quotes Yahoo! 829 00:43:09,860 --> 00:43:10,450 Keuangan. 830 00:43:10,450 --> 00:43:13,590 >> Apa yang kita tidak lakukan tahun lalu adalah satu masalah set yang tetap 831 00:43:13,590 --> 00:43:14,810 tetap menjadi favorit. 832 00:43:14,810 --> 00:43:18,400 Jika Anda belum pernah pergi ke shuttle.cs50.net, Anda akan melihat pengguna 833 00:43:18,400 --> 00:43:19,670 antarmuka sedikit seperti ini. 834 00:43:19,670 --> 00:43:23,530 Tapi dua tahun yang lalu, kelas diimplementasikan, menggunakan Google Maps dan 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in dan sedikit dari cerdas dengan mengemudi di sekitar kampus, 836 00:43:28,570 --> 00:43:33,290 sehingga tujuan dari permainan ini adalah, karena Anda dapat melihat beberapa wajah, 837 00:43:33,290 --> 00:43:37,530 adalah untuk berkeliling kampus mencari staf, rekan pengajar dan CA, dan 838 00:43:37,530 --> 00:43:40,080 ketika Anda melakukannya, menempatkan mereka ke shuttle bus Anda. 839 00:43:40,080 --> 00:43:44,035 Tak satu pun dari mereka benar-benar tampaknya berada di sini, jadi kita akan memasukkan kode cheat. 840 00:43:44,035 --> 00:43:47,150 >> [Tertawa] 841 00:43:47,150 --> 00:43:48,430 >> DAVID Malan: Di sana kami pergi. 842 00:43:48,430 --> 00:43:49,240 Baik. 843 00:43:49,240 --> 00:43:51,750 Dan di sini sekarang adalah staf dicampur seluruh kampus. 844 00:43:51,750 --> 00:43:54,530 Dan seperti yang Anda lihat, di kanan sisi layar, shuttle bus 845 00:43:54,530 --> 00:43:55,510 memiliki kursi kosong. 846 00:43:55,510 --> 00:43:59,000 Dan tujuannya adalah untuk menulis kode yang dapat digunakan untuk mensimulasikan ini 847 00:43:59,000 --> 00:44:01,790 mengemudi dan mengambil dan mengantar off penumpang. 848 00:44:01,790 --> 00:44:04,960 Yang satu itu, juga menggunakan bahasa disebut JavaScript. 849 00:44:04,960 --> 00:44:10,030 Jadi menyadari bahwa program-program seperti itu akan berada di lintasan yang sama kami ini 850 00:44:10,030 --> 00:44:10,910 tahun, juga. 851 00:44:10,910 --> 00:44:13,640 >> Dalam istilah sekarang, dukungan tambahan, kami memiliki jam kantor. 852 00:44:13,640 --> 00:44:16,520 Seperti Anda mungkin telah melihat di rumah Anda sendiri ruang makan atau di Annenberg, 853 00:44:16,520 --> 00:44:19,280 kami akan berada di rumah makan ruang empat malam dalam 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 kami pikir kami akan lakukan tahun ini adalah sesuatu yang sedikit berbeda. 856 00:44:26,830 --> 00:44:29,650 >> Jika Anda mendengar kabar burung tahun lalu yang itu agak terlalu stres, hal ini 857 00:44:29,650 --> 00:44:32,800 jam kantor tahun ini, seperti yang kita akan menjelaskan minggu depan, akan lebih organik, 858 00:44:32,800 --> 00:44:36,900 dimana pada saat kedatangan, Anda akan dikirim ke satu meja tertentu 859 00:44:36,900 --> 00:44:39,860 di mana beberapa anggota staf menunggu, dan kami akan melakukan hal-hal yang jauh lebih 860 00:44:39,860 --> 00:44:40,440 organik. 861 00:44:40,440 --> 00:44:43,740 Tidak ada lagi antrian, tidak ada lagi iPad, namun suka memiliki lebih intim 862 00:44:43,740 --> 00:44:47,300 percakapan di sekitar meja hanya delapan atau lebih siswa, sehingga kita 863 00:44:47,300 --> 00:44:50,880 perkiraan nuansa apa yang sebaliknya akan menjadi kelas jauh lebih kecil. 864 00:44:50,880 --> 00:44:54,120 >> Kami menawarkan, juga, hal-hal yang kita disebut walkthrough, video difilmkan di 865 00:44:54,120 --> 00:44:57,330 maju oleh salah satu pengajaran mata kuliah tersebut fellows, Zamyla, di mana dia 866 00:44:57,330 --> 00:45:00,690 menuntun Anda melalui masalah minggu set, menawarkan tips dan trik untuk 867 00:45:00,690 --> 00:45:02,640 tantangan yang terbentang di depan. 868 00:45:02,640 --> 00:45:06,230 Dan sebaliknya, setelah set masalah yang karena, tahun ini, kita akan juga melepaskan 869 00:45:06,230 --> 00:45:09,100 klip kecil sebut pasca-otopsi yang benar-benar berjalan Anda melalui 870 00:45:09,100 --> 00:45:13,630 solusi perwakilan, baik dan buruk, melalui mana Anda dapat menyimpulkan bagaimana 871 00:45:13,630 --> 00:45:17,550 Anda bisa memiliki atau seharusnya diimplementasikan solusi Anda sendiri. 872 00:45:17,550 --> 00:45:20,500 >> Dan apa yang kami akan menawarkan untuk pertama kalinya tahun ini juga, terutama 873 00:45:20,500 --> 00:45:23,420 bagi siswa yang menyediakan sendiri tentu saja yang lain 874 00:45:23,420 --> 00:45:28,580 sumber daya tapi tetap berjuang semua terlalu banyak, tentu saja 875 00:45:28,580 --> 00:45:33,030 sendiri akan memasangkan para siswa, sebagai sumber daya memungkinkan, dengan tutor sehingga 876 00:45:33,030 --> 00:45:35,840 Anda memiliki lebih intim kesempatan daripada ruang makan rumah 877 00:45:35,840 --> 00:45:38,700 memungkinkan untuk bantuan satu-satu. 878 00:45:38,700 --> 00:45:42,780 >> Sekarang sekilas akhir di beberapa dari permainan akhir yang terlihat. 879 00:45:42,780 --> 00:45:44,580 Anda mungkin akrab dengan yang CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Nah, Desember mendatang ini, dari 8:00 PM sampai 7:00 pagi, pada awal 881 00:45:48,120 --> 00:45:51,410 Membaca Periode, akan menjadi kesempatan untuk berkumpul dengan teman sekelas - 882 00:45:51,410 --> 00:45:53,130 ini akan menjadi sekitar 9:00 - 883 00:45:53,130 --> 00:45:56,550 selama Anda menyelam ke akhir Anda pelaksanaan proyek bersama 884 00:45:56,550 --> 00:45:59,910 teman sekelas, teman, dan makanan. 885 00:45:59,910 --> 00:46:03,680 Ini akan menjadi sekitar 01:00, ketika batch pertama dari makanan tiba. 886 00:46:03,680 --> 00:46:08,470 Dan ini adalah sekitar 4:00 bahwa tahun tertentu di CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Tapi klimaks benar tentu saja adalah dimaksudkan untuk Fair CS50, kampus-lebar 888 00:46:12,000 --> 00:46:15,790 pameran proyek akhir Anda sendiri, yang keluarga dan teman-teman semua 889 00:46:15,790 --> 00:46:18,730 diundang, sebagai perekrut dan teman-teman kita dari industri. 890 00:46:18,730 --> 00:46:22,170 Ini, misalnya, adalah sekilas Orang 2.000-plus yang pernah menghadiri 891 00:46:22,170 --> 00:46:23,160 tahun terakhir. 892 00:46:23,160 --> 00:46:27,180 Ekspresi seperti ini tidak biasa, dan sama-sama lakukan Anda 893 00:46:27,180 --> 00:46:29,660 teman sekelas senang dalam hal Anda capai. 894 00:46:29,660 --> 00:46:33,170 >> Dan sebenarnya, untuk mencapai tujuan itu, kami telah acara start-of-panjang, juga. 895 00:46:33,170 --> 00:46:37,400 Jika hal-hal seperti ini menarik bagi Anda, atau Anda setidaknya ingin tahu apa 896 00:46:37,400 --> 00:46:41,590 ini, tahu bahwa tradisi baru Tentu saja disebut CS50 Hari Puzzle. 897 00:46:41,590 --> 00:46:45,710 Dan ini dilembagakan pasangan dari tahun untuk benar-benar kembali sinyal ke kampus 898 00:46:45,710 --> 00:46:48,930 bahwa ilmu komputer bukan tentang pemrograman, dan itu tentu saja tidak 899 00:46:48,930 --> 00:46:51,960 tentang merangkul hanya mereka siswa yang memiliki pengalaman sebelumnya. 900 00:46:51,960 --> 00:46:54,200 Ini benar-benar tentang pemecahan masalah lebih umum. 901 00:46:54,200 --> 00:46:57,360 >> Dan Puzzle Hari, selama beberapa masa lalu tahun sekarang, telah berkembang menjadi bagus 902 00:46:57,360 --> 00:47:00,500 kemitraan dengan teman-teman kita di Facebook, dimana ada akan menjadi luar biasa 903 00:47:00,500 --> 00:47:04,830 hadiah dan pizza di seberang sungai di i-lab ini Sabtu mendatang. 904 00:47:04,830 --> 00:47:09,180 Kepala ke URL bahwa dengan dua atau tiga teman-teman jika Anda ingin mengambil bagian 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 untuk menjaga satu hal dalam pikiran, dan kami punya hanya 907 00:47:14,180 --> 00:47:17,070 dua menit klip yang untuk menutup hari ini. 908 00:47:17,070 --> 00:47:19,640 73% adalah angka yang perlu diingat. 909 00:47:19,640 --> 00:47:23,900 Kue, juga akan menunggu Anda di luar ini transept seperti yang kita menunda hanya dalam 910 00:47:23,900 --> 00:47:26,710 beberapa saat, yang merupakan tradisi tentu saja, juga. 911 00:47:26,710 --> 00:47:29,860 Tapi ini adalah kutipan kunci dari silabus untuk diingat. 912 00:47:29,860 --> 00:47:32,820 Akhirnya yang terpenting dalam kursus ini tidak begitu banyak di mana Anda berakhir 913 00:47:32,820 --> 00:47:36,580 relatif terhadap teman sekelas Anda, tetapi di mana Anda, dalam Minggu 12, akhirnya relatif terhadap 914 00:47:36,580 --> 00:47:37,960 diri dalam Minggu 0. 915 00:47:37,960 --> 00:47:43,670 >> Tapi sekilas bahwa kita akan meninggalkan Anda dengan di sini hari ini adalah yang terakhir ini di sini 916 00:47:43,670 --> 00:47:47,580 oleh Daniel kami sama, yang melakukan Video wrdly beberapa saat yang lalu. 917 00:47:47,580 --> 00:47:50,000 Aku meninggalkan Anda dengan ini sekilas apa yang ada di depan. 918 00:47:50,000 --> 00:47:53,360 Dan seperti yang kita lakukan ini, jika kita bisa memiliki CS50 staf dari depan ruangan 919 00:47:53,360 --> 00:47:57,280 untuk datang ke panggung untuk melukis semua lebih dari 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 canggung. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Kami akan menyimpulkan dengan ini di sini di layar. 924 00:48:05,188 --> 00:48:18,634 >> [MUSIC PLAYING] 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, "'S IT ALRIGHT"] 927 00:50:00,226 --> 00:50:03,245 >> SPEAKER 1: I love CS50 lebih dari kucing. 928 00:50:03,245 --> 00:50:06,030 >> SPEAKER 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Tertawa] 930 00:50:06,990 --> 00:50:08,140 >> DAVID Malan: Ini, kemudian, adalah CS50. 931 00:50:08,140 --> 00:50:10,050 Kita akan melihat Anda pada hari Jumat. 932 00:50:10,050 --> 00:50:13,370 >> [Tepuk Tangan DAN bersorak] 933 00:50:13,370 --> 00:50:17,540 >> Narator: Pada CS50 berikutnya, sebuah panggung demo tidak berjalan seperti yang direncanakan. 934 00:50:17,540 --> 00:50:19,080 >> DAVID Malan: Kami ingin mencari Mike Smith dalam buku telepon ini. 935 00:50:19,080 --> 00:50:20,380 Nah, apa saja naluri Anda? 936 00:50:20,380 --> 00:50:23,750 Aku mungkin melompat kasar ke tengah buku telepon, melirik, melihat bahwa 937 00:50:23,750 --> 00:50:26,830 Aku di M, dan aku tahu sekarang bahwa Mike Smith tidak ke kiri. 938 00:50:26,830 --> 00:50:27,840 Ia harus ke kanan. 939 00:50:27,840 --> 00:50:30,515 Dan pada titik ini, kita harfiah dapat merobek - 940 00:50:30,515 --> 00:50:33,300 pada titik ini, kita benar-benar bisa merobek - 941 00:50:33,300 --> 00:50:36,490 pada titik ini, kita bisa kiasan merobek buku telepon di setengah. 942 00:50:36,490 --> 00:50:38,954 >> [Ukelele memetik]