1 00:00:00,000 --> 00:00:03,440 >> [MUSIC PLAYING] 2 00:00:03,440 --> 00:01:57,217 3 00:01:57,217 --> 00:02:00,710 >> [Tepuk Tangan] 4 00:02:00,710 --> 00:02:05,700 5 00:02:05,700 --> 00:02:09,669 >> DAVID J. Malan: Ini adalah CS50, Pengenalan Universitas Harvard 6 00:02:09,669 --> 00:02:12,370 dengan intelektual perusahaan ilmu komputer 7 00:02:12,370 --> 00:02:14,180 dan seni pemrograman. 8 00:02:14,180 --> 00:02:17,530 Sekarang jika Anda termasuk orang yang setiap tahun duduk di sini 9 00:02:17,530 --> 00:02:21,450 dengan sedikit saraf dalam pikiran Anda, seperti bahwa Anda tidak berpikir Anda berada di sini, 10 00:02:21,450 --> 00:02:24,270 Anda berpikir bahwa sebagian besar orang yang duduk di sekitar Anda 11 00:02:24,270 --> 00:02:27,730 tahu jauh lebih dari yang Anda, memang lebih nyaman daripada Anda di depan komputer 12 00:02:27,730 --> 00:02:30,430 ilmu pengetahuan atau komputer lebih umum, menyadari 13 00:02:30,430 --> 00:02:36,140 bahwa 78% dari siswa yang sekarang mengambil CS50 tidak memiliki pengalaman sebelumnya. 14 00:02:36,140 --> 00:02:39,570 >> Memang, ada 100 titik ada pada tampilan, 78 yang 15 00:02:39,570 --> 00:02:43,540 hijau solid, yang berarti Anda, jika Anda di antara demografis itu, 16 00:02:43,540 --> 00:02:46,420 berada dalam perusahaan yang sangat baik di sini pada keluar. 17 00:02:46,420 --> 00:02:50,320 Dan jika Anda bukan salah satu dari 22% dari mahasiswa yang melakukan CS50 memang 18 00:02:50,320 --> 00:02:53,920 memiliki pengalaman sebelumnya, baik dalam sekolah tinggi atau program lain, 19 00:02:53,920 --> 00:02:56,430 menyadari bahwa Anda, juga, akan ditantang dalam kursus tersebut. 20 00:02:56,430 --> 00:02:59,930 >> Bukan hanya kita memiliki trek yang berbeda bagi siswa kurang nyaman dan lebih 21 00:02:59,930 --> 00:03:03,789 nyaman sama dalam bagian, kita juga disebut edisi hacker 22 00:03:03,789 --> 00:03:06,080 paling masalah set yang akan menantang para pelajar 23 00:03:06,080 --> 00:03:09,650 dengan pengalaman tambahan untuk mengeksplorasi materi yang sama 24 00:03:09,650 --> 00:03:12,140 tapi dari yang lebih perspektif canggih. 25 00:03:12,140 --> 00:03:13,900 >> Tapi apa ilmu komputer? 26 00:03:13,900 --> 00:03:17,750 Nah, pada akhirnya, apa yang akan materi ketika Anda menjelajahi bidang ini tidak 27 00:03:17,750 --> 00:03:20,500 begitu banyak di mana Anda berakhir relatif terhadap teman sekelas Anda, 28 00:03:20,500 --> 00:03:25,350 tetapi di mana Anda sendiri berakhir di minggu 12 vs mana Anda mulai di sini 29 00:03:25,350 --> 00:03:26,720 di minggu nol. 30 00:03:26,720 --> 00:03:31,850 Sekarang komputer science-- baik, mari kita menyebutnya ilmu computation-- 31 00:03:31,850 --> 00:03:35,910 di mana perhitungan benar-benar hanya cara mewah untuk mengatakan, mengambil beberapa masukan, 32 00:03:35,910 --> 00:03:39,460 memproduksi beberapa output, dan melakukannya dengan menjalankan algoritma, 33 00:03:39,460 --> 00:03:43,700 set instruksi untuk memecahkan beberapa masalah pada input tersebut 34 00:03:43,700 --> 00:03:48,460 untuk menghasilkan beberapa output atau solusi di mana Anda tertarik. 35 00:03:48,460 --> 00:03:51,310 >> Jadi kita baru saja kesempatan untuk melakukan perjalanan keluar 36 00:03:51,310 --> 00:03:53,170 ke California untuk bertemu dengan alumni. 37 00:03:53,170 --> 00:03:54,650 Namanya adalah Susan Wojcicki. 38 00:03:54,650 --> 00:03:57,190 Dan dia ingin berbicara Anda di sini pada video 39 00:03:57,190 --> 00:04:01,690 untuk memberi kesaksian betapa berlaku bahkan hanya rasa komputer 40 00:04:01,690 --> 00:04:03,770 ilmu di tingkat dasar dapat. 41 00:04:03,770 --> 00:04:06,870 Bahkan jika Anda tidak pergi untuk mengejar ilmu komputer sebagai sebuah bidang, 42 00:04:06,870 --> 00:04:09,330 atau bahkan rekayasa, atau STEM lebih umum, 43 00:04:09,330 --> 00:04:12,360 Anda akan melihat, pada kenyataannya, bagaimana tertentu Tentu saja sangat mempengaruhi hidupnya. 44 00:04:12,360 --> 00:04:16,630 Dan dia baru saja mengambil ketika dia adalah seorang senior di Harvard College. 45 00:04:16,630 --> 00:04:19,482 >> Jika kita bisa meredupkan lampu untuk Susan. 46 00:04:19,482 --> 00:04:20,690 SUSAN Wojcicki: Hello, world. 47 00:04:20,690 --> 00:04:22,100 Aku Susan Wojcicki. 48 00:04:22,100 --> 00:04:24,110 Aku CEO YouTube. 49 00:04:24,110 --> 00:04:29,150 Dan aku mengambil CS50 ketika saya masih seorang senior di Harvard pada tahun 1990. 50 00:04:29,150 --> 00:04:31,220 Aku benar-benar sejarah dan utama sastra. 51 00:04:31,220 --> 00:04:36,760 >> Dan musim panas junior saya, Saya menyadari bahwa mungkin aku 52 00:04:36,760 --> 00:04:39,060 ingin belajar sesuatu tentang komputer. 53 00:04:39,060 --> 00:04:40,930 Jadi, saya datang kembali. 54 00:04:40,930 --> 00:04:42,500 Aku mengambil CS50. 55 00:04:42,500 --> 00:04:46,940 Sulit, tapi itu kebanyakan kelas menakjubkan saya ambil. 56 00:04:46,940 --> 00:04:49,630 >> Ini mengubah cara saya berpikir tentang segala sesuatu. 57 00:04:49,630 --> 00:04:55,810 Dan ketika saya lulus dari Harvard pada tahun 1990, saya pergi ke Silicon Valley. 58 00:04:55,810 --> 00:04:57,140 Dan aku mendapat pekerjaan. 59 00:04:57,140 --> 00:05:00,150 Dan aku telah bekerja di tech sejak itu. 60 00:05:00,150 --> 00:05:02,650 DAVID J. Malan: Sekarang apa Susan tidak menyebutkan dalam video ini, 61 00:05:02,650 --> 00:05:05,340 bahwa itu benar-benar dalam dirinya Garasi itu Google sendiri 62 00:05:05,340 --> 00:05:07,420 didirikan oleh Larry dan Sergey. 63 00:05:07,420 --> 00:05:11,169 >> Sekarang kami juga mengulurkan tangan untuk teman-teman kita di code.org, sebuah organisasi yang 64 00:05:11,169 --> 00:05:13,460 selama tahun lalu telah membuat orang khususnya 65 00:05:13,460 --> 00:05:16,520 bersemangat tentang ilmu komputer dan pemrograman, khususnya. 66 00:05:16,520 --> 00:05:20,590 Tapi perlu dicatat bahwa pemrograman bukan ilmu komputer per se. 67 00:05:20,590 --> 00:05:22,090 Ilmu komputer tidak pemrograman. 68 00:05:22,090 --> 00:05:24,560 Sebaliknya pemrograman hanya tool-- dengan yang kalian semua 69 00:05:24,560 --> 00:05:27,510 akan terlalu baik familiar dengan end-- semester 70 00:05:27,510 --> 00:05:30,650 seperti yang dapat Anda terapkan tidak hanya untuk program masa depan di CS 71 00:05:30,650 --> 00:05:33,670 tetapi untuk bidang apa pun dari mana Anda datang, di humaniora, 72 00:05:33,670 --> 00:05:36,090 ilmu-ilmu sosial, alam ilmu pengetahuan, atau sejenisnya. 73 00:05:36,090 --> 00:05:39,740 >> Memang, memungkinkan beberapa lainnya alumni dan rekan-rekan mereka 74 00:05:39,740 --> 00:05:43,400 untuk berbicara dengan penerapan yang bidang yang menanti. 75 00:05:43,400 --> 00:05:52,340 76 00:05:52,340 --> 00:05:57,350 >> BILL GATES: Saya 13 ketika saya pertama punya akses ke komputer. 77 00:05:57,350 --> 00:06:00,485 >> JACK DORSEY: Orang tua saya membeli saya Macintosh pada tahun 1984 78 00:06:00,485 --> 00:06:01,640 ketika saya masih berusia delapan tahun. 79 00:06:01,640 --> 00:06:02,990 >> Mark Zuckerberg: aku di kelas enam. 80 00:06:02,990 --> 00:06:04,670 >> SPEAKER 1: Saya belajar kode di perguruan tinggi. 81 00:06:04,670 --> 00:06:09,080 >> RUCHI SANGHVI: tahun Freshman, pertama semester, Pengenalan Ilmu Komputer. 82 00:06:09,080 --> 00:06:11,850 >> BILL GATES: Aku menulis sebuah program yang memainkan tic-tac-toe. 83 00:06:11,850 --> 00:06:14,100 >> DREW HOUSTON: saya pikir itu awal cukup rendah hati. 84 00:06:14,100 --> 00:06:16,370 Saya pikir program pertama Aku menulis bertanya hal-hal seperti, 85 00:06:16,370 --> 00:06:17,820 apa warna favorit Anda? 86 00:06:17,820 --> 00:06:18,696 Atau berapa umurmu? 87 00:06:18,696 --> 00:06:21,070 ELENA SILENOK: Saya pertama kali belajar cara membuat lingkaran hijau 88 00:06:21,070 --> 00:06:23,670 dan kotak merah muncul di layar. 89 00:06:23,670 --> 00:06:25,420 GABE NEWELL: Pertama kali aku benar-benar memiliki 90 00:06:25,420 --> 00:06:27,360 sesuatu yang datang dan berkata, halo, dunia. 91 00:06:27,360 --> 00:06:29,710 Dan aku membuat komputer melakukan hal itu. 92 00:06:29,710 --> 00:06:30,850 Itu hanya menakjubkan. 93 00:06:30,850 --> 00:06:33,224 >> Mark Zuckerberg: Belajar bagaimana program tidak memulai 94 00:06:33,224 --> 00:06:35,450 sebagai ingin belajar semua ilmu komputer 95 00:06:35,450 --> 00:06:38,630 atau mencoba untuk menguasai ini disiplin atau sesuatu seperti itu. 96 00:06:38,630 --> 00:06:41,591 Itu hanya dimulai karena saya ingin melakukan satu hal sederhana ini. 97 00:06:41,591 --> 00:06:44,340 Saya ingin membuat sesuatu yang menyenangkan untuk diri sendiri dan saudara saya. 98 00:06:44,340 --> 00:06:46,399 >> Dan saya menulis program kecil ini. 99 00:06:46,399 --> 00:06:48,440 Dan kemudian pada dasarnya hanya menambahkan sedikit untuk itu. 100 00:06:48,440 --> 00:06:49,930 Dan kemudian ketika saya membutuhkan untuk mempelajari sesuatu yang baru, 101 00:06:49,930 --> 00:06:52,210 Aku mencarinya, baik dalam buku atau di internet, 102 00:06:52,210 --> 00:06:53,240 dan kemudian menambahkan sedikit untuk itu. 103 00:06:53,240 --> 00:06:56,300 >> DREW HOUSTON: Ini benar-benar tidak berbeda memainkan alat musik atau sesuatu 104 00:06:56,300 --> 00:07:00,007 atau bermain olahraga. 105 00:07:00,007 --> 00:07:01,090 DAVID J. Malan: Baiklah. 106 00:07:01,090 --> 00:07:04,120 Jadi mari kita sekarang benar-benar menyelam dalam sedikit lebih dalam. 107 00:07:04,120 --> 00:07:07,430 Apa input dan output ini bahwa kita bicarakan di sini? 108 00:07:07,430 --> 00:07:09,110 >> Jadi bagaimana sesuatu yang sederhana? 109 00:07:09,110 --> 00:07:12,120 Anda mungkin tahu, bahkan jika Anda memiliki tidak ada keakraban dengan ilmu komputer 110 00:07:12,120 --> 00:07:16,570 apapun, bahwa komputer entah bagaimana menggunakan dan memahami hanya nol dan satu. 111 00:07:16,570 --> 00:07:20,500 Tapi bagaimana bisa yang mungkin diberikan bagaimana desktop banyak hari ini dan laptop sama 112 00:07:20,500 --> 00:07:21,280 bisa lakukan? 113 00:07:21,280 --> 00:07:24,310 >> DNA hari, satu-satunya alfabet yang mereka mengerti 114 00:07:24,310 --> 00:07:26,410 adalah nol atau satu. 115 00:07:26,410 --> 00:07:27,470 Nah, pertimbangkan ini. 116 00:07:27,470 --> 00:07:30,840 Kami, manusia, cenderung menggunakan sistem desimal. "Desember" yang berarti 10. 117 00:07:30,840 --> 00:07:33,970 Dan itu 10 karena kita memiliki 10 digit, 0 sampai sembilan. 118 00:07:33,970 --> 00:07:36,180 >> Sekarang komputer, sebaliknya, cenderung menggunakan biner. 119 00:07:36,180 --> 00:07:37,270 "Bi" berarti dua. 120 00:07:37,270 --> 00:07:39,560 Jadi mereka cenderung menggunakan hanya nol dan satu. 121 00:07:39,560 --> 00:07:42,680 Tapi ternyata, bahwa bahkan hanya dengan nol dan satu, yang 122 00:07:42,680 --> 00:07:45,900 adalah alfabet cukup besar yang dapat digunakan untuk mewakili sebagian besar 123 00:07:45,900 --> 00:07:48,490 setiap bagian dari data yang Anda inginkan, apakah itu nomor, 124 00:07:48,490 --> 00:07:52,100 apakah itu surat, apakah itu grafis atau video pada layar. 125 00:07:52,100 --> 00:07:57,140 >> Perhatikan, misalnya, bagaimana kita manusia biasanya menafsirkan nomor ini di sini. 126 00:07:57,140 --> 00:08:00,010 Ini hanya tiga digit, satu, dua, tiga. 127 00:08:00,010 --> 00:08:04,570 Tapi kita tahu nomor ini bawaan sekarang sebagai 123. 128 00:08:04,570 --> 00:08:05,510 Tapi kenapa begitu? 129 00:08:05,510 --> 00:08:07,570 >> Nah, jika Anda berpikir kembali untuk mungkin sekolah dasar, 130 00:08:07,570 --> 00:08:11,700 Anda mungkin diajarkan untuk memikirkan angka-angka ini sebagai dalam kolom, 131 00:08:11,700 --> 00:08:14,700 di mana satu adalah di ratusan tempat, keduanya adalah di tempat puluhan, 132 00:08:14,700 --> 00:08:16,360 dan tiga berada di tempat yang. 133 00:08:16,360 --> 00:08:17,790 Mengapa yang benar-benar berguna? 134 00:08:17,790 --> 00:08:19,665 Nah, berpikir tentang aritmatika super sederhana 135 00:08:19,665 --> 00:08:22,219 bahwa kita semua telah lakukan selama bertahun-tahun sekarang. 136 00:08:22,219 --> 00:08:24,510 Efektif, jika Anda punya satu di tempat ratusan, 137 00:08:24,510 --> 00:08:29,610 Anda melakukan matematika cepat 100 kali 1 ditambah 10 kali 2-- 138 00:08:29,610 --> 00:08:33,059 karena keduanya adalah dalam puluhan place-- ditambah 1 kali 3-- 139 00:08:33,059 --> 00:08:34,830 karena tiga adalah di tempat yang. 140 00:08:34,830 --> 00:08:37,039 Jadi, tentu saja, jika kita sebenarnya kalikan hal ini, 141 00:08:37,039 --> 00:08:39,600 apa yang kita benar-benar mewakili dengan satu pattern-- ini 142 00:08:39,600 --> 00:08:46,150 dua three-- adalah 100 ditambah 20 ditambah 3, yang, tentu saja, adalah 123. 143 00:08:46,150 --> 00:08:51,130 >> Sekarang biner, dan komputer benar-benar, dasarnya berbicara bahasa yang sama 144 00:08:51,130 --> 00:08:51,680 yang kita lakukan. 145 00:08:51,680 --> 00:08:53,400 Mereka hanya memiliki alfabet yang lebih kecil. 146 00:08:53,400 --> 00:08:57,100 Jadi komputer hanya memiliki angka nol dan orang-orang yang mereka miliki. 147 00:08:57,100 --> 00:09:02,500 Jadi sementara kita manusia memiliki dasarnya kekuasaan 10 di setiap places-- ini 148 00:09:02,500 --> 00:09:06,810 10 sampai nol, 10 sampai satu, sepuluh ke dua, memberikan Anda 110 dan 100 149 00:09:06,810 --> 00:09:07,700 masing-masing. 150 00:09:07,700 --> 00:09:12,140 >> Karena komputer hanya memiliki dua nilai mereka dapat memahami, nol dan satu, 151 00:09:12,140 --> 00:09:16,600 mereka harus menggunakan nilai yang berbeda di kolom ini, satu, dua, empat. 152 00:09:16,600 --> 00:09:20,480 Dan jika kita terus, delapan, 16, 32, 64, dan sebagainya. 153 00:09:20,480 --> 00:09:24,220 Tapi pola dan Mentalitas adalah persis sama. 154 00:09:24,220 --> 00:09:27,340 >> Jadi dengan logika ini, siapa pun, bagaimana akan Aku pergi tentang mewakili nomor 155 00:09:27,340 --> 00:09:28,530 satu di biner? 156 00:09:28,530 --> 00:09:33,080 Jika Anda belum pernah bahkan berpikir tentang ini sebelumnya, apa usus Anda katakan? 157 00:09:33,080 --> 00:09:33,777 >> AUDIENCE: Satu. 158 00:09:33,777 --> 00:09:34,610 DAVID J. Malan: Satu. 159 00:09:34,610 --> 00:09:35,660 Tepat. 160 00:09:35,660 --> 00:09:38,100 Kami hanya perlu satu di Tempat yang karena nol 161 00:09:38,100 --> 00:09:40,610 cukup untuk memberi kita tidak empat maupun dua. 162 00:09:40,610 --> 00:09:42,440 Jadi, satu kali satu sama dengan satu. 163 00:09:42,440 --> 00:09:43,940 Sekarang hal-hal mendapatkan sedikit menarik. 164 00:09:43,940 --> 00:09:46,830 Jika saya ingin untuk mewakili dalam biner nomor dua-- tetapi, 165 00:09:46,830 --> 00:09:49,790 lagi, bahkan jika Anda belum pernah bahasa lisan ini sebelumnya, 166 00:09:49,790 --> 00:09:54,680 bagaimana kita mewakili dalam biner nilai kita manusia kenal sebagai dua? 167 00:09:54,680 --> 00:09:55,570 Nol satu nol. 168 00:09:55,570 --> 00:09:57,620 Hanya menempatkan satu di kolom yang Anda inginkan. 169 00:09:57,620 --> 00:09:59,560 >> Sekarang itu semakin cantik mudah mungkin sekarang. 170 00:09:59,560 --> 00:10:02,950 Jadi jika saya ingin mewakili three-- ada kolom ada tiga dunia. 171 00:10:02,950 --> 00:10:06,770 Jadi, sekali lagi, sekarang saya bisa menambahkan nilai-nilai ini bersama-sama dengan menempatkan satu di sini. 172 00:10:06,770 --> 00:10:10,320 Jadi 2 kali 1 ditambah 1 kali 1 adalah, tentu saja, 3. 173 00:10:10,320 --> 00:10:13,480 >> Sekarang hal-hal yang menyenangkan sedikit bahwa yang sekarang menjadi nol. 174 00:10:13,480 --> 00:10:15,480 Dan untuk mewakili empat, saya mendapatkan ini. 175 00:10:15,480 --> 00:10:19,310 Dan jika kita kenaikan perlahan di sini-yang akan menjadi lima. 176 00:10:19,310 --> 00:10:20,700 Ini akan menjadi enam. 177 00:10:20,700 --> 00:10:22,100 Ini akan menjadi tujuh. 178 00:10:22,100 --> 00:10:25,310 >> Tapi sekarang saya tampaknya memiliki mengalami masalah. 179 00:10:25,310 --> 00:10:30,520 Bagaimana saya bisa pergi tentang mewakili eight-- akan menjadi nilai berikutnya. 180 00:10:30,520 --> 00:10:31,900 Ya, jadi kita perlu bit baru. 181 00:10:31,900 --> 00:10:33,899 Dan, memang, jika Anda sudah mendengar kalimat ini sebelumnya, 182 00:10:33,899 --> 00:10:37,380 bit, itu hanya singkatan digit biner, nol atau satu. 183 00:10:37,380 --> 00:10:41,520 >> Dan jadi saya kebetulan mewakili hanya tiga bit tersebut di sini. 184 00:10:41,520 --> 00:10:44,900 Tapi kalau aku punya cara menyimpan tidak tiga bit yang berbeda, tetapi empat, 185 00:10:44,900 --> 00:10:47,250 pasti aku bisa mewakili delapan, dan sembilan, dan kemudian 186 00:10:47,250 --> 00:10:49,400 10, dan bahkan lebih tinggi dan lebih tinggi. 187 00:10:49,400 --> 00:10:52,140 >> Tapi itu kemudian memanggil dipertanyakan bagaimana kita bisa 188 00:10:52,140 --> 00:10:54,540 pergi tentang mewakili ini hal di tempat pertama. 189 00:10:54,540 --> 00:10:56,950 Itu salah satu hal untuk menarik mereka di sini pada slide, 190 00:10:56,950 --> 00:11:00,660 tapi bagaimana Anda mewakili mereka jika Anda alat mekanis? 191 00:11:00,660 --> 00:11:04,390 Apa yang komputer lakukan untuk mewakili input dan output yang 192 00:11:04,390 --> 00:11:09,020 fundamental menentukan perhitungan pada akhir hari? 193 00:11:09,020 --> 00:11:12,090 >> Nah, bagaimana dengan sesuatu super sederhana seperti ini? 194 00:11:12,090 --> 00:11:13,200 Ini hanya sebuah bola lampu. 195 00:11:13,200 --> 00:11:15,460 Dan aku bisa memicu ini bola lampu untuk pergi 196 00:11:15,460 --> 00:11:17,920 dengan memutar beberapa listrik dan memungkinkan elektron 197 00:11:17,920 --> 00:11:22,585 mengalir melalui, yang mengubah nya negara atau nilainya, sehingga untuk berbicara. 198 00:11:22,585 --> 00:11:24,460 Misalnya, ini adalah sebuah lampu meja sekolah tua 199 00:11:24,460 --> 00:11:27,250 di sini dengan satu seperti bola lampu di dalamnya. 200 00:11:27,250 --> 00:11:29,940 Dan sekarang ini tidak benar-benar melakukan sesuatu yang berguna. 201 00:11:29,940 --> 00:11:32,680 Tapi begitu saya pasang ke soket listrik 202 00:11:32,680 --> 00:11:36,390 dan kemudian menggunakan switch-- ini atau kita bahkan dapat menyebutnya transistor 203 00:11:36,390 --> 00:11:39,970 atau menganggapnya sebagai such-- Saya sekarang bisa mewakili baik 204 00:11:39,970 --> 00:11:44,120 nilai ini, di mana bola lampu ini jelas off, atau nilai ini. 205 00:11:44,120 --> 00:11:46,060 Nilai ini atau nilai ini. 206 00:11:46,060 --> 00:11:47,520 Nilai ini dan sebagainya. 207 00:11:47,520 --> 00:11:51,220 >> Jadi dalam komputer, mungkin, adalah potongan-potongan yang lebih kecil dari perangkat keras, 208 00:11:51,220 --> 00:11:52,970 tetapi pada akhir hari hanya memiliki 209 00:11:52,970 --> 00:11:55,360 menggunakan listrik-- mungkin menangkap itu-- 210 00:11:55,360 --> 00:11:59,730 dan kemudian menyimpan sesuatu atau menjaga sesuatu dari. 211 00:11:59,730 --> 00:12:02,021 Tentu saja, hal ini tidak sangat menarik untuk melakukan 212 00:12:02,021 --> 00:12:03,270 hanya dengan bola lampu tunggal. 213 00:12:03,270 --> 00:12:06,726 >> Bahkan, seberapa tinggi saya bisa menghitung di biner dengan meja ini lampu di sini? 214 00:12:06,726 --> 00:12:07,420 >> AUDIENCE: Satu. 215 00:12:07,420 --> 00:12:08,545 >> DAVID J. Malan: Satu, kan? 216 00:12:08,545 --> 00:12:11,020 Aku butuh lampu meja lainnya jika saya benar-benar ingin menghitung lebih tinggi. 217 00:12:11,020 --> 00:12:12,210 Tapi kita bisa melakukan lebih baik dari itu. 218 00:12:12,210 --> 00:12:14,460 Karena lampu yang kami telah dimasukkan ke dalam hal-hal ini 219 00:12:14,460 --> 00:12:17,730 adalah bola lampu benar-benar pelamun dari tadi akan memungkinkan. 220 00:12:17,730 --> 00:12:20,310 Dan mereka benar-benar lampu jaringan. 221 00:12:20,310 --> 00:12:23,160 Dan tandan perusahaan membuat hal-hal ini hari ini. 222 00:12:23,160 --> 00:12:25,190 >> Tapi ternyata bahwa ini khususnya 223 00:12:25,190 --> 00:12:27,680 dilengkapi dengan fitur dimana Anda dapat mengubah warnanya. 224 00:12:27,680 --> 00:12:30,810 Jadi misalnya, jika Anda menghiasi kamar asrama Anda 225 00:12:30,810 --> 00:12:33,200 dengan beberapa cahaya ini lampu, tergantung pada suasana hati Anda, 226 00:12:33,200 --> 00:12:35,366 tergantung pada siapa yang masuk, tergantung pada cuaca, 227 00:12:35,366 --> 00:12:37,360 tergantung pada waktu hari, Anda benar-benar dapat 228 00:12:37,360 --> 00:12:40,300 mengubah warna lampu di kamar Anda. 229 00:12:40,300 --> 00:12:43,740 Dan itu karena cahaya ini umbi dan lain-lain seperti itu memiliki apa yang 230 00:12:43,740 --> 00:12:48,010 disebut API, aplikasi antarmuka pemrograman, yang 231 00:12:48,010 --> 00:12:50,920 adalah topik yang Anda akan baik akrab dengan akhir semester. 232 00:12:50,920 --> 00:12:53,710 >> Dan ini hanya suka, cara samar mengatakan, 233 00:12:53,710 --> 00:12:57,570 Anda dapat memprogram cahaya ini lampu untuk melakukan penawaran Anda. 234 00:12:57,570 --> 00:13:00,360 Anda dapat mengirim pesan seperti Anda, manusia, 235 00:13:00,360 --> 00:13:03,640 dapat mengirim pesan ke server web mengatakan, beri aku berita hari ini 236 00:13:03,640 --> 00:13:05,110 atau memberi saya email saya. 237 00:13:05,110 --> 00:13:08,010 >> Anda dapat mengirim lebih misterius pesan ke ini bola lampu 238 00:13:08,010 --> 00:13:09,700 mengatakan, menghidupkan dan mematikan. 239 00:13:09,700 --> 00:13:11,370 Tapi itu tidak semua yang menarik. 240 00:13:11,370 --> 00:13:14,280 Anda dapat mengatakan, nyalakan merah, menyalakan hijau, nyalakan biru, 241 00:13:14,280 --> 00:13:15,990 semua dengan bola lampu yang sama. 242 00:13:15,990 --> 00:13:20,990 Dan Anda bahkan dapat, dengan sedikit lebih savvy, mengatakan, mengubah diri menjadi biru 243 00:13:20,990 --> 00:13:24,710 ketika itu hari suram luar, misalnya. 244 00:13:24,710 --> 00:13:27,910 Ini sebenarnya bisa menambal ke API cuaca dan mencari tahu 245 00:13:27,910 --> 00:13:32,260 apa cuaca, atau waktu hari, atau pemicu seperti lainnya. 246 00:13:32,260 --> 00:13:35,550 >> Jadi, pada kenyataannya, dua Anggota staf CS50 sendiri, 247 00:13:35,550 --> 00:13:38,827 Dan Bradley dan Ansel Duff di sini, silakan diperoleh 248 00:13:38,827 --> 00:13:40,410 kami sejumlah besar ini bola lampu. 249 00:13:40,410 --> 00:13:42,910 Dan mereka membangun CS50 ini pertama lampu pernah biner, 250 00:13:42,910 --> 00:13:46,850 di mana kami telah diwakili di sini- dengan ini magnets-- sedikit main-main 251 00:13:46,850 --> 00:13:49,780 berbagai penampung kami disinggung hanya sedikit lalu. 252 00:13:49,780 --> 00:13:52,572 >> Jadi cara di sini adalah tempat yang, dua, empat. 253 00:13:52,572 --> 00:13:54,030 Dan kita tidak melihat lebih tinggi dari itu. 254 00:13:54,030 --> 00:13:55,613 Tapi, tentu saja, mereka kekuasaan dua. 255 00:13:55,613 --> 00:13:59,490 Delapan, 16, 32, 64, dan 128. 256 00:13:59,490 --> 00:14:03,320 Jadi jika sekarang saya ingin menjadi sedikit lebih menarik daripada menggunakan saklar ini sekolah tua, 257 00:14:03,320 --> 00:14:07,310 Saya miliki di sini di iPad ini antarmuka super sederhana 258 00:14:07,310 --> 00:14:10,440 Dan bahwa Bradley, mantan siswa dan sekarang mengajar sesama, 259 00:14:10,440 --> 00:14:13,510 diprogram menggunakan beberapa HTML dan JavaScript, yang 260 00:14:13,510 --> 00:14:15,685 adalah markup dan pemrograman bahasa masing-masing. 261 00:14:15,685 --> 00:14:17,560 Dan Anda mungkin dapat see-- bahkan di back-- yang 262 00:14:17,560 --> 00:14:21,670 ada plus besar dan minus besar, ditambah satu tombol untuk masing-masing lampu ini. 263 00:14:21,670 --> 00:14:25,740 Dan apa ini akan memungkinkan saya untuk lakukan adalah, misalnya, klik plus 264 00:14:25,740 --> 00:14:28,250 dan sekarang mewakili, dari Tentu saja, apa nomor? 265 00:14:28,250 --> 00:14:28,750 Satu. 266 00:14:28,750 --> 00:14:30,220 Dan aku bisa memukul lagi. 267 00:14:30,220 --> 00:14:31,480 Dua. 268 00:14:31,480 --> 00:14:32,800 Tiga. 269 00:14:32,800 --> 00:14:33,950 Empat. 270 00:14:33,950 --> 00:14:35,200 Lima. 271 00:14:35,200 --> 00:14:36,360 Enam. 272 00:14:36,360 --> 00:14:36,880 Tujuh. 273 00:14:36,880 --> 00:14:40,740 >> Dan di sini sekarang kita mendapatkan rollover itu, tapi kami memiliki keempat sedikit saat ini, 274 00:14:40,740 --> 00:14:42,180 jadi sekarang kita memiliki delapan. 275 00:14:42,180 --> 00:14:44,000 Jadi kita bisa melakukan ini untuk beberapa waktu. 276 00:14:44,000 --> 00:14:46,530 Bahkan, sebagai samping, seberapa tinggi kita bisa menghitung? 277 00:14:46,530 --> 00:14:48,318 Siapa saja? 278 00:14:48,318 --> 00:14:49,270 >> AUDIENCE: 255. 279 00:14:49,270 --> 00:14:51,420 >> DAVID J. Malan: 255, kan? 280 00:14:51,420 --> 00:14:54,900 Jangan khawatir terlalu banyak tentang matematika untuk sekarang, tapi itu angka yang cukup baik. 281 00:14:54,900 --> 00:14:59,140 Tapi itu benar-benar tidak terikat hanya berapa banyak potongan informasi, 282 00:14:59,140 --> 00:15:01,760 seperti surat, atau grafis bahwa kita bisa mewakili. 283 00:15:01,760 --> 00:15:02,697 >> Tapi tidak peduli untuk saat ini. 284 00:15:02,697 --> 00:15:04,530 Aku akan pergi ke depan dan mengubah mereka semua. 285 00:15:04,530 --> 00:15:09,670 Dan jika aku bisa, aku ingin meminta sukarelawan, volunteer-- pertama kami 286 00:15:09,670 --> 00:15:11,342 oh, hello-- di atas panggung. 287 00:15:11,342 --> 00:15:14,050 Menangkap adalah Anda harus nyaman muncul, karena Anda jelas 288 00:15:14,050 --> 00:15:17,421 berada di depan semua teman sekelas Anda, serta di internet. 289 00:15:17,421 --> 00:15:20,420 Dan biarkan aku melihat sedikit melampaui yang-- bagaimana di sini di kemeja putih? 290 00:15:20,420 --> 00:15:20,920 Dan tangan up. 291 00:15:20,920 --> 00:15:22,071 Ayo up. 292 00:15:22,071 --> 00:15:22,820 Siapa nama Anda? 293 00:15:22,820 --> 00:15:23,760 >> AUDIENCE: Jackie. 294 00:15:23,760 --> 00:15:24,718 >> DAVID J. Malan: Jackie. 295 00:15:24,718 --> 00:15:25,820 Jackie, ayolah up. 296 00:15:25,820 --> 00:15:29,820 Jadi apa ada juga hal ini iPad adalah sebuah tombol yang disebut Game Mode. 297 00:15:29,820 --> 00:15:32,570 Dan Game Mode ini akan memungkinkan saya untuk masukan 298 00:15:32,570 --> 00:15:35,780 di muka desimal tertentu nomor, angka we manusia 299 00:15:35,780 --> 00:15:36,760 akrab dengan. 300 00:15:36,760 --> 00:15:39,820 Dan kemudian Anda akan ditantang di sini untuk menggunakan tombol 301 00:15:39,820 --> 00:15:42,140 di satu top-- untuk masing-masing bulbs-- ini 302 00:15:42,140 --> 00:15:45,050 untuk benar-benar mengetahui pola lampu 303 00:15:45,050 --> 00:15:46,970 yang mewakili jumlah tersebut. 304 00:15:46,970 --> 00:15:47,790 >> Dan aku minta maaf, apa nama Anda lagi? 305 00:15:47,790 --> 00:15:48,250 >> AUDIENCE: Jackie. 306 00:15:48,250 --> 00:15:48,620 >> DAVID J. Malan: Jackie. 307 00:15:48,620 --> 00:15:48,920 Baiklah. 308 00:15:48,920 --> 00:15:49,740 Senang bertemu Anda. 309 00:15:49,740 --> 00:15:54,580 >> Jadi biarkan aku pergi ke depan dan program bagi dunia untuk melihat nomor 15. 310 00:15:54,580 --> 00:15:56,360 Kami akan tetap kecil pada awalnya di sini. 311 00:15:56,360 --> 00:15:58,240 Dan aku akan pergi ke Game Mode. 312 00:15:58,240 --> 00:16:01,160 Dan aku akan menentukan, memberi kita nomor 15. 313 00:16:01,160 --> 00:16:01,900 >> OK. 314 00:16:01,900 --> 00:16:05,510 Dan sekarang dengan semua orang watching-- jika Anda mungkin ingin berdiri dengan cara ini, 315 00:16:05,510 --> 00:16:09,970 karena akan berbaris up-- pergi ke depan dan mengaktifkan delapan tombol di bagian atas 316 00:16:09,970 --> 00:16:12,530 untuk menghidupkan lampu di atau off sesuai keinginan Anda. 317 00:16:12,530 --> 00:16:13,530 >> AUDIENCE: OK. 318 00:16:13,530 --> 00:16:17,720 >> DAVID J. Malan: Dan tidak ada kecurangan dengan menekan ditambah 15 kali. 319 00:16:17,720 --> 00:16:19,275 Oh, kita akan melakukan itu. 320 00:16:19,275 --> 00:16:20,069 >> AUDIENCE: Oh, tunggu. 321 00:16:20,069 --> 00:16:20,610 Aku sangat menyesal. 322 00:16:20,610 --> 00:16:22,660 >> DAVID J. Malan: Anda juga dapat mengaktifkan bola lampu secara individual 323 00:16:22,660 --> 00:16:24,076 dengan masing-masing tombol ini di atas. 324 00:16:24,076 --> 00:16:24,844 AUDIENCE: Oh, OK. 325 00:16:24,844 --> 00:16:27,429 Jadi akan seperti-- 326 00:16:27,429 --> 00:16:28,220 DAVID J. Malan: OK. 327 00:16:28,220 --> 00:16:29,100 Jadi sekarang kita memiliki delapan. 328 00:16:29,100 --> 00:16:31,280 Jadi mari kita berhenti sejenak untuk penonton untuk terlibat di sini. 329 00:16:31,280 --> 00:16:34,300 Apa nomor adalah Jackie saat ini mewakili? 330 00:16:34,300 --> 00:16:34,800 11. 331 00:16:34,800 --> 00:16:35,730 Jadi kita sudah hampir sampai. 332 00:16:35,730 --> 00:16:38,360 333 00:16:38,360 --> 00:16:39,630 Dan sangat baik. 334 00:16:39,630 --> 00:16:41,487 Jadi kita memiliki pemenang pertama kami. 335 00:16:41,487 --> 00:16:42,445 Selamat. 336 00:16:42,445 --> 00:16:48,200 >> Dan kami pikir kami akan memiliki beberapa hadiah yang luar biasa. 337 00:16:48,200 --> 00:16:50,860 Jika Anda ingin menjadi salah satu seperti asrama kamar di sini di kampus, 338 00:16:50,860 --> 00:16:56,126 Anda dapat sendiri memiliki tugas akhir gunakan sekarang API ini, terima kasih kepada Jackie. 339 00:16:56,126 --> 00:16:57,050 Jadi sekarang-- 340 00:16:57,050 --> 00:16:58,902 >> [Tepuk Tangan] 341 00:16:58,902 --> 00:17:01,690 342 00:17:01,690 --> 00:17:04,839 >> -Jika kita bisa, satu lagi seperti di sekitar ini. 343 00:17:04,839 --> 00:17:07,690 Oh, sekarang semua orang ingin beberapa bola lampu. 344 00:17:07,690 --> 00:17:11,790 Untuk yang disebut edisi hacker, kita akan jalan itu a-- oh, 345 00:17:11,790 --> 00:17:12,770 yeah, tanpa komitmen. 346 00:17:12,770 --> 00:17:16,010 Saya pikir Anda datang sekarang jika tangan Anda akan turun. 347 00:17:16,010 --> 00:17:16,800 Siapa nama Anda? 348 00:17:16,800 --> 00:17:17,424 >> AUDIENCE: Alex. 349 00:17:17,424 --> 00:17:19,440 DAVID J. Malan: Alex, datang ke sini. 350 00:17:19,440 --> 00:17:26,190 Jadi untuk Alex, kita akan Program di sejumlah sedikit lebih besar. 351 00:17:26,190 --> 00:17:27,790 Mungkin dalam rangka. 352 00:17:27,790 --> 00:17:29,110 Jumlah 50. 353 00:17:29,110 --> 00:17:29,744 >> AUDIENCE: OK. 354 00:17:29,744 --> 00:17:31,660 DAVID J. Malan: Tapi, sebagai Saya said-- dan Anda mungkin 355 00:17:31,660 --> 00:17:33,580 ingin berdiri di sini jadi bahwa tombol berbaris 356 00:17:33,580 --> 00:17:37,115 Anda akan expect-- tapi aku menyebutnya edisi hacker. 357 00:17:37,115 --> 00:17:47,125 Begitu-- keberuntungan! 358 00:17:47,125 --> 00:17:48,416 >> [Tertawa] 359 00:17:48,416 --> 00:17:58,570 360 00:17:58,570 --> 00:18:02,050 >> Anda akan mampu mengubah mereka pergi jika kau-- OK. 361 00:18:02,050 --> 00:18:02,880 Sangat baik. 362 00:18:02,880 --> 00:18:03,675 Indah. 363 00:18:03,675 --> 00:18:04,341 Selamat. 364 00:18:04,341 --> 00:18:08,730 >> [Tepuk Tangan] 365 00:18:08,730 --> 00:18:10,355 Saya kira saya harus membayar. 366 00:18:10,355 --> 00:18:11,830 Selamat kepada Alex juga. 367 00:18:11,830 --> 00:18:12,330 OK. 368 00:18:12,330 --> 00:18:15,550 >> Jadi takeaway utama di sini adalah mudah-mudahan, terus terang, 369 00:18:15,550 --> 00:18:18,109 yang simplicity-- yang kesederhanaan dengan yang 370 00:18:18,109 --> 00:18:20,650 Anda bisa mendapatkan beberapa cahaya bagus lampu, ternyata di [Tak terdengar]. 371 00:18:20,650 --> 00:18:23,000 Tapi mereka mewakili, ide akhirnya, sama 372 00:18:23,000 --> 00:18:26,310 dengan yang kita manusia sudah terlalu akrab. 373 00:18:26,310 --> 00:18:28,660 Jadi apa yang mungkin berikutnya Langkah dalam perkembangan yang 374 00:18:28,660 --> 00:18:30,920 mencoba untuk melakukan sesuatu menarik dengan data 375 00:18:30,920 --> 00:18:34,950 dan mewakili input yang tidak hanya angka tetapi mungkin surat atau lebih? 376 00:18:34,950 --> 00:18:37,820 >> Nah, ternyata bahwa dunia komputer, selama bertahun-tahun, 377 00:18:37,820 --> 00:18:43,300 hanya mengadopsi sewenang-wenang tapi standar yang konsisten yang memetakan nomor 378 00:18:43,300 --> 00:18:44,610 untuk huruf abjad. 379 00:18:44,610 --> 00:18:47,120 Misalnya, di sini adalah kutipan dari pemetaan itu. 380 00:18:47,120 --> 00:18:48,350 Ini disebut Ascii. 381 00:18:48,350 --> 00:18:53,220 A-S-C-I-I. Dan itu hanyalah sebuah tabel yang memetakan letters-- huruf besar 382 00:18:53,220 --> 00:18:56,600 dalam hal ini case-- ke angka desimal. 383 00:18:56,600 --> 00:18:57,890 >> Tapi apa implikasinya? 384 00:18:57,890 --> 00:19:01,090 Nah, jika Anda benar-benar ingin mewakili sesuatu seperti email atau teks 385 00:19:01,090 --> 00:19:03,310 pada halaman web, Anda jelas ingin menunjukkan 386 00:19:03,310 --> 00:19:06,100 huruf manusia dari alfabet, bukan angka. 387 00:19:06,100 --> 00:19:09,140 Jadi tergantung pada konteks program 388 00:19:09,140 --> 00:19:12,600 bahwa pengguna menggunakan, jika web browser atau email client, 389 00:19:12,600 --> 00:19:16,090 angka pasti bisa ditafsirkan sebagai huruf. 390 00:19:16,090 --> 00:19:20,290 Artinya, pola bit dapat mudah ditafsirkan sebagai huruf. 391 00:19:20,290 --> 00:19:24,700 >> Jadi apa yang bisa kita miliki adalah huruf makhluk A 392 00:19:24,700 --> 00:19:28,410 direpresentasikan sebagai 65, B yang direpresentasikan sebagai 66. 393 00:19:28,410 --> 00:19:30,900 Jadi jika kita memiliki super kata singkat, seperti hi, 394 00:19:30,900 --> 00:19:35,740 apa komputer akan akhirnya toko dalam desimal tapi benar-benar dalam biner, 395 00:19:35,740 --> 00:19:40,070 menggunakan beberapa urutan bit, memanfaatkan sedikit listrik dalam beberapa cara, 396 00:19:40,070 --> 00:19:44,010 akan menjadi dua angka 72 dan 73. 397 00:19:44,010 --> 00:19:46,780 >> Tapi pola bit yang mewakili nilai-nilai. 398 00:19:46,780 --> 00:19:49,820 Jadi ini kemudian adalah bagaimana kita bisa mewakili input dan output kami. 399 00:19:49,820 --> 00:19:52,630 Dan cukup untuk mengatakan, kita bisa melakukan representasi yang lebih kompleks 400 00:19:52,630 --> 00:19:56,450 akhirnya dengan hal-hal seperti grafis, video, musik, dan lainnya 401 00:19:56,450 --> 00:19:58,190 seperti yang akan kita lihat nanti istilah ini. 402 00:19:58,190 --> 00:20:00,630 >> Sehingga hanya daun kemudian algoritma, set ini 403 00:20:00,630 --> 00:20:03,490 instruksi dengan yang kita memecahkan masalah yang sebenarnya. 404 00:20:03,490 --> 00:20:05,820 Kami lewat di masukan ke algoritma. 405 00:20:05,820 --> 00:20:09,630 Dan orang-orang algoritma memproduksi output, output semoga benar 406 00:20:09,630 --> 00:20:14,160 dan mudah-mudahan juga, efisien mengumpulkan output. 407 00:20:14,160 --> 00:20:16,890 Dengan kata lain, itu adalah satu hal untuk melaksanakan sesuatu dengan benar. 408 00:20:16,890 --> 00:20:20,790 Ini hal lain untuk melaksanakan sesuatu dengan baik atau efisien. 409 00:20:20,790 --> 00:20:23,690 >> Misalnya, satu demonstrasi bahwa kita menyukai dalam kursus 410 00:20:23,690 --> 00:20:24,460 satu ini. 411 00:20:24,460 --> 00:20:26,345 Tapi hal-hal ini semakin semakin sulit ditemukan. 412 00:20:26,345 --> 00:20:28,930 Tapi ini memang merupakan sekolah tua buku telepon, yang di dalamnya 413 00:20:28,930 --> 00:20:32,580 1.000 halaman plus nama dan nomor telepon. 414 00:20:32,580 --> 00:20:34,830 Dan jika saya ingin mencari seseorang di buku telepon ini, 415 00:20:34,830 --> 00:20:38,640 Aku hanya bisa melakukan algoritma yang sangat naif. 416 00:20:38,640 --> 00:20:42,150 Aku bisa membuka ke halaman pertama, dan Aku bisa mulai mencari, katakanlah, seseorang 417 00:20:42,150 --> 00:20:43,130 bernama Mike Smith. 418 00:20:43,130 --> 00:20:46,160 Dan jika dia tidak pada pertama halaman, saya maju ke kedua, 419 00:20:46,160 --> 00:20:49,120 dan kemudian ke ketiga, dan kemudian untuk keempat, dan sebagainya, 420 00:20:49,120 --> 00:20:51,430 sampai akhirnya aku menemukan Mike Smith. 421 00:20:51,430 --> 00:20:53,010 >> Sekarang adalah algoritma yang benar? 422 00:20:53,010 --> 00:20:53,896 >> AUDIENCE: Ya. 423 00:20:53,896 --> 00:20:54,248 >> DAVID J. Malan: Ya. 424 00:20:54,248 --> 00:20:56,039 Jika dia ada di sana, aku akan akhirnya menemukannya. 425 00:20:56,039 --> 00:20:58,820 Tapi itu bisa dibilang tidak terlalu efisien, tentu saja tidak cepat, 426 00:20:58,820 --> 00:21:01,200 karena, Tuhan, kenapa aku membuang-buang waktu saya flipping 427 00:21:01,200 --> 00:21:04,500 melalui semua halaman ini ketika saya bisa tentu melakukan hal ini secara fisik lebih cepat? 428 00:21:04,500 --> 00:21:08,210 >> Nah, optimasi sedikit, sehingga untuk berbicara, mungkin tidak satu halaman pada satu waktu, 429 00:21:08,210 --> 00:21:11,610 tapi dua, empat, enam, delapan, 10. 430 00:21:11,610 --> 00:21:12,725 Masih benar? 431 00:21:12,725 --> 00:21:14,030 >> AUDIENCE: Tidak 432 00:21:14,030 --> 00:21:17,040 >> DAVID J. Malan: Jadi tidak ada jika saya untuk Misalnya melewatkan Mike Smith. 433 00:21:17,040 --> 00:21:20,530 Tapi selama aku kembali pedal satu halaman, kalau aku overshoot dia, 434 00:21:20,530 --> 00:21:25,240 mungkin kita bisa memperbaiki apa mungkin hal lain yang dapat gotcha. 435 00:21:25,240 --> 00:21:26,020 >> Tapi lebih baik? 436 00:21:26,020 --> 00:21:27,469 Apakah lebih cepat? 437 00:21:27,469 --> 00:21:28,010 Maksudku, yeah. 438 00:21:28,010 --> 00:21:30,950 Ini benar-benar dua kali lebih cepat jika saya melakukan dua halaman sekaligus. 439 00:21:30,950 --> 00:21:35,720 Jadi jika saya awalnya memiliki 1.000 halaman, sekarang saya hanya perlu membalik 500 kali, 440 00:21:35,720 --> 00:21:39,429 tidak sepenuhnya 1.000 halaman untuk mendapatkan berpotensi dalam kasus terburuk 441 00:21:39,429 --> 00:21:41,220 ke ujung telepon buku, di mana seseorang 442 00:21:41,220 --> 00:21:44,380 seperti Mike Smith atau seseorang dengan nama kemudian mungkin sebenarnya. 443 00:21:44,380 --> 00:21:46,540 >> Tapi, tentu saja, kami manusia tentunya tidak 444 00:21:46,540 --> 00:21:49,250 akan melakukan itu, tentu tidak pada saat ini dalam hidup kita. 445 00:21:49,250 --> 00:21:51,454 Apa itu masuk akal manusia mungkin akan lakukan? 446 00:21:51,454 --> 00:21:52,870 AUDIENCE: Pergilah langsung ke The9 S. 447 00:21:52,870 --> 00:21:53,860 DAVID J. Malan: Langsung ke S? 448 00:21:53,860 --> 00:21:55,563 Bagaimana saya pergi langsung ke S? 449 00:21:55,563 --> 00:21:57,342 >> AUDIENCE: Rip menjadi dua. 450 00:21:57,342 --> 00:21:59,050 DAVID J. Malan: Yah, tidak ada tanda. 451 00:21:59,050 --> 00:22:02,116 Jadi, ya, jika memang ada label atau tab lengket untuk S, 452 00:22:02,116 --> 00:22:03,240 kita harus melompat sana. 453 00:22:03,240 --> 00:22:05,420 Tapi itu cukup berbahaya. 454 00:22:05,420 --> 00:22:08,480 Jadi yang terbaik yang bisa lakukan adalah kira-kira ke bagian S atau mungkin kira-kira 455 00:22:08,480 --> 00:22:09,650 ke tengah. 456 00:22:09,650 --> 00:22:12,110 Tapi takeaway kunci sekarang-- dan intuisi 457 00:22:12,110 --> 00:22:14,430 bahwa Anda telah mengambil untuk diberikan selama bertahun-tahun probably-- 458 00:22:14,430 --> 00:22:17,103 adalah bahwa apa yang Anda sekarang tahu tentang masalah ini? 459 00:22:17,103 --> 00:22:19,320 >> AUDIENCE: [Tak terdengar] 460 00:22:19,320 --> 00:22:22,290 >> DAVID J. Malan: Mike Smith pasti tidak dalam setengah ini masalah 461 00:22:22,290 --> 00:22:25,600 karena Smith datang setelah tengah yang kira-kira bagian M, 462 00:22:25,600 --> 00:22:26,510 tampaknya. 463 00:22:26,510 --> 00:22:30,340 Sehingga Anda mungkin telah melihat di Visitas, kita sekarang dapat benar-benar 464 00:22:30,340 --> 00:22:31,737 merobek masalah ini dalam setengah. 465 00:22:31,737 --> 00:22:32,320 AUDIENCE: Woo! 466 00:22:32,320 --> 00:22:33,690 DAVID J. Malan: Ini semakin mudah. 467 00:22:33,690 --> 00:22:34,666 [Tepuk Tangan] 468 00:22:34,666 --> 00:22:36,618 Di sana Anda pergi. 469 00:22:36,618 --> 00:22:39,060 [Tertawa] 470 00:22:39,060 --> 00:22:41,870 Dan sekarang aku fundamental memiliki masalah yang sama, 471 00:22:41,870 --> 00:22:43,866 tapi itu benar-benar setengah besar. 472 00:22:43,866 --> 00:22:45,240 Aku masih mencari Mike Smith. 473 00:22:45,240 --> 00:22:47,950 Dan aku yakin, aku masih bisa mencarinya dengan cara yang sama, 474 00:22:47,950 --> 00:22:51,200 membelah masalah dalam setengah lagi, merobek masalah lagi 475 00:22:51,200 --> 00:22:54,140 dua, yang kini meninggalkan saya dengan masalah seperempat dari ukuran, 476 00:22:54,140 --> 00:22:58,710 dramatis membuang setengah itu pergi, dan ulangi proses ini lagi dan lagi 477 00:22:58,710 --> 00:23:01,150 dan lagi, melirik ke bawah pada setiap titik untuk melihat 478 00:23:01,150 --> 00:23:03,400 jika Mike Smith adalah pada halaman tersebut. 479 00:23:03,400 --> 00:23:06,190 >> Sekarang jika saya melakukan ini dengan benar, akhirnya aku akan menemukan diriku 480 00:23:06,190 --> 00:23:11,085 dengan hanya satu halaman yang Mike Smith adalah jika dia memang dalam buku telepon. 481 00:23:11,085 --> 00:23:13,510 Tentu saja, aku bisa tidak pernah memanggil Mike lagi. 482 00:23:13,510 --> 00:23:18,800 Tapi intinya di sini adalah bahwa jika kita mulai dengan 1.000 halaman, algoritma pertama saya, 483 00:23:18,800 --> 00:23:21,620 membalik halaman, mungkin 1.000 times-- pasti kurang karena 484 00:23:21,620 --> 00:23:26,430 nama S, bukan nama Z, tetapi sebagai sebanyak 1.000 halaman yang berpotensi. 485 00:23:26,430 --> 00:23:27,590 >> Algoritma kedua, lebih baik. 486 00:23:27,590 --> 00:23:28,480 500 halaman. 487 00:23:28,480 --> 00:23:31,230 Algoritma Ketiga, meskipun, berapa banyak langkah kan 488 00:23:31,230 --> 00:23:35,520 ambil untuk membagi halaman 1.000 buku telepon dalam setengah seperti itu? 489 00:23:35,520 --> 00:23:37,000 10, memberi atau mengambil. 490 00:23:37,000 --> 00:23:40,770 Jadi hanya dengan membalik-balik yang buku telepon, menyelam dan menaklukkan, 491 00:23:40,770 --> 00:23:46,130 sehingga untuk berbicara, 10 kali, saya akan membuat perjalanan turun ke hanya satu halaman. 492 00:23:46,130 --> 00:23:48,880 >> Dan jadi kita bisa menangkap intuisi ini sekarang sedikit grafis 493 00:23:48,880 --> 00:23:51,320 jika Anda hanya mempertimbangkan grafik super sederhana ini. 494 00:23:51,320 --> 00:23:55,470 Kami berada di sumbu x, atau horizontal axis, adalah ukuran masalah saya, 495 00:23:55,470 --> 00:23:57,100 jumlah halaman di buku telepon. 496 00:23:57,100 --> 00:23:59,040 Dan ilmuwan komputer umumnya suka menyebutnya 497 00:23:59,040 --> 00:24:02,180 ukuran n masalah, di mana n hanya beberapa variabel yang 498 00:24:02,180 --> 00:24:04,310 represents-- dalam hal ini case-- jumlah halaman. 499 00:24:04,310 --> 00:24:07,412 >> Vertikal, atau sumbu y, di sini adalah akan menjadi waktu untuk menyelesaikan, 500 00:24:07,412 --> 00:24:09,870 mungkin jumlah halaman berubah, mungkin jumlah detik 501 00:24:09,870 --> 00:24:11,960 atau menit, apa pun unit Anda ukuran adalah. 502 00:24:11,960 --> 00:24:14,337 Jadi garis merah ini merupakan algoritma pertama, 503 00:24:14,337 --> 00:24:16,670 karena ada 1-1 hubungan antara jumlah 504 00:24:16,670 --> 00:24:18,880 halaman dan jumlah waktu yang dibutuhkan. 505 00:24:18,880 --> 00:24:22,240 >> Jika Verizon menggandakan jumlah halaman di buku telepon tahun depan, 506 00:24:22,240 --> 00:24:24,590 berjalan saya time-- yang waktu yang dibutuhkan untuk mengeksekusi 507 00:24:24,590 --> 00:24:27,610 bahwa algorithm-- pertama ganda dalam kasus terburuk. 508 00:24:27,610 --> 00:24:30,690 Namun algoritma kedua, mana aku membalik dua, 509 00:24:30,690 --> 00:24:33,650 membutuhkan sedikit waktu untuk masalah ukuran tertentu. 510 00:24:33,650 --> 00:24:36,090 Jadi jika saya memiliki ini banyak pemberitahuan halaman di sini- 511 00:24:36,090 --> 00:24:38,870 bahwa garis kuning menunjukkan sedikit waktu untuk menyelesaikan. 512 00:24:38,870 --> 00:24:42,490 Dan memang, itu merupakan, kita akan mengatakan, n lebih dari dua. 513 00:24:42,490 --> 00:24:47,717 >> Tapi apa bentuk ketiga dan kurva akhir akan terlihat seperti? 514 00:24:47,717 --> 00:24:50,800 Ya, itu memang akan look-- I tidak tahu apa yang Anda akan katakan. 515 00:24:50,800 --> 00:24:52,300 Tapi mari kita lihat apa Anda akan mengatakan. 516 00:24:52,300 --> 00:24:53,280 >> AUDIENCE: Seperti itu. 517 00:24:53,280 --> 00:24:57,060 >> DAVID J. Malan: Ini akan terlihat seperti ini, exactly-- slope-- logaritmik 518 00:24:57,060 --> 00:24:59,770 dimana Anda memiliki kemiringan penasaran ini. 519 00:24:59,770 --> 00:25:01,235 Hal ini tidak lagi garis lurus. 520 00:25:01,235 --> 00:25:05,000 Dan apa yang menarik tentang hal itu adalah bahwa meskipun grafik sekarang terputus, 521 00:25:05,000 --> 00:25:07,790 Anda bisa memperkirakan di Anda keberatan bahwa jalur hijau tidak 522 00:25:07,790 --> 00:25:10,060 akan meningkat di tinggi semua yang banyak 523 00:25:10,060 --> 00:25:13,500 Anda melangkah lebih jauh down yang sumbu horisontal. 524 00:25:13,500 --> 00:25:15,890 >> Memang, Verizon, untuk Misalnya, bisa dua kali lipat 525 00:25:15,890 --> 00:25:19,100 jumlah halaman di telepon buku antara tahun ini dan tahun depan 526 00:25:19,100 --> 00:25:22,140 dari 1.000 menjadi 2000 halaman, tapi bukan masalah besar. 527 00:25:22,140 --> 00:25:24,960 Dengan ketiga dan terakhir, ada algoritma intuitif 528 00:25:24,960 --> 00:25:26,209 membagi dan menaklukkan. 529 00:25:26,209 --> 00:25:29,000 Ini akan membawa saya berapa banyak lagi langkah tahun depan untuk menemukan seseorang 530 00:25:29,000 --> 00:25:29,700 seperti Mike Smith? 531 00:25:29,700 --> 00:25:30,560 >> AUDIENCE: Satu. 532 00:25:30,560 --> 00:25:31,230 >> DAVID J. Malan: Hanya ada satu. 533 00:25:31,230 --> 00:25:34,430 Dan mereka bisa empat kali lipat, itu akan membawa saya hanya dua langkah lagi 534 00:25:34,430 --> 00:25:35,210 dan lain sebagainya. 535 00:25:35,210 --> 00:25:38,730 Dan jadi ini adalah bukti betapa beberapa desain yang cermat 536 00:25:38,730 --> 00:25:42,437 dan beberapa penghargaan untuk apa masukan Anda dapat melakukan bahkan lebih baik. 537 00:25:42,437 --> 00:25:44,270 Sekarang kita menipu sebuah sedikit dalam arti 538 00:25:44,270 --> 00:25:46,350 bahwa kita memanfaatkan asumsi. 539 00:25:46,350 --> 00:25:48,500 Apa itu asumsi saya tentang buku telepon kami 540 00:25:48,500 --> 00:25:52,720 yang memungkinkan saya untuk membagi dan menaklukkan cara intuitif dan masih benar ini? 541 00:25:52,720 --> 00:25:53,705 >> AUDIENCE: [Tak terdengar] 542 00:25:53,705 --> 00:25:54,580 DAVID J. Malan: Ya. 543 00:25:54,580 --> 00:25:55,440 Jadi diperintahkan. 544 00:25:55,440 --> 00:25:57,392 Hal itu menurut abjad oleh perusahaan buku telepon. 545 00:25:57,392 --> 00:26:00,100 Jika itu secara acak, yang akan menjadi neraka buku telepon, 546 00:26:00,100 --> 00:26:02,850 tapi itu pasti tidak akan meminjamkan dirinya untuk algoritma 547 00:26:02,850 --> 00:26:05,950 Aku digunakan, karena Anda tidak akan pernah hanya terjadi di Mike Smith 548 00:26:05,950 --> 00:26:09,210 jika Anda terus membagi dalam setengah dengan cara itu secara kebetulan. 549 00:26:09,210 --> 00:26:12,060 >> Jadi mari kita sekarang memformalkan apa jelas intuitif. 550 00:26:12,060 --> 00:26:13,950 Jadi sesuatu yang disebut pseudocode adalah di mana kita akan 551 00:26:13,950 --> 00:26:15,780 mulai beberapa masalah awal kami. 552 00:26:15,780 --> 00:26:20,410 Dan ini adalah cara yang umum untuk menggambarkan algoritma atau program komputer, 553 00:26:20,410 --> 00:26:24,150 tidak menggunakan C, atau C ++, atau Java, atau bahasa tertentu, 554 00:26:24,150 --> 00:26:27,430 tetapi hanya menggunakan bahasa Inggris, dengan yang setiap manusia mungkin akrab. 555 00:26:27,430 --> 00:26:31,220 >> Dan kita mungkin menulis pseudocode untuk masalah ini sebagai berikut. 556 00:26:31,220 --> 00:26:33,520 Langkah satu, mengambil buku telepon. 557 00:26:33,520 --> 00:26:35,840 Langkah dua, terbuka untuk tengah buku telepon. 558 00:26:35,840 --> 00:26:37,730 Langkah tiga, melihat nama-nama. 559 00:26:37,730 --> 00:26:40,630 Langkah empat, jika Smith adalah salah names-- 560 00:26:40,630 --> 00:26:42,960 >> Dan sekarang ini adalah membangun menarik. 561 00:26:42,960 --> 00:26:44,290 Ini adalah titik keputusan. 562 00:26:44,290 --> 00:26:47,920 Ini adalah persimpangan jalan, jika Anda akan, cabang, sehingga untuk berbicara. 563 00:26:47,920 --> 00:26:50,810 Jadi aku akan indent hanya dengan konvensi step-- 564 00:26:50,810 --> 00:26:53,950 tidak five-- yaitu katakanlah, aku akan menelepon Mike. 565 00:26:53,950 --> 00:26:57,290 Jadi lekukan ini, benar-benar konvensi manusia sewenang-wenang, tapi itu 566 00:26:57,290 --> 00:27:01,160 hanya dimaksudkan untuk menyampaikan semantik bahwa jika Smith adalah salah nama, 567 00:27:01,160 --> 00:27:03,310 maka saya harus menelepon Mike. 568 00:27:03,310 --> 00:27:06,630 >> Sementara itu pada langkah enam, pemberitahuan bahwa lekukan hilang. 569 00:27:06,630 --> 00:27:10,980 Jadi lain adalah garpu lain di jalan, jalan lain aku mungkin perjalanan. 570 00:27:10,980 --> 00:27:14,130 Jadi lain jika Smith adalah sebelumnya dalam buku ini, apa 571 00:27:14,130 --> 00:27:16,964 Langkah berikutnya mungkin akan berada di sini? 572 00:27:16,964 --> 00:27:18,380 AUDIENCE: Anda pergi ke sisi kiri. 573 00:27:18,380 --> 00:27:21,004 DAVID J. Malan: Ya, jadi pergi ke kiri setengah dari buku telepon. 574 00:27:21,004 --> 00:27:24,140 Membuang bagian kanan jika Smith adalah awal buku ini. 575 00:27:24,140 --> 00:27:27,140 Jadi terbuka ke tengah kiri setengah dari buku ini. 576 00:27:27,140 --> 00:27:30,240 >> Dan kemudian langkah delapan, pergi ke baris tiga. 577 00:27:30,240 --> 00:27:34,520 Dan ini adalah loop penasaran aku mendorong, rekursi sehingga untuk berbicara. 578 00:27:34,520 --> 00:27:35,990 Tapi lebih pada bahwa di masa depan. 579 00:27:35,990 --> 00:27:39,590 >> Saya menggunakan algoritma yang sama saya, pseudocode sama saya, 580 00:27:39,590 --> 00:27:43,020 untuk memecahkan masalah yang sama lagi karena satu-satunya hal yang berubah 581 00:27:43,020 --> 00:27:46,550 adalah ukuran masalah, tidak tujuan saya, dan bukan orangnya 582 00:27:46,550 --> 00:27:47,340 Saya mencari. 583 00:27:47,340 --> 00:27:51,610 Jadi saya dapat menggunakan kembali algoritma bahwa saya sudah didefinisikan. 584 00:27:51,610 --> 00:27:53,580 >> Lain jika Smith ini nantinya di book-- Anda mungkin 585 00:27:53,580 --> 00:27:56,200 guess-- terbuka ke tengah bagian kanan buku. 586 00:27:56,200 --> 00:27:58,350 Dan lagi, pergi ke baris tiga. 587 00:27:58,350 --> 00:28:01,480 Else-- apa garis akhir dalam program ini akan menjadi? 588 00:28:01,480 --> 00:28:03,580 Jika dia tidak di antara Nama-nama di halaman saya 589 00:28:03,580 --> 00:28:06,870 , jika dia tidak awal buku, dan dia tidak lebih 590 00:28:06,870 --> 00:28:09,899 dalam buku ini, apa yang saya tahu benar tentang Mike Smith sekarang? 591 00:28:09,899 --> 00:28:11,190 AUDIENCE: Dia tidak dalam buku. 592 00:28:11,190 --> 00:28:12,731 DAVID J. Malan: Dia tidak dalam buku. 593 00:28:12,731 --> 00:28:16,040 Jadi yang terbaik yang bisa saya lakukan hanyalah menyerah dan menghentikan program ini. 594 00:28:16,040 --> 00:28:16,540 Baiklah. 595 00:28:16,540 --> 00:28:20,350 Jadi pada titik ini, mari kita tur singkat dari beberapa apa yang menanti. 596 00:28:20,350 --> 00:28:23,620 Dan pada kenyataannya, aku bergabung di sini oleh sejumlah staf CS50. 597 00:28:23,620 --> 00:28:26,940 Jika orang-orang ini semua bisa bergabung dengan saya di sini di atas panggung. 598 00:28:26,940 --> 00:28:28,900 >> [Tepuk Tangan] 599 00:28:28,900 --> 00:28:35,280 600 00:28:35,280 --> 00:28:38,170 >> Pikiran Anda, ini hanya subset dari staf CS50, 601 00:28:38,170 --> 00:28:42,380 karena setiap tahun kami memiliki hampir 100 staf anggota dalam peran asisten saja, 602 00:28:42,380 --> 00:28:44,410 mengajar rekan-rekan, dan banyak lagi. 603 00:28:44,410 --> 00:28:45,700 Ayo up. 604 00:28:45,700 --> 00:28:48,820 Jadi mereka akan bergabung dengan kami di sini canggung untuk sesaat 605 00:28:48,820 --> 00:28:54,230 saat kita memberi angin puyuh tur apa Anda harus mengharapkan sini dalam kursus. 606 00:28:54,230 --> 00:28:59,640 >> Jadi pertama-tama, kita harus SAT / UNS sebagai pilihan gradasi dalam kursus. 607 00:28:59,640 --> 00:29:03,180 Hal ini dimaksudkan sengaja menjadi pilihan dimana 608 00:29:03,180 --> 00:29:05,570 jika Anda sedikit gelisah di berada di kursus, 609 00:29:05,570 --> 00:29:09,390 dan Anda takut failure-- bahkan jika terus terang kegagalan berarti menyakiti IPK Anda, 610 00:29:09,390 --> 00:29:13,180 mendapatkan B dan bukan A-- yang tepat apa, tentu saja untuk gateway 611 00:29:13,180 --> 00:29:15,750 Tentu saja seperti CS50 dan lainnya kursus pengantar, 612 00:29:15,750 --> 00:29:17,540 opsi penilaian ini dimaksudkan untuk memungkinkan. 613 00:29:17,540 --> 00:29:19,930 >> Saya sepenuh hati mendorong students-- terutama 614 00:29:19,930 --> 00:29:23,090 jika pada fence-- untuk memulai Tentu saja SAT / UNS, bahkan tetap SAT / UNS. 615 00:29:23,090 --> 00:29:27,310 Tapi Anda pasti bisa beralih ke surat grade oleh kelima Senin istilah. 616 00:29:27,310 --> 00:29:31,560 >> Terus terang, ketika saya kembali adalah mahasiswa baru pada tahun 1995, 617 00:29:31,560 --> 00:29:34,630 Saya sendiri bahkan tidak mengambil CS50 karena saya tidak bisa mengumpulkan keberanian 618 00:29:34,630 --> 00:29:36,540 untuk benar-benar langkah kaki di kelas. 619 00:29:36,540 --> 00:29:40,020 Tampaknya domain terlalu asing bagi saya dan benar-benar hanya 620 00:29:40,020 --> 00:29:43,080 bagi teman-teman saya, terus terang, yang telah pemrograman 621 00:29:43,080 --> 00:29:45,570 karena mereka enam atau mungkin berusia 10-tahun. 622 00:29:45,570 --> 00:29:48,640 Dan itu hanya karena aku mampu mengambil CS50 di hari 623 00:29:48,640 --> 00:29:52,720 dalam versi setara SAT / UNS-- lulus / gagal kembali day-- yang 624 00:29:52,720 --> 00:29:53,850 yang bahkan saya mengambil 50. 625 00:29:53,850 --> 00:29:57,440 Dan entah bagaimana, aku di sini lagi dengan Anda hari ini. 626 00:29:57,440 --> 00:30:00,690 >> Sekarang sementara apa lagi yang Anda harus diingat tentang 50 627 00:30:00,690 --> 00:30:01,910 adalah pendaftaran simultan. 628 00:30:01,910 --> 00:30:03,785 Berlawanan dengan rumor yang Anda mungkin telah mendengar, 629 00:30:03,785 --> 00:30:07,650 Anda bisa, pada kenyataannya, secara bersamaan mendaftar di CS50 dan kelas lain yang 630 00:30:07,650 --> 00:30:12,150 bertemu pada saat yang sama atau tumpang tindih waktu sebagai kuliah CS50 ini di sini. 631 00:30:12,150 --> 00:30:16,420 Lihat silabus untuk keterangan pelaksanaan tersebut. 632 00:30:16,420 --> 00:30:19,540 >> Kuliah, sementara itu, bertentangan dengan apa resmi dalam katalog, 633 00:30:19,540 --> 00:30:22,060 umumnya hanya akan bertemu untuk hanya satu jam. 634 00:30:22,060 --> 00:30:24,240 Pada kesempatan kita dapat menjalankan agak lama. 635 00:30:24,240 --> 00:30:26,800 Namun perlu diingat bahwa tujuan dalam kuliah CS50 ini 636 00:30:26,800 --> 00:30:28,980 adalah untuk menyediakan Anda dengan gambaran konseptual, 637 00:30:28,980 --> 00:30:31,830 mudah-mudahan beberapa demonstrasi, mungkin bahkan beberapa hadiah, 638 00:30:31,830 --> 00:30:34,390 dari apa yang menanti untuk minggu yang berikut. 639 00:30:34,390 --> 00:30:37,730 >> Maka dalam kuliah, kita akan menjelajahi topik dan contoh bersama-sama, 640 00:30:37,730 --> 00:30:41,420 membawa siswa di atas panggung, dan staf di panggung sesering yang kami bisa, 641 00:30:41,420 --> 00:30:43,740 untuk hanya beberapa jam setiap minggu. 642 00:30:43,740 --> 00:30:47,435 Bagian, sementara itu, akan yang ditawarkan oleh orang-orang ini di sini-banyak 643 00:30:47,435 --> 00:30:50,060 dari mereka mengajar rekan-rekan, beberapa dari mereka akan tentu saja assistants-- 644 00:30:50,060 --> 00:30:51,160 terjadi mingguan. 645 00:30:51,160 --> 00:30:52,940 >> Dan apa kunci untuk menjaga diingat adalah kita yang 646 00:30:52,940 --> 00:30:55,920 jangan harus-- tidak seperti Pertama Malam, musik kelas ini 647 00:30:55,920 --> 00:30:59,220 trek yang berbeda dari bagian untuk siswa yang kurang nyaman, lebih 648 00:30:59,220 --> 00:31:01,150 nyaman, dan di antara keduanya. 649 00:31:01,150 --> 00:31:03,559 Dan terus terang, Anda tahu apakah Anda kurang nyaman. 650 00:31:03,559 --> 00:31:05,600 Dan Anda mungkin tahu jika Anda lebih nyaman. 651 00:31:05,600 --> 00:31:09,920 Dan jika Anda tidak benar-benar yakin, Anda menurut definisi suatu tempat di antara. 652 00:31:09,920 --> 00:31:12,850 Jadi ketika tiba saatnya untuk bagian dalam seminggu atau lebih, per silabus, 653 00:31:12,850 --> 00:31:14,070 kami akan mengajukan pertanyaan itu. 654 00:31:14,070 --> 00:31:16,890 Dan Anda dapat memilih sendiri Berbasis pada tingkat kenyamanan Anda sendiri 655 00:31:16,890 --> 00:31:22,220 dan bersama students-- bersama hijau dots-- serupa di tingkat kenyamanan Anda. 656 00:31:22,220 --> 00:31:25,710 >> Sementara itu, kita punya masalah set, yang pada akhirnya akan 657 00:31:25,710 --> 00:31:28,310 mendefinisikan pengalaman Anda dalam kursus ini. 658 00:31:28,310 --> 00:31:30,370 Mereka menawarkan biasanya dalam beberapa edisi. 659 00:31:30,370 --> 00:31:34,150 Edisi standar yang kita harapkan paling setiap siswa di kursus untuk mengatasi 660 00:31:34,150 --> 00:31:37,900 tetapi juga disebut edisi hacker yang tidak menawarkan bentuk kredit tambahan 661 00:31:37,900 --> 00:31:41,980 langsung tapi benar-benar hak membual untuk mengatakan bahwa Anda mencoba dan ditangani 662 00:31:41,980 --> 00:31:45,250 edisi hacker saja yang mendekati bahan yang sama 663 00:31:45,250 --> 00:31:47,370 tapi dari sudut yang lebih canggih. 664 00:31:47,370 --> 00:31:49,480 >> Apa yang kami tawarkan untuk Edisi standar,, 665 00:31:49,480 --> 00:31:51,420 lagi, mayoritas yang super siswa, tidak 666 00:31:51,420 --> 00:31:54,060 hanya berjalan-through, yang video yang dipimpin oleh staf program ini 667 00:31:54,060 --> 00:31:57,840 yang benar-benar memandu Anda melalui masalah saja dan mungkin desain 668 00:31:57,840 --> 00:31:58,910 implementasi. 669 00:31:58,910 --> 00:32:01,434 Dan kami juga, setelah Bahkan, menawarkan postmortem, 670 00:32:01,434 --> 00:32:03,350 dimana jika Anda bertanya-tanya bagaimana Anda bisa memiliki 671 00:32:03,350 --> 00:32:05,930 atau seharusnya diselesaikan beberapa masalah, staf pengajar 672 00:32:05,930 --> 00:32:08,640 akan memandu Anda melalui orang-orang di video juga. 673 00:32:08,640 --> 00:32:14,350 >> Sementara itu, apa yang menanti juga adalah lima hari terlambat dan fakta 674 00:32:14,350 --> 00:32:16,680 bahwa kita akan turun Anda Masalah terendah mengatur skor. 675 00:32:16,680 --> 00:32:20,370 Kita tentu menghargai bahwa dalam pertukaran untuk beban kerja yang 50 mengharapkan 676 00:32:20,370 --> 00:32:24,020 Anda, kehidupan mendapat di jalan kadang-kadang, jika tidak lima kali. 677 00:32:24,020 --> 00:32:26,150 Dan jadi ini akan menawarkan Anda sedikit fleksibilitas, 678 00:32:26,150 --> 00:32:29,400 memperpanjang batas waktu Anda dari, katakanlah, Kamis siang sampai Jumat pada siang hari. 679 00:32:29,400 --> 00:32:33,150 Lihat silabus untuk Rincian pelaksanaan daripadanya. 680 00:32:33,150 --> 00:32:34,702 >> Sekarang apa yang sekarang menunggu? 681 00:32:34,702 --> 00:32:36,660 Dan itu hanya terjadi saya sekarang hanya berapa lama 682 00:32:36,660 --> 00:32:38,333 Saya mengalami kalian berdiri di sini di atas panggung. 683 00:32:38,333 --> 00:32:39,060 >> [Tertawa] 684 00:32:39,060 --> 00:32:41,867 >> DAVID J. Malan: Tapi kita akan sampai ke selesai klimaks sebelum lama. 685 00:32:41,867 --> 00:32:43,700 Jadi apa yang menanti dalam hal set masalah? 686 00:32:43,700 --> 00:32:47,099 Yah, mungkin teaser dari apa yang kita semua lakukan tahun lalu dengan pendahulu Anda. 687 00:32:47,099 --> 00:32:49,140 Dalam masalah pertama set tahun lalu, kami memperkenalkan 688 00:32:49,140 --> 00:32:51,630 Scratch, grafis yang bahasa pemrograman yang 689 00:32:51,630 --> 00:32:54,570 memungkinkan Anda memprogram harfiah oleh menyeret dan menjatuhkan potongan puzzle, 690 00:32:54,570 --> 00:32:57,220 seperti ini, yang mengingatkan pada konstruksi 691 00:32:57,220 --> 00:32:59,260 akan melihat hanya satu minggu karenanya, ketika kita beralih 692 00:32:59,260 --> 00:33:01,870 untuk lebih tradisional bahasa, yang dikenal sebagai C. 693 00:33:01,870 --> 00:33:03,930 >> Tahun lalu kami melanjutkan masalah set ini, 694 00:33:03,930 --> 00:33:06,720 melibatkan untuk kriptografi, mengacak informasi 695 00:33:06,720 --> 00:33:10,410 untuk menjaga dari pemerintah atau teman ' mata yang tidak ingin melihatnya. 696 00:33:10,410 --> 00:33:12,540 Dikodekan dalam sini adalah pesan yang segera Anda 697 00:33:12,540 --> 00:33:15,740 akan dapat mendekripsi atau de-berebut. 698 00:33:15,740 --> 00:33:17,960 >> Breakout adalah masalah yang ditetapkan tahun lalu, dimana 699 00:33:17,960 --> 00:33:21,530 Anda menggunakan ini menemukan pemrograman baru keterampilan untuk benar-benar melaksanakan 700 00:33:21,530 --> 00:33:24,840 permainan wherein-- Anda mungkin ingat dari childhood-- 701 00:33:24,840 --> 00:33:28,040 tujuannya adalah untuk bash batu bata yang di atas layar 702 00:33:28,040 --> 00:33:30,190 di sini, dan mengumpulkan banyak skor sepanjang jalan, 703 00:33:30,190 --> 00:33:35,460 dan menerapkan algoritma Anda sendiri dengan yang solusi ini pada akhirnya 704 00:33:35,460 --> 00:33:37,357 memungkinkan Anda bermain game. 705 00:33:37,357 --> 00:33:39,440 Sementara itu, kemudian di semester, kami akan memberikan 706 00:33:39,440 --> 00:33:43,470 kamus 143.091 kata dalam bahasa Inggris. 707 00:33:43,470 --> 00:33:46,300 Dan Anda akan ditantang untuk menulis sebuah program yang 708 00:33:46,300 --> 00:33:50,260 mantra cek, dokumen, berdasarkan memuat banyak kata-kata ke dalam memori 709 00:33:50,260 --> 00:33:52,300 seefisien mungkin. 710 00:33:52,300 --> 00:33:54,240 Umumnya pitting Anda terhadap teman sekelas Anda 711 00:33:54,240 --> 00:33:56,610 jika Anda memilih menjadi sedikit Tantangan di papan pemimpin 712 00:33:56,610 --> 00:34:00,090 untuk melihat siapa yang dapat menggunakan paling sedikit detik waktu berjalan, 713 00:34:00,090 --> 00:34:03,550 dan jumlah paling sedikit megabyte memori, 714 00:34:03,550 --> 00:34:08,659 dan benar-benar fine-tuning program Anda menjadi sangat sumber daya yang efisien tidak 715 00:34:08,659 --> 00:34:09,820 hanya waktu. 716 00:34:09,820 --> 00:34:13,239 >> Tahun lalu, juga, kita melihat akhir semester di pemrograman web. 717 00:34:13,239 --> 00:34:16,230 Dan memang, kita akan melakukannya lagi ini tahun dengan beberapa set masalah, 718 00:34:16,230 --> 00:34:20,290 memperkenalkan Anda ke teknik dan pola pikir yang Anda dapat menerapkan 719 00:34:20,290 --> 00:34:23,489 keterampilan pemrograman untuk website, website dinamis, 720 00:34:23,489 --> 00:34:26,639 website yang benar-benar memecahkan masalah dan berperilaku berbeda 721 00:34:26,639 --> 00:34:30,620 dan tidak hanya statis situs dengan informasi statis. 722 00:34:30,620 --> 00:34:32,854 >> Proyek akhir akhirnya akan menentukan, meskipun, 723 00:34:32,854 --> 00:34:34,770 klimaks tentu saja bagi siswa, dimana 724 00:34:34,770 --> 00:34:37,228 Anda akan ditantang untuk mengimplementasikan sebagian besar hal-hal menarik 725 00:34:37,228 --> 00:34:40,590 kepada Anda, asalkan entah bagaimana mengacu pada pelajaran kursus ini. 726 00:34:40,590 --> 00:34:42,930 >> Dan seperti yang Anda lihat di Video di awal, 727 00:34:42,930 --> 00:34:47,340 kita akan menyimpulkan semester dengan CS50 Hackathon, yang jika, asing, 728 00:34:47,340 --> 00:34:51,420 akan dimulai pada 07:00 satu malam dan berakhir pada 07:00 pagi berikutnya. 729 00:34:51,420 --> 00:34:53,614 Sekitar 09:00, kita akan urutan makan malam pertama. 730 00:34:53,614 --> 00:34:55,489 Sekitar 01:00, kita akan urutan makan malam kedua. 731 00:34:55,489 --> 00:34:57,490 Dan jika Anda masih berdiri di 5:00, kita 732 00:34:57,490 --> 00:35:00,320 akan shuttle bus Anda ke IHOP untuk sarapan. 733 00:35:00,320 --> 00:35:04,980 >> The CS50 adil, sementara itu, adalah suatu peristiwa yang 2.000 ditambah dosen, mahasiswa, 734 00:35:04,980 --> 00:35:07,850 dan staf dari seluruh kampus akan datang untuk melihat prestasi Anda 735 00:35:07,850 --> 00:35:10,150 dalam perjalanan dan final proyek dan kreasi 736 00:35:10,150 --> 00:35:14,960 yang Anda buat pada laptop Anda, desktop, atau lampu bahkan mungkin cahaya. 737 00:35:14,960 --> 00:35:17,340 >> Sementara itu, jam kantor dan struktur dukungan. 738 00:35:17,340 --> 00:35:20,480 Dan sekarang itu sudah menjadi waktu yang lebih baik untuk membawa Anda semuanya. 739 00:35:20,480 --> 00:35:24,310 >> Jam kerja akan berlangsung empat malam seminggu untuk beberapa jam setiap malam 740 00:35:24,310 --> 00:35:27,710 dengan umumnya 20 sampai 30 dari Staf program ini bertugas sekaligus 741 00:35:27,710 --> 00:35:31,240 untuk menyediakan Anda dengan intim satu-on-satu peluang untuk dukungan 742 00:35:31,240 --> 00:35:33,790 dengan masalah set kursus ini. 743 00:35:33,790 --> 00:35:36,120 Bimbingan juga akan tersedia, terutama 744 00:35:36,120 --> 00:35:39,630 bagi siswa kurang comfortable-- atau berani mengatakan sedikitnya comfortable-- untuk siapa 745 00:35:39,630 --> 00:35:41,869 jam kantor bukan kebanyakan lingkungan pengasuhan 746 00:35:41,869 --> 00:35:43,660 dan tentu saja tidak yang paling bebas stres. 747 00:35:43,660 --> 00:35:47,430 Terutama ketika tenggat waktu mendesak, kita secara proaktif akan memasangkan Anda sendiri 748 00:35:47,430 --> 00:35:51,440 dengan anggota staf untuk bekerja dengan pada beberapa jadwal rutin sebagai kebutuhan Anda 749 00:35:51,440 --> 00:35:53,850 dan jadwal mereka memungkinkan. 750 00:35:53,850 --> 00:35:55,260 >> Dan staf. 751 00:35:55,260 --> 00:36:01,020 Izinkan saya untuk memperkenalkan Davon, Rob, dan Gabriel, kepala tahun ini. 752 00:36:01,020 --> 00:36:02,370 Jika Anda masing-masing akan ingin say-- 753 00:36:02,370 --> 00:36:03,349 >> [Tepuk Tangan] 754 00:36:03,349 --> 00:36:03,849 kata -sebuah. 755 00:36:03,849 --> 00:36:05,328 [Tepuk Tangan] 756 00:36:05,328 --> 00:36:10,270 757 00:36:10,270 --> 00:36:13,220 Davon di sini adalah Pengelola mata kuliah, yang 758 00:36:13,220 --> 00:36:15,730 berarti dalam peran penuh waktu dia membantu dengan eksekusi 759 00:36:15,730 --> 00:36:18,424 dan logistik CS50. 760 00:36:18,424 --> 00:36:19,340 Davon: Ya, hi, guys. 761 00:36:19,340 --> 00:36:20,965 Anda akan melihat banyak bagi saya pada jam-jam kantor. 762 00:36:20,965 --> 00:36:22,110 Aku akan mengajar bagian. 763 00:36:22,110 --> 00:36:25,150 Dan jika Anda menembak email ke depan, Aku mungkin akan merespons. 764 00:36:25,150 --> 00:36:27,670 Jadi saya akan melihat banyak Anda semua semester. 765 00:36:27,670 --> 00:36:29,890 Dan selamat datang CS50. 766 00:36:29,890 --> 00:36:38,330 >> DAVID J. Malan: Dan sekarang Gabriel, yang dirinya hanya mahasiswa baru tahun lalu, 767 00:36:38,330 --> 00:36:41,820 tapi untuk beberapa tahun memiliki telah beroperasi versinya sendiri CS50 768 00:36:41,820 --> 00:36:44,660 di Brazil, dimana dia download semua content-- kursus ini 769 00:36:44,660 --> 00:36:46,890 yang jelas menjadi difilmkan dan ditempatkan online-- 770 00:36:46,890 --> 00:36:51,480 sehingga ia bisa menerjemahkannya ke Portugis dan kemudian mengajar lebih dari 100 771 00:36:51,480 --> 00:36:54,610 teman sekelasnya atas Tentu saja dari beberapa tahun, 772 00:36:54,610 --> 00:36:57,650 mengajar dalam bahasa aslinya kurikulum kursus ini. 773 00:36:57,650 --> 00:36:58,964 >> GABRIEL: Hello. 774 00:36:58,964 --> 00:37:00,912 >> [Tepuk Tangan] 775 00:37:00,912 --> 00:37:06,669 776 00:37:06,669 --> 00:37:07,710 GABRIEL: Hi, aku Gabriel. 777 00:37:07,710 --> 00:37:09,340 Aku TF kepala kursus. 778 00:37:09,340 --> 00:37:10,780 Dan saya berharap Anda akan menyukai CS50. 779 00:37:10,780 --> 00:37:12,830 Ini adalah CS50. 780 00:37:12,830 --> 00:37:14,697 >> DAVID J. Malan: Sekarang untuk Rob. 781 00:37:14,697 --> 00:37:15,780 Oh, Anda ingin pengenalan? 782 00:37:15,780 --> 00:37:16,696 >> ROB: Tidak, aku tidak tahu. 783 00:37:16,696 --> 00:37:18,225 [Tertawa] 784 00:37:18,225 --> 00:37:19,475 DAVID J. Malan: Dan Rob Boden. 785 00:37:19,475 --> 00:37:22,300 [Tertawa] 786 00:37:22,300 --> 00:37:23,800 ROB: Hi, aku Rob. 787 00:37:23,800 --> 00:37:27,220 Ini adalah tahun kelima saya terlibat dengan kursus. 788 00:37:27,220 --> 00:37:29,220 Setiap tahun, itu hanya lebih baik dan kelas yang lebih baik, 789 00:37:29,220 --> 00:37:31,550 jadi kalian jelas akan menjadi luar biasa. 790 00:37:31,550 --> 00:37:33,181 Saya harap Anda semua bersenang-senang dengan itu. 791 00:37:33,181 --> 00:37:34,430 Aku akan bersenang-senang dengan itu. 792 00:37:34,430 --> 00:37:36,670 Jadi melihat Anda di sekitar. 793 00:37:36,670 --> 00:37:38,445 >> DAVID J. Malan: Dan kali tidak akan mengizinkan Us-- 794 00:37:38,445 --> 00:37:39,670 >> [Tepuk Tangan] 795 00:37:39,670 --> 00:37:41,661 >> Waktu tidak akan mengizinkan kita untuk memperkenalkan semua orang 796 00:37:41,661 --> 00:37:44,660 di panggung dan semua rekan-rekan mereka yang berbelanja kelas hari ini. 797 00:37:44,660 --> 00:37:47,390 Tapi izinkan saya untuk memperkenalkan Belinda dan CS50 Puzzle 798 00:37:47,390 --> 00:37:49,550 Hari, yang menanti ini Sabtu, datang yang 799 00:37:49,550 --> 00:37:51,800 adalah yang pertama dari acara skala besar program ini. 800 00:37:51,800 --> 00:37:54,300 >> Yang satu ini khususnya dimaksudkan untuk menempa hal tersebut 801 00:37:54,300 --> 00:37:57,580 bahwa ilmu komputer pada akhirnya bukan tentang pemrograman, melainkan 802 00:37:57,580 --> 00:37:59,280 tentang pemecahan masalah yang lebih umum. 803 00:37:59,280 --> 00:38:01,450 Dan Teka-hari, seperti yang Anda akan lihat, akan membawa Anda 804 00:38:01,450 --> 00:38:04,207 dan teman sekelas Anda together-- kami berharap Sabtu ini. 805 00:38:04,207 --> 00:38:04,961 >> BELINDA: OK. 806 00:38:04,961 --> 00:38:05,750 Hi, guys. 807 00:38:05,750 --> 00:38:06,740 Jadi terima kasih. 808 00:38:06,740 --> 00:38:10,120 Jadi sebagai kapten terkenal kami kata, nama saya Belinda. 809 00:38:10,120 --> 00:38:12,100 Saya seorang mahasiswa di Quincy House. 810 00:38:12,100 --> 00:38:15,730 >> Aku, sama seperti kalian, mengambil CS50 tahun lalu, benar-benar menyukainya. 811 00:38:15,730 --> 00:38:17,960 Aku punya tempat yang lembut untuk kalian di baris ketiga. 812 00:38:17,960 --> 00:38:21,384 Dan aku bangga untuk mengatakan, aku sekarang dalam hubungan berkomitmen 813 00:38:21,384 --> 00:38:22,300 dengan CS50 [Tak terdengar]. 814 00:38:22,300 --> 00:38:22,799 OK. 815 00:38:22,799 --> 00:38:26,140 Itu versi lumpuh saya lelucon. 816 00:38:26,140 --> 00:38:28,320 >> Pokoknya, jadi pindah, hanya ingin mengajak 817 00:38:28,320 --> 00:38:31,439 kalian semua untuk i-lab, atau HBS gatal-gatal. 818 00:38:31,439 --> 00:38:33,730 Kita akan memiliki Teka-teki Hari 12:00-03:00. 819 00:38:33,730 --> 00:38:37,680 Dan itu adalah kesempatan besar bagi Anda orang untuk bertemu sesama CS teman Anda, 820 00:38:37,680 --> 00:38:42,780 memecahkan beberapa CS non-teka-teki, seperti Kapten disebutkan, dan juga makan beberapa makanan gratis, 821 00:38:42,780 --> 00:38:46,910 memperoleh beberapa hadiah menarik, seperti kartu hadiah, $ 75 per orang, 822 00:38:46,910 --> 00:38:48,400 dan also-- apa itu? 823 00:38:48,400 --> 00:38:49,540 Wii U atau sesuatu? 824 00:38:49,540 --> 00:38:50,333 Wii U? 825 00:38:50,333 --> 00:38:51,040 Ya. 826 00:38:51,040 --> 00:38:52,330 Untuk undian kami. 827 00:38:52,330 --> 00:38:52,830 Keren. 828 00:38:52,830 --> 00:38:54,310 Jadi aku akan tetap sekitar setelah kelas. 829 00:38:54,310 --> 00:38:56,770 Dan jika kalian punya pertanyaan, beritahu saya. 830 00:38:56,770 --> 00:38:59,980 >> DAVID J. Malan: Dan Anda akan melihat, di luar ini tidak ada yang harus dilakukan hari ini. 831 00:38:59,980 --> 00:39:01,920 Masalah pertama set akan keluar Jumat. 832 00:39:01,920 --> 00:39:05,420 Tapi untuk membawa kami pulang hari ini, saya ingin memperkenalkan Anda untuk secara khusus satu lagi 833 00:39:05,420 --> 00:39:09,080 anggota staf, Colton Ogden sini, yang tangannya sekarang 834 00:39:09,080 --> 00:39:12,250 dilindungi atas Anda dengan MIDI controller 835 00:39:12,250 --> 00:39:15,170 untuk menempa hal lebih lanjut bahwa ilmu komputer, juga, 836 00:39:15,170 --> 00:39:19,130 telah diterapkan jauh melampaui teknik dan STEM dan ilmu komputer itu sendiri, 837 00:39:19,130 --> 00:39:22,890 memperluas bahkan ke domain seperti musik. 838 00:39:22,890 --> 00:39:30,590 >> Colton memiliki ramah offered-- saya pikir salah satu dari mereka akan memperbaiki fokus. 839 00:39:30,590 --> 00:39:34,400 Andrew, jika kita bisa memanggil fokus di sini untuk sesaat. 840 00:39:34,400 --> 00:39:36,780 >> Apa Colton telah melakukan di muka Program 841 00:39:36,780 --> 00:39:40,345 perangkat ini, pad ini tombol Anda lihat gambar di sini, 842 00:39:40,345 --> 00:39:42,470 sebagai MIDI controller, dimana masing-masing tombol 843 00:39:42,470 --> 00:39:47,080 ditransfer ke catatan musik tertentu atau suara, lebih umum rekaman, 844 00:39:47,080 --> 00:39:50,445 sehingga dengan bermain pola ini tombol, seperti pola bit, 845 00:39:50,445 --> 00:39:52,620 dapat mewakili lainnya konsep tingkat yang lebih tinggi. 846 00:39:52,620 --> 00:39:56,750 Apakah dia bisa akhirnya untuk membawa kami pulang di sini hari ini? 847 00:39:56,750 --> 00:39:59,540 Tanpa basa-basi lagi, jika kita bisa meredupkan lampu, 848 00:39:59,540 --> 00:40:03,145 dan menyalakan layar belakang Colton. 849 00:40:03,145 --> 00:40:03,865 >> AUDIENCE: Woo! 850 00:40:03,865 --> 00:40:06,090 >> DAVID J. Malan: Ini adalah CS50. 851 00:40:06,090 --> 00:40:10,518 >> [MUSIC PLAYING] 852 00:40:10,518 --> 00:42:46,018 853 00:42:46,018 --> 00:42:49,420 >> [Tepuk Tangan] 854 00:42:49,420 --> 00:42:54,766 855 00:42:54,766 --> 00:42:56,450 >> Itu saja untuk CS50. 856 00:42:56,450 --> 00:42:57,950 Kita akan melihat Anda Jumat. 857 00:42:57,950 --> 00:42:59,890 Beberapa kue menanti Anda di Transept. 858 00:42:59,890 --> 00:43:04,046 859 00:43:04,046 --> 00:43:08,850 >> [MUSIC PLAYING] 860 00:43:08,850 --> 00:45:49,227