1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID Malan: Selamat datang kembali, semua orang. 3 00:00:01,790 --> 00:00:05,030 Jadi kemarin, Anda akan ingat bahwa kami fokus pada topik ini di sini. 4 00:00:05,030 --> 00:00:08,380 Jadi kami memiliki empat topics-- menyeluruh privasi, keamanan, dan masyarakat; 5 00:00:08,380 --> 00:00:11,960 teknologi internet; cloud computing; dan akhirnya, pengembangan web. 6 00:00:11,960 --> 00:00:14,170 >> Apakah ada yang punya bandwidth atau waktu 7 00:00:14,170 --> 00:00:16,900 untuk menonton John sedikit Oliver tadi malam? 8 00:00:16,900 --> 00:00:20,120 Ini sebenarnya cukup lucu, jika tidak sedikit menakutkan. 9 00:00:20,120 --> 00:00:24,700 Pertanyaan tentang apa-apa kita lakukan kemarin? 10 00:00:24,700 --> 00:00:27,600 Klarifikasi? 11 00:00:27,600 --> 00:00:35,580 Pertanyaan yang ingin Anda untuk membuat yakin kita menyentuh pada saat ini dalam beberapa bentuk? 12 00:00:35,580 --> 00:00:37,300 slate begitu bersih. 13 00:00:37,300 --> 00:00:38,760 >> Jadi apa yang ada di agenda untuk hari ini? 14 00:00:38,760 --> 00:00:41,301 Jadi saya pikir kami akan mulai hari ini dengan melihat apa yang umumnya 15 00:00:41,301 --> 00:00:44,460 dikenal sebagai thinking-- komputasi di risiko yang terlalu menyederhanakan, berpikir 16 00:00:44,460 --> 00:00:46,636 seperti komputer, mungkin berpikir seperti seorang insinyur, 17 00:00:46,636 --> 00:00:48,510 dan mencoba untuk mulai mengatur pikiran Anda 18 00:00:48,510 --> 00:00:52,039 atau untuk memberikan rasa yang lebih baik apa yang terlibat dalam sebenarnya memerintah 19 00:00:52,039 --> 00:00:54,080 komputer untuk melakukan sesuatu dengan cara pemrograman. 20 00:00:54,080 --> 00:00:56,663 Dan kami akan tetap pada cukup tingkat tinggi, cukup banyak bahasa Inggris, 21 00:00:56,663 --> 00:00:59,850 tetapi cobalah untuk menggunakan akrab contoh untuk meresmikan bagaimana 22 00:00:59,850 --> 00:01:01,450 Anda akan pergi tentang pemecahan masalah. 23 00:01:01,450 --> 00:01:04,080 >> Dan kami akan kembali beberapa CS topik, seperti abstraksi, 24 00:01:04,080 --> 00:01:06,040 yang datang pasangan kali kemarin, 25 00:01:06,040 --> 00:01:07,554 algoritma, dan kemudian representasi. 26 00:01:07,554 --> 00:01:09,720 Dan di sanalah kami akan mulai hari ini hanya dalam beberapa saat. 27 00:01:09,720 --> 00:01:11,481 Kemudian kita akan melihat pada pemrograman. 28 00:01:11,481 --> 00:01:13,480 Kita akan melihat beberapa konstruksi dasar 29 00:01:13,480 --> 00:01:16,450 yang Anda mungkin akrab dan bahkan mungkin menemukan cukup intuitif. 30 00:01:16,450 --> 00:01:18,370 >> Kita akan melihat, pada kenyataannya, pada pemrograman sampel 31 00:01:18,370 --> 00:01:21,244 lingkungan yang sangat mudah, sangat menyenangkan, dan memang ditargetkan 32 00:01:21,244 --> 00:01:22,555 untuk usia 12 tahun ke atas. 33 00:01:22,555 --> 00:01:25,930 Kami akan menghabiskan beberapa menit di sana dan kemudian mengambil hal-hal ke tingkat yang lebih rendah 34 00:01:25,930 --> 00:01:30,360 dan benar-benar berbicara tentang beberapa algoritma dan struktur data, 35 00:01:30,360 --> 00:01:32,360 sehingga untuk berbicara, yang programmer biasanya menggunakan 36 00:01:32,360 --> 00:01:35,040 untuk memecahkan masalah yang jauh lebih efisien daripada Anda mungkin 37 00:01:35,040 --> 00:01:37,322 dapat melakukannya tanpa mereka sama sekali. 38 00:01:37,322 --> 00:01:40,280 Kemudian setelah makan siang, kami akan lihat di tumpukan teknologi, yang hanya 39 00:01:40,280 --> 00:01:42,240 cara mewah untuk mengatakan koleksi teknologi 40 00:01:42,240 --> 00:01:43,690 yang mungkin Anda gunakan untuk memecahkan beberapa masalah. 41 00:01:43,690 --> 00:01:46,670 Dan kita akan bicara tentang alfabet sup bahasa yang ada today-- 42 00:01:46,670 --> 00:01:50,930 Java dan Python dan C ++ dan PHP dan Ruby dan segala macam hal lainnya. 43 00:01:50,930 --> 00:01:53,740 >> Kami akan melihat secara singkat di pola desain. 44 00:01:53,740 --> 00:01:57,730 Programmer, dari waktu ke waktu, memiliki metodologi yang diadopsi 45 00:01:57,730 --> 00:02:00,690 yang cenderung untuk membantu mereka memecahkan masalah lebih mudah. 46 00:02:00,690 --> 00:02:04,390 Ketika Anda mulai melihat diri Anda menulis jenis yang sama dari kode lagi dan lagi, 47 00:02:04,390 --> 00:02:08,080 orang meresmikan mereka pengulangan dan nama menganggap mereka 48 00:02:08,080 --> 00:02:10,084 dan kemudian menggunakannya dan mempromosikan mereka, akhirnya. 49 00:02:10,084 --> 00:02:12,250 Dan kita akan bicara sedikit tentang strategi mobile, 50 00:02:12,250 --> 00:02:16,099 seperti apa artinya untuk benar-benar membuat aplikasi mobile atau situs mobile. 51 00:02:16,099 --> 00:02:17,140 Apakah Anda melakukannya untuk Android? 52 00:02:17,140 --> 00:02:17,730 Apakah Anda melakukannya untuk iOS? 53 00:02:17,730 --> 00:02:19,160 Apakah Anda melakukannya untuk kedua dari mereka? 54 00:02:19,160 --> 00:02:20,326 Dan apa trade-off? 55 00:02:20,326 --> 00:02:23,180 Dan akhirnya, kita akan pemrograman web tampilan, yang 56 00:02:23,180 --> 00:02:25,380 adalah istilah kolektif benar-benar menggambarkan setiap saat 57 00:02:25,380 --> 00:02:28,410 Anda menulis perangkat lunak yang dimaksudkan untuk berjalan di web, 58 00:02:28,410 --> 00:02:30,430 apakah pada ponsel atau desktop atau laptop. 59 00:02:30,430 --> 00:02:33,490 Kami akan melihat sekilas database dan desain 60 00:02:33,490 --> 00:02:39,049 di dalamnya, jika hanya karena hampir semua aplikasi berbasis web yang menarik 61 00:02:39,049 --> 00:02:40,590 hari ini memiliki beberapa jenis database. 62 00:02:40,590 --> 00:02:42,380 Jika tidak, itu akan hanya menjadi konten statis. 63 00:02:42,380 --> 00:02:45,254 Dan database memungkinkan Anda untuk membuat perubahan dari waktu ke waktu, apakah diri Anda 64 00:02:45,254 --> 00:02:45,960 atau dari pengguna. 65 00:02:45,960 --> 00:02:47,820 Dan kami akan mempertimbangkan bagaimana Anda akan pergi tentang merancang 66 00:02:47,820 --> 00:02:50,510 bahwa database dan jenis jargon yang mungkin akan muncul di seorang insinyur 67 00:02:50,510 --> 00:02:52,790 diskusi di papan putih ketika benar-benar menerapkan 68 00:02:52,790 --> 00:02:53,900 aplikasi untuk pertama kalinya. 69 00:02:53,900 --> 00:02:57,002 >> Kita akan berbicara secara singkat tentang API, layanan yang bermanfaat 70 00:02:57,002 --> 00:02:59,960 yang dapat Anda gunakan untuk berdiri di bahu orang lain, apakah perusahaan 71 00:02:59,960 --> 00:03:02,619 atau individu, dan memecahkan Anda masalah sendiri lebih cepat. 72 00:03:02,619 --> 00:03:04,785 Dan kemudian kami akan mencoba-coba mungkin sedikit dengan JavaScript, 73 00:03:04,785 --> 00:03:08,900 bahasa pemrograman yang digunakan baik di browser hari ini, tapi juga 74 00:03:08,900 --> 00:03:09,820 di server. 75 00:03:09,820 --> 00:03:11,890 Dan mungkin, kita akan kembali, waktu memungkinkan, 76 00:03:11,890 --> 00:03:15,670 beberapa tangan-on kami hal web lakukan kemarin dan mengintegrasikan dua 77 00:03:15,670 --> 00:03:17,630 bersama-sama sebelum kita menunda. 78 00:03:17,630 --> 00:03:22,380 >> Jadi dengan itu-- apa ahead-- adalah ada sesuatu yang hilang yang Anda 79 00:03:22,380 --> 00:03:26,289 ingin memastikan bahwa kami memasukkan dan menyentuh pada di beberapa titik. 80 00:03:26,289 --> 00:03:28,330 Jika itu muncul dalam pikiran, membawanya sebelum lama. 81 00:03:28,330 --> 00:03:32,010 Tapi kenapa tidak kita mulai dengan melihat berpikir komputasi. 82 00:03:32,010 --> 00:03:35,420 >> Dan biarkan aku mengusulkan bahwa berpikir komputasi adalah, sekali lagi, 83 00:03:35,420 --> 00:03:38,830 semacam deskripsi tingkat tinggi apa yang mungkin dilakukan seorang ilmuwan komputer. 84 00:03:38,830 --> 00:03:42,470 Dan memang, mari kita mulai dengan tiga bahan yang 85 00:03:42,470 --> 00:03:44,207 mungkin masuk ke pemikiran komputasi. 86 00:03:44,207 --> 00:03:45,790 Ini adalah salah satu cara untuk menggambarkan itu. 87 00:03:45,790 --> 00:03:48,490 Kita pasti bisa mendefinisikan ini dalam beberapa cara. 88 00:03:48,490 --> 00:03:50,630 >> Tapi biarkan aku mengusulkan, demi hari, 89 00:03:50,630 --> 00:03:53,910 bahwa masalah dunia, semua masalah di dunia, 90 00:03:53,910 --> 00:03:56,730 ketika didekati oleh ilmuwan komputer bisa 91 00:03:56,730 --> 00:04:00,990 dipandang sebagai apa yang kita akan input panggilan, yang 92 00:04:00,990 --> 00:04:08,142 perlu untuk dimasukkan ke dalam apa yang akan kita sebut algoritma, yang kemudian menghasilkan output. 93 00:04:08,142 --> 00:04:10,600 Dengan kata lain, seluruh orang dunia pemecahan masalah saya klaim 94 00:04:10,600 --> 00:04:13,140 dapat disuling menjadi tiga bahan tersebut. 95 00:04:13,140 --> 00:04:14,450 Jadi apa yang saya maksud dengan masukan? 96 00:04:14,450 --> 00:04:17,060 Input adalah hanya apa yang Anda diserahkan dalam rangka memecahkan. 97 00:04:17,060 --> 00:04:20,052 >> Misalnya, inilah masalah sekolah tua. 98 00:04:20,052 --> 00:04:22,760 Jika saya memiliki buku telepon di sini dan Saya ingin melihat sesuatu ke dalamnya, 99 00:04:22,760 --> 00:04:23,760 ini masukan saya. 100 00:04:23,760 --> 00:04:26,260 Saya memiliki 1.000 atau lebih halaman dalam buku telepon. 101 00:04:26,260 --> 00:04:27,780 Ini adalah masukan untuk masalah saya. 102 00:04:27,780 --> 00:04:31,507 Dan saya ingin menemukan sesuatu seperti Mike Smith, jadi teman 103 00:04:31,507 --> 00:04:33,840 yang nama dan nomor adalah mudah-mudahan dalam buku alamat ini. 104 00:04:33,840 --> 00:04:36,430 >> Ini adalah sebelum hari sel telepon, jadi saya tidak bisa hanya mencari untuk itu. 105 00:04:36,430 --> 00:04:38,540 Jadi saya harus melakukannya tua sekolah dan benar-benar pencari 106 00:04:38,540 --> 00:04:41,331 masukan ini untuk beberapa jawaban. 107 00:04:41,331 --> 00:04:43,580 Dan jawaban itu hanya akan disebut output. 108 00:04:43,580 --> 00:04:44,871 Jadi input adalah buku telepon. 109 00:04:44,871 --> 00:04:47,787 Algoritma adalah apa pun set langkah yang saya gunakan untuk menemukan Mike Smith. 110 00:04:47,787 --> 00:04:50,120 Dan output, mudah-mudahan, nomor telepon Mike Smith. 111 00:04:50,120 --> 00:04:52,703 Dan ini maka akan hanya perwakilan dari sebagian besar masalah 112 00:04:52,703 --> 00:04:55,210 untuk dengan Anda masukan tangan dan ingin menghasilkan output. 113 00:04:55,210 --> 00:04:59,459 >> Jadi sebelum kita mempertimbangkan proses dengan mana kita dapat mengatasi masalah tersebut, 114 00:04:59,459 --> 00:05:01,250 menemukan Mike Smith dan sesuatu seperti itu, 115 00:05:01,250 --> 00:05:04,090 mari kita mempertimbangkan pertama dan input last-- dan output. 116 00:05:04,090 --> 00:05:08,060 Secara fisik, tentu saja, masukan di sini adalah sejumlah kertas direkatkan 117 00:05:08,060 --> 00:05:09,400 dalam bentuk buku telepon. 118 00:05:09,400 --> 00:05:13,660 Tetapi komputer, laptop course-- dan desktop dan bahkan telepon 119 00:05:13,660 --> 00:05:16,430 ini days-- mereka adalah perangkat elektronik. 120 00:05:16,430 --> 00:05:20,920 >> Dan pada akhir hari, apa satu-satunya input ke komputer? 121 00:05:20,920 --> 00:05:23,299 Nah, itu sesuatu seperti kabel listrik ini di sini. 122 00:05:23,299 --> 00:05:25,590 Saya pasang ke dinding, dan Saya mendapatkan aliran elektron, 123 00:05:25,590 --> 00:05:27,048 yang memungkinkan saya untuk menjalankan mesin. 124 00:05:27,048 --> 00:05:30,420 Atau mungkin mereka elektron yang dibuat dengan cara baterai saya. 125 00:05:30,420 --> 00:05:33,790 Tetapi pada akhir hari, itu satu-satunya hal yang akan ke laptop saya. 126 00:05:33,790 --> 00:05:35,772 Dan begitu banyak menarik hal ini akhirnya 127 00:05:35,772 --> 00:05:37,480 keluar, apakah dengan cara printer 128 00:05:37,480 --> 00:05:40,320 atau layar atau audially atau sejenisnya. 129 00:05:40,320 --> 00:05:45,320 >> Jadi, jika semua yang kita miliki sebagai kami masukan mendasar untuk komputer 130 00:05:45,320 --> 00:05:49,160 adalah listrik, jadi hanya elektron akan masuk dan atau keluar, 131 00:05:49,160 --> 00:05:54,465 dan bagaimana kita dapat menggunakan input yang untuk benar-benar mewakili informasi? 132 00:05:54,465 --> 00:05:57,090 Dengan kata lain, bagaimana kita mendapatkan dari aliran sederhana listrik 133 00:05:57,090 --> 00:06:00,350 untuk mewakili aktual angka atau huruf yang sebenarnya 134 00:06:00,350 --> 00:06:03,620 atau gambar sebenarnya pada layar atau film aktual atau e-mail 135 00:06:03,620 --> 00:06:05,690 atau jumlah tersebut konsep tingkat lebih tinggi, 136 00:06:05,690 --> 00:06:07,680 jika Anda mau, bahwa pada akhir hari entah bagaimana 137 00:06:07,680 --> 00:06:11,950 telah disimpan dalam ini perangkat mekanik elektronik 138 00:06:11,950 --> 00:06:16,260 menggunakan hanya mereka ingredients-- sederhana elektron yang datang dan keluar? 139 00:06:16,260 --> 00:06:19,530 >> Jadi akan terlihat bahwa, dalam bentuk yang paling sederhana, 140 00:06:19,530 --> 00:06:23,260 satu-satunya jenis negara Saya miliki di dunia saya, jadi 141 00:06:23,260 --> 00:06:25,350 untuk speak-- kondisi di dunia-- saya adalah baik 142 00:06:25,350 --> 00:06:33,020 Saya memiliki elektron mengalir, listrik mengalir, atau saya lakukan not-- sebagainya, off. 143 00:06:33,020 --> 00:06:35,850 Dan mari kita meresmikan dan mematikan, sebagai seorang ilmuwan komputer mungkin, 144 00:06:35,850 --> 00:06:37,255 hanya dengan 1 dan 0. 145 00:06:37,255 --> 00:06:39,880 Mari kita menjelaskan beberapa sewenang-wenang namun jumlah yang konsisten untuk itu. 146 00:06:39,880 --> 00:06:41,970 1 berarti pada, 0 berarti off. 147 00:06:41,970 --> 00:06:45,427 Atau Anda mungkin juga melihat ini sebagai cara yang benar dan cara yang salah. 148 00:06:45,427 --> 00:06:47,510 Anda juga bisa melakukan hitam dan putih atau merah dan biru. 149 00:06:47,510 --> 00:06:48,759 Anda hanya perlu dua deskriptor. 150 00:06:48,759 --> 00:06:52,240 Dan ilmuwan komputer akan umumnya hanya menggunakan 0 dan 1. 151 00:06:52,240 --> 00:06:58,980 >> Jadi, jika itu yang terjadi, hanya alfabet saya adalah terdiri dari 0 dan 1, bagaimana 152 00:06:58,980 --> 00:07:03,360 mungkin aku bisa mendapatkan untuk bahkan nomor 2 di komputer, apalagi jumlah 3 153 00:07:03,360 --> 00:07:06,140 atau huruf alfabet atau gambar atau film? 154 00:07:06,140 --> 00:07:08,910 Bagaimana kita semacam bootstrap diri dari prinsip dasar ini 155 00:07:08,910 --> 00:07:12,080 0 dan 1 dan benar-benar mewakili sesuatu yang lebih menarik? 156 00:07:12,080 --> 00:07:14,430 >> Nah, mari kita mengajukan pertanyaan yang ditahan untuk sesaat 157 00:07:14,430 --> 00:07:17,520 dan mempertimbangkan sesuatu mudah-mudahan akrab, 158 00:07:17,520 --> 00:07:21,150 bahkan jika Anda belum benar-benar berpikir tentang itu secara rinci selama 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 tahun lagi. 160 00:07:22,520 --> 00:07:24,780 Ini adalah apa? 161 00:07:24,780 --> 00:07:28,050 Bagaimana Anda mengucapkan itu? 162 00:07:28,050 --> 00:07:30,770 Bukan pertanyaan jebakan. 163 00:07:30,770 --> 00:07:32,950 Sejumlah, tapi apa itu? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3, atau 123. 165 00:07:34,842 --> 00:07:37,800 Dan aku suka bagaimana Anda mengatakan 1, 2, 3, karena itulah salah satu cara melihatnya. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, itu berurutan dari tiga simbol. 167 00:07:39,870 --> 00:07:42,005 Ini gambar yang kita sekarang memiliki kata-kata untuk. 168 00:07:42,005 --> 00:07:44,880 Dan jika Anda semacam membaca semuanya bersama-sama, manusia yang khas dalam bahasa Inggris 169 00:07:44,880 --> 00:07:46,600 akan mengatakan 123. 170 00:07:46,600 --> 00:07:48,350 Dan itu semacam Konsep tingkat yang lebih tinggi, 171 00:07:48,350 --> 00:07:50,340 terasa seperti sejumlah cukup besar. 172 00:07:50,340 --> 00:07:51,490 >> Tapi bagaimana kita sampai di sana? 173 00:07:51,490 --> 00:07:54,640 Nah, mungkin sementara karena Anda sudah berpikir tentang hal seperti ini, 174 00:07:54,640 --> 00:07:56,680 tapi kembali pada hari saya, saya jenis belajar ini 175 00:07:56,680 --> 00:08:01,030 sebagai kolom 1 ini, 10 ini kolom, dan kolom 100. 176 00:08:01,030 --> 00:08:06,400 Sehingga Lakisa mengatakan, itu adalah 1, 2, 3, tetapi juga 123. 177 00:08:06,400 --> 00:08:08,700 Tapi bagaimana kita dapatkan dari mantan untuk yang terakhir? 178 00:08:08,700 --> 00:08:12,340 >> Nah, Anda biasanya akan dilakukan di kolom 100, saya memiliki 1. 179 00:08:12,340 --> 00:08:14,794 Jadi itu seperti mengatakan 100 kali 1. 180 00:08:14,794 --> 00:08:16,210 Dan kemudian di kolom 10, saya memiliki 2. 181 00:08:16,210 --> 00:08:18,464 Jadi itu seperti mengatakan 10 kali 2. 182 00:08:18,464 --> 00:08:19,630 Dalam kolom 1, saya memiliki 3. 183 00:08:19,630 --> 00:08:21,720 Jadi itu seperti mengatakan 1 kali 3. 184 00:08:21,720 --> 00:08:24,290 >> Dan jika saya menambahkan hal-hal ini bersama-sama, ini, tentu saja, 185 00:08:24,290 --> 00:08:27,470 adalah 100 ditambah 10 ditambah 3. 186 00:08:27,470 --> 00:08:31,750 Dan oh, itu sebabnya aku mendapatkan ini Gagasan tingkat yang lebih tinggi dari 123. 187 00:08:31,750 --> 00:08:37,220 Itu hanya matematika dasar, dimana ini Simbol memiliki bobot kepada mereka, jika Anda 188 00:08:37,220 --> 00:08:39,620 akan, placeholder atau nilai kolom. 189 00:08:39,620 --> 00:08:42,090 Dan setelah saya kalikan semuanya keluar, saya mendapatkan nomor ini. 190 00:08:42,090 --> 00:08:47,840 >> Jadi berapa banyak dari Anda tahu bagaimana berbicara binary-- 0 dan 1's-- seperti komputer? 191 00:08:47,840 --> 00:08:50,410 OK, sempurna, tidak ada, atau tidak satupun dari yang Anda pikir Anda lakukan. 192 00:08:50,410 --> 00:08:52,550 Tapi aku akan mengklaim Anda benar-benar tahu ini sudah. 193 00:08:52,550 --> 00:08:55,330 Kita hanya perlu semacam men-tweak Model mental kita sedikit. 194 00:08:55,330 --> 00:08:57,250 Namun proses ini persis sama. 195 00:08:57,250 --> 00:09:01,460 >> Biarkan aku meninggalkan satu ini di sana dan bukannya menarik ini turun sejenak. 196 00:09:01,460 --> 00:09:05,060 Dalam dunia komputer, kita hanya memiliki 0 dan 1. 197 00:09:05,060 --> 00:09:07,240 Dan hal itu akan mengubah adalah apa? 198 00:09:07,240 --> 00:09:10,920 Nah, di dunia manusia saya, sistem desimal, Desember makna 10, 199 00:09:10,920 --> 00:09:12,740 Saya memiliki berapa banyak angka di pembuangan saya? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, kan? 202 00:09:16,540 --> 00:09:17,880 0 sampai 9, tentu saja. 203 00:09:17,880 --> 00:09:21,210 >> Dan itulah mengapa kita memiliki Tempat 10 dan tempat 100. 204 00:09:21,210 --> 00:09:22,380 Mana yang datang dari? 205 00:09:22,380 --> 00:09:24,430 Nah, ini adalah 10 pangkat 0. 206 00:09:24,430 --> 00:09:28,440 Ini adalah 10 pangkat dari 1, 10 dengan kekuatan 2, dan sebagainya. 207 00:09:28,440 --> 00:09:32,110 Anda hanya terus mengalikan kolom Anda 10, memulai dengan hanya 1 208 00:09:32,110 --> 00:09:33,700 di satu paling kanan di sini. 209 00:09:33,700 --> 00:09:35,490 >> Jadi dalam dunia komputer, jika Anda hanya 210 00:09:35,490 --> 00:09:39,600 memiliki makna bi binary-- 2-- atau 0 dan 1, kita hanya 211 00:09:39,600 --> 00:09:42,420 benar-benar perlu untuk mengubah dasar matematika itu. 212 00:09:42,420 --> 00:09:46,410 Jadi dengan kata lain, sekarang kita hanya akan memiliki kolom 1 dan the-- 213 00:09:46,410 --> 00:09:51,270 mana ini going-- kolom 2 ini, kolom 4 ini, dan mungkin di luar. 214 00:09:51,270 --> 00:09:52,250 Mengapa demikian? 215 00:09:52,250 --> 00:09:55,650 Nah, ini adalah 2 kekuatan 0-th. 216 00:09:55,650 --> 00:09:57,270 Ini adalah 2 1. 217 00:09:57,270 --> 00:09:59,610 Ini adalah 2 ke 2, dan seterusnya. 218 00:09:59,610 --> 00:10:04,910 >> Jadi sedangkan di sini, kami memiliki 1, 10 ini, 100, 1.000 ', 10.000 ini, 100.000 ini, 1 219 00:10:04,910 --> 00:10:10,560 jutaan, dan sebagainya, di sini kami memiliki 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Anda hanya terus mengalikan dengan 2, bukannya menjaga mengalikan dengan 10. 221 00:10:13,950 --> 00:10:16,780 Jadi sekarang, jika tujuan di tangan adalah untuk mewakili 222 00:10:16,780 --> 00:10:20,240 nomor hanya menggunakan 0 dan 1, mari kita mempertimbangkan bagaimana kita sampai di sana. 223 00:10:20,240 --> 00:10:26,540 >> Ini, tentu saja, adalah pola 0 0 0, tapi apa jumlah konseptual 224 00:10:26,540 --> 00:10:27,490 apakah itu mewakili? 225 00:10:27,490 --> 00:10:35,430 Nah, 4 kali 0 ditambah 2 kali 0 ditambah 1 kali 0, mari kita tambahkan mereka bersama-sama. 226 00:10:35,430 --> 00:10:40,030 4 kali 0, tentu saja, 0, ditambah 2 kali 0, tentu saja, 0 ditambah 1 kali 0 227 00:10:40,030 --> 00:10:40,850 adalah, tentu saja, 0. 228 00:10:40,850 --> 00:10:44,910 Jadi ah, ini merupakan Jumlah kita manusia kenal sebagai 0. 229 00:10:44,910 --> 00:10:47,810 >> Nah, sekarang, mari kita sangat maju cepat cepat. 230 00:10:47,810 --> 00:10:53,600 Jika saya bukan tidak mewakili 0 0 0, tapi mari kita lakukan 1 0 1, 231 00:10:53,600 --> 00:10:57,010 yang mungkin bagaimana Lakisa, sebelumnya, hanya akan mengucapkannya 1 0 1. 232 00:10:57,010 --> 00:11:01,020 Tapi sekarang, bagaimana kita bawa ke yang lebih tinggi tingkat jumlah kita manusia mungkin tahu? 233 00:11:01,020 --> 00:11:04,220 Jadi apa nomor ini? 234 00:11:04,220 --> 00:11:06,060 Ini 5, jumlah yang kita kenal sebagai 5. 235 00:11:06,060 --> 00:11:06,870 >> Nah, kenapa begitu? 236 00:11:06,870 --> 00:11:09,620 Nah, kita bisa benar-benar semacam berjalan melalui itu metodis 237 00:11:09,620 --> 00:11:14,880 4 kali 1, 2 kali 0, 1 kali 1. 238 00:11:14,880 --> 00:11:19,880 Tambahkan mereka bersama-sama, sehingga ini adalah 4 ditambah 0 ditambah 1. 239 00:11:19,880 --> 00:11:21,577 Dan itu, memang, 5. 240 00:11:21,577 --> 00:11:24,660 Jadi itu semakin sedikit membosankan sekarang melakukan aritmatika lagi dan lagi. 241 00:11:24,660 --> 00:11:26,300 Namun proses ini persis sama. 242 00:11:26,300 --> 00:11:28,380 >> Satu-satunya hal yang memiliki berubah dalam dunia kita 243 00:11:28,380 --> 00:11:32,740 adalah bahwa kolom kami 1, 2, 4, 8, 16, dan sebagainya, bukan 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1.000. 245 00:11:33,740 --> 00:11:40,000 Dan itu hanya karena alfabet kami memiliki menyusut dari 0 sampai 9 hanya 0-1. 246 00:11:40,000 --> 00:11:50,851 >> Jadi sebagai kuis kecil di sini, bagaimana akan Anda merupakan jumlah 7 dalam biner? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Nah, 0, Anda berarti 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Mengatakannya lagi, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Sempurna. 253 00:12:03,550 --> 00:12:04,370 Mengapa demikian? 254 00:12:04,370 --> 00:12:08,530 Ini efektif 4 ditambah 2 ditambah 1. 255 00:12:08,530 --> 00:12:09,580 Sangat baik. 256 00:12:09,580 --> 00:12:14,364 >> Bagaimana kita mewakili sedikit another-- bagaimana nomor 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Dekat, tapi mundur. 259 00:12:20,690 --> 00:12:21,660 Jadi apa ini? 260 00:12:21,660 --> 00:12:26,290 Adalah 4 ditambah 1, jadi itu 5 lagi. 261 00:12:26,290 --> 00:12:28,310 >> Jadi what's-- Maaf, Karina? 262 00:12:28,310 --> 00:12:29,220 0 1 0. 263 00:12:29,220 --> 00:12:34,762 0 1 0 akan menjadi 2, karena lagi-lagi, bahkan jika semacam tidak melompat keluar pada Anda, 264 00:12:34,762 --> 00:12:35,470 hanya melakukan matematika. 265 00:12:35,470 --> 00:12:40,390 4 kali 0, 0, 2 kali 1 adalah 2, 1 kali 0 adalah 0. 266 00:12:40,390 --> 00:12:42,830 Jadi ini adalah jumlah yang kita kenal sebagai 2. 267 00:12:42,830 --> 00:12:44,030 >> Bagaimana dengan angka 8? 268 00:12:44,030 --> 00:12:51,240 269 00:12:51,240 --> 00:12:52,730 Hm? 270 00:12:52,730 --> 00:12:53,330 Baik. 271 00:12:53,330 --> 00:12:56,130 Jadi kita agak perlu placeholder lain. 272 00:12:56,130 --> 00:12:59,570 Kita perlu 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 Dan itu benar semacam kami sistem desimal sekolah tua. 274 00:13:02,280 --> 00:13:05,280 Bagaimana Anda merupakan jumlah 1.000? 275 00:13:05,280 --> 00:13:08,480 >> Nah, Anda tampaknya akan menjadi jenis di tempat yang sulit, 276 00:13:08,480 --> 00:13:10,390 jika meminta Anda untuk mewakili jumlah 1.000, 277 00:13:10,390 --> 00:13:14,960 karena bahkan jika Anda memberikan diri Anda seperti 9 ini, 9 ini, 0 ini, 278 00:13:14,960 --> 00:13:18,730 yang merupakan jumlah terbesar Anda memiliki, Anda tidak cukup sampai ke 1.000. 279 00:13:18,730 --> 00:13:26,920 Jadi jika Anda 1000, Anda hanya perlu lain posisi, sehingga Anda dapat melakukan 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo jumlah 1.000. 281 00:13:29,460 --> 00:13:34,200 >> Jadi sekarang, mari kita peta semacam ini diskusi konseptual kembali ke hardware, 282 00:13:34,200 --> 00:13:37,470 di mana lagi, masukan itu hanya ini sedikit kabel listrik, listrik 283 00:13:37,470 --> 00:13:39,300 datang dan mengalir keluar. 284 00:13:39,300 --> 00:13:44,740 Dan untuk itu harus dipetakan dari sini untuk ada, baik, apa yang kita benar-benar membutuhkan? 285 00:13:44,740 --> 00:13:49,460 Nah, Anda bisa memikirkan berada di dalam sebuah komputer, sejumlah besar bola lampu, 286 00:13:49,460 --> 00:13:50,450 jika Anda mau. 287 00:13:50,450 --> 00:13:52,040 Mereka benar-benar disebut transistor. 288 00:13:52,040 --> 00:13:55,121 Dan transistor hanya switch yang dapat menjadi on atau off. 289 00:13:55,121 --> 00:13:56,870 Jadi Anda bisa memikirkan transistor yang ada di 290 00:13:56,870 --> 00:14:00,730 adalah memungkinkan listrik mengalir dan transistor yang off berhenti 291 00:14:00,730 --> 00:14:02,170 listrik mengalir. 292 00:14:02,170 --> 00:14:04,130 Dan bukannya mengambil lebih lampu di sini, 293 00:14:04,130 --> 00:14:06,450 mengapa saya tidak melakukan hal semacam ini gaya sekolah baru. 294 00:14:06,450 --> 00:14:11,360 Jadi ini mungkin 1, senter berada di, hanya nyaris sekalipun. 295 00:14:11,360 --> 00:14:14,050 Dan mungkin ini 0, dan sekarang itu off. 296 00:14:14,050 --> 00:14:18,277 >> Jadi menggunakan perangkat fisik ini, saya sekarang dapat mewakili sistem biner. 297 00:14:18,277 --> 00:14:19,235 Aku hanya perlu dua negara. 298 00:14:19,235 --> 00:14:21,660 Tidak peduli apa warna itu atau apa itu. 299 00:14:21,660 --> 00:14:25,920 Yang penting adalah bahwa saya memiliki satu negara dan negara lain off. 300 00:14:25,920 --> 00:14:30,605 Jadi menggunakan ponsel saya di sini, bagaimana saya merupakan jumlah yang kita kenal sebagai 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 Atau menempatkan ekuivalen, apa nomor saya mewakili sekarang? 303 00:14:38,550 --> 00:14:39,810 0, karena perangkat tidak aktif. 304 00:14:39,810 --> 00:14:41,560 >> Dan jika saya melakukan ini? 305 00:14:41,560 --> 00:14:43,583 Dan sekarang, bagaimana saya merupakan jumlah 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Dapatkah saya meminjam telepon Anda di sini, seperti yang kita lakukan kemarin? 308 00:14:50,930 --> 00:14:58,490 Jadi mari kita lihat, jadi jika saya ingin mewakili nomor 2, apakah ini nomor 2? 309 00:14:58,490 --> 00:14:59,050 Tidak. 310 00:14:59,050 --> 00:15:02,250 Apa nomor aku sengaja mewakili di sini? 311 00:15:02,250 --> 00:15:03,550 Ini sebenarnya adalah nomor 3. 312 00:15:03,550 --> 00:15:05,008 >> Jadi mana yang harus saya ingin mematikan? 313 00:15:05,008 --> 00:15:09,634 Telepon hitam or-- baik, jika they're-- telepon hitam atau telepon putih? 314 00:15:09,634 --> 00:15:10,300 Telepon putih. 315 00:15:10,300 --> 00:15:17,020 Jadi jika saya mematikan ini dan kami baris itu di sini, kami memiliki 1 316 00:15:17,020 --> 00:15:19,487 di tempat 2 dan 0 dalam 1 ini tempat. 317 00:15:19,487 --> 00:15:21,195 Dan jadi aku sekarang mewakili nomor 2. 318 00:15:21,195 --> 00:15:24,680 Dan ini, tentu saja, akan menjadi nomor 3, karena sekarang kedua lampu ini 319 00:15:24,680 --> 00:15:25,350 yang. 320 00:15:25,350 --> 00:15:27,480 >> Dan aku akan berhenti di sini, tapi masuk akal 321 00:15:27,480 --> 00:15:31,100 jika saya ingin mewakili 4 atau 8 atau lebih tinggi, 322 00:15:31,100 --> 00:15:32,529 Aku akan membutuhkan ponsel lebih. 323 00:15:32,529 --> 00:15:33,820 Tapi itu semua yang terjadi. 324 00:15:33,820 --> 00:15:37,800 Jadi, jika Anda pernah mendengar bahwa dalam a-- terima komputer you-- 325 00:15:37,800 --> 00:15:42,269 adalah jutaan transistor, yang hanya jutaan switch kecil kecil. 326 00:15:42,269 --> 00:15:44,310 Dan mereka tidak ringan lampu yang menghidupkan dan mematikan, 327 00:15:44,310 --> 00:15:48,340 tetapi mereka baik memungkinkan listrik mengalir di suatu tempat atau menghentikannya. 328 00:15:48,340 --> 00:15:52,140 Dan jadi ada dua Anda states-- on atau off, atau menonaktifkan. 329 00:15:52,140 --> 00:15:55,730 >> Jadi kita akan tampak sekarang memiliki kemampuan ini 330 00:15:55,730 --> 00:16:00,590 untuk mewakili konsep yang kami ingin di hardware sebenarnya. 331 00:16:00,590 --> 00:16:05,520 Tapi semua kita miliki sekarang adalah kemampuan untuk mewakili angka itu akan tampak. 332 00:16:05,520 --> 00:16:08,580 Jadi bagaimana kita pergi tentang mewakili huruf abjad, yang 333 00:16:08,580 --> 00:16:12,310 terasa seperti semacam berikutnya fitur Anda ingin menambah komputer modern 334 00:16:12,310 --> 00:16:14,280 setelah Anda memiliki nomor? 335 00:16:14,280 --> 00:16:16,930 >> Dan memang, jika Anda berpikir tentang itu, secara historis, komputer 336 00:16:16,930 --> 00:16:19,426 diperkenalkan benar-benar untuk melayani sebagai kalkulator numerik. 337 00:16:19,426 --> 00:16:21,300 Tapi tentu saja, ini hari, mereka melakukan lebih banyak lagi. 338 00:16:21,300 --> 00:16:23,799 Bahkan ketika mereka boot up, Anda biasanya melihat satu atau lebih kata-kata. 339 00:16:23,799 --> 00:16:27,420 Jadi bagaimana Anda mewakili kata-kata, jika semua yang Anda miliki adalah, sekali lagi, 340 00:16:27,420 --> 00:16:31,054 listrik pada akhir hari, atau ekuivalen 0 dan 1? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Ya. 343 00:16:35,690 --> 00:16:38,320 Ya, maksudku, kita seperti melakukan kemarin ini dalam beberapa bentuk, 344 00:16:38,320 --> 00:16:40,200 di mana di beberapa titik, Saya pikir saya sewenang-wenang 345 00:16:40,200 --> 00:16:46,741 mengatakan bahwa, jika kita ingin mewakili huruf A, kita hanya bisa menyebut bahwa 1. 346 00:16:46,741 --> 00:16:49,990 Itu dalam konteks kriptografi, di mana kita hanya perlu semacam kode, 347 00:16:49,990 --> 00:16:51,160 semacam pemetaan. 348 00:16:51,160 --> 00:16:56,680 >> Jadi mungkin A akan diwakili sebagai 1, dan B akan diwakili sebagai 2, 349 00:16:56,680 --> 00:17:01,560 dan Z akan diwakili sebagai 26, misalnya. 350 00:17:01,560 --> 00:17:07,430 Dan kemudian satu-satunya pengecualian adalah bahwa jika saya akan mengkodekan huruf dalam email-email saya 351 00:17:07,430 --> 00:17:10,430 atau dalam pesan teks saya nomor, Anda semua 352 00:17:10,430 --> 00:17:12,640 harus setuju untuk menggunakan set yang sama konvensi. 353 00:17:12,640 --> 00:17:14,619 Dan memang, dunia telah melakukan hal itu. 354 00:17:14,619 --> 00:17:18,040 >> Ada sistem di dunia disebut ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Kode untuk Informasi Interchange, yang hanya keputusan beberapa tahun 356 00:17:21,640 --> 00:17:25,720 lalu bahwa manusia dibuat bahwa memutuskan bahwa A akan sama, tidak 357 00:17:25,720 --> 00:17:32,260 1, 2, dan 26, dan forth-- itu sedikit different-- tapi 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 Dan aku akan menarik sebuah grafik hanya dalam beberapa saat. 359 00:17:34,010 --> 00:17:34,580 Tapi itu sewenang-wenang. 360 00:17:34,580 --> 00:17:36,329 Tapi itu tidak masalah bahwa itu sewenang-wenang. 361 00:17:36,329 --> 00:17:38,620 dunia harus hanya menjadi konsisten. 362 00:17:38,620 --> 00:17:40,540 >> Sekarang, baru-baru ini, ada sesuatu yang lebih menarik 363 00:17:40,540 --> 00:17:45,430 disebut Unicode, karena jenis di dunia dari menyadari, setelah menciptakan komputer, 364 00:17:45,430 --> 00:17:50,977 bahwa ada lebih dari baik 256 simbol di dunia 365 00:17:50,977 --> 00:17:53,560 bahwa kita mungkin ingin untuk mewakili, terutama ketika Anda memperkenalkan 366 00:17:53,560 --> 00:17:58,420 bahasa-bahasa Asia dan simbol lainnya yang membutuhkan lebih ekspresif daripada Anda 367 00:17:58,420 --> 00:18:02,150 dapat disimpan dalam versi awal kode ini, yang disebut ASCII. 368 00:18:02,150 --> 00:18:05,250 Jadi Unicode sebenarnya memungkinkan Anda menggunakan lebih 0 dan 2. 369 00:18:05,250 --> 00:18:08,830 Secara khusus, Anda tetap mendengar byte kata dalam masyarakat dan bahkan hanya 370 00:18:08,830 --> 00:18:09,400 kemarin. 371 00:18:09,400 --> 00:18:12,040 Dan byte adalah apa lagi? 372 00:18:12,040 --> 00:18:14,840 >> Apa byte? 373 00:18:14,840 --> 00:18:15,700 Ini hanya 8 bit. 374 00:18:15,700 --> 00:18:17,150 Jadi, apa yang benar-benar berarti? 375 00:18:17,150 --> 00:18:22,400 Nah, itu berarti, sebelumnya, ketika kami berada di berbicara tentang biner dan saya menggunakan 376 00:18:22,400 --> 00:18:28,010 sewenang-wenang tiga bit ketika kami berada di berbicara tentang binary-- 1 ini tempat, 377 00:18:28,010 --> 00:18:33,600 tempat 2 ini, dan 4 ini place-- baik, byte hanya berarti bahwa Anda sedang berbicara 378 00:18:33,600 --> 00:18:38,730 tidak dalam satuan tiga tetapi empat, lima, enam, tujuh delapan, 379 00:18:38,730 --> 00:18:46,910 yang memberi kami tempat 8 ini, 16 ini, 32 ini, 64 ini, dan 128 ini. 380 00:18:46,910 --> 00:18:50,010 >> Dengan kata lain, sedikit tidak semua yang berguna satuan ukuran, 381 00:18:50,010 --> 00:18:53,132 karena itu hanya seperti satu kecil kecil sepotong informasi, atau mematikan. 382 00:18:53,132 --> 00:18:54,840 Jadi beberapa tahun yang lalu, dunia hanya memutuskan 383 00:18:54,840 --> 00:18:59,060 itu sedikit lebih nyaman untuk berbicara di hal bytes, delapan hal pada suatu waktu. 384 00:18:59,060 --> 00:19:01,670 Dan dengan demikian lahir gagasan byte. 385 00:19:01,670 --> 00:19:03,640 Dan jadi kami memiliki delapan bit di sini. 386 00:19:03,640 --> 00:19:06,810 >> Dan ternyata, juga, untuk serupa alasan, dunia memutuskan tahun 387 00:19:06,810 --> 00:19:12,439 lalu yang mewakili surat ASCII, Anda akan menggunakan unit 8 bit. 388 00:19:12,439 --> 00:19:14,230 Jadi bahkan jika Anda tidak membutuhkan banyak, Anda 389 00:19:14,230 --> 00:19:18,130 selalu akan menggunakan 8 bit untuk mewakili huruf dari alfabet. 390 00:19:18,130 --> 00:19:20,950 Dan ini nyaman, karena kemudian jika Anda 391 00:19:20,950 --> 00:19:28,720 menerima pesan yang memiliki 0 0 0 1 1 1 1 0 diikuti oleh yang lain 1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1, jadi jika Anda menerima 16 bit, dunia hanya bisa 393 00:19:33,320 --> 00:19:37,460 berasumsi bahwa pertama 8 adalah salah satu surat dan yang kedua 8 adalah surat lain. 394 00:19:37,460 --> 00:19:39,240 >> Tidak peduli berapa banyak ada. 395 00:19:39,240 --> 00:19:41,460 Itu hanya penting bahwa kita semua konsisten 396 00:19:41,460 --> 00:19:42,950 ketika kita menafsirkan bit-bit. 397 00:19:42,950 --> 00:19:44,377 Dan ini hanya acak. 398 00:19:44,377 --> 00:19:47,210 Itu berarti sesuatu, tapi aku tidak benar-benar berpikir tentang apa artinya. 399 00:19:47,210 --> 00:19:49,620 >> Jadi itu kebohongan putih kecil. 400 00:19:49,620 --> 00:19:51,990 Awalnya, ASCII benar-benar digunakan hanya 7 bit. 401 00:19:51,990 --> 00:19:54,180 Dan bit kedelapan adalah disebut extended ASCII. 402 00:19:54,180 --> 00:19:56,290 Tapi yang penting, pada akhirnya, sama. 403 00:19:56,290 --> 00:19:58,850 dunia pada umumnya standar pada 8 bit. 404 00:19:58,850 --> 00:20:04,290 >> Jadi ini tampaknya akan menjadi sedikit membatasi, karena saya hanya bisa 405 00:20:04,290 --> 00:20:07,970 mewakili modal A, modal B melalui Z. modal 406 00:20:07,970 --> 00:20:10,940 Tapi memang tidak, jika saya pergi to-- ada sekelompok sumber 407 00:20:10,940 --> 00:20:13,695 online, misalnya, asciitable.com, ini 408 00:20:13,695 --> 00:20:16,310 akan menjadi sedikit luar biasa pada awalnya. 409 00:20:16,310 --> 00:20:18,910 Tapi aku akan menunjukkan apa yang penting di sini. 410 00:20:18,910 --> 00:20:24,090 >> Ini hanya terjadi pada be-- dan aku akan walk-- mari kita lihat, jika saya pergi ke sini. 411 00:20:24,090 --> 00:20:27,990 Berikut ini adalah, di desimal kolom, jumlah 65. 412 00:20:27,990 --> 00:20:32,201 Dan surat kolom sebelah kanan karakter, Chr, adalah huruf A. 413 00:20:32,201 --> 00:20:34,450 Dan Anda dapat mengabaikan, untuk saat ini, segala sesuatu di tengah. 414 00:20:34,450 --> 00:20:36,769 Ini adalah heksadesimal, oktal, dan kode HTML. 415 00:20:36,769 --> 00:20:39,810 Untuk situs ini hanya mencoba untuk membuang banyak informasi pada Anda sekaligus. 416 00:20:39,810 --> 00:20:42,970 Tapi semua kita peduli tentang adalah desimal kolom dan kolom karakter. 417 00:20:42,970 --> 00:20:46,190 >> Jadi dengan logika ini, apa yang nomor yang dunia 418 00:20:46,190 --> 00:20:50,510 telah memutuskan merupakan huruf kecil a? 419 00:20:50,510 --> 00:20:52,230 Ya, 97. 420 00:20:52,230 --> 00:20:55,850 Dan hanya untuk membingungkan berpotensi sedikit, 421 00:20:55,850 --> 00:21:03,715 apa nomor telah dunia memutuskan akan mewakili nomor 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Benar, karena we-- 49, tampaknya di sini, turun di bagian kiri bawah. 424 00:21:10,910 --> 00:21:12,320 >> Sekarang, apa yang saya maksud dengan itu? 425 00:21:12,320 --> 00:21:14,830 Jadi ternyata bahwa dalam sistem komputer, 426 00:21:14,830 --> 00:21:16,840 umumnya ada perbedaan mendasar 427 00:21:16,840 --> 00:21:19,920 antara jumlah dan karakter. 428 00:21:19,920 --> 00:21:22,330 Sejumlah adalah hal yang kita belajar tumbuh ketika 429 00:21:22,330 --> 00:21:23,830 kami super muda di sekolah dasar. 430 00:21:23,830 --> 00:21:25,110 Ini hal yang menghitung dengan. 431 00:21:25,110 --> 00:21:30,220 Tapi karakter hanya bentuk, sebuah mesin terbang, sehingga untuk berbicara, di layar. 432 00:21:30,220 --> 00:21:36,200 >> Sekarang, kita manusia semacam melihat sesuatu yang tampak seperti ini. 433 00:21:36,200 --> 00:21:39,060 Dan kita katakan, oh, itu adalah nomor 2. 434 00:21:39,060 --> 00:21:44,999 Tapi tidak, itu hanya simbol yang terlihat seperti apa yang kita kenal sebagai nomor 2. 435 00:21:44,999 --> 00:21:46,790 Dan jadi ada ini perbedaan mendasar 436 00:21:46,790 --> 00:21:50,340 antara angka yang sebenarnya dan karakter. 437 00:21:50,340 --> 00:21:52,130 Ini adalah angka. 438 00:21:52,130 --> 00:21:54,420 Namun umumnya, di konteks komputer, 439 00:21:54,420 --> 00:21:56,809 jika Anda malah melihat sesuatu seperti quoted-- ini 440 00:21:56,809 --> 00:21:58,600 dan Anda tidak selalu harus melihatnya dikutip, 441 00:21:58,600 --> 00:22:01,474 tapi demi discussion-- jika Anda melihat tanda kutip di nomor tersebut, 442 00:22:01,474 --> 00:22:02,730 ini sekarang karakter. 443 00:22:02,730 --> 00:22:06,330 Jadi nomor ini 2 bawahnya kap dalam komputer 444 00:22:06,330 --> 00:22:12,220 akan diwakili dengan pola bit yang mewakili nomor 445 00:22:12,220 --> 00:22:14,850 50 menurut grafik online. 446 00:22:14,850 --> 00:22:18,300 >> Namun, jika komputer hanya melihat ini, ini 447 00:22:18,300 --> 00:22:24,580 akan diwakili dengan pola bit 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 Padahal, karakter ini akan sebenarnya diwakili as-- dan sekarang, 449 00:22:29,595 --> 00:22:34,710 Saya harus berpikir harder-- sedikit jadi ini Karakter akan diwakili dengan 0 450 00:22:34,710 --> 00:22:39,080 0 1-- apa yang saya butuhkan di sini? 451 00:22:39,080 --> 00:22:44,450 0 0 1 1 0 0 1 0. 452 00:22:44,450 --> 00:22:45,480 Bagaimana saya melakukan ini? 453 00:22:45,480 --> 00:22:49,580 Nah ini adalah nomor 50, jika Anda kalikan dengan menggunakan kolom ini, 454 00:22:49,580 --> 00:22:53,530 ini adalah nomor 2, dan seterusnya itu sebabnya ada dikotomi ini. 455 00:22:53,530 --> 00:22:55,850 >> Dan ini hanya teaser sekarang ke fitur 456 00:22:55,850 --> 00:22:59,710 yang ada dalam bahasa pemrograman bahwa kita akan menyentuh pada singkat hari ini. 457 00:22:59,710 --> 00:23:01,950 Dalam bahasa pemrograman, Anda memiliki umumnya, 458 00:23:01,950 --> 00:23:04,495 tapi tidak selalu, hal-hal sebut jenis data yang berbeda. 459 00:23:04,495 --> 00:23:06,870 Dengan kata lain, programmer-- sebuah ketika ia menulis, 460 00:23:06,870 --> 00:23:11,150 programmer bisa memutuskan apa Format untuk menyimpan nya data. 461 00:23:11,150 --> 00:23:14,120 Anda dapat menyimpan data sebagai angka mentah, seperti nomor 2. 462 00:23:14,120 --> 00:23:17,940 Atau Anda dapat menyimpannya sebagai string, atau urutan karakter 463 00:23:17,940 --> 00:23:21,550 yang biasanya Anda akan mengungkapkan dengan kutipan dalam bahasa pemrograman Anda. 464 00:23:21,550 --> 00:23:25,230 >> Anda dapat memiliki hal-hal called-- Saya akan menyederhanakan dan memanggil mereka 465 00:23:25,230 --> 00:23:28,870 Numbers nyata sehingga angka yang tidak bilangan bulat seperti nomor 2, 466 00:23:28,870 --> 00:23:31,310 tapi nomor seperti 4.56. 467 00:23:31,310 --> 00:23:33,490 Jadi bilangan real juga bisa memiliki titik desimal, 468 00:23:33,490 --> 00:23:36,340 jadi itu berbeda mendasar sepotong data di komputer. 469 00:23:36,340 --> 00:23:41,920 Dan kemudian Anda bahkan dapat memiliki jenis data lainnya masih. 470 00:23:41,920 --> 00:23:45,810 Jadi itu hanya teaser benar-benar dari yang paling sederhana dari keputusan desain 471 00:23:45,810 --> 00:23:50,960 bahwa programmer mungkin membuat bawah tenda. 472 00:23:50,960 --> 00:23:52,925 >> Jadi pertanyaan dulu? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 Jadi mari kita coba untuk membuat ini sedikit lebih nyata. 475 00:23:59,860 --> 00:24:02,120 hardware ini tidak sehingga banyak di gunakan lagi. 476 00:24:02,120 --> 00:24:07,420 Tapi kebanyakan orang di ruangan ini mungkin tumbuh dengan dan masih menggunakan hard drive 477 00:24:07,420 --> 00:24:08,010 dalam beberapa cara. 478 00:24:08,010 --> 00:24:10,100 >> Meskipun sebagian besar laptop kami tidak lagi 479 00:24:10,100 --> 00:24:15,900 memiliki perangkat yang beroperasi seperti ini, bukannya laptop saat ini umumnya 480 00:24:15,900 --> 00:24:18,590 memiliki solid state drive tanpa bagian yang bergerak. 481 00:24:18,590 --> 00:24:22,840 Dan yang cenderung lebih mahal, sayangnya, tapi sedikit lebih cepat 482 00:24:22,840 --> 00:24:27,230 dan a-- baik, sering, jauh lebih cepat, yang merupakan salah satu alasan. 483 00:24:27,230 --> 00:24:28,980 Dan juga tidak menghasilkan lebih banyak panas. 484 00:24:28,980 --> 00:24:31,680 Hal ini dapat lebih kecil, sehingga umumnya bersih positif. 485 00:24:31,680 --> 00:24:35,030 >> Tapi ini memungkinkan kita untuk memetakan sedikit lebih konkret apa 486 00:24:35,030 --> 00:24:38,460 kita sedang berbicara tentang di 0 dan 1 ini tingkat sekarang untuk perangkat fisik. 487 00:24:38,460 --> 00:24:40,810 Itu salah satu hal bagi saya untuk berbicara tentang 0 dan 1 dalam hal 488 00:24:40,810 --> 00:24:43,990 telepon saya atau abstrak dalam hal dari switch berada di dan off. 489 00:24:43,990 --> 00:24:45,340 Tapi apa tentang hard drive? 490 00:24:45,340 --> 00:24:48,495 Di laptop Anda, jika Anda memiliki lebih tua satu, atau di komputer desktop, 491 00:24:48,495 --> 00:24:51,200 atau pasti di server hari ini, di mana Anda memiliki 492 00:24:51,200 --> 00:24:53,070 hard drive yang memiliki terabyte ruang, 493 00:24:53,070 --> 00:24:55,560 4 terabyte ruang, baik apa artinya? 494 00:24:55,560 --> 00:24:59,560 >> Sebuah hard drive dengan 1 terabyte sarana ruang 495 00:24:59,560 --> 00:25:03,890 ada 1 triliun byte di dalamnya entah bagaimana, 496 00:25:03,890 --> 00:25:10,450 atau ekuivalen 8 triliun bit di dalam. 497 00:25:10,450 --> 00:25:16,240 1 terabyte akan 8 terabit atau 1 triliun bit, yang 498 00:25:16,240 --> 00:25:19,330 berarti jika Anda memiliki hard drive, Anda harus entah bagaimana 499 00:25:19,330 --> 00:25:22,400 atau lainnya satu triliun 0 ini dan 1 di dalamnya. 500 00:25:22,400 --> 00:25:25,360 Dan jika kita hanya melihat pada gambar sewenang-wenang dari hard drive 501 00:25:25,360 --> 00:25:30,110 perwakilan, ini adalah apa yang sulit berkendara biasanya akan terlihat seperti di dalam. 502 00:25:30,110 --> 00:25:32,600 >> Ini, juga, adalah jenis seperti pemain fonograf tua 503 00:25:32,600 --> 00:25:35,350 tetapi umumnya dengan beberapa catatan di dalam, jadi 504 00:25:35,350 --> 00:25:38,270 untuk speak-- beberapa piring-piring, karena mereka disebut, 505 00:25:38,270 --> 00:25:42,259 logam disk melingkar, dan kemudian kepala membaca sedikit, 506 00:25:42,259 --> 00:25:43,550 seperti pemain catatan lama. 507 00:25:43,550 --> 00:25:46,589 Dan bahwa kepala membaca bergerak kembali dan sebagainya dan entah bagaimana membaca bit. 508 00:25:46,589 --> 00:25:49,380 Dan apa yang ada di piring-piring ini, bahkan meskipun kita manusia tidak dapat melihat mereka, 509 00:25:49,380 --> 00:25:52,757 baik dalam realitas atau dalam gambar ini, ada partikel magnetik kecil kecil. 510 00:25:52,757 --> 00:25:55,090 Dan bahkan jika Anda sudah lama lupa bagaimana listrik bekerja, 511 00:25:55,090 --> 00:25:57,550 partikel magnetik yang dibebankan pada umumnya 512 00:25:57,550 --> 00:26:00,570 memiliki ujung utara dan selatan yang end-- begitu utara dan selatan. 513 00:26:00,570 --> 00:26:03,000 Dan dunia hanya memutuskan beberapa waktu lalu 514 00:26:03,000 --> 00:26:06,570 bahwa, jika protokol magnetik pada dasarnya sejajar seperti ini, utara-selatan, 515 00:26:06,570 --> 00:26:07,610 mari kita sebut bahwa 1. 516 00:26:07,610 --> 00:26:10,470 Jika itu bukan selatan-utara, mari kita sebut bahwa 0. 517 00:26:10,470 --> 00:26:13,350 Dan jadi jika Anda memiliki Anda pembuangan triliun 518 00:26:13,350 --> 00:26:16,300 kecil kecil magnetik particles-- dan mudah-mudahan, 519 00:26:16,300 --> 00:26:18,740 kecerdikan hardware di Untuk membalik-orang di sekitar 520 00:26:18,740 --> 00:26:24,450 seperti yang Anda lihat fit-- jika Anda ingin mewakili sejumlah 0, Anda 521 00:26:24,450 --> 00:26:28,120 hanya perlu 8 partikel magnetik semua selaras seperti ini. 522 00:26:28,120 --> 00:26:30,330 Dan jika Anda ingin mewakili delapan 1 ini, Anda hanya 523 00:26:30,330 --> 00:26:33,170 membutuhkan 8 partikel magnetik sejajar kembali untuk kembali ke belakang seperti ini. 524 00:26:33,170 --> 00:26:35,515 >> Apa yang saya maksud dengan partikel magnetik? 525 00:26:35,515 --> 00:26:38,390 Terus terang, bertahun-tahun kemudian, hal yang masih datang ke pikiran saya 526 00:26:38,390 --> 00:26:42,139 orang ini, jika Anda dibesarkan dengan hal ini. 527 00:26:42,139 --> 00:26:43,930 Ini adalah little-- untuk mereka yang asing a 528 00:26:43,930 --> 00:26:47,810 mainan anak-anak kecil yang memiliki pria berbulu ini di sini 529 00:26:47,810 --> 00:26:51,690 yang memiliki semua ini hitam kecil kecil partikel magnetik yang datang dengan itu. 530 00:26:51,690 --> 00:26:53,930 Dan menggunakan tongkat merah, yang hanya magnet, 531 00:26:53,930 --> 00:26:58,460 Anda dapat semacam memberinya kumis atau alis atau rambut atau apa pun pada dirinya. 532 00:26:58,460 --> 00:27:00,710 Jadi sebenarnya, jika kita tampilannya di, misalnya, ini 533 00:27:00,710 --> 00:27:02,950 adalah jenis permainan Anda bisa bermain dengan Wooly Willy. 534 00:27:02,950 --> 00:27:06,570 >> Dan ini hanya untuk mengatakan, ini adalah partikel magnetik jauh lebih besar 535 00:27:06,570 --> 00:27:09,890 dari sebenarnya pada hard drive, dan partikel magnetik jauh lebih sedikit. 536 00:27:09,890 --> 00:27:11,640 Tapi mari kita benar-benar melihat maka jika Anda memiliki 537 00:27:11,640 --> 00:27:14,720 partikel magnetik kecil di hard drive, bagaimana Anda dapat benar-benar 538 00:27:14,720 --> 00:27:19,090 menggunakan mereka untuk mewakili data. 539 00:27:19,090 --> 00:27:20,070 >> [VIDEO PEMUTARAN] 540 00:27:20,070 --> 00:27:24,190 >> -The Hard drive di mana PC Anda toko paling data permanen. 541 00:27:24,190 --> 00:27:27,170 Untuk melakukan itu, data perjalanan dari RAM bersama 542 00:27:27,170 --> 00:27:31,720 dengan sinyal software yang menceritakan hard drive bagaimana untuk menyimpan data tersebut. 543 00:27:31,720 --> 00:27:36,570 Sirkuit hard drive menerjemahkan sinyal fluktuasi tegangan. 544 00:27:36,570 --> 00:27:40,880 Ini, pada gilirannya, mengontrol hard drive ini bergerak bagian- beberapa dari sedikit bergerak 545 00:27:40,880 --> 00:27:43,440 bagian yang tersisa di komputer modern. 546 00:27:43,440 --> 00:27:47,650 >> Beberapa sinyal mengendalikan motor, yang berputar piring-piring dilapisi logam-. 547 00:27:47,650 --> 00:27:50,980 Data Anda sebenarnya disimpan pada piring-piring ini. 548 00:27:50,980 --> 00:27:56,250 sinyal lain memindahkan kepala baca / tulis untuk membaca atau menulis data pada piring-piring. 549 00:27:56,250 --> 00:28:00,100 mesin ini begitu tepat bahwa rambut manusia bahkan tidak bisa 550 00:28:00,100 --> 00:28:02,800 melewati antara kepala dan berputar piring-piring. 551 00:28:02,800 --> 00:28:04,887 Namun, itu semua bekerja pada kecepatan yang hebat. 552 00:28:04,887 --> 00:28:05,470 [END PEMUTARAN] 553 00:28:05,470 --> 00:28:06,780 Dan Anda dapat melihat di ekor akhir video, 554 00:28:06,780 --> 00:28:08,340 biasanya ada beberapa piring-piring. 555 00:28:08,340 --> 00:28:10,250 Dan sehingga kepala membaca tidak hanya membaca atas. 556 00:28:10,250 --> 00:28:12,458 Ini semacam seperti tiga atau empat kepala membaca atau lebih 557 00:28:12,458 --> 00:28:14,920 bahwa langkah seperti ini, membaca data secara bersamaan. 558 00:28:14,920 --> 00:28:17,407 >> Jadi ada banyak kompleksitas dan jenis waktu 559 00:28:17,407 --> 00:28:18,740 yang terlibat dalam hard drive. 560 00:28:18,740 --> 00:28:21,920 Dan hal itu berputar-benar sialan cepat, sehingga ada banyak kompleksitas. 561 00:28:21,920 --> 00:28:25,220 Tapi mari kita memperbesar sedikit lebih dalam dan melihat di mana partikel magnetik 562 00:28:25,220 --> 00:28:27,370 dan bagaimana kita mendapatkan mereka. 563 00:28:27,370 --> 00:28:28,750 >> [VIDEO PEMUTARAN] 564 00:28:28,750 --> 00:28:31,830 >> lihat -Biarkan ini pada apa yang kita hanya melihat dalam gerakan lambat. 565 00:28:31,830 --> 00:28:35,230 Ketika pulsa singkat listrik dikirim ke membaca / menulis kepala, 566 00:28:35,230 --> 00:28:39,000 itu membalik pada elektromagnetik kecil untuk sepersekian detik. 567 00:28:39,000 --> 00:28:41,390 magnet menciptakan lapangan, yang mengubah 568 00:28:41,390 --> 00:28:44,600 polaritas kecil, kecil sebagian dari partikel logam 569 00:28:44,600 --> 00:28:46,960 yang melapisi permukaan masing-masing piring ini. 570 00:28:46,960 --> 00:28:50,020 Serangkaian pola kecil ini daerah dibebankan pada disk 571 00:28:50,020 --> 00:28:54,590 mewakili satu bit data dalam Sistem bilangan biner digunakan oleh komputer. 572 00:28:54,590 --> 00:28:57,510 >> Sekarang, jika saat ini dikirim satu jalan melalui membaca / menulis kepala, 573 00:28:57,510 --> 00:28:59,899 daerah terpolarisasi dalam satu arah. 574 00:28:59,899 --> 00:29:01,940 Jika saat ini dikirim di arah yang berlawanan, 575 00:29:01,940 --> 00:29:04,020 polarisasi terbalik. 576 00:29:04,020 --> 00:29:06,440 Bagaimana Anda mendapatkan data dari hard disk? 577 00:29:06,440 --> 00:29:08,190 Hanya membalikkan proses. 578 00:29:08,190 --> 00:29:10,440 Sehingga partikel pada disk yang mendapatkan saat ini 579 00:29:10,440 --> 00:29:12,260 dalam membaca / menulis kepala bergerak. 580 00:29:12,260 --> 00:29:14,580 Mengumpulkan jutaan segmen magnet, 581 00:29:14,580 --> 00:29:16,220 dan Anda punya file. 582 00:29:16,220 --> 00:29:21,030 >> Sekarang, potongan-potongan file tunggal mungkin tersebar di seluruh piring-piring drive ini, 583 00:29:21,030 --> 00:29:24,060 jenis seperti kekacauan kertas di meja Anda. 584 00:29:24,060 --> 00:29:27,590 Jadi file istimewa terus melacak di mana segala sesuatu. 585 00:29:27,590 --> 00:29:30,440 Apakah Anda tidak ingin Anda memiliki sesuatu seperti itu? 586 00:29:30,440 --> 00:29:31,290 >> [END PEMUTARAN] 587 00:29:31,290 --> 00:29:36,260 >> Jadi yang disinggung di sana, mungkin, adalah topik dari kemarin penghapusan. 588 00:29:36,260 --> 00:29:38,380 Ketika Anda menghapus File, kemarin kami mengatakan 589 00:29:38,380 --> 00:29:41,020 bahwa komputer sebenarnya apa, ketika Anda tarik sesuatu 590 00:29:41,020 --> 00:29:44,110 ke Recycle bin atau tong sampah? 591 00:29:44,110 --> 00:29:45,150 Itu hanya lupa itu. 592 00:29:45,150 --> 00:29:47,540 Tapi 0 dan 1, partikel magnetik 593 00:29:47,540 --> 00:29:50,640 yang terlihat seperti merah dan biru hal di sini, atau lengan saya di sini, 594 00:29:50,640 --> 00:29:52,350 masih ada pada hard drive. 595 00:29:52,350 --> 00:29:56,090 >> Dan terdapat software-- Norton Utilities dan Yesteryear 596 00:29:56,090 --> 00:29:58,159 dan lebih modern lainnya software-- yang hanya 597 00:29:58,159 --> 00:30:01,200 akan memindai seluruh hard drive mencari di semua 0 dan 1, karena 598 00:30:01,200 --> 00:30:06,890 Ternyata bahwa sebagian besar berkas formats-- kata dokumen, file Excel, gambar, 599 00:30:06,890 --> 00:30:10,380 Video files-- semua memiliki tertentu pola yang umum di antara mereka. 600 00:30:10,380 --> 00:30:12,550 Setiap file video mungkin menjadi video yang berbeda, 601 00:30:12,550 --> 00:30:14,870 tetapi beberapa pertama bit biasanya sama. 602 00:30:14,870 --> 00:30:16,790 Atau beberapa bit terakhir biasanya sama. 603 00:30:16,790 --> 00:30:19,910 >> Dan dengan probabilitas tinggi, Anda dapat mencari pola-pola. 604 00:30:19,910 --> 00:30:23,700 Dan bahkan jika file telah dilupakan, Anda dapat mengatakan dengan probabilitas tinggi, 605 00:30:23,700 --> 00:30:28,460 tapi ini terlihat seperti dokumen Word, memungkinkan memulihkannya dan un-melupakannya, 606 00:30:28,460 --> 00:30:28,990 jika Anda mau. 607 00:30:28,990 --> 00:30:32,330 Dan itulah bagaimana Anda dapat memulihkan Data yang baik telah sengaja 608 00:30:32,330 --> 00:30:36,560 dihapus atau dihapus atau sengaja dihapus untuk tujuan apa pun. 609 00:30:36,560 --> 00:30:42,530 >> Sebaliknya, penghapusan aman melakukan apa dalam konteks gambaran seperti ini? 610 00:30:42,530 --> 00:30:44,059 Tepat, membuat mereka semua acak. 611 00:30:44,059 --> 00:30:46,350 Jadi semacam bergerak beberapa mereka turun, beberapa dari mereka sampai, 612 00:30:46,350 --> 00:30:49,433 meninggalkan beberapa dari mereka tidak berubah, dan umumnya membuat gangguan acak dari itu, 613 00:30:49,433 --> 00:30:52,960 atau mungkin saja membuat semua mereka 0 atau semua dari mereka 1 ini. 614 00:30:52,960 --> 00:30:56,350 Dan itu juga umumnya bisa menggosok data Anda pergi. 615 00:30:56,350 --> 00:31:00,160 >> Jadi mari kita kembali sekarang untuk masalah ini berpikir komputasi, dimana 616 00:31:00,160 --> 00:31:03,270 kita memiliki input rumus. 617 00:31:03,270 --> 00:31:06,390 Dan algoritma memberikan Anda output akhirnya. 618 00:31:06,390 --> 00:31:09,270 Kami fokus sekarang pada input dan output, karena sekarang, saya 619 00:31:09,270 --> 00:31:12,159 klaim kami memiliki cara mewakili input dan output. 620 00:31:12,159 --> 00:31:13,450 Kami hanya akan menggunakan biner. 621 00:31:13,450 --> 00:31:15,910 >> Dan tidak peduli apa yang kita ingin mewakili hari ini, 622 00:31:15,910 --> 00:31:20,230 apakah itu nomor atau surat atau ribuan darinya dalam buku telepon 623 00:31:20,230 --> 00:31:23,210 atau gambar atau film, di akhir hari, itu semua 0 dan 1. 624 00:31:23,210 --> 00:31:26,640 Dan saya menyatakan bahwa, meskipun ini adalah dunia super sederhana dengan hanya 0 ini 625 00:31:26,640 --> 00:31:28,240 dan 1, kita dapat membangun diri kita. 626 00:31:28,240 --> 00:31:32,210 Dan kami telah melihat salah satu contoh dari bahwa dengan surat sejauh ini. 627 00:31:32,210 --> 00:31:35,615 >> Jadi mari kita fokus sekarang ini bahan tengah, sebuah algoritma. 628 00:31:35,615 --> 00:31:38,190 Dan mari kita kembali ke ini contoh Mike Smith. 629 00:31:38,190 --> 00:31:41,689 Jadi dalam buku telepon ini, yang diakui, kita tidak menggunakan begitu banyak lagi, 630 00:31:41,689 --> 00:31:42,980 ada masalah yang harus dipecahkan. 631 00:31:42,980 --> 00:31:45,040 Kami ingin menemukan seseorang seperti Mike Smith. 632 00:31:45,040 --> 00:31:47,520 >> Dan apa yang saya lakukan untuk menemukan Mike? 633 00:31:47,520 --> 00:31:51,197 Yah, aku hanya bisa membuka ini buku, mulai dari halaman pertama, 634 00:31:51,197 --> 00:31:52,780 dan menyadari, oh, aku di bagian A. 635 00:31:52,780 --> 00:31:53,510 Mike tidak ada. 636 00:31:53,510 --> 00:31:55,510 Aku butuh bagian S untuk Smith. 637 00:31:55,510 --> 00:31:58,192 Jadi hanya terus berputar satu halaman pada satu waktu. 638 00:31:58,192 --> 00:32:00,900 Biarkan aku berpura-pura bahwa ini adalah semua halaman putih dan halaman tidak kuning, 639 00:32:00,900 --> 00:32:02,910 karena kita tidak akan menemukan Mike di halaman kuning pula. 640 00:32:02,910 --> 00:32:04,034 Tapi aku di halaman putih. 641 00:32:04,034 --> 00:32:05,340 Dan sekarang, aku di bagian B. 642 00:32:05,340 --> 00:32:06,810 Saya masih belum menemukan dia. 643 00:32:06,810 --> 00:32:08,890 Jadi saya terus berputar satu halaman pada satu waktu. 644 00:32:08,890 --> 00:32:10,130 >> Ini adalah sebuah algoritma. 645 00:32:10,130 --> 00:32:12,440 Ini satu set instruksi untuk memecahkan beberapa masalah. 646 00:32:12,440 --> 00:32:16,480 Dengan kata lain, melihat Halaman, jika Mike tidak di atasnya, 647 00:32:16,480 --> 00:32:20,020 mengubah halaman, dan mengulangi lagi dan lagi dan lagi, 648 00:32:20,020 --> 00:32:21,760 idealnya melihat ke bawah karena Anda melakukannya. 649 00:32:21,760 --> 00:32:24,120 Jadi algoritma ini, Proses ini, yang benar? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Maaf. 652 00:32:28,830 --> 00:32:30,056 Tidak, saya mendengar beberapa nos. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, tapi is-- yeah, itu pasti membosankan. 655 00:32:36,125 --> 00:32:39,000 Seperti, kita akan berada di sini sepanjang hari jika aku terus mencari Mike pada kecepatan ini. 656 00:32:39,000 --> 00:32:41,430 Tapi biarkan aku mengklaim itu benar. 657 00:32:41,430 --> 00:32:43,850 Ini bodoh, tapi itu benar. 658 00:32:43,850 --> 00:32:47,209 >> Pada akhir hari, selama itu mungkin mengambil, saya akan menemukan Mike jika dia ada di sana 659 00:32:47,209 --> 00:32:48,250 dan saya membayar perhatian. 660 00:32:48,250 --> 00:32:50,230 Dan saya akhirnya mencapai halaman nya. 661 00:32:50,230 --> 00:32:52,890 Dan jika saya terlalu jauh, jika Aku sampai ke bagian T, 662 00:32:52,890 --> 00:32:55,900 maka saya sedikit dapat mengoptimalkan dan hanya mengatakan, hm, semua dilakukan. 663 00:32:55,900 --> 00:32:57,980 Aku bahkan tidak perlu membuang waktu pergi ke Z. 664 00:32:57,980 --> 00:33:00,010 Tapi ini adalah sangat Pendekatan linear, jika Anda 665 00:33:00,010 --> 00:33:03,370 akan, sangat semacam kiri ke kanan Pendekatan, garis lurus. 666 00:33:03,370 --> 00:33:05,560 Dan yang benar tetapi lambat. 667 00:33:05,560 --> 00:33:09,250 >> Jadi saya ingat dari sekolah dasar, semacam dari optimasi dari anak kelas pertama, 668 00:33:09,250 --> 00:33:13,756 di mana saya belajar bagaimana cara menghitung tidak oleh orang-orang tetapi dengan twos-- begitu 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 Ini A, jauh lebih sulit untuk dilakukan, tetapi dalam teori, itu 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, dan sebagainya. 671 00:33:20,149 --> 00:33:21,190 Bagaimana algoritma itu? 672 00:33:21,190 --> 00:33:23,150 Apakah lebih efisien? 673 00:33:23,150 --> 00:33:23,880 Apakah lebih cepat? 674 00:33:23,880 --> 00:33:25,365 >> AUDIENCE: Ini efisien. 675 00:33:25,365 --> 00:33:28,560 >> DAVID Malan: Ya, jadi itu def-- itu harfiah dua kali lebih cepat, dengan asumsi saya 676 00:33:28,560 --> 00:33:30,170 tidak bisa tersandung dengan jari-jari saya. 677 00:33:30,170 --> 00:33:32,294 Ini dua kali lebih cepat, karena Aku berubah melalui dua 678 00:33:32,294 --> 00:33:36,560 halaman sekaligus, bukan satu, tapi itu berpotensi dalam yang benar, karena mengapa? 679 00:33:36,560 --> 00:33:37,852 >> AUDIENCE: Kau melewatkan beberapa. 680 00:33:37,852 --> 00:33:41,185 DAVID Malan: Benar, bagaimana jika Mike terjadi untuk sandwiched-- mungkin ketika saya nanti 681 00:33:41,185 --> 00:33:44,370 di buku telepon, Mike kebetulan terjepit di antara dua halaman tersebut, 682 00:33:44,370 --> 00:33:46,720 dan saya hanya membabi buta melewatkan itu. 683 00:33:46,720 --> 00:33:48,490 Jadi kita perlu memperbaiki sedikit di sana. 684 00:33:48,490 --> 00:33:51,290 Setelah aku memukul bagian T, saya tidak bisa hanya percaya diri mengatakan, 685 00:33:51,290 --> 00:33:52,420 kami tidak menemukan Mike Smith. 686 00:33:52,420 --> 00:33:53,770 Saya mungkin harus dua kali lipat kembali. 687 00:33:53,770 --> 00:34:00,210 Atau pada kenyataannya, setelah saya mencapai seseorang bernama S-N, bukan S-M untuk Smith, 688 00:34:00,210 --> 00:34:02,790 segera, saya bisa dua kali lipat kembali, karena mungkin dia 689 00:34:02,790 --> 00:34:03,900 berada di halaman sebelumnya. 690 00:34:03,900 --> 00:34:05,070 >> Tapi aku tidak perlu dua kali lipat kembali jauh. 691 00:34:05,070 --> 00:34:08,030 Secara teori, jika saya melakukannya di sebelah kanan waktu, saya hanya mundur satu halaman. 692 00:34:08,030 --> 00:34:10,139 Jadi itu hanya menambahkan satu langkah ekstra. 693 00:34:10,139 --> 00:34:13,070 Jadi saya sudah dua kali lebih cepat, tapi harganya satu tambahan. 694 00:34:13,070 --> 00:34:14,699 Tapi yang terasa seperti menang bersih. 695 00:34:14,699 --> 00:34:17,230 >> Tapi ini bukan bagaimana kebanyakan orang di Ruangan ini akan memecahkan masalah ini. 696 00:34:17,230 --> 00:34:20,313 Apa yang akan orang yang khas, mungkin Beberapa tahun yang lalu lakukan, untuk menemukan Mike Smith? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Ya, tidak menemukan Mike. 699 00:34:24,800 --> 00:34:27,190 Apa yang saya lakukan? 700 00:34:27,190 --> 00:34:31,027 Jadi mendapatkan sedikit lebih dekat, tapi aku tahu-- apa yang benar tentang buku telepon? 701 00:34:31,027 --> 00:34:32,110 AUDIENCE: Ini berurutan. 702 00:34:32,110 --> 00:34:32,760 DAVID Malan: Ini berurutan. 703 00:34:32,760 --> 00:34:33,750 Ini abjad. 704 00:34:33,750 --> 00:34:36,540 Dan jika saya di bagian M, Mike jelas ke kanan, 705 00:34:36,540 --> 00:34:39,949 Aku benar-benar dapat merobek masalah di half-- 706 00:34:39,949 --> 00:34:44,360 itu biasanya lebih mudah daripada air mata itu-- masalah dalam setengah dan membuangnya, 707 00:34:44,360 --> 00:34:47,627 sehingga sekarang, saya punya masalah yang tidak lagi 1.000 pages-- yang sulit, 708 00:34:47,627 --> 00:34:50,210 karena saya pikir saya benar-benar merobek buku telepon ini time-- tidak 709 00:34:50,210 --> 00:34:52,219 1.000 halaman, tapi 500. 710 00:34:52,219 --> 00:34:54,750 >> Jadi masalahnya adalah harfiah setengah besar. 711 00:34:54,750 --> 00:34:58,170 Dan itu cukup menarik, karena dengan algoritma saya sebelumnya, versi 712 00:34:58,170 --> 00:35:02,870 1 dan 2, saya hanya membuat masalah satu halaman yang lebih kecil, dua halaman yang lebih kecil 713 00:35:02,870 --> 00:35:03,470 pada suatu waktu. 714 00:35:03,470 --> 00:35:07,230 Sedangkan sekarang, saya membuat 500 halaman yang lebih kecil sekaligus. 715 00:35:07,230 --> 00:35:10,089 >> OK, jadi sekarang, Karim mengusulkan bahwa saya pergi ke bagian kanan. 716 00:35:10,089 --> 00:35:12,380 Jadi aku akan pergi sekitar ke tengah, memberi atau mengambil. 717 00:35:12,380 --> 00:35:15,185 Dan jika saya melakukan ini secara matematis, Aku bisa pergi ke kanan ke tengah. 718 00:35:15,185 --> 00:35:17,060 Dan sekarang, aku menyadari, oh, Saya di bagian T. 719 00:35:17,060 --> 00:35:18,280 Aku benar-benar pergi terlalu jauh. 720 00:35:18,280 --> 00:35:21,670 >> Tapi aku bisa, sekali lagi, merobek masalah dalam setengah, membuangnya. 721 00:35:21,670 --> 00:35:23,330 Dan byte saya tidak besar. 722 00:35:23,330 --> 00:35:28,780 Ini hanya, apa, 256 halaman atau 250 halaman, memberi atau mengambil sekarang. 723 00:35:28,780 --> 00:35:31,570 Tapi masih cara yang lebih dari satu halaman atau dua halaman. 724 00:35:31,570 --> 00:35:33,345 >> Dan sekarang, aku pergi kira-kira ke tengah. 725 00:35:33,345 --> 00:35:35,330 Oh, aku tidak pergi cukup jauh sekarang. 726 00:35:35,330 --> 00:35:37,880 Jadi saya ulangi, ulangi, ulangi, ulangi, sampai aku mudah-mudahan 727 00:35:37,880 --> 00:35:40,360 kiri dengan hanya satu halaman. 728 00:35:40,360 --> 00:35:44,000 >> Sehingga mengundang pertanyaan, jika saya mulai dengan sekitar 1.000 halaman, 729 00:35:44,000 --> 00:35:47,340 berapa banyak langkah yang dibutuhkan saya dengan versi 1 dari algoritma saya? 730 00:35:47,340 --> 00:35:50,420 Nah, jika Mike adalah di S bagian, dalam kasus terburuk, 731 00:35:50,420 --> 00:35:52,630 itu cukup dekat dengan akhir alfabet. 732 00:35:52,630 --> 00:35:56,559 Jadi jika buku telepon memiliki 1.000 halaman, Aku akan menemukan Mike dalam 1.000 halaman, 733 00:35:56,559 --> 00:35:57,100 berikan atau ambil. 734 00:35:57,100 --> 00:35:59,750 Mungkin itu seperti 800 atau lebih, tetapi itu cukup dekat dengan 1.000. 735 00:35:59,750 --> 00:36:01,680 >> Sedangkan, di kedua algoritma, berapa banyak 736 00:36:01,680 --> 00:36:06,840 Halaman ternyata maksimal mungkin saya membutuhkan untuk menemukan Mike Smith? 737 00:36:06,840 --> 00:36:09,970 Ada 1.000 halaman, tapi aku melakukannya dua sekaligus. 738 00:36:09,970 --> 00:36:13,045 Benar, jadi max seperti 500ish, karena jika saya pergi melalui buku telepon utuh, 739 00:36:13,045 --> 00:36:14,170 di mana titik, saya bisa berhenti. 740 00:36:14,170 --> 00:36:16,669 Tapi aku bisa mencukur habis beberapa oleh hanya berhenti di bagian T. 741 00:36:16,669 --> 00:36:19,880 Tapi itu di kasus terburuk 500 halaman. 742 00:36:19,880 --> 00:36:24,710 >> Jadi berapa kali saya bisa membagi 1,00o-halaman buku telepon dalam setengah lagi 743 00:36:24,710 --> 00:36:30,450 dan lagi dan again-- dari 1.000 500 untuk 250-125? 744 00:36:30,450 --> 00:36:32,250 Berapa lama sebelum saya memukul salah satu halaman? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Ya, itu adalah sekitar 10. 747 00:36:36,370 --> 00:36:40,780 Tergantung pada pembulatan dan semacamnya, itu sekitar 10 halaman total kebutuhan untuk diaktifkan 748 00:36:40,780 --> 00:36:43,290 atau buku telepon perlu robek. 749 00:36:43,290 --> 00:36:44,710 >> Jadi itu cukup kuat. 750 00:36:44,710 --> 00:36:48,170 Kami mulai dengan masalah 1.000-halaman dalam ketiga cerita tersebut. 751 00:36:48,170 --> 00:36:51,850 Namun dalam algoritma pertama, membawa saya, kasus terburuk, 1.000 halaman 752 00:36:51,850 --> 00:36:52,740 ternyata untuk menemukan Mike. 753 00:36:52,740 --> 00:36:55,590 algoritma kedua, 500 halaman untuk menemukan Mike. 754 00:36:55,590 --> 00:36:58,480 algoritma ketiga, 10 halaman untuk menemukan Mike. 755 00:36:58,480 --> 00:37:00,230 Dan itu bahkan lebih kuat ketika Anda berpikir 756 00:37:00,230 --> 00:37:01,860 tentang semacam skenario berlawanan. 757 00:37:01,860 --> 00:37:05,680 Misalkan perusahaan telepon berikutnya tahun mungkin menggabungkan dua kota bersama-sama, 758 00:37:05,680 --> 00:37:08,550 dan buku telepon tiba-tiba ini tebal, bukan yang ini, 759 00:37:08,550 --> 00:37:12,470 jadi 2.000 halaman bukannya 1.000. 760 00:37:12,470 --> 00:37:15,640 Nah, algoritma pertama saya mencari Mike Smith dalam buku telepon 2.000 halaman, 761 00:37:15,640 --> 00:37:21,460 kasus yang lebih buruk, itu akan mengambil berapa banyak halaman ternyata tahun depan? 762 00:37:21,460 --> 00:37:24,800 >> Buku telepon 2.000 halaman, so-- baik, tidak satu lagi. 763 00:37:24,800 --> 00:37:29,540 Jika buku telepon adalah dua kali lebih tebal di algoritma pertama, algoritma pertama, 764 00:37:29,540 --> 00:37:30,380 2.000, kan? 765 00:37:30,380 --> 00:37:33,005 Dalam kasus terburuk, Mike benar-benar dekat dengan akhir buku ini, 766 00:37:33,005 --> 00:37:34,110 jadi 2.000 halaman bergantian. 767 00:37:34,110 --> 00:37:38,070 Kedua algoritma pergi dengan berpasangan, seperti 1.000 halaman. 768 00:37:38,070 --> 00:37:41,490 >> Tapi bagaimana di ketiga dan algoritma terbaru? 769 00:37:41,490 --> 00:37:44,950 Jika perusahaan telepon menggandakan jumlah halaman dari 1.000 menjadi 2.000, 770 00:37:44,950 --> 00:37:47,770 berapa banyak kali harus saya merobek bahwa buku dalam setengah untuk menemukan Mike? 771 00:37:47,770 --> 00:37:48,710 >> AUDIENCE: Hanya satu. 772 00:37:48,710 --> 00:37:51,001 >> DAVID Malan: Hanya satu, karena dengan satu halaman air mata, 773 00:37:51,001 --> 00:37:53,270 Aku benar-benar bisa membagi dan menaklukkan, jika Anda mau, 774 00:37:53,270 --> 00:37:57,410 bahwa masalah dalam setengah taking gigitan besar dari itu. 775 00:37:57,410 --> 00:38:01,420 Dan jadi ini adalah contoh dari efisiensi dan bisa dibilang sebuah algoritma 776 00:38:01,420 --> 00:38:04,100 dengan yang kita semua semacam intuitif akrab. 777 00:38:04,100 --> 00:38:07,780 Tapi itu hanya sebagai benar sebagai algoritma saya yang lain 778 00:38:07,780 --> 00:38:09,630 dengan Tweak bahwa untuk algoritma kedua, 779 00:38:09,630 --> 00:38:11,290 tapi itu jauh lebih efisien. 780 00:38:11,290 --> 00:38:14,030 >> Dan sebenarnya, apa komputer ilmuwan, atau pada gilirannya programmer, 781 00:38:14,030 --> 00:38:17,580 biasanya akan lakukan ketika menulis Kode adalah mencoba untuk mencari tahu, 782 00:38:17,580 --> 00:38:19,960 baiklah, saya tidak ingin saya Program hanya untuk menjadi benar, 783 00:38:19,960 --> 00:38:23,220 Saya juga ingin menjadi efisien dan memecahkan masalah dengan baik. 784 00:38:23,220 --> 00:38:26,450 Bayangkan di dunia nyata saat ini, seperti indeks Google, pencarian 785 00:38:26,450 --> 00:38:31,580 seperti milyaran halaman, bayangkan jika mereka menggunakan algoritma pertama yang menemukan kucing 786 00:38:31,580 --> 00:38:34,620 antara miliar pages-- melihat halaman pertama dalam database mereka, 787 00:38:34,620 --> 00:38:37,700 kedua, ketiga, hanya melihat untuk kucing, mencari kucing. 788 00:38:37,700 --> 00:38:40,350 Itu pretty darn lambat akan terlihat. 789 00:38:40,350 --> 00:38:43,170 Mereka malah bisa menggunakan sesuatu disebut binary pencarian, yang 790 00:38:43,170 --> 00:38:47,420 ada bi coincidence-- berarti dua, kami terus membagi sesuatu dalam 2, di half-- 791 00:38:47,420 --> 00:38:50,205 mereka bisa menggunakan pencarian biner dan mungkin menemukan kucing lebih cepat, 792 00:38:50,205 --> 00:38:51,830 atau apa pun itu yang Anda cari. 793 00:38:51,830 --> 00:38:54,125 >> Dan terus terang, ada bahkan algoritma pelamun 794 00:38:54,125 --> 00:38:56,250 yang melakukan lebih dari sekedar membagi hal-hal dalam setengah 795 00:38:56,250 --> 00:38:58,180 untuk menemukan informasi dengan cepat. 796 00:38:58,180 --> 00:39:00,880 Dan kita akan bicara sedikit tentang orang-orang setelah makan siang hari ini. 797 00:39:00,880 --> 00:39:02,640 Jadi biarkan aku hanya mencoba untuk mewakili ini. 798 00:39:02,640 --> 00:39:05,380 Kami tidak perlu pergi ke setiap matematika atau angka yang sebenarnya. 799 00:39:05,380 --> 00:39:07,070 Kita bisa bicara tentang hal ini secara abstrak. 800 00:39:07,070 --> 00:39:11,580 >> Tapi saya hanya mengusulkan, jika Anda sedang diskusi sekarang 801 00:39:11,580 --> 00:39:13,491 dengan insinyur mengusulkan algoritma ini 802 00:39:13,491 --> 00:39:15,490 dan Anda mencoba untuk membuat keputusan dihitung, 803 00:39:15,490 --> 00:39:17,285 karena mungkin insinyur mengatakan kepada Anda, Anda 804 00:39:17,285 --> 00:39:19,910 tahu apa, saya bisa menerapkan pencarian linear di seperti dua menit. 805 00:39:19,910 --> 00:39:21,150 Itu yang mudah. 806 00:39:21,150 --> 00:39:24,790 Pencarian biner tidak mewah itu, tapi itu akan membawa saya seperti 10 menit, 807 00:39:24,790 --> 00:39:26,650 jadi 5 kali lebih lama. 808 00:39:26,650 --> 00:39:30,900 >> Ada perdagangan di sini, bahkan dalam hal memutuskan software apa untuk menulis. 809 00:39:30,900 --> 00:39:34,760 Apakah Anda menulis algoritma sederhana, yang hanya akan membawa Anda dua menit? 810 00:39:34,760 --> 00:39:39,880 Atau apakah Anda menghabiskan lebih banyak waktu, 10 menit, menulis algoritma pengujian? 811 00:39:39,880 --> 00:39:43,540 Bagaimana Anda memutuskan bahwa jenis pertanyaan? 812 00:39:43,540 --> 00:39:46,710 Atau Anda bisa membuatnya sedikit lebih nyata. 813 00:39:46,710 --> 00:39:50,610 Saya memberitahu atasan saya itu akan mengambil saya baik satu minggu atau 10 minggu 814 00:39:50,610 --> 00:39:52,490 untuk melaksanakan software dengan cara ini, bagaimana 815 00:39:52,490 --> 00:39:56,103 Anda memutuskan mana algoritma untuk lampu hijau? 816 00:39:56,103 --> 00:39:56,603 Karim? 817 00:39:56,603 --> 00:39:57,550 >> AUDIENCE: Para penonton, saya kira. 818 00:39:57,550 --> 00:39:57,960 >> DAVID Malan: Para penonton. 819 00:39:57,960 --> 00:39:59,460 Apa yang Anda maksud dengan penonton? 820 00:39:59,460 --> 00:40:03,460 >> AUDIENCE: Jika akan yang akan digunakan oleh pengguna 821 00:40:03,460 --> 00:40:09,050 yang [tidak terdengar] oleh pengguna [tidak terdengar]. 822 00:40:09,050 --> 00:40:11,232 Tapi jika itu sesuatu yang Anda hanya melakukan untuk diri sendiri 823 00:40:11,232 --> 00:40:13,946 untuk memfasilitasi masalah, [Tidak terdengar] lebih cepat. 824 00:40:13,946 --> 00:40:16,820 DAVID Malan: Ya, itu cepat dan kotor adalah cara yang baik untuk menggambarkan hal itu. 825 00:40:16,820 --> 00:40:18,695 Bahkan, jika Anda menggambarkan banyak waktu saya 826 00:40:18,695 --> 00:40:23,630 di sekolah pascasarjana, dimana sering kali, Saya menulis kode yang buruk sadar so-- 827 00:40:23,630 --> 00:40:26,490 setidaknya, itulah bagaimana saya dirasionalisasi itu-- sadar begitu, 828 00:40:26,490 --> 00:40:30,670 karena meskipun saya sedang menulis kode yang relatif lambat untuk mengeksekusi, 829 00:40:30,670 --> 00:40:33,750 Saya bisa menulis kode sendiri cukup cepat, belanja hanya beberapa menit 830 00:40:33,750 --> 00:40:35,107 atau jam bukan hari. 831 00:40:35,107 --> 00:40:37,190 Dan ternyata, saya kadang-kadang diperlukan untuk tidur. 832 00:40:37,190 --> 00:40:41,270 Jadi bahkan jika kode saya diperlukan 8 jam untuk menjalankan, baik itu baik-baik saja, 833 00:40:41,270 --> 00:40:42,850 Aku hanya akan pergi tidur sementara berjalan. 834 00:40:42,850 --> 00:40:46,350 >> Jadi pada saat itu, saya pikir ini adalah sangat pintar, meskipun saya rupanya 835 00:40:46,350 --> 00:40:48,990 bekerja melalui PhD saya sangat lambat. 836 00:40:48,990 --> 00:40:52,270 Tapi sebaliknya dari yang itu, software jika saya sedang menulis 837 00:40:52,270 --> 00:40:55,930 bagi orang-orang lain yang lebih penting dari saya, baik, 838 00:40:55,930 --> 00:40:59,580 memiliki mereka menunggu 8 jam untuk mendapatkan kembali hasil pencarian mereka 839 00:40:59,580 --> 00:41:01,350 tidak semua yang menarik. 840 00:41:01,350 --> 00:41:04,090 Dan menghabiskan lebih banyak waktu di depan untuk menulis perangkat lunak 841 00:41:04,090 --> 00:41:07,300 yang lebih efisien, lebih seperti algoritma ketiga kami, 842 00:41:07,300 --> 00:41:09,780 mungkin menguntungkan pengguna dari waktu ke waktu. 843 00:41:09,780 --> 00:41:12,710 Jadi itu benar-benar tergantung atas waktu berapa biaya-biaya bertambah. 844 00:41:12,710 --> 00:41:14,960 Jika Anda akan menulis software untuk menggunakannya sekali, 845 00:41:14,960 --> 00:41:17,240 mungkin mungkin juga melakukan cepat dan kotor, seperti yang mereka katakan. 846 00:41:17,240 --> 00:41:18,198 Buang saja bersama-sama. 847 00:41:18,198 --> 00:41:20,560 Ini kode yang memalukan Anda, itu begitu buruk, 848 00:41:20,560 --> 00:41:23,860 tapi mendapatkan pekerjaan dilakukan dengan benar, meskipun itu tidak efisien. 849 00:41:23,860 --> 00:41:27,200 Sebaliknya, Anda menghabiskan lebih banyak waktu pada sesuatu, mendapatkannya tepat. 850 00:41:27,200 --> 00:41:30,730 Dan kemudian diamortisasi selama waktu, biaya yang dimuka waktu 851 00:41:30,730 --> 00:41:34,330 mungkin berharga, jika Anda terus mengoptimalkan kasus umum. 852 00:41:34,330 --> 00:41:37,620 >> Dan memang, itulah tema di pemrograman, atau ilmu komputer lebih 853 00:41:37,620 --> 00:41:41,390 umumnya, mencoba untuk mengoptimalkan tidak untuk kasus biasa 854 00:41:41,390 --> 00:41:44,390 tapi case-- umum apa operasi akan terjadi lagi dan lagi? 855 00:41:44,390 --> 00:41:47,730 Jika Anda akan memiliki miliaran pengguna mencari di website Anda, 856 00:41:47,730 --> 00:41:52,030 Anda mungkin harus menghabiskan tambahan minggu depan menulis perangkat lunak yang lebih baik, 857 00:41:52,030 --> 00:41:53,670 sehingga semua pengguna Anda manfaat. 858 00:41:53,670 --> 00:41:57,840 Sekarang, mari kita coba untuk menangkap ini sedikit pictorially, tetapi tidak begitu banyak 859 00:41:57,840 --> 00:41:58,610 numerik. 860 00:41:58,610 --> 00:42:01,680 >> Jadi di sini hanya sebuah grafik sekolah tua. 861 00:42:01,680 --> 00:42:04,260 Dan saya katakan bahwa ini adalah waktu. 862 00:42:04,260 --> 00:42:06,660 Dan tidak peduli-UMPC sebenarnya, tidak, tidak waktu. 863 00:42:06,660 --> 00:42:08,320 Mari kita menempatkan bahwa pada sumbu lainnya. 864 00:42:08,320 --> 00:42:15,700 Mari kita mengatakan bahwa ini adalah waktu, dan ini adalah ukuran masalah. 865 00:42:15,700 --> 00:42:17,830 >> Dan seorang ilmuwan komputer mungkin umumnya menyebutnya 866 00:42:17,830 --> 00:42:20,820 ini hanya n. n adalah seperti go-variabel kami, di mana 867 00:42:20,820 --> 00:42:26,351 n adalah angka, n nomor, dan itu adalah jumlah apapun input yang Anda miliki. 868 00:42:26,351 --> 00:42:28,100 Jadi dalam hal ini, n adalah jumlah halaman. 869 00:42:28,100 --> 00:42:30,150 Jadi mungkin 1.000 di kasus kami hanya mengatakan. 870 00:42:30,150 --> 00:42:31,969 >> Sehingga waktu dapat setiap satuan ukuran. 871 00:42:31,969 --> 00:42:32,760 Mungkin, itu yang kedua. 872 00:42:32,760 --> 00:42:33,410 Mungkin, itu hari. 873 00:42:33,410 --> 00:42:34,590 Mungkin, itu seperti halaman bergantian. 874 00:42:34,590 --> 00:42:35,215 Tidak masalah. 875 00:42:35,215 --> 00:42:38,840 Apa pun yang Anda ingin menghitung di, yang akan waktu atau biaya ekuivalen. 876 00:42:38,840 --> 00:42:42,400 >> Jadi dengan itu pertama algoritma, jika saya, misalnya, 877 00:42:42,400 --> 00:42:45,920 memiliki buku telepon 1.000 halaman, Aku akan menggambar sebuah titik di sana, 878 00:42:45,920 --> 00:42:51,450 karena jika itu 1.000 halaman, butuh sekitar 1.000 halaman berubah, memberi atau mengambil. 879 00:42:51,450 --> 00:42:54,100 Dan kemudian jika aku punya 2.000-halaman buku telepon, 880 00:42:54,100 --> 00:42:57,200 dan aku akan menggambar kedua dot sini, karena untuk 2000 halaman, 881 00:42:57,200 --> 00:42:59,810 itu seperti 2.000 detik atau membalik halaman atau apa pun. 882 00:42:59,810 --> 00:43:02,480 Dan jadi ketika saya katakan sebelumnya, itu jenis hubungan linear, 883 00:43:02,480 --> 00:43:06,020 itu disengaja, karena saya ingin kemudian on-- hak sekarang-- untuk menarik garis. 884 00:43:06,020 --> 00:43:07,770 Ini semacam lurus Hubungan line. 885 00:43:07,770 --> 00:43:10,180 kemiringan 1/1, jika Anda mau. 886 00:43:10,180 --> 00:43:14,630 >> Sementara itu, algoritma kedua kata, jika Anda punya 1.000 halaman 887 00:43:14,630 --> 00:43:17,680 dan Anda menggunakan algoritma kedua, di mana saya dihitung oleh 2, mengubahnya 888 00:43:17,680 --> 00:43:22,564 dua halaman pada suatu waktu, saya harus menggambar titik di bagian bawah atau di atas titik asli saya? 889 00:43:22,564 --> 00:43:23,450 >> AUDIENCE: Di bawah. 890 00:43:23,450 --> 00:43:27,992 >> DAVID Malan: Di bawah ini, karena seperti yang kita lihat, waktu yang panjang, setengah sebanyak waktu. 891 00:43:27,992 --> 00:43:29,950 Jadi titik harus setengah setinggi lainnya. 892 00:43:29,950 --> 00:43:33,330 Dan kesepakatan yang sama di sini, dot ini mungkin harus kasar di sana. 893 00:43:33,330 --> 00:43:39,666 Dan algoritma kedua saya, sama, memiliki hubungan linear dengan waktu. 894 00:43:39,666 --> 00:43:41,990 Dan kita dapat menarik seperti itu. 895 00:43:41,990 --> 00:43:45,950 >> Jadi sekarang, ketiga dan terakhir Algoritma ini sedikit lebih sulit untuk menarik. 896 00:43:45,950 --> 00:43:49,530 Tapi secara intuitif, jika saya punya 1.000 halaman dengan algoritma ketiga saya, 897 00:43:49,530 --> 00:43:52,340 hanya harus membawa saya seperti 10 langkah. 898 00:43:52,340 --> 00:43:57,500 Dan jika saya punya 2.000 halaman dengan algoritma ketiga, 899 00:43:57,500 --> 00:44:01,570 seharusnya membawa saya tidak 10 langkah, tetapi 11, hanya satu lagi. 900 00:44:01,570 --> 00:44:03,610 Jadi kita hanya nyaris akan melihat ini. 901 00:44:03,610 --> 00:44:06,010 >> Dan ternyata, jika Saya memperbesar ini, aku 902 00:44:06,010 --> 00:44:09,320 akan membesar-besarkan untuk efek, bentuk garis yang, pada akhirnya, 903 00:44:09,320 --> 00:44:11,990 bukan line-- lurus karena, memang jika itu, 904 00:44:11,990 --> 00:44:15,390 itu akan terlihat lebih seperti others-- itu sebenarnya garis melengkung 905 00:44:15,390 --> 00:44:19,265 bahwa, jika kita memperbesar, akan terlihat jauh lebih seperti ini. 906 00:44:19,265 --> 00:44:21,670 Itu-- baik, OK, abaikan bagian ini. 907 00:44:21,670 --> 00:44:25,330 Itu adalah pena saya akan sudut. 908 00:44:25,330 --> 00:44:29,000 Ini adalah garis melengkung yang selalu meningkatkan, selalu, selalu, selalu 909 00:44:29,000 --> 00:44:32,100 meningkat, tetapi hanya hanya nyaris. 910 00:44:32,100 --> 00:44:36,260 >> Dan dari waktu ke waktu, Anda memiliki Hubungan itu lebih seperti ini. 911 00:44:36,260 --> 00:44:37,540 Hampir tampak lurus. 912 00:44:37,540 --> 00:44:40,330 Tapi itu sangat perlahan meningkat. 913 00:44:40,330 --> 00:44:44,780 Tapi untuk hampir semua titik sepanjang x-axis, sumbu horisontal Anda, 914 00:44:44,780 --> 00:44:46,550 itu lebih rendah dibandingkan jalur lainnya. 915 00:44:46,550 --> 00:44:49,930 >> Jadi ini mungkin hubungan n, dimana jika Anda memiliki halaman n, 916 00:44:49,930 --> 00:44:51,100 membawa Anda n detik. 917 00:44:51,100 --> 00:44:53,320 Ini mungkin hubungan n / 2. 918 00:44:53,320 --> 00:44:56,710 Anda memiliki halaman n, dibutuhkan Anda n / 2 detik, setengah banyak. 919 00:44:56,710 --> 00:45:00,590 Dan ini adalah logaritmik hubungan, yang 920 00:45:00,590 --> 00:45:08,920 jika Anda ingat, log basis 2 dari n menangkap semacam ini pertumbuhan, sehingga untuk berbicara. 921 00:45:08,920 --> 00:45:12,000 Jadi ini adalah semacam suci grail di antara tiga ini 922 00:45:12,000 --> 00:45:15,940 di sini, karena itu hanya jauh lebih efisien, tapi bisa dibilang lebih kompleks 923 00:45:15,940 --> 00:45:18,610 untuk melaksanakan. 924 00:45:18,610 --> 00:45:20,510 Ada pertanyaan? 925 00:45:20,510 --> 00:45:26,220 >> Yah biarkan aku melakukan ini, biarkan saya membuka jendela teks 926 00:45:26,220 --> 00:45:29,100 hanya supaya kita dapat mencoba untuk meresmikan sesuatu di sini. 927 00:45:29,100 --> 00:45:32,410 Jadi biarkan aku pergi ke depan sekarang dan mengimplementasikan algoritma ini 928 00:45:32,410 --> 00:45:35,170 untuk menemukan Mike Smith dalam kode, jika Anda mau, kode pseudocode. 929 00:45:35,170 --> 00:45:36,620 Saya tidak akan menggunakan Java atau C ++. 930 00:45:36,620 --> 00:45:38,610 Aku hanya akan menggunakan semacam Inggris-seperti sintaks, yang kami 931 00:45:38,610 --> 00:45:40,151 umumnya akan memanggil kode pseudo. 932 00:45:40,151 --> 00:45:41,660 Di sini, saya memiliki jendela kosong. 933 00:45:41,660 --> 00:45:48,180 Dan saya katakan langkah 1 dari sangat algoritma pertama adalah mengambil buku telepon. 934 00:45:48,180 --> 00:45:51,740 Langkah 2 adalah buku yang terbuka untuk halaman pertama. 935 00:45:51,740 --> 00:45:58,080 Langkah 3 akan melihat halaman untuk Mike Smith. 936 00:45:58,080 --> 00:46:02,740 Jika pada halaman, sebut Mike. 937 00:46:02,740 --> 00:46:11,640 Halaman gilirannya lain dan lanjutkan ke langkah 3. 938 00:46:11,640 --> 00:46:13,590 Dilakukan, katakanlah. 939 00:46:13,590 --> 00:46:18,110 >> Dan sehingga tidak cukup sempurna, yang akan kita lihat sebentar lagi. 940 00:46:18,110 --> 00:46:21,050 Tapi mari kita mempertimbangkan apa konsep saya sudah diperkenalkan di sini. 941 00:46:21,050 --> 00:46:24,450 Jadi langkah 1 dan 2 dan 3 cukup banyak kata kerja. 942 00:46:24,450 --> 00:46:26,544 Mereka pernyataan, actions-- melakukan ini. 943 00:46:26,544 --> 00:46:28,710 Dan dalam pemrograman sebuah bahasa, kita akan umumnya 944 00:46:28,710 --> 00:46:32,349 memanggil mereka pernyataan atau fungsi atau prosedur, 945 00:46:32,349 --> 00:46:33,640 memanggil mereka banyak hal. 946 00:46:33,640 --> 00:46:35,460 Tapi mereka hanya actions-- melakukan hal ini. 947 00:46:35,460 --> 00:46:40,370 >> Langkah 4 secara fundamental berbeda, karena itu jenis mengajukan pertanyaan. 948 00:46:40,370 --> 00:46:42,400 Itu mengatakan kami baik dari di persimpangan jalan. 949 00:46:42,400 --> 00:46:48,000 Jika Mike adalah pada halaman, panggilan dia, jadi belok kiri, jika Anda mau. 950 00:46:48,000 --> 00:46:52,170 Dan jika tidak, kembali ke beberapa lainnya page-- atau lebih tepatnya, maaf, 951 00:46:52,170 --> 00:46:56,650 kembali ke beberapa langkah lain, yang menginduksi beberapa jenis looping konstruk. 952 00:46:56,650 --> 00:46:59,530 Dan kami melakukannya lagi dan lagi dan lagi. 953 00:46:59,530 --> 00:47:01,300 >> Dan sebenarnya, Anda tahu apa? 954 00:47:01,300 --> 00:47:01,800 Ya. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 lain jika di akhir buku berhenti. 957 00:47:09,010 --> 00:47:11,624 Jadi kita perlu semacam ketiga kondisi, karena Anda 958 00:47:11,624 --> 00:47:14,290 tidak bisa terus memutar iklan halaman nauseum, karena akhirnya, aku akan 959 00:47:14,290 --> 00:47:15,320 memukul akhir buku ini. 960 00:47:15,320 --> 00:47:18,546 Dan bug dalam sebuah program mungkin tidak mengantisipasi skenario itu. 961 00:47:18,546 --> 00:47:21,420 Dan kemudian aku baru sadar, oh, tunggu sebentar, saya perlu skenario ketiga. 962 00:47:21,420 --> 00:47:23,900 Jika aku keluar dari halaman, saya harus benar-benar hanya berhenti. 963 00:47:23,900 --> 00:47:25,330 Jika tidak, itu tidak terdefinisi. 964 00:47:25,330 --> 00:47:29,260 Apa yang akan terjadi jika saya terus mengatakan mengubah halaman dan kembali, 965 00:47:29,260 --> 00:47:31,810 ini adalah ketika komputer membekukan atau crash, ketika anda menekan 966 00:47:31,810 --> 00:47:34,160 beberapa situasi tak terduga seperti itu. 967 00:47:34,160 --> 00:47:37,280 >> Sekarang, bagaimana dengan Mike algorithm-- ketiga Smith 968 00:47:37,280 --> 00:47:43,150 mengambil buku telepon, buku yang terbuka untuk first-- ke 969 00:47:43,150 --> 00:47:48,640 tidak, tidak halaman pertama kali ini, untuk middle-- oh, baik, yang Sebaiknya 970 00:47:48,640 --> 00:47:49,640 menjadi algoritma kedua. 971 00:47:49,640 --> 00:47:50,590 Mari kita melompat ke ketiga. 972 00:47:50,590 --> 00:47:50,930 >> AUDIENCE: Oh, aku minta maaf. 973 00:47:50,930 --> 00:47:51,971 >> DAVID Malan: Itu baik-baik saja. 974 00:47:51,971 --> 00:47:58,590 Mari kita melompat ke terbuka third-- untuk menengah dan sekarang mencari Mike Smith. 975 00:47:58,590 --> 00:48:02,300 jika pada halaman, sebut Mike. 976 00:48:02,300 --> 00:48:04,910 Dan kemudian apa yang kita ingin katakan di sini? 977 00:48:04,910 --> 00:48:06,134 lain apa? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Kita bisa mengungkapkan hal ini dalam beberapa cara. 980 00:48:12,370 --> 00:48:13,369 Tidak ada jawaban yang tepat. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, jika tidak lagi, tapi kita perlu be-- OK, kita ingin membagi dua, 983 00:48:23,735 --> 00:48:25,630 tapi kita ingin pergi kiri atau ke kanan? 984 00:48:25,630 --> 00:48:29,560 Bagaimana kita mengekspresikan gagasan itu? 985 00:48:29,560 --> 00:48:31,790 Nah, dalam kasus Mike, ya, itu wajar. 986 00:48:31,790 --> 00:48:35,050 Tapi OK, jadi itu benar-benar titik yang baik. 987 00:48:35,050 --> 00:48:35,550 Tidak apa-apa. 988 00:48:35,550 --> 00:48:36,924 Kami akan terus dengan logika ini. 989 00:48:36,924 --> 00:48:38,182 Begitu-- 990 00:48:38,182 --> 00:48:39,810 >> AUDIENCE: Kurang dari setengah. 991 00:48:39,810 --> 00:48:40,560 DAVID Malan: Ya. 992 00:48:40,560 --> 00:48:49,820 Jadi lain jika halaman adalah, kita akan mengatakan, kurang dari Smith, di sebelah kiri Smith, 993 00:48:49,820 --> 00:48:52,220 then-- mari kita lihat, adalah ini akan mempersulit? 994 00:48:52,220 --> 00:49:01,885 lain jika halaman datang sebelum Smith, air mata di setengah, membuang yang setengah? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> AUDIENCE: Saya pikir itu [tidak terdengar]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID Malan: Saya mendengar kedua jawaban. 998 00:49:11,650 --> 00:49:12,431 >> AUDIENCE: Kiri. 999 00:49:12,431 --> 00:49:14,430 DAVID Malan: OK, membuang pergi meninggalkan setengah, sebagai Lakisa 1000 00:49:14,430 --> 00:49:19,700 mengatakan sebelumnya, kiri setengah, maka saya jenis 1001 00:49:19,700 --> 00:49:23,940 ingin hanya pergi to-- aku pergi ke kanan. 1002 00:49:23,940 --> 00:49:27,380 Atau ekuivalen, dan saya membuat sedikit sedikit berantakan awal di sini, 1003 00:49:27,380 --> 00:49:30,760 Saya secara efektif ingin lanjutkan ke langkah 2 lagi, 1004 00:49:30,760 --> 00:49:38,270 di mana terbuka untuk middle-- atau open-- ya, katakan saja, halaman ke tengah. 1005 00:49:38,270 --> 00:49:39,020 Dan ini perbaikan itu. 1006 00:49:39,020 --> 00:49:39,936 Hal ini tidak lagi sebuah buku. 1007 00:49:39,936 --> 00:49:42,210 Itu hanya setengah dari buku, halaman sehingga terbuka untuk menengah. 1008 00:49:42,210 --> 00:49:44,010 >> else-- hampir ada. 1009 00:49:44,010 --> 00:49:54,000 Langkah 6, lain jika halaman datang setelah Smith, robek di setengah, membuang setengah lagi benar, 1010 00:49:54,000 --> 00:49:55,680 kemudian pergi ke langkah 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 lain berhenti, skenario keempat jika kita tidak memiliki halaman kiri untuk berbelok. 1013 00:50:05,230 --> 00:50:06,394 Jadi kita bisa membersihkan ini. 1014 00:50:06,394 --> 00:50:07,560 Dan kita harus membersihkan ini. 1015 00:50:07,560 --> 00:50:10,656 Ini adalah kode yang sangat pseudocode, jika Anda akan, deskripsi tingkat yang sangat tinggi. 1016 00:50:10,656 --> 00:50:12,280 Tapi itu umumnya menangkap ide. 1017 00:50:12,280 --> 00:50:16,040 >> Dan, sekali lagi, dalam skenario ini, kita memiliki gagasan kondisi, 1018 00:50:16,040 --> 00:50:20,450 cabang, persimpangan jalan, membuat a decision-- apakah ini, pergi dengan cara ini, 1019 00:50:20,450 --> 00:50:23,082 lain jika, pergi dengan cara ini, lain jika, pergi ke arah sana. 1020 00:50:23,082 --> 00:50:25,040 Dan ini adalah sangat umum teknik pemrograman 1021 00:50:25,040 --> 00:50:27,721 untuk memutuskan arah mana untuk pergi, sehingga untuk berbicara. 1022 00:50:27,721 --> 00:50:29,970 Dan kami juga memiliki beberapa jenis perulangan struktur, di mana 1023 00:50:29,970 --> 00:50:32,440 kita melakukan sesuatu lagi dan lagi. 1024 00:50:32,440 --> 00:50:34,820 >> Sekarang, ternyata, banyak seperti dalam contoh ini, 1025 00:50:34,820 --> 00:50:37,660 menjadi super tepat adalah penting. 1026 00:50:37,660 --> 00:50:42,180 Tapi kita juga telah melihat sesuatu bahwa kita tetap memanggil abstraksi. 1027 00:50:42,180 --> 00:50:45,490 Apa artinya untuk mengambil buku telepon? 1028 00:50:45,490 --> 00:50:47,740 Kami hanya jenis mengambil begitu saja di ruangan ini 1029 00:50:47,740 --> 00:50:49,340 yang yang memiliki beberapa makna semantik. 1030 00:50:49,340 --> 00:50:51,740 Semua dari kita hanya jenis tahu, oh, baik, mengambil buku telepon. 1031 00:50:51,740 --> 00:50:52,864 Apa yang benar-benar berarti? 1032 00:50:52,864 --> 00:50:59,060 Nah, yang benar-benar berarti memperpanjang tangan, membungkuk, memperpanjang jari, 1033 00:50:59,060 --> 00:51:03,890 mencubit buku antara jari, berdiri, tarik tangan ke arah Anda. 1034 00:51:03,890 --> 00:51:05,940 Dan kita bisa benar-benar bertele-tele tentang hal ini, 1035 00:51:05,940 --> 00:51:08,640 benar-benar menjadi super tepat seperti apa yang saya lakukan. 1036 00:51:08,640 --> 00:51:13,300 Tapi semua langkah-langkah kolektif yang apa artinya untuk mengambil sebuah buku telepon. 1037 00:51:13,300 --> 00:51:16,940 >> Dan sebelumnya, ketika saya mengatakan, masing-masing ini dua pernyataan pertama 1038 00:51:16,940 --> 00:51:20,830 dapat dianggap sebagai melanjutkan atau fungsi, 1039 00:51:20,830 --> 00:51:24,090 benar-benar mewakili apa yang kita terus menelepon abstraksi. 1040 00:51:24,090 --> 00:51:28,770 Ini seperti tingkat tinggi konseptual deskripsi masalah yang 1041 00:51:28,770 --> 00:51:31,110 sebenarnya melibatkan beberapa langkah. 1042 00:51:31,110 --> 00:51:34,190 Dan ini juga, adalah topik berulang dalam pemrograman, 1043 00:51:34,190 --> 00:51:41,125 dimana saya bisa menulis sebuah program menggunakan sintaks seperti ini-- 1044 00:51:41,125 --> 00:51:42,000 pick_up_phone_book (). 1045 00:51:42,000 --> 00:51:44,344 1046 00:51:44,344 --> 00:51:46,510 Dan kemudian sintaksis, aku akan mencuri sesuatu 1047 00:51:46,510 --> 00:51:48,090 dari kebanyakan bahasa pemrograman. 1048 00:51:48,090 --> 00:51:51,270 >> Sekarang, langkah 1 terlihat bahkan lebih seperti fungsi, 1049 00:51:51,270 --> 00:51:53,160 sebagai programmer akan menyebutnya. 1050 00:51:53,160 --> 00:51:58,650 Sepertinya seseorang kode yang telah memberikan nama untuk dan diberikan 1051 00:51:58,650 --> 00:52:03,300 untuk saya untuk menggunakan somehow-- di lain kata-kata, apa garis yang saya disorot 1052 00:52:03,300 --> 00:52:07,050 merupakan fungsi yang mungkin Aku bahkan tidak melaksanakan sendiri. 1053 00:52:07,050 --> 00:52:10,410 Seseorang yang lebih tua, lebih bijaksana dari saya sudah tahu 1054 00:52:10,410 --> 00:52:12,700 bagaimana Anda mengekspresikan gagasan memungut buku telepon. 1055 00:52:12,700 --> 00:52:15,860 Dan itu seperti lima langkah saya hanya mengoceh, dari atas kepala saya. 1056 00:52:15,860 --> 00:52:19,350 >> Tapi dia sudah dilaksanakan ini, memberi mereka beberapa langkah 1057 00:52:19,350 --> 00:52:22,339 nama, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 Dan kurung adalah hanya apa yang kebanyakan programmer 1059 00:52:24,380 --> 00:52:27,100 lakukan pada akhir pernyataan seperti ini. 1060 00:52:27,100 --> 00:52:30,190 Saya sekarang bisa berdiri di atas nya bahu dan tidak pernah lagi, 1061 00:52:30,190 --> 00:52:32,465 berpikir tentang apa artinya untuk mengambil sebuah buku telepon. 1062 00:52:32,465 --> 00:52:34,090 Aku hanya bisa mengatakan, mengambil buku telepon. 1063 00:52:34,090 --> 00:52:36,690 Dan itulah yang kita semua manusia lakukan di sini. 1064 00:52:36,690 --> 00:52:38,940 >> Ketika kami mungkin 1 tahun, 2 tahun, 1065 00:52:38,940 --> 00:52:41,690 seseorang harus mengajar kita apa dimaksudkan untuk mengambil sebuah buku telepon. 1066 00:52:41,690 --> 00:52:43,810 Dan sejak saat itu, kami telah disarikan pergi 1067 00:52:43,810 --> 00:52:46,739 dari orang-orang yang sangat menarik langkah mekanik. 1068 00:52:46,739 --> 00:52:48,530 Dan kami hanya memiliki pemahaman intuitif 1069 00:52:48,530 --> 00:52:50,480 apa artinya mengambil sebuah buku telepon. 1070 00:52:50,480 --> 00:52:55,730 >> Dan Anda bisa memperkirakan sekarang untuk things-- lebih rumit 1071 00:52:55,730 --> 00:52:57,640 membangun sebuah bangunan. 1072 00:52:57,640 --> 00:52:59,940 Seperti, untuk beberapa orang, yang benar-benar memiliki arti. 1073 00:52:59,940 --> 00:53:03,080 Untuk kontraktor, arsitek, yang memiliki beberapa makna. 1074 00:53:03,080 --> 00:53:06,400 Dan mereka akan tahu apa yang harus dilakukan, jika Aku berkata, pergi membangun sebuah bangunan. 1075 00:53:06,400 --> 00:53:10,520 >> Tapi kebanyakan dari kita di ruang tidak bisa berurusan dengan tingkat abstraksi. 1076 00:53:10,520 --> 00:53:14,850 Anda harus memberitahu kami suka pergi mendapatkan sekop dan pergi mendapatkan beton 1077 00:53:14,850 --> 00:53:17,250 dan kuku potongan kayu bersama-sama dan apa pun 1078 00:53:17,250 --> 00:53:18,830 terlibat dalam membangun sebuah bangunan. 1079 00:53:18,830 --> 00:53:21,690 Dan itu karena kita tidak memiliki belum diprogram untuk memahami 1080 00:53:21,690 --> 00:53:23,629 apa artinya untuk membangun sebuah bangunan. 1081 00:53:23,629 --> 00:53:24,920 Kami tidak memiliki abstraksi itu. 1082 00:53:24,920 --> 00:53:26,570 Kami tidak memiliki fungsi itu. 1083 00:53:26,570 --> 00:53:29,930 >> Dan apa yang akan Anda lihat di bahasa pemrograman, secara umum, 1084 00:53:29,930 --> 00:53:34,570 bahasa terutama yang lebih modern, seperti Java, PHP, Ruby, dan Python, 1085 00:53:34,570 --> 00:53:37,610 mereka jauh lebih matang dari bahasa yang lebih tua, 1086 00:53:37,610 --> 00:53:40,140 seperti C dan C ++ dan yang lain. 1087 00:53:40,140 --> 00:53:42,580 Dan sehingga mereka datang dengan lebih fungsi built in. 1088 00:53:42,580 --> 00:53:45,640 kode lebih telah ditulis oleh orang-orang di masa lalu 1089 00:53:45,640 --> 00:53:50,520 bahwa kita sekarang dapat memanggil atau memanggil atau menggunakan, karena saya mengisyaratkan 1090 00:53:50,520 --> 00:53:52,231 di dengan ini disorot line di sini. 1091 00:53:52,231 --> 00:53:55,230 Dan jadi meskipun kita tidak berbicara tentang bahasa pemrograman per se, 1092 00:53:55,230 --> 00:54:00,230 Kode hanya pseudocode, semua ide-ide masih dalam diskusi itu. 1093 00:54:00,230 --> 00:54:04,600 Dan ternyata presisi super penting, seperti abstraksi. 1094 00:54:04,600 --> 00:54:06,570 Dan mari kita coba untuk berkomunikasi yang sebagai berikut. 1095 00:54:06,570 --> 00:54:11,000 >> Saya sengaja mungkin manja ini dengan berkedip slide di layar 1096 00:54:11,000 --> 00:54:12,260 sebelum waktunya. 1097 00:54:12,260 --> 00:54:16,550 Tapi biarkan aku meminta sukarelawan berani, jika Anda tidak keberatan datang. 1098 00:54:16,550 --> 00:54:19,040 Anda akan berada di depan kamera, jika Anda OK dengan itu. 1099 00:54:19,040 --> 00:54:24,950 Apakah ada yang mau datang dan memberikan instruksi kepada rekan-rekan Anda di sini? 1100 00:54:24,950 --> 00:54:29,540 Hanya harus datang ke sini dan berdiri di sini dan mengatakan beberapa kata. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria tersenyum paling dan menghindari mata saya yang paling. 1102 00:54:32,890 --> 00:54:34,740 Apakah Anda bersedia untuk datang ke atas? 1103 00:54:34,740 --> 00:54:35,240 BAIK. 1104 00:54:35,240 --> 00:54:38,480 Dan jika semua orang di kursi Anda bisa mengambil secarik kertas memo, 1105 00:54:38,480 --> 00:54:39,750 jika Anda mau. 1106 00:54:39,750 --> 00:54:40,760 kertas bergaris baik-baik saja. 1107 00:54:40,760 --> 00:54:41,990 Datang sekitar dengan cara ini. 1108 00:54:41,990 --> 00:54:44,580 Atau beberapa kertas yang Anda diberi kemarin, 1109 00:54:44,580 --> 00:54:46,493 sembarang lembaran kosong kertas, jika Anda bisa. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 Dan jika Anda tidak memiliki apapun, hanya meminta tetangga Anda jika Anda bisa. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Jadi untuk saat ini, untuk contoh ini, Victoria 1114 00:55:07,580 --> 00:55:11,520 akan memainkan peran programmer, seorang insinyur, yang 1115 00:55:11,520 --> 00:55:16,130 kebutuhan untuk program Anda semua, sebagai komputer, untuk melakukan sesuatu. 1116 00:55:16,130 --> 00:55:19,570 Dan kita akan melihat apa asumsi Anda memutuskan untuk membuat. 1117 00:55:19,570 --> 00:55:22,700 Kita akan melihat bagaimana tepatnya dia memilih untuk menjadi. 1118 00:55:22,700 --> 00:55:26,220 Dan jika demonstrasi ini berjalan pedagogis baik, banyak kesalahan 1119 00:55:26,220 --> 00:55:29,220 akan dibuat, bahwa kita kemudian akan menggunakan bahwa sebagai kesempatan untuk diskusi. 1120 00:55:29,220 --> 00:55:32,010 Namun tantangan untuk Anda harus untuk menghindari kesalahan-kesalahan, 1121 00:55:32,010 --> 00:55:32,896 menjadi programmer yang baik. 1122 00:55:32,896 --> 00:55:35,520 Dan tantangan di tangan, jika Anda akan menyukai untuk berjalan di sini, 1123 00:55:35,520 --> 00:55:38,799 adalah di depan Victoria di layar sini-dan mudah-mudahan, tidak ada Anda 1124 00:55:38,799 --> 00:55:40,590 ingat ini ketika saya muncul di layar. 1125 00:55:40,590 --> 00:55:44,097 Dan tidak berbalik sama sekali, karena ada layar lain di ruangan ini 1126 00:55:44,097 --> 00:55:44,930 bahwa saya bisa mematikan. 1127 00:55:44,930 --> 00:55:46,620 Jadi jangan berbalik. 1128 00:55:46,620 --> 00:55:49,090 >> Di depan Victoria adalah bahwa jeritan yang sama. 1129 00:55:49,090 --> 00:55:54,170 Dan pekerjaannya sekarang adalah untuk memberitahu Anda semua pada bagian Anda kertas apa yang menarik. 1130 00:55:54,170 --> 00:55:57,020 Dan kita akan lihat, berdasarkan instruksi lisan saja, 1131 00:55:57,020 --> 00:56:00,020 kode komputer, jika Anda mau, seberapa akurat gambar Anda 1132 00:56:00,020 --> 00:56:02,330 are-- implementasi Anda. 1133 00:56:02,330 --> 00:56:02,980 Masuk akal? 1134 00:56:02,980 --> 00:56:03,604 >> AUDIENCE: Ya. 1135 00:56:03,604 --> 00:56:04,980 DAVID Malan: OK, mengeksekusi. 1136 00:56:04,980 --> 00:56:06,030 >> AUDIENCE: Menggambar persegi. 1137 00:56:06,030 --> 00:56:09,050 >> [TAWA] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID Malan: Dan tidak pertanyaan mungkin diminta. 1139 00:56:12,310 --> 00:56:13,720 hanya dapat melakukan apa yang diperintahkan. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 Oh, dan jika Anda memiliki slide hari ini terbuka di tab, jangan melihat tab Anda. 1142 00:56:22,550 --> 00:56:23,670 BAIK? 1143 00:56:23,670 --> 00:56:26,135 >> AUDIENCE: OK, menggambar lingkaran. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 Sebuah slope-- bisa saya katakan lereng? 1146 00:56:34,872 --> 00:56:35,830 DAVID Malan: Sampai Anda. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 AUDIENCE: A lereng. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 Dan segitiga. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID Malan: Baiklah. 1152 00:56:50,850 --> 00:56:52,286 Dan tinggal di sini untuk sesaat. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 Dan aku akan datang sekitar hanya dalam beberapa saat. 1155 00:56:58,910 --> 00:57:02,420 Dan tidak perlu untuk menempatkan nama Anda di atasnya. 1156 00:57:02,420 --> 00:57:05,030 Biarkan aku datang sekitar dan mengumpulkan gambar Anda, 1157 00:57:05,030 --> 00:57:08,330 jika Anda tidak keberatan merobek mereka. 1158 00:57:08,330 --> 00:57:12,110 >> Berikut adalah apa yang kami kembali. 1159 00:57:12,110 --> 00:57:14,770 Saya akan memproyeksikan pada layar. 1160 00:57:14,770 --> 00:57:18,310 Saya melihat persegi, lingkaran, lereng, dan segitiga. 1161 00:57:18,310 --> 00:57:20,130 Jadi itu satu jawaban di sana. 1162 00:57:20,130 --> 00:57:23,640 Dan let's-- whoops. 1163 00:57:23,640 --> 00:57:25,370 Terima kasih. 1164 00:57:25,370 --> 00:57:30,710 Berikut bermacam-macam lain, dan satu di belakang itu. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Jadi mereka semua tampaknya menangkap semangat. 1167 00:57:37,120 --> 00:57:38,600 Terima kasih. 1168 00:57:38,600 --> 00:57:44,970 Ada lagi, dan inilah satu lagi. 1169 00:57:44,970 --> 00:57:51,590 Interpretasi kemiringan adalah sedikit berbeda, sedikit melengkung. 1170 00:57:51,590 --> 00:57:57,140 Dan yang paling dekat, baik karena indah spesifisitas dengan yang telah Anda 1171 00:57:57,140 --> 00:58:03,520 dijelaskan, atau mungkin Anda jenis melihat itu sebelumnya, ini memang 1172 00:58:03,520 --> 00:58:06,340 apa yang sebenarnya menggambarkan Victoria. 1173 00:58:06,340 --> 00:58:09,190 >> Tapi sekarang, Anda yang tidak mendapatkan cukup benar, 1174 00:58:09,190 --> 00:58:11,140 mari kita menawarkan beberapa keberatan sini. 1175 00:58:11,140 --> 00:58:13,770 Jadi Victoria pertama mengatakan menggambar persegi. 1176 00:58:13,770 --> 00:58:15,830 Dan sekarang, kita dapat mengasumsikan demi hari 1177 00:58:15,830 --> 00:58:17,538 bahwa semua orang tahu cara menggambar persegi. 1178 00:58:17,538 --> 00:58:20,590 Tapi itu tidak sepenuhnya jelas, kan? 1179 00:58:20,590 --> 00:58:23,220 Bagaimana lagi Anda bisa memiliki ditarik persegi, atau di mana 1180 00:58:23,220 --> 00:58:27,114 mungkin beberapa ambiguitas di sini untuk komputer? 1181 00:58:27,114 --> 00:58:28,280 AUDIENCE: Lokasi dan ukuran. 1182 00:58:28,280 --> 00:58:28,980 DAVID Malan: Lokasi, kan? 1183 00:58:28,980 --> 00:58:32,070 Anda semua memiliki kertas beberapa bentuk, umumnya persegi panjang, tetapi sedikit 1184 00:58:32,070 --> 00:58:32,830 ukuran yang berbeda. 1185 00:58:32,830 --> 00:58:36,250 Tapi Anda pasti bisa ditarik, jika Anda ingin, persegi besar, mungkin 1186 00:58:36,250 --> 00:58:37,220 persegi kecil. 1187 00:58:37,220 --> 00:58:38,417 Mungkin, itu diputar. 1188 00:58:38,417 --> 00:58:39,500 Saya tidak berpikir kita melihat bahwa. 1189 00:58:39,500 --> 00:58:41,790 Tapi bisa saja lebih berlian seperti tapi masih, tetap, 1190 00:58:41,790 --> 00:58:42,900 matematis persegi. 1191 00:58:42,900 --> 00:58:44,850 Jadi itu bisa dibilang ambigu. 1192 00:58:44,850 --> 00:58:46,709 >> Lalu dia berkata, menggambar lingkaran. 1193 00:58:46,709 --> 00:58:49,250 Beberapa dari Anda tidak menarik di samping itu, yang tidak masuk akal, 1194 00:58:49,250 --> 00:58:52,450 karena manusia cenderung berpikir atau membaca kanan ke kiri dalam kebanyakan bahasa, sehingga tidak 1195 00:58:52,450 --> 00:58:53,017 menebak buruk. 1196 00:58:53,017 --> 00:58:55,100 Tapi lingkaran itu bisa memiliki berada di dalam alun-alun, 1197 00:58:55,100 --> 00:58:57,600 bisa saja di sekitar persegi, bisa saja di tempat lain 1198 00:58:57,600 --> 00:58:59,480 pada lembar, jadi bisa dibilang ambigu. 1199 00:58:59,480 --> 00:59:03,290 >> Kemiringan mungkin telah mungkin mengambil paling kebebasan secara lisan 1200 00:59:03,290 --> 00:59:04,200 dengan apa artinya. 1201 00:59:04,200 --> 00:59:06,980 Dan beberapa dari Anda ditafsirkan sebagai garis berlekuk-lekuk 1202 00:59:06,980 --> 00:59:08,560 atau garis lurus atau sejenisnya. 1203 00:59:08,560 --> 00:59:11,719 Dan kemudian segitiga, juga, bisa memiliki telah berorientasi dalam sejumlah cara. 1204 00:59:11,719 --> 00:59:14,760 Jadi singkatnya, bahkan dengan sesuatu yang Anda melirik dan Anda seperti, wow, sehingga 1205 00:59:14,760 --> 00:59:17,020 sederhana, seorang anak bisa menggambar ini, juga tidak 1206 00:59:17,020 --> 00:59:19,640 benar-benar, kecuali jika Anda super, super persuasif 1207 00:59:19,640 --> 00:59:22,045 dan memberitahu komputer apa yang harus dilakukan. 1208 00:59:22,045 --> 00:59:24,420 Jadi jika kita bisa, jika Anda memiliki selembar kertas, mari kita 1209 00:59:24,420 --> 00:59:26,710 coba ini sekali lagi. 1210 00:59:26,710 --> 00:59:29,880 Dan aku akan memberikan Victoria satu contoh lain pada layar di sini. 1211 00:59:29,880 --> 00:59:34,060 Dan lagi, jangan berbalik dan tidak melihat slide Anda. 1212 00:59:34,060 --> 00:59:37,304 Dan aku akan memberinya waktu untuk berpikir tentang bagaimana untuk menggambarkan ini. 1213 00:59:37,304 --> 00:59:39,012 Jangan biarkan mereka melihat ketakutan di mata Anda. 1214 00:59:39,012 --> 00:59:40,820 >> [TAWA] 1215 00:59:40,820 --> 00:59:43,710 >> Dan lagi, ini waktu maksimal beberapa dari mereka takeaways 1216 00:59:43,710 --> 00:59:48,130 dan mencoba untuk mendapatkan hampir semua orang setidaknya jawaban yang benar. 1217 00:59:48,130 --> 00:59:52,260 >> AUDIENCE: OK, mengambil selembar kertas, melihat 1218 00:59:52,260 --> 00:59:54,500 di tengah selembar kertas. 1219 00:59:54,500 --> 00:59:59,591 Di tengah bagian yang kertas, menggambar kubus. 1220 00:59:59,591 --> 01:00:01,244 >> [TAWA] 1221 01:00:01,244 --> 01:00:02,660 DAVID Malan: Apa yang harus kita pelajari? 1222 01:00:02,660 --> 01:00:03,540 Kami begitu dekat. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, ulangi jika Anda bisa, untuk semua orang. 1225 01:00:09,045 --> 01:00:13,210 >> AUDIENCE: Di tengah-tengah selembar kertas, menggambar objek, 1226 01:00:13,210 --> 01:00:14,842 yang terlihat seperti kubus. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID Malan: OK, itu semua yang Anda bisa bekerja dengan. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Izinkan saya untuk menjadi analitis dan tidak begitu banyak kritis, 1230 01:00:23,080 --> 01:00:25,720 tetapi untuk membuat klaim bahwa Victoria pasti 1231 01:00:25,720 --> 01:00:28,967 tampaknya berpikir dalam sangat tingkat tinggi abstraksi, yang 1232 01:00:28,967 --> 01:00:29,800 tidak masuk akal. 1233 01:00:29,800 --> 01:00:32,160 Karena jika tidak, kita semua cukup disfungsional, 1234 01:00:32,160 --> 01:00:35,740 jika kita harus pernah begitu tepat dengan segala sesuatu yang kita lakukan di dunia ini. 1235 01:00:35,740 --> 01:00:38,890 >> Tetapi mengatakan pergi ke middle-- I pikir kami berada di suatu track yang baik 1236 01:00:38,890 --> 01:00:42,340 ada, seperti pergi ke sangat tengah halaman, dan kemudian menarik sebuah kubus. 1237 01:00:42,340 --> 01:00:45,730 Jadi dia berpikir di abstraksi, karena dia masih melihat 1238 01:00:45,730 --> 01:00:48,490 apa yang ada di layar karena memang kubus. 1239 01:00:48,490 --> 01:00:51,185 Tapi ada begitu banyak peluang untuk interpretasi ada. 1240 01:00:51,185 --> 01:00:53,560 Dan pada kenyataannya, ada begitu banyak cara lain Anda bisa mengekspresikan 1241 01:00:53,560 --> 01:00:55,101 itu, yang saya akan mengusulkan dalam sekejap. 1242 01:00:55,101 --> 01:00:59,770 Jadi di sini kita memiliki satu inkarnasi dari satu whoops-- picture-- 1243 01:00:59,770 --> 01:01:02,830 inkarnasi dari gambar, sehingga sedikit tiga dimensi untuk itu, 1244 01:01:02,830 --> 01:01:04,160 yang bagus. 1245 01:01:04,160 --> 01:01:08,470 >> Ini satu lagi, di mana Anda memiliki yang sama, meskipun itu jenis batu terbuka. 1246 01:01:08,470 --> 01:01:12,020 Beberapa orang mengambil sedikit lebih datar, dua dimensi. 1247 01:01:12,020 --> 01:01:13,910 Dan itu baik-baik saja. 1248 01:01:13,910 --> 01:01:17,380 Jadi ada, memang di tengah kertas. 1249 01:01:17,380 --> 01:01:22,720 satu ini saya pikir Anda akan seperti, karena jika kita pergi ke sini, 1250 01:01:22,720 --> 01:01:25,130 ini adalah apa yang dia menjelaskan. 1251 01:01:25,130 --> 01:01:29,570 Jadi sekarang, biarkan saya mengusulkan bagaimana lagi kita mungkin menggambarkan situasi ini. 1252 01:01:29,570 --> 01:01:34,070 >> Kembali pada hari, salah satu yang paling cara yang lebih umum untuk belajar pemrograman 1253 01:01:34,070 --> 01:01:38,900 adalah menulis kode, menulis baris instruksi, 1254 01:01:38,900 --> 01:01:42,640 yang dikendalikan sedikit penyu di layar. 1255 01:01:42,640 --> 01:01:45,660 Logo dan varian lain dari ini adalah nama dari bahasa. 1256 01:01:45,660 --> 01:01:47,550 Dan kura-kura hidup di dunia. 1257 01:01:47,550 --> 01:01:49,970 >> Jadi misalkan persegi panjang ini ruang dunianya. 1258 01:01:49,970 --> 01:01:53,340 Dan Anda akan mulai dengan assuming-- I tidak benar-benar tahu cara menggambar penyu, 1259 01:01:53,340 --> 01:01:54,740 jadi mari kita melakukannya seperti ini. 1260 01:01:54,740 --> 01:01:57,340 Dan kemudian dia punya shell dan kemudian mungkin beberapa kaki. 1261 01:01:57,340 --> 01:01:59,840 Sehingga Anda mungkin harus sedikit ini karakter di layar. 1262 01:01:59,840 --> 01:02:02,270 >> Dan obyek ini bahasa pemrograman 1263 01:02:02,270 --> 01:02:06,070 adalah untuk memaksa penyu naik, bawah, kiri, kanan 1264 01:02:06,070 --> 01:02:08,420 dan untuk meletakkan pena ke bawah atau mengambil pena up, 1265 01:02:08,420 --> 01:02:12,720 sehingga ia benar-benar bisa menggambar di layar di dunia persegi panjang sangat datar ini. 1266 01:02:12,720 --> 01:02:16,850 Jadi di mana saya pikir Anda mungkin akan, dan di mana Anda harus mempertimbangkan menyelam 1267 01:02:16,850 --> 01:02:19,520 ke mental ketika menggambarkan instruksi lebih umum, 1268 01:02:19,520 --> 01:02:21,720 Saya akan mengklaim, diletakkan Anda pena ke dalam middle-- yang 1269 01:02:21,720 --> 01:02:23,100 dan kami akan menyingkirkan penyu, karena saya tidak bisa benar-benar 1270 01:02:23,100 --> 01:02:24,680 terus menggambar dia sangat baik. 1271 01:02:24,680 --> 01:02:27,170 >> Dan sekarang, bagaimana lagi bisa Saya katakan menggambar kubus? 1272 01:02:27,170 --> 01:02:32,830 Nah, kita bisa mengatakan sesuatu seperti imbang garis timur laut diagonal, misalnya, 1273 01:02:32,830 --> 01:02:35,182 atau pada sudut 45 derajat ke atas. 1274 01:02:35,182 --> 01:02:36,640 Dan itu mungkin saja saya di sini. 1275 01:02:36,640 --> 01:02:38,380 Dan aku cukup jauh dari kubus. 1276 01:02:38,380 --> 01:02:42,430 Tapi sekarang, saya bisa mengatakan sesuatu seperti putar 90 derajat ke kiri 1277 01:02:42,430 --> 01:02:47,370 dan menarik garis dari panjang yang sama laut. 1278 01:02:47,370 --> 01:02:49,470 Dan aku bisa terus dengan arah yang sama. 1279 01:02:49,470 --> 01:02:50,720 Dan itu tidak akan mudah. 1280 01:02:50,720 --> 01:02:53,345 Dan terus terang, kita mungkin akan telah di sini selama lima menit. 1281 01:02:53,345 --> 01:02:59,600 Tapi mungkin kita akan mendapatkan untuk sesuatu yang, pada akhir hari, 1282 01:02:59,600 --> 01:03:04,280 akhirnya menjadi kubus, tapi kami menyelam dalam abstraksi yang 1283 01:03:04,280 --> 01:03:06,370 melakukannya di seperti rendah tingkat bahwa Anda tidak bisa benar-benar 1284 01:03:06,370 --> 01:03:09,795 melihat apa yang Anda lakukan sampai seluruh Hal ini sebenarnya ada pada halaman. 1285 01:03:09,795 --> 01:03:12,670 Dan jadi ini adalah prinsip umum, lagi, dari programming-- ide ini 1286 01:03:12,670 --> 01:03:13,320 abstraksi. 1287 01:03:13,320 --> 01:03:15,920 Ini sangat mengagumkan kuat, karena sekali lagi, 1288 01:03:15,920 --> 01:03:19,281 ia hanya berkata, menggambar kubus, yang semua kami cukup banyak akan grok sangat cepat. 1289 01:03:19,281 --> 01:03:21,030 Kami hanya akan mengerti, OK, menggambar kubus. 1290 01:03:21,030 --> 01:03:24,030 Kita mungkin tidak tahu orientasi, jadi kami bisa sedikit lebih tepat, 1291 01:03:24,030 --> 01:03:26,297 tapi kita umumnya dapat membayangkan atau tahu apa kubus adalah. 1292 01:03:26,297 --> 01:03:28,130 Dan yang berguna, karena jika setiap kali Anda 1293 01:03:28,130 --> 01:03:31,540 duduk sebagai programmer di keyboard untuk menulis kode, 1294 01:03:31,540 --> 01:03:33,912 jika Anda harus berpikir di seperti tingkat rendah, tidak satupun dari kita 1295 01:03:33,912 --> 01:03:35,120 akan pernah mendapatkan apa-apa dilakukan. 1296 01:03:35,120 --> 01:03:38,259 Dan tentu saja, tidak satupun dari kita akan menikmati proses penulisan kode. 1297 01:03:38,259 --> 01:03:41,550 Ini akan seperti menulis di 0 dan 1, yang terus terang tidak semua yang lama yang lalu 1298 01:03:41,550 --> 01:03:43,680 manusia yang menulis kode di 0 dan 1. 1299 01:03:43,680 --> 01:03:46,960 Dan kami sangat cepat datang dengan ini lebih tinggi languages-- tingkat 1300 01:03:46,960 --> 01:03:49,410 C ++ dan Java dan lain-lain. 1301 01:03:49,410 --> 01:03:52,500 >> Jadi mari kita coba ini sekali lagi hanya untuk membalik meja, sehingga kita semua 1302 01:03:52,500 --> 01:03:55,450 memiliki kesempatan untuk berpikir lewat cara yang sama. 1303 01:03:55,450 --> 01:03:59,230 Bisakah kita mendapatkan satu relawan lainnya ini waktu untuk datang ke papan tulis dan menggambar, 1304 01:03:59,230 --> 01:04:01,480 tidak membaca? 1305 01:04:01,480 --> 01:04:02,070 Ya oke. 1306 01:04:02,070 --> 01:04:04,820 Ben, ayolah up. 1307 01:04:04,820 --> 01:04:08,510 Dan, Ben, dalam hal ini, setelah Anda menghadapi papan, tidak lihat kiri, 1308 01:04:08,510 --> 01:04:09,370 tidak terlihat benar. 1309 01:04:09,370 --> 01:04:12,367 Hanya melakukan apa yang Anda rekan-rekan di sini memberitahu Anda. 1310 01:04:12,367 --> 01:04:14,950 Dan untuk orang lain di kamar, Anda sekarang adalah programmer. 1311 01:04:14,950 --> 01:04:16,020 Dia komputer. 1312 01:04:16,020 --> 01:04:21,395 Dan gambar saya telah memilih di sini di muka adalah salah satu ini di sini. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Mereka hanya-- mereka berpikir dari lelucon lucu adalah semua. 1315 01:04:27,660 --> 01:04:31,510 >> Jadi akan apakah seseorang ingin relawan instruksi pertama 1316 01:04:31,510 --> 01:04:35,470 atau pernyataan yang seharusnya pen perintah Ben? 1317 01:04:35,470 --> 01:04:40,850 Dan kami akan melakukan ini secara kolektif, mungkin satu instruksi dari setiap orang. 1318 01:04:40,850 --> 01:04:41,440 Maafkan saya? 1319 01:04:41,440 --> 01:04:42,440 >> AUDIENCE: Gambar lingkaran. 1320 01:04:42,440 --> 01:04:45,866 DAVID Malan: Gambar lingkaran adalah hal pertama yang saya dengar. 1321 01:04:45,866 --> 01:04:47,100 >> AUDIENCE: Up atas. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID Malan: Up atas. 1323 01:04:48,140 --> 01:04:52,504 OK, kita dapat membiarkan Anda menghapus, membatalkan. 1324 01:04:52,504 --> 01:04:53,420 Dan sekarang, orang lain. 1325 01:04:53,420 --> 01:04:55,994 Dan, apakah Anda nyaman menawarkan instruksi berikutnya? 1326 01:04:55,994 --> 01:05:02,070 >> AUDIENCE: Tentu, menggambar pusat dari bagian bawah lingkaran, 1327 01:05:02,070 --> 01:05:07,121 dengan small-- sedikit ruang kecil itu, 1328 01:05:07,121 --> 01:05:15,420 menarik garis lurus ke tiga perempat jalan turun papan 1329 01:05:15,420 --> 01:05:17,845 sedikit miring ke kiri. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID Malan: Baik. 1332 01:05:22,620 --> 01:05:24,086 >> AUDIENCE: sudut ringan. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID Malan: Undo, Control-Z. BAIK. 1334 01:05:32,807 --> 01:05:34,890 Andrew, Anda ingin menawarkan up instruksi berikutnya? 1335 01:05:34,890 --> 01:05:35,515 >> AUDIENCE: Tentu. 1336 01:05:35,515 --> 01:05:43,250 Dari bawah garis, sedikit angle-- lanjut 1337 01:05:43,250 --> 01:05:49,024 whoops-- mungkin sekitar sepertiga dari panjang [tidak terdengar], 1338 01:05:49,024 --> 01:05:52,928 sedikit sudut ke bawah dan seperti sepertiga dari panjang [tidak terdengar]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Jadi ya, dari titik itu, menarik garis ketiga 1341 01:06:00,578 --> 01:06:04,150 dari panjang sebelumnya garis lebih lanjut ke kiri. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID Malan: OK itu? 1344 01:06:10,040 --> 01:06:12,330 garis lurus, itu OK? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, Anda ingin untuk menawarkan berikutnya? 1346 01:06:14,900 --> 01:06:28,564 >> AUDIENCE: [tidak terdengar] dari bawah lingkaran, [tidak terdengar]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Menggambar pada sisi kanan dari [tidak terdengar] sentimeter. 1349 01:06:45,126 --> 01:06:46,560 >> [TAWA] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID Malan: Saya pikir Anda akan harus mengkonversi yang inci di sini. 1351 01:06:49,872 --> 01:06:50,764 >> AUDIENCE: Hentikan. 1352 01:06:50,764 --> 01:06:52,186 >> [TAWA] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID Malan: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?] Anda ingin untuk menawarkan berikutnya? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> AUDIENCE: Menggambar [tidak terdengar] upper [tidak terdengar] yang sama. 1357 01:07:15,443 --> 01:07:28,829 [Tidak terdengar] lingkaran, menggambar dengan [Tidak terdengar] dan menarik [tidak terdengar]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID Malan: OK, tidak lebih membatalkan. 1360 01:07:36,730 --> 01:07:38,390 Mari kita lakukan satu atau dua petunjuk lebih lanjut. 1361 01:07:38,390 --> 01:07:40,825 Chris, Anda ingin menawarkan satu? 1362 01:07:40,825 --> 01:07:46,182 >> AUDIENCE: Di bagian bawah lingkaran, [tidak terdengar] 1363 01:07:46,182 --> 01:07:51,528 menarik garis tumpah sama ke bawah ke kiri [tidak terdengar]. 1364 01:07:51,528 --> 01:07:59,304 1365 01:07:59,304 --> 01:08:00,590 >> DAVID Malan: OK. 1366 01:08:00,590 --> 01:08:01,170 Andrew? 1367 01:08:01,170 --> 01:08:02,472 Kami did-- Karim? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> AUDIENCE: Mulai dari garis yang tepat, akhir garis kiri, bawah, 1370 01:08:13,765 --> 01:08:21,012 Anda akan pergi benar tentang panjang yang sama dengan garis yang 1371 01:08:21,012 --> 01:08:27,680 Anda berada di, gambar untuk hak [tidak terdengar]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Tidak terdengar] derajat, sehingga [tidak terdengar] derajat di sisi kanan. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID Malan: Baiklah. 1376 01:08:43,500 --> 01:08:44,029 Mari kita berhenti sejenak. 1377 01:08:44,029 --> 01:08:44,950 Jangan berbalik belum. 1378 01:08:44,950 --> 01:08:46,783 Mari kita berhenti sejenak, dan mari kita mencoba salah satu upaya lainnya 1379 01:08:46,783 --> 01:08:48,850 sebelum kita mengungkapkan kepada Ben apa yang dia telah menggambar. 1380 01:08:48,850 --> 01:08:51,189 Anda dapat mengocok Ben untuk yang right-- atau sebenarnya, 1381 01:08:51,189 --> 01:08:54,080 tidak, mari kita memberikan papan lain, bahkan lebih baik. 1382 01:08:54,080 --> 01:08:57,640 Jadi akan seseorang sekarang seperti mengambil lebih dari pendekatan 1383 01:08:57,640 --> 01:09:02,149 bahwa Victoria mengambil sebelumnya pada, di mana kita berbicara dalam abstraksi tingkat yang lebih tinggi 1384 01:09:02,149 --> 01:09:05,149 dan hanya kalimat atau dua menjelaskan kepada Ben 1385 01:09:05,149 --> 01:09:07,229 apa yang menarik tanpa masuk ke gulma, 1386 01:09:07,229 --> 01:09:10,670 sehingga untuk berbicara, di ini tingkat yang lebih rendah? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [TAWA] 1389 01:09:11,706 --> 01:09:14,249 AUDIENCE: Menggambar sosok dari orang berjalan. 1390 01:09:14,249 --> 01:09:18,866 Dan kaki dan lengannya harus sisi kanan. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID Malan: OK, itu saja yang Anda dapatkan. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 Baiklah. 1394 01:09:27,710 --> 01:09:31,609 Mengapa kita tidak mengungkapkan kepada Ben apa yang dia lakukan. 1395 01:09:31,609 --> 01:09:32,890 Jadi tepuk tangan. 1396 01:09:32,890 --> 01:09:35,700 Itu adalah yang paling sulit mungkin. 1397 01:09:35,700 --> 01:09:37,931 >> Jadi meskipun kita berbicara dalam hal cukup konyol 1398 01:09:37,931 --> 01:09:39,680 tentang hanya menggambar gambar, mudah-mudahan Anda 1399 01:09:39,680 --> 01:09:44,226 benar-benar dapat menghargai derajat ekspresif yang mungkin diperlukan 1400 01:09:44,226 --> 01:09:45,850 untuk memberitahu komputer apa yang harus dilakukan. 1401 01:09:45,850 --> 01:09:50,370 Dan pada kenyataannya, fakta bahwa Ben mampu menarik ini begitu cepat 1402 01:09:50,370 --> 01:09:54,227 adalah semacam bukti menggunakan bahasa, mungkin tingkat yang lebih tinggi 1403 01:09:54,227 --> 01:09:57,060 versi bahasa Inggris, yang memungkinkan dia hanya menggunakan kata-kata, atau mendengar kata-kata 1404 01:09:57,060 --> 01:09:59,990 dari Victoria, yang memungkinkan dia ini abstractions-- hanya menggambar 1405 01:09:59,990 --> 01:10:03,020 sosok berjalan ke right-- semacam memiliki 1406 01:10:03,020 --> 01:10:07,100 makna semantik untuk itu yang tidak hampir sama jelas ketika Anda hanya 1407 01:10:07,100 --> 01:10:10,310 mengatakan, meletakkan pena Anda ke bawah, menarik ke kanan, menarik ke kiri. 1408 01:10:10,310 --> 01:10:12,420 >> Dan ini juga, sangat umum dalam pemrograman. 1409 01:10:12,420 --> 01:10:15,253 Ini akan dikatakan seperti bahasa tingkat yang sangat rendah, pemrograman 1410 01:10:15,253 --> 01:10:16,730 di 0 dan 1 jika Anda mau. 1411 01:10:16,730 --> 01:10:19,320 Dan ini akan menjadi tingkat yang lebih tinggi bahasa pemrograman di Jawa, 1412 01:10:19,320 --> 01:10:20,278 atau semacam itu. 1413 01:10:20,278 --> 01:10:22,050 Sebuah sedikit penyederhanaan, tapi itu 1414 01:10:22,050 --> 01:10:24,310 jenis seperti emosional perasaan bahwa Anda rasakan ketika 1415 01:10:24,310 --> 01:10:26,630 menggunakan satu jenis atau lain hal. 1416 01:10:26,630 --> 01:10:32,650 Sedikit frustrasi di sini oleh kebutuhan untuk presisi seperti itu, tapi kesempatan 1417 01:10:32,650 --> 01:10:34,930 menjadi sedikit longgar dengan interpretasi sini. 1418 01:10:34,930 --> 01:10:38,060 Tapi tentu saja, bug dapat timbul sebagai hasilnya. 1419 01:10:38,060 --> 01:10:40,500 >> Jika Anda ingin di home-- kami tidak akan melakukan ini di class-- 1420 01:10:40,500 --> 01:10:41,900 tetapi jika Anda ingin membawa pulang satu ini, 1421 01:10:41,900 --> 01:10:43,387 Saya pikir kami akan menyelam ke dalam ini. 1422 01:10:43,387 --> 01:10:45,970 Jadi jika Anda ingin bermain ini game dengan lainnya yang signifikan Anda 1423 01:10:45,970 --> 01:10:49,180 atau anak-anak atau sejenisnya, Anda mungkin menikmati itu juga. 1424 01:10:49,180 --> 01:10:54,460 >> Jadi mari kita pergi ke depan dan melihat yang terakhir hal di sini untuk berpikir komputasi. 1425 01:10:54,460 --> 01:10:57,010 Dan itu membawa kita ke John Oliver, bukan untuk klip 1426 01:10:57,010 --> 01:11:00,070 Anda mungkin telah melihat tadi malam, tetapi untuk masalah yang agak baru-baru ini. 1427 01:11:00,070 --> 01:11:03,310 Beberapa bulan yang lalu, Volkswagen mengambil sedikit antipeluru 1428 01:11:03,310 --> 01:11:05,651 untuk alasan apa, jika Anda tahu? 1429 01:11:05,651 --> 01:11:07,025 Apa yang mereka mendapatkan kesulitan untuk? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Ya, jadi emissions-- mereka mencoba untuk mengalahkan emisi 1432 01:11:14,030 --> 01:11:19,100 tes oleh dasarnya memiliki mereka mobil mencemari lingkungan kurang 1433 01:11:19,100 --> 01:11:23,620 ketika mobil mereka sedang diuji dan mencemari lingkungan lebih 1434 01:11:23,620 --> 01:11:25,547 ketika mobil tidak sedang diuji. 1435 01:11:25,547 --> 01:11:28,630 Dan apa yang semakin menarik di dunia, karena Anda mungkin memiliki tereka 1436 01:11:28,630 --> 01:11:34,072 dari diskusi like-- apa itu-- CarPlay, software Apple untuk mobil 1437 01:11:34,072 --> 01:11:35,780 dan fakta bahwa banyak kita semakin 1438 01:11:35,780 --> 01:11:38,390 memiliki layar sentuh di mobil kami, ada sejumlah menakutkan 1439 01:11:38,390 --> 01:11:41,250 software di masyarakat mobil hari ini, yang 1440 01:11:41,250 --> 01:11:45,650 terus terang membuka keseluruhan dapat cacing ketika datang ke keamanan dan risiko fisik. 1441 01:11:45,650 --> 01:11:48,070 Tapi untuk saat ini, mari kita fokus hanya pada apa yang 1442 01:11:48,070 --> 01:11:52,170 terlibat dalam menulis perangkat lunak yang mungkin telah gamed sistem. 1443 01:11:52,170 --> 01:11:54,510 >> Untuk definisi masalah, untuk mereka yang tidak terbiasa, 1444 01:11:54,510 --> 01:11:55,740 mari kita lihat John Oliver. 1445 01:11:55,740 --> 01:11:58,115 Dan untuk mereka yang akrab dengan masalah, mari kita lihat itu 1446 01:11:58,115 --> 01:12:00,480 di lensa menyenangkan melalui John Oliver juga. 1447 01:12:00,480 --> 01:12:05,810 Jadi biarkan aku tekan tombol play ini, saya berpikir, pengenalan tiga menit. 1448 01:12:05,810 --> 01:12:07,074 Sial. 1449 01:12:07,074 --> 01:12:07,740 [VIDEO PEMUTARAN] 1450 01:12:07,740 --> 01:12:08,170 -Cars-- 1451 01:12:08,170 --> 01:12:09,919 DAVID Malan: Jelas, di YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --the Karakter terpandai di Fast dan Furious film. 1453 01:12:12,500 --> 01:12:16,080 Minggu ini, produsen mobil Jerman Volkswagen menemukan dirinya 1454 01:12:16,080 --> 01:12:19,430 di tengah-tengah skandal proporsi berpotensi kriminal. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Menguatkan untuk miliaran denda, tuduhan kriminal 1456 01:12:23,020 --> 01:12:25,530 untuk eksekutif, seperti perusahaan meminta maaf 1457 01:12:25,530 --> 01:12:28,790 untuk mencurangi 11 juta mobil untuk membantu mengalahkan tes emisi. 1458 01:12:28,790 --> 01:12:32,110 >> model diesel -Certain dirancang dengan software canggih yang 1459 01:12:32,110 --> 01:12:35,410 informasi yang digunakan, termasuk posisi dari roda kemudi dan kendaraan 1460 01:12:35,410 --> 01:12:38,820 kecepatan, untuk menentukan mobil itu menjalani uji emisi. 1461 01:12:38,820 --> 01:12:42,620 Dalam situasi itu, mesin akan mengurangi emisi beracun. 1462 01:12:42,620 --> 01:12:46,040 Tapi mobil itu dicurangi untuk memotong yang ketika itu sedang didorong. 1463 01:12:46,040 --> 01:12:51,370 Emisi meningkat 10 sampai 40 kali di atas tingkat EPA diterima. 1464 01:12:51,370 --> 01:12:55,920 >> -Wow, 10 hingga 40 kali lebih besar dari EPA memungkinkan. 1465 01:12:55,920 --> 01:12:59,570 Itu adalah hal terburuk Volkswagen yang pernah dilakukan, 1466 01:12:59,570 --> 01:13:04,200 adalah sesuatu yang Anda mungkin mengatakan jika Anda tidak akan pernah mendengar tentang Perang Dunia II. 1467 01:13:04,200 --> 01:13:09,710 Tapi mungkin tanda paling pasti tentang bagaimana banyak kesulitan Volkswagen di, 1468 01:13:09,710 --> 01:13:12,730 adalah bahwa orang-orang di bagian paling atas telah mengundurkan diri. 1469 01:13:12,730 --> 01:13:16,320 CEO mengundurkan diri pada Rabu setelah berebut untuk melakukan pengendalian kerusakan, 1470 01:13:16,320 --> 01:13:20,380 mengatakan dia tanpa henti maaf, yang terdengar hebat sampai ternyata 1471 01:13:20,380 --> 01:13:22,920 dia hanya 10% menyesal tetapi telah dicurangi mulutnya 1472 01:13:22,920 --> 01:13:25,600 untuk artifisial mengembang sorriness nya. 1473 01:13:25,600 --> 01:13:29,700 Dan sementara itu, Volkswagen AS Kepala memiliki permintaan maaf sendiri. 1474 01:13:29,700 --> 01:13:33,580 >> -Biarkan Menjadi jelas tentang hal ini, perusahaan kami adalah jujur. 1475 01:13:33,580 --> 01:13:37,140 Dan dalam kata-kata bahasa Jerman saya, kami telah benar-benar kacau. 1476 01:13:37,140 --> 01:13:41,360 >> Yeah, tapi benar-benar kacau up tidak bekerja Jerman. 1477 01:13:41,360 --> 01:13:43,750 Dan bahasa Jerman memiliki banyak frasa yang indah 1478 01:13:43,750 --> 01:13:50,070 untuk menggambarkan situasi seperti ini, seperti [JERMAN], yang berarti kira-kira, 1479 01:13:50,070 --> 01:13:52,870 kesedihan yang datang dari bisnis terkait kebohongan, 1480 01:13:52,870 --> 01:13:59,060 atau [JERMAN], yang diterjemahkan sebagai mempermalukan ayah yang melibatkan 1481 01:13:59,060 --> 01:14:00,352 awan bensin. 1482 01:14:00,352 --> 01:14:02,060 Ini adalah bahasa yang indah. 1483 01:14:02,060 --> 01:14:04,660 Itu hanya berlayar dari lidah. 1484 01:14:04,660 --> 01:14:07,920 Dan omong-omong, sedangkan manusia maaf mungkin terdengar tulus, 1485 01:14:07,920 --> 01:14:12,260 itu perlu dicatat ia berbicara di sebuah pesta peluncuran resmi untuk 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, yang berarti bahwa tak lama setelah mengatakan maaf, dia mengatakan ini. 1487 01:14:17,310 --> 01:14:18,850 >> -Terima Kasih banyak untuk datang. 1488 01:14:18,850 --> 01:14:19,630 Menikmati malam. 1489 01:14:19,630 --> 01:14:21,300 Up berikutnya adalah Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [MUSIC PLAYING] 1491 01:14:24,640 --> 01:14:28,230 >> -OK, OK, berakhir Anda maaf dengan up berikutnya 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz tidak menjerit penyesalan mabuk. 1493 01:14:31,940 --> 01:14:35,830 Jeritan, kami meminta Bon Jovi, dan ia mengatakan tidak. 1494 01:14:35,830 --> 01:14:38,600 merek Volkswagen memiliki telah rusak parah. 1495 01:14:38,600 --> 01:14:42,466 Dan terus terang, iklan baru mereka Kampanye tidak persis membantu. 1496 01:14:42,466 --> 01:14:47,289 >> - [JERMAN], kami di Volkswagen ingin untuk meminta maaf untuk menipu Anda dengan 1497 01:14:47,289 --> 01:14:47,930 kendaraan kami. 1498 01:14:47,930 --> 01:14:48,513 >> [END PEMUTARAN] 1499 01:14:48,513 --> 01:14:54,090 DAVID Malan: Jadi ini adalah cara bundaran of-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 ini adalah cara bundaran memperkenalkan masalah mendasar 1501 01:14:58,730 --> 01:15:02,810 dalam perangkat lunak, yang adalah bahwa Anda perlu untuk mendeteksi kondisi tertentu. 1502 01:15:02,810 --> 01:15:07,680 Dan pertanyaan di tangan disini adalah, bagaimana mobil berpotensi, 1503 01:15:07,680 --> 01:15:09,870 seperti yang diterapkan dalam perangkat lunak oleh programmer ini, 1504 01:15:09,870 --> 01:15:11,850 mendeteksi bahwa itu sebenarnya sedang diuji? 1505 01:15:11,850 --> 01:15:14,150 Jadi untuk menjadi super jelas, apa yang mereka lakukan 1506 01:15:14,150 --> 01:15:17,940 adalah, dalam lingkungan di mana programmer pikir 1507 01:15:17,940 --> 01:15:20,460 mobil sedang diuji, mereka entah bagaimana membuat 1508 01:15:20,460 --> 01:15:24,840 mobil memancarkan kurang emisi, lebih sedikit emisi, asap sehingga kurang beracun 1509 01:15:24,840 --> 01:15:25,470 dan seperti. 1510 01:15:25,470 --> 01:15:27,261 Tapi ketika itu biasanya berkendara di jalan, 1511 01:15:27,261 --> 01:15:30,350 itu hanya akan memancarkan sebanyak polusi karena ingin. 1512 01:15:30,350 --> 01:15:33,870 >> Jadi bagaimana kita bisa menulis pseudocode untuk algoritma ini? 1513 01:15:33,870 --> 01:15:37,820 Bagaimana kita bisa menulis pseudocode untuk perangkat lunak yang berjalan di dalam mobil? 1514 01:15:37,820 --> 01:15:43,390 Maksudku, singkatnya, mendidih ke sesuatu seperti ini. 1515 01:15:43,390 --> 01:15:48,000 jika sedang diuji, memancarkan kurang. 1516 01:15:48,000 --> 01:15:50,750 lain memancarkan lebih. 1517 01:15:50,750 --> 01:15:52,630 Tapi itu sedikit terlalu tinggi, kan? 1518 01:15:52,630 --> 01:15:58,580 >> Mari kita coba untuk menyelam di seperti apa ini abstraksi menjadi sarana diuji. 1519 01:15:58,580 --> 01:16:06,340 Dengan kata lain, bahkan jika Anda tahu apa-apa tentang mobil, seperti apa pertanyaan 1520 01:16:06,340 --> 01:16:13,440 mungkin Anda bertanya untuk menentukan apakah Anda sedang diuji, jika Anda mobil? 1521 01:16:13,440 --> 01:16:19,638 Karakteristik apa yang mungkin hadir jika mobil sedang diuji? 1522 01:16:19,638 --> 01:16:21,026 >> AUDIENCE: Pengujian peralatan. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID Malan: Pengujian peralatan. 1524 01:16:22,420 --> 01:16:26,060 Jadi jika pengujian peralatan dekatnya, kemudian memancarkan kurang. 1525 01:16:26,060 --> 01:16:28,669 Jadi saya bisa membayangkan menerapkan bahwa dengan beberapa jenis kamera 1526 01:16:28,669 --> 01:16:29,960 atau mendeteksi apa yang ada di sekitar Anda. 1527 01:16:29,960 --> 01:16:32,870 Dan biarkan aku mengusulkan, bahwa hanya merasa terlalu rumit 1528 01:16:32,870 --> 01:16:37,914 untuk benar-benar memiliki tambahan hardware hanya untuk tujuan itu. 1529 01:16:37,914 --> 01:16:44,830 >> AUDIENCE: Jika Anda berada di taman, jika hood Anda terbuka. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID Malan: Di taman atau kap terbuka, jadi itu bagus. 1531 01:16:47,320 --> 01:16:47,420 >> AUDIENCE: Dan mobil berjalan. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID Malan: Jadi itu sedikit lebih concrete-- dan mobil berjalan. 1533 01:16:50,480 --> 01:16:55,690 Jadi ini akan menjadi konjungsi dari beberapa kondisi yang berbeda, jika Anda mau. 1534 01:16:55,690 --> 01:16:59,227 Jadi jika mobil di taman, dan bahkan meskipun ini adalah hal yang sangat mekanis 1535 01:16:59,227 --> 01:17:01,060 biasanya, aku bisa bayangkan menulis perangkat lunak, 1536 01:17:01,060 --> 01:17:03,476 terutama karena ada sering cahaya sana hari ini, 1537 01:17:03,476 --> 01:17:07,400 Aku bisa membayangkan ada yang perangkat lunak yang dapat query shifter 1538 01:17:07,400 --> 01:17:10,634 atau apa yang tidak, kau di taman, yang Anda di drive, apakah Anda secara terbalik. 1539 01:17:10,634 --> 01:17:12,550 Dan saya bisa mendapatkan kembali menjawab itu baik ya 1540 01:17:12,550 --> 01:17:14,400 atau tidak untuk orang-orang macam pertanyaan. 1541 01:17:14,400 --> 01:17:17,630 >> Dan jadi saya juga bisa mungkin menjawab pertanyaan seperti, adalah kap terbuka. 1542 01:17:17,630 --> 01:17:21,860 Mungkin, ada beberapa jenis sensor yang baik memberi saya kembali 1 atau 0, 1543 01:17:21,860 --> 01:17:23,720 benar atau salah, kap terbuka. 1544 01:17:23,720 --> 01:17:28,180 Dan kemudian mobil berjalan, aku bisa mendeteksi yang entah bagaimana melalui mekanisme apa? 1545 01:17:28,180 --> 01:17:30,430 Seperti, mobil berjalan, saya bisa mendeteksi bahwa itu pada, 1546 01:17:30,430 --> 01:17:32,127 bisa saya mendeteksi entah bagaimana bahwa mobil bergerak? 1547 01:17:32,127 --> 01:17:32,881 >> AUDIENCE: RPM. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID Malan: Ya, jadi ada selalu jarum bahwa 1549 01:17:35,190 --> 01:17:38,034 memberitahu Anda berapa banyak rotasi per menit roda mengalami. 1550 01:17:38,034 --> 01:17:39,200 Dan jadi saya bisa melihat itu. 1551 01:17:39,200 --> 01:17:43,090 Dan jika tidak 0, yang mungkin berarti mobil bergerak. 1552 01:17:43,090 --> 01:17:45,400 Tapi kami harus menjadi sedikit berhati-hati di sana, 1553 01:17:45,400 --> 01:17:49,780 because-- mari kita menyederhanakan ini-- jika kita hanya mengatakan, jika mobil berjalan, 1554 01:17:49,780 --> 01:17:53,070 kita tidak ingin hanya memancarkan kurang, kita inginkan jika mobil berjalan 1555 01:17:53,070 --> 01:17:54,310 dan itu sedang diuji. 1556 01:17:54,310 --> 01:17:56,320 >> Jadi ada beberapa lainnya bahan yang orang 1557 01:17:56,320 --> 01:18:00,550 telah memperkirakan perangkat lunak lakukan, karena tidak ada kode sumber yang sebenarnya, 1558 01:18:00,550 --> 01:18:05,130 Anda dapat hanya semacam menyimpulkan dari efek fisik dari mobil untuk apa 1559 01:18:05,130 --> 01:18:08,280 mungkin terjadi di bawah kap dalam perangkat lunak. 1560 01:18:08,280 --> 01:18:17,090 Jadi jika mobil berjalan dan mungkin, katakanlah, roda belakang tidak bergerak, 1561 01:18:17,090 --> 01:18:19,420 mungkin ini menjadi indikasi beberapa jenis tes? 1562 01:18:19,420 --> 01:18:22,830 Apa yang saya mengisyaratkan di sini? 1563 01:18:22,830 --> 01:18:24,830 Ya, mungkin, itu di salah satu dari mereka rol hal, 1564 01:18:24,830 --> 01:18:28,340 mana seperti roda yang beralih di depan atau di belakang, 1565 01:18:28,340 --> 01:18:32,570 tergantung pada apakah itu roda depan atau roda belakang, sehingga setengah dari roda 1566 01:18:32,570 --> 01:18:34,420 yang bergerak, tapi dua lainnya tidak, yang 1567 01:18:34,420 --> 01:18:36,320 adalah situasi yang aneh di dunia nyata. 1568 01:18:36,320 --> 01:18:38,110 Jika Anda sedang mengemudi di jalan, yang seharusnya tidak terjadi. 1569 01:18:38,110 --> 01:18:40,568 Tetapi jika Anda berada di sebuah gudang pada beberapa jenis sistem roller, 1570 01:18:40,568 --> 01:18:41,630 bahwa memang mungkin terjadi. 1571 01:18:41,630 --> 01:18:46,980 >> Saya pikir orang-orang juga mengusulkan bahwa mungkin, jika mobil berjalan dan kemudi 1572 01:18:46,980 --> 01:18:51,300 setir tidak bergerak, yang terlalu mungkin sinyal, 1573 01:18:51,300 --> 01:18:54,090 karena itulah wajar untuk seperti langsung di jalan. 1574 01:18:54,090 --> 01:18:57,960 Tetapi bahkan kemudian, manusia mungkin bergerak sedikit atau pasti 1575 01:18:57,960 --> 01:18:59,100 selama beberapa detik. 1576 01:18:59,100 --> 01:19:01,030 Atau kursus dari menit, kemungkinan besar yang tidak 1577 01:19:01,030 --> 01:19:03,510 akan terpaku di posisi yang sama persis. 1578 01:19:03,510 --> 01:19:05,440 >> Jadi dengan kata lain, kita dapat mengambil pengurangan, 1579 01:19:05,440 --> 01:19:08,200 kamu sedang diuji, dan memecah fungsi yang 1580 01:19:08,200 --> 01:19:10,420 ke dalam bahan komponen. 1581 01:19:10,420 --> 01:19:13,440 Dan itu benar-benar apa Volkswagen insinyur entah lakukan. 1582 01:19:13,440 --> 01:19:17,070 Mereka menulis perangkat lunak secara sadar untuk mendeteksi jika mobil sedang diuji, 1583 01:19:17,070 --> 01:19:20,440 Oleh karena itu memancarkan kurang, lain memancarkan dengan cara yang biasa. 1584 01:19:20,440 --> 01:19:22,690 >> Dan masalah di sini, juga, adalah bahwa perangkat lunak tidak 1585 01:19:22,690 --> 01:19:26,080 sesuatu yang Anda benar-benar bisa melihat kecuali Anda memiliki kode sumber yang disebut. 1586 01:19:26,080 --> 01:19:29,060 Jadi ada dua jenis code-- setidaknya dua jenis yang berbeda 1587 01:19:29,060 --> 01:19:30,130 kode di dunia. 1588 01:19:30,130 --> 01:19:33,150 Ada sesuatu yang disebut sumber kode, yang tidak berbeda dengan apa 1589 01:19:33,150 --> 01:19:37,240 kami telah menulis, kode sumber. 1590 01:19:37,240 --> 01:19:40,099 >> Ini adalah kode sumber yang ditulis dalam bahasa yang disebut pseudo, 1591 01:19:40,099 --> 01:19:41,640 yang hanya sesuatu bahasa Inggris-seperti. 1592 01:19:41,640 --> 01:19:43,140 Tidak ada definisi formal dari itu. 1593 01:19:43,140 --> 01:19:46,770 Tapi C, dan Java, C ++, mereka semua bahasa formal yang, 1594 01:19:46,770 --> 01:19:50,610 ketika Anda menulis di dalamnya, apa yang Anda miliki adalah file teks yang berisi kode sumber. 1595 01:19:50,610 --> 01:19:54,850 >> Tapi ada juga sesuatu dalam dunia yang disebut kode mesin. 1596 01:19:54,850 --> 01:20:00,579 Dan kode mesin, sayangnya, hanya 0 dan 1. 1597 01:20:00,579 --> 01:20:02,870 Jadi kode mesin yang mesin memahami, tentu saja. 1598 01:20:02,870 --> 01:20:04,470 Source code adalah apa yang manusia mengerti. 1599 01:20:04,470 --> 01:20:08,390 >> Dan umumnya, tapi tidak selalu, ada program 1600 01:20:08,390 --> 01:20:14,090 bahwa programmer menggunakan yang mengambil sumber kode dan mengubahnya menjadi kode mesin. 1601 01:20:14,090 --> 01:20:17,400 Dan program yang umumnya disebut kompilator. 1602 01:20:17,400 --> 01:20:19,820 Jadi masukan Anda adalah kode sumber, output adalah kode mesin, 1603 01:20:19,820 --> 01:20:22,890 dan compiler adalah sepotong perangkat lunak yang melakukan proses tersebut. 1604 01:20:22,890 --> 01:20:26,260 Jadi ini benar-benar peta baik untuk masukan kami, algoritma, output. 1605 01:20:26,260 --> 01:20:30,400 >> Tapi ini adalah inkarnasi sangat spesifik itu, yang mengatakan bahwa, 1606 01:20:30,400 --> 01:20:34,200 bahkan jika Anda memiliki salah satu dari Volkswagen mobil yang bersalah dalam hal ini, 1607 01:20:34,200 --> 01:20:38,390 tidak seperti Anda hanya dapat membuka hood atau membuka petunjuk pengguna atau melihat 1608 01:20:38,390 --> 01:20:42,690 kode sumber, karena pada saat mencapai mobil Anda di jalan Anda, 1609 01:20:42,690 --> 01:20:45,580 itu sudah diubah menjadi 0 dan 1. 1610 01:20:45,580 --> 01:20:51,310 Dan itu sangat sulit, bukan tidak mungkin, tetapi sangat sulit untuk mengumpulkan apa-apa 1611 01:20:51,310 --> 01:20:53,710 dari hanya melihat mendasari 0 dan 1. 1612 01:20:53,710 --> 01:20:57,150 Jadi Anda bisa mencari tahu, akhirnya, jika Anda memahami bagaimana mesin operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel inside-- jika Anda memahami arsitektur Intel, 1614 01:20:59,870 --> 01:21:01,440 tapi itu sangat memakan waktu. 1615 01:21:01,440 --> 01:21:05,010 Dan bahkan di sana, Anda mungkin tidak dapat melihat segala sesuatu 1616 01:21:05,010 --> 01:21:08,220 bahwa kode sebenarnya bisa melakukan. 1617 01:21:08,220 --> 01:21:12,521 >> Pertanyaan tentang hal ini atau ini jenis proses yang lebih umum? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 Dan sebenarnya, kita bisa mengikat diskusi ini diskusi kemarin Apple. 1620 01:21:18,300 --> 01:21:22,500 Ini juga sebabnya mengapa FBI tidak bisa hanya pergi dan melihat di telepon tersangka 1621 01:21:22,500 --> 01:21:26,820 dan menemukan baris kode, untuk Misalnya, yang memungkinkan kode akses 1622 01:21:26,820 --> 01:21:28,940 atau mengaktifkan bahwa 80-milidetik delay. 1623 01:21:28,940 --> 01:21:31,630 Karena pada saat itu pada sesama iPhone, 1624 01:21:31,630 --> 01:21:34,975 itu sudah dikonversi ke 0 dan 1. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Nah, mari kita berhenti sebentar di sini untuk kami melihat berpikir komputasi. 1627 01:21:40,820 --> 01:21:42,320 Mengapa kita tidak mengambil istirahat 15 menit. 1628 01:21:42,320 --> 01:21:44,130 Dan ketika kita kembali, kita akan lihatlah pemrograman 1629 01:21:44,130 --> 01:21:46,550 sendiri dan mulai memetakan beberapa konsep tingkat tinggi ini 1630 01:21:46,550 --> 01:21:49,780 ke sebenarnya, jika main-main, bahasa pemrograman. 1631 01:21:49,780 --> 01:21:51,089