1 00:00:00,000 --> 00:00:15,059 >> [MUSIC PLAYING] 2 00:00:15,059 --> 00:00:19,170 >> Ini adalah CS50-- Harvard pengenalan universitas 3 00:00:19,170 --> 00:00:22,070 dengan intelektual perusahaan ilmu komputer 4 00:00:22,070 --> 00:00:23,800 dan seni pemrograman. 5 00:00:23,800 --> 00:00:27,020 Dan nama saya David Malan, dan Aku hanya berpikir pagi ini, 6 00:00:27,020 --> 00:00:33,120 itu sudah biasa 20 tahun hari ini sejak saya terakhir duduk di mana kalian lakukan sekarang. 7 00:00:33,120 --> 00:00:33,840 >> Itu 1996. 8 00:00:33,840 --> 00:00:37,550 Aku kelas satu, dan saya mengambil CS50 untuk pertama kalinya. 9 00:00:37,550 --> 00:00:40,890 Dan aku bahkan tidak mendapat up saraf untuk mengambil sendiri tahun pertama, 10 00:00:40,890 --> 00:00:42,500 sebagian karena waktu. 11 00:00:42,500 --> 00:00:44,782 ilmu komputer untuk me adalah jenis seperti, meh. 12 00:00:44,782 --> 00:00:46,990 Saya sedikit geek tumbuh up, tapi aku tidak benar-benar 13 00:00:46,990 --> 00:00:49,180 memiliki intelektual minat pada apa yang muncul 14 00:00:49,180 --> 00:00:51,920 hanya menjadi sekelompok seluruh orang pemrograman sepanjang waktu. 15 00:00:51,920 --> 00:00:53,904 >> Dan aku takut untuk jujur. 16 00:00:53,904 --> 00:00:56,820 Kursus dan ilmu komputer lebih umumnya memiliki dan sampai batas tertentu, 17 00:00:56,820 --> 00:01:01,230 masih memiliki reputasi ini lapangan untuk berhati-hatilah, jika hanya karena begitu banyak dari kita 18 00:01:01,230 --> 00:01:04,410 tidak terbiasa dengan hal itu dan yakin itu. 19 00:01:04,410 --> 00:01:08,480 Dan itu benar-benar tidak sampai saya berbelanja kelas ini yang sophomore fall-- 20 00:01:08,480 --> 00:01:10,880 dan bahkan kemudian, saya hanya terdaftar karena professor-- yang 21 00:01:10,880 --> 00:01:13,950 salah satu mentor pertama saya, Brian Kernighan sekarang di Princeton-- 22 00:01:13,950 --> 00:01:15,700 memungkinkan saya untuk mengambil kelas lulus gagal. 23 00:01:15,700 --> 00:01:18,020 Dan memang, itulah sebabnya hari ini kita memungkinkan dan mendorong 24 00:01:18,020 --> 00:01:20,030 siswa untuk mengambil kelas ini duduk / unsat. 25 00:01:20,030 --> 00:01:22,040 >> Dan hanya kemudian, dengan akhir semester 26 00:01:22,040 --> 00:01:24,870 aku menyadari seperti, wow, ini itu bukan bidang yang asing tersebut. 27 00:01:24,870 --> 00:01:26,850 Memang, ini adalah bidang yang sangat memberdayakan, 28 00:01:26,850 --> 00:01:28,970 dan lebih menggairahkan, terutama di kemudian hari, 29 00:01:28,970 --> 00:01:32,809 saya mengambil kursus di Seni Drama 101 dan Latin A 30 00:01:32,809 --> 00:01:34,600 dan kemudian akhirnya arkeologi sekolah pascasarjana, 31 00:01:34,600 --> 00:01:37,860 aku benar-benar mulai untuk melihat persimpangan dari bidang ini, komputer 32 00:01:37,860 --> 00:01:41,979 ilmu pengetahuan, dengan humaniora, ilmu alam, seni, kedokteran, 33 00:01:41,979 --> 00:01:42,520 dan sejenisnya. 34 00:01:42,520 --> 00:01:44,420 Dan itulah yang hanya begitu rapi tentang ilmu komputer 35 00:01:44,420 --> 00:01:46,930 akhirnya, karena kami berharap Anda akan see-- adalah penerapannya 36 00:01:46,930 --> 00:01:50,280 untuk bidang-bidang lainnya, dan bagaimana Anda dapat mengambil beberapa hari ini dan semester ini 37 00:01:50,280 --> 00:01:53,070 ide-ide dan keterampilan praktis kembali ke domain Anda sendiri, 38 00:01:53,070 --> 00:01:58,200 dan benar-benar mengeksplorasi persimpangan ini seni liberal dan ilmu. 39 00:01:58,200 --> 00:02:02,690 >> Jadi 73% dari Anda, jika lalu tahun adalah indikasi, 40 00:02:02,690 --> 00:02:04,390 tidak pernah mengambil kursus CS sebelumnya. 41 00:02:04,390 --> 00:02:06,389 Jadi jika, seperti saya, Anda merasa sedikit 42 00:02:06,389 --> 00:02:09,190 takut, atau terus terang Anda tidak benar-benar yakin mengapa kau bahkan di sini. 43 00:02:09,190 --> 00:02:11,510 Mungkin Anda hanya mengikuti beberapa teman ke Sanders sekarang. 44 00:02:11,510 --> 00:02:12,490 Itu benar-benar baik-baik saja. 45 00:02:12,490 --> 00:02:15,059 Tujuannya di sini adalah untuk menghubungkan Anda dan untuk meyakinkan Anda 46 00:02:15,059 --> 00:02:17,100 bahwa jika Anda melihat ke kiri dan ke kanan, 47 00:02:17,100 --> 00:02:21,480 Anda akan melihat teman sekelas dengan sesedikit atau banyak pengalaman 48 00:02:21,480 --> 00:02:22,890 bahwa Anda sendiri mungkin. 49 00:02:22,890 --> 00:02:25,280 Dan memang, kami akan berbagi beberapa statistik hari ini 50 00:02:25,280 --> 00:02:28,120 seperti apa demografi kelas biasanya terlihat seperti. 51 00:02:28,120 --> 00:02:31,440 >> Dan sebagai tambahan reassurance-- dan kami ini maksud sejak saya mengambil alih kursus 52 00:02:31,440 --> 00:02:33,252 beberapa tahun ago-- di silabus kursus ini 53 00:02:33,252 --> 00:02:35,460 adalah ini-- bahwa apa akhirnya hal dalam kursus ini 54 00:02:35,460 --> 00:02:38,040 tidak begitu banyak di mana Anda berakhir up relatif terhadap teman sekelas Anda, 55 00:02:38,040 --> 00:02:43,110 tetapi di mana Anda di minggu 11, akhir semester, akhirnya relatif terhadap diri sendiri 56 00:02:43,110 --> 00:02:46,280 di minggu 0, yang merupakan di mana kita berada di sini hari ini. 57 00:02:46,280 --> 00:02:48,704 Dan ini adalah apa yang saya menyadari bertahun-tahun lalu. 58 00:02:48,704 --> 00:02:50,620 Dan saya tahu banyak Kelas mengatakan ini, tapi itu 59 00:02:50,620 --> 00:02:52,450 terutama berlaku dalam ilmu komputer. 60 00:02:52,450 --> 00:02:55,320 Pada akhir hari, bidang ini tidak familiar seperti itu kepada saya 61 00:02:55,320 --> 00:02:58,590 dan mungkin untuk Anda, benar-benar hanya tentang pemecahan masalah. 62 00:02:58,590 --> 00:03:01,324 Dan dengan demikian, itu memang memiliki ini penerapan untuk mendapatkan bidang lainnya. 63 00:03:01,324 --> 00:03:03,490 Dan pada kenyataannya, jika kita mencoba untuk menyaring apa artinya ini, 64 00:03:03,490 --> 00:03:06,897 ini adalah pemecahan masalah pada intinya, aku yakin. 65 00:03:06,897 --> 00:03:09,480 Ada input-- sehingga apa pun adalah bahwa Anda sedang berusaha untuk memecahkan. 66 00:03:09,480 --> 00:03:12,264 Ada output, yang mudah-mudahan solusi untuk masalah itu. 67 00:03:12,264 --> 00:03:14,180 Dan kemudian, seperti yang kita akan mengatakan dalam ilmu komputer, 68 00:03:14,180 --> 00:03:17,310 ada kotak hitam ini di tengah yang Anda lakukan belum tentu 69 00:03:17,310 --> 00:03:19,450 harus peduli tentang cara kerjanya. 70 00:03:19,450 --> 00:03:22,230 Anda sendiri akhirnya mungkin menerapkan apa di dalam kotak itu. 71 00:03:22,230 --> 00:03:25,194 Tapi untuk tujuan hari ini dan lebih umumnya dalam kehidupan, semua yang Anda pedulikan 72 00:03:25,194 --> 00:03:26,610 adalah bahwa masalah ini bisa diselesaikan. 73 00:03:26,610 --> 00:03:29,340 >> Dan apa saja hal ini akhirnya sekitar sedang menjajaki 74 00:03:29,340 --> 00:03:31,700 persimpangan input ini dan output, 75 00:03:31,700 --> 00:03:34,410 dan ini disebut algoritma, karena kami akan segera melihat, 76 00:03:34,410 --> 00:03:37,450 yang menerapkan apa yang di bawahnya ada, tenda. 77 00:03:37,450 --> 00:03:40,487 Tapi masukan tersebut dan ini outputs-- apa yang benar-benar berarti? 78 00:03:40,487 --> 00:03:43,570 Nah, di akhir hari, kita perlu beberapa cara untuk mewakili informasi. 79 00:03:43,570 --> 00:03:46,660 Hal ini terutama berlaku di komputer, yang semewah dan kompleks karena 80 00:03:46,660 --> 00:03:48,160 mungkin tampak, adalah perangkat yang cukup bodoh. 81 00:03:48,160 --> 00:03:52,240 Dibutuhkan listrik-- apakah dari kabel atau baterai sebagai input-- 82 00:03:52,240 --> 00:03:55,820 dan kemudian menghasilkan beberapa tanggapan preprogramed di layar. 83 00:03:55,820 --> 00:03:57,970 >> Tapi bagaimana kita dapatkan dari awal sampai akhir ada? 84 00:03:57,970 --> 00:03:59,470 Nah, apa yang masalah yang harus diselesaikan? 85 00:03:59,470 --> 00:04:01,050 Yah, mungkin kita mungkin, di awal semester apapun, 86 00:04:01,050 --> 00:04:02,841 mencoba untuk mengambil absensi di ruang seperti ini. 87 00:04:02,841 --> 00:04:04,750 Jadi saya akan melakukannya seperti satu, dua, tiga. 88 00:04:04,750 --> 00:04:07,060 Atau mungkin, jika saya melakukannya untuk semacam melacak 89 00:04:07,060 --> 00:04:10,560 dari myself-- untuk melacak things-- Aku bisa cepat kehabisan jari. 90 00:04:10,560 --> 00:04:14,650 Jadi saya mungkin hanya membuat hash marks-- satu orang, dua, tiga, empat, lima, enam, 91 00:04:14,650 --> 00:04:15,431 tujuh delapan. 92 00:04:15,431 --> 00:04:17,930 Dan kita semua memiliki mungkin melakukan ini, apakah di tangan Anda 93 00:04:17,930 --> 00:04:19,680 atau pada selembar kertas. 94 00:04:19,680 --> 00:04:22,140 Dan ini sebenarnya hanya sesuatu yang disebut unary notation-- 95 00:04:22,140 --> 00:04:26,130 di mana jika Anda hanya memiliki satu huruf dalam alfabet Anda, satu atau hash 96 00:04:26,130 --> 00:04:29,440 mark dalam kasus ini, untuk setiap masukan Anda ingin menghitung, 97 00:04:29,440 --> 00:04:32,330 Anda perlu meletakkan salah satu dari ini letters-- salah satu tanda ini. 98 00:04:32,330 --> 00:04:32,510 >> Baiklah. 99 00:04:32,510 --> 00:04:34,790 Itu semua baik dan bagus dan tidak semua yang rumit. 100 00:04:34,790 --> 00:04:37,800 Tetapi komputer tidak semua yang jauh lebih rumit. 101 00:04:37,800 --> 00:04:40,770 Memang, sebagian besar dari Anda mungkin tahu bahkan jika Anda sudah benar-benar 102 00:04:40,770 --> 00:04:44,080 dianggap apa ini berarti, bahwa komputer hanya mengerti angka nol 103 00:04:44,080 --> 00:04:45,870 dan ones-- yang disebut sistem biner. 104 00:04:45,870 --> 00:04:49,390 Kita manusia, sebaliknya, begitu jauh lebih canggih sepanjang 105 00:04:49,390 --> 00:04:51,770 seperti yang kita mengerti nol melalui sembilan. 106 00:04:51,770 --> 00:04:55,740 >> Tetapi bahkan jika biner adalah, pada awalnya Sekilas, tidak semua yang akrab, 107 00:04:55,740 --> 00:05:00,330 ternyata itu hanya seperti sistem dan ide-ide yang kita sudah tahu. 108 00:05:00,330 --> 00:05:02,420 Jadi misalnya, menganggap ini. 109 00:05:02,420 --> 00:05:03,896 Ini hanya urutan simbol. 110 00:05:03,896 --> 00:05:05,770 Dan kalian semua, ketika melirik itu, mungkin 111 00:05:05,770 --> 00:05:09,380 berpikir 123-- apa-apa benar-benar menarik di sana. 112 00:05:09,380 --> 00:05:11,940 Tapi mengapa nomor ini, 123? 113 00:05:11,940 --> 00:05:14,440 Ini hanya mesin terbang pada screen-- hanya pola 114 00:05:14,440 --> 00:05:16,387 bahwa seseorang mungkin telah ditarik atau diketik. 115 00:05:16,387 --> 00:05:18,970 Tetapi jika Anda seperti saya, Anda mungkin ingat dari sekolah dasar 116 00:05:18,970 --> 00:05:21,610 bahwa ada semacam kolom atau tempat di sini. 117 00:05:21,610 --> 00:05:25,340 Ada tempat seseorang dan Tempat sepuluh dan tempat ratus ini. 118 00:05:25,340 --> 00:05:29,820 Dan alasan bahwa ini adalah 123 dan bukan hanya pola tiga simbol 119 00:05:29,820 --> 00:05:33,090 karena, tentu saja, jika kita memiliki satu di tempat ratusan, 120 00:05:33,090 --> 00:05:36,610 Anda melakukan matematika dari 100 kali satu, dan kemudian dua di tempat sepuluh ini. 121 00:05:36,610 --> 00:05:41,390 Jadi itu 10 kali 2, dan kemudian tiga di tempat seseorang dan itu 1 kali 3. 122 00:05:41,390 --> 00:05:45,670 Dan ketika Anda menambahkan semua orang up, dari Tentu saja, Anda mendapatkan 100 ditambah 20 ditambah 3. 123 00:05:45,670 --> 00:05:48,220 >> Jadi kita mulai dengan hanya pola dari symbols-- sebuah alphabet-- 124 00:05:48,220 --> 00:05:51,670 tapi kemudian kami dipetakan makna ke dengan cara kolom ini. 125 00:05:51,670 --> 00:05:54,450 Nah, ternyata komputer benar-benar tidak 126 00:05:54,450 --> 00:05:56,300 semua yang berbeda dari Anda dan saya. 127 00:05:56,300 --> 00:06:01,840 Tapi alih-alih menggunakan kekuatan 10, sehingga untuk speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 tempat dan sebagainya forth-- mereka benar-benar 129 00:06:04,330 --> 00:06:08,930 hanya menggunakan kekuatan 2-- jadi satu, 2, 4, dan kemudian 130 00:06:08,930 --> 00:06:12,810 jika kita menempatkan lebih banyak digit, 8, 16, 32, 64, 128, dan sebagainya. 131 00:06:12,810 --> 00:06:16,050 Dan jadi ini adalah bagaimana komputer akan merupakan jumlah 0, 132 00:06:16,050 --> 00:06:17,300 sama seperti kita manusia. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- dan Anda mungkin bisa menebak apa pola nol dan satu, 134 00:06:21,660 --> 00:06:24,610 jika komputer hanya dapat berbicara 0 atau 1-- apa 135 00:06:24,610 --> 00:06:29,110 Pola akan mewakili jumlah kita manusia kenal sebagai 1? 136 00:06:29,110 --> 00:06:30,590 Yeah 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Baiklah. 138 00:06:31,090 --> 00:06:35,900 Jadi 0, 0, 1 adalah bagaimana kami mewakili 1, sehingga Anda mungkin cenderung maka 139 00:06:35,900 --> 00:06:39,510 untuk mewakili nomor 2, jika Anda memiliki Tempat keempat dan tempat kedua ini 140 00:06:39,510 --> 00:06:48,290 sebagai satu tempat, Anda mungkin berkata, baik, jika kita memiliki 1 di tempat seseorang, 141 00:06:48,290 --> 00:06:50,430 dan sekarang kami ingin menghitung sampai 2, Anda mungkin 142 00:06:50,430 --> 00:06:53,310 melakukan ini dan meninggalkan ini menjadi nol. 143 00:06:53,310 --> 00:06:56,397 Tapi tentu saja ini bukan cara sistem desimal bekerja baik. 144 00:06:56,397 --> 00:06:58,230 Jika Anda menempatkan digit di kedua kolom tersebut, 145 00:06:58,230 --> 00:06:59,563 Anda harus melakukan aritmatika. 146 00:06:59,563 --> 00:07:01,930 Jadi jumlah apa yang saya sengaja hanya mewakili? 147 00:07:01,930 --> 00:07:06,710 >> Jadi itu 3, karena 2 kali 1 ditambah 1 kali 1, tentu saja, memberi kita tiga. 148 00:07:06,710 --> 00:07:08,340 Jadi ini akan menjadi dua. 149 00:07:08,340 --> 00:07:12,730 bit semacam membalik, sehingga untuk berbicara, sebagai 0 menjadi salah satu yang, seperti sebuah 9 peran lebih 150 00:07:12,730 --> 00:07:14,840 dan menjadi 0 saat membawa 1. 151 00:07:14,840 --> 00:07:16,510 Hal ini kemudian akan menjadi tiga saja. 152 00:07:16,510 --> 00:07:20,170 Four-- hal lain yang menarik terjadi, di mana orang-orang berguling 153 00:07:20,170 --> 00:07:21,750 dan Anda membawa 1, sehingga untuk berbicara. 154 00:07:21,750 --> 00:07:23,320 Jadi ini, tentu saja, adalah 4. 155 00:07:23,320 --> 00:07:25,160 >> Tapi jika Anda maju cepat sekarang, apa jumlah terbesar terjadi 156 00:07:25,160 --> 00:07:26,660 menjadi bahwa komputer dapat mewakili? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Jadi itu hanya tujuh dalam kasus ini, kan? 159 00:07:32,380 --> 00:07:35,570 Karena Anda memiliki satu di empat, satu di dua, satu di salah satu. 160 00:07:35,570 --> 00:07:36,900 Jadi itulah 4 ditambah 2 ditambah 1. 161 00:07:36,900 --> 00:07:37,972 Sehingga memberikan tujuh. 162 00:07:37,972 --> 00:07:39,680 Dan memang, itu akan tampak pada pandangan pertama 163 00:07:39,680 --> 00:07:43,750 bahwa komputer dapat menghitung tidak lebih tinggi dari ini. 164 00:07:43,750 --> 00:07:45,210 >> Tapi ini tentu saja tidak benar. 165 00:07:45,210 --> 00:07:48,243 Apa yang kita manusia lakukan ketika kita ingin untuk menghitung tinggi daripada seperti 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Hanya membawa satu dan hanya menambahkan digit keempat ke kiri. 168 00:07:53,900 --> 00:07:55,070 Dan memang kita bisa. 169 00:07:55,070 --> 00:07:57,900 Kita bisa memiliki delapan ini tempat dan tempat ke-16 ini, 170 00:07:57,900 --> 00:08:02,000 dan tempat 32 ini, 64, 128-- dan Anda hanya bisa terus terjadi sampai tak terhingga. 171 00:08:02,000 --> 00:08:04,640 Jadi nol ini dan ones-- yang disebut system-- biner 172 00:08:04,640 --> 00:08:10,290 adalah apa yang seorang ilmuwan komputer akan umumnya menyebutnya sedikit, atau digit biner. 173 00:08:10,290 --> 00:08:13,590 >> Tapi sekarang, bagaimana kita dapatkan dari konsep atau grafis dari hal-hal ini 174 00:08:13,590 --> 00:08:14,620 ke komputer yang sebenarnya? 175 00:08:14,620 --> 00:08:17,170 Kami tampaknya akan melewatkan langkah di sini. 176 00:08:17,170 --> 00:08:20,210 Nah, satu-satunya masukan pada akhir hari, untuk laptop saya di sini 177 00:08:20,210 --> 00:08:22,060 adalah aliran ini listrik. 178 00:08:22,060 --> 00:08:24,560 Bahkan jika itu sudah lama waktu karena Anda berpikir tentang 179 00:08:24,560 --> 00:08:26,580 atau tidak pernah berpikir tentang bagaimana listrik bekerja, 180 00:08:26,580 --> 00:08:30,909 ada elektron yang mengalir di atau keluar, dan itu semacam saya masukan. 181 00:08:30,909 --> 00:08:34,659 >> Jadi, jika itu yang kita mendapatkan sebagai masukan di sini, 182 00:08:34,659 --> 00:08:36,830 apa yang bisa kita lakukan dengan informasi itu? 183 00:08:36,830 --> 00:08:40,040 Yah, kita mungkin berpikir dari nol sebagai hanya ketiadaan listrik. 184 00:08:40,040 --> 00:08:42,540 Tidak ada yang flowinw, tidak ada yang bergerak, tidak ada yang terjadi. 185 00:08:42,540 --> 00:08:44,690 Itu hanya default state-- nol. 186 00:08:44,690 --> 00:08:48,200 Tetapi jika ada listrik yang mengalir, mengapa tidak kita hanya sewenang-wenang, tapi secara global 187 00:08:48,200 --> 00:08:50,250 konsisten, menyebut bahwa salah satu a. 188 00:08:50,250 --> 00:08:54,760 >> Jadi hanya dengan memiliki kekuatan, kami memiliki nol, ya listrik, 189 00:08:54,760 --> 00:08:57,520 kami memiliki satu-- kekuatan, ya kekuasaan. 190 00:08:57,520 --> 00:09:01,520 Dan dengan cara itu, menggunakan sesuatu lebih fisik atau elektronik 191 00:09:01,520 --> 00:09:05,340 kita mulai menerapkan gagasan ini sesuatu yang baik menjadi salah satu atau nol. 192 00:09:05,340 --> 00:09:07,230 Memang, kita hanya bisa melakukannya di sini. 193 00:09:07,230 --> 00:09:10,590 Jadi di sini, saya belum tiga tetapi delapan bola lampu, yang masing-masing 194 00:09:10,590 --> 00:09:11,810 memiliki saklar sendiri. 195 00:09:11,810 --> 00:09:15,760 >> Dan jadi jika saya ingin mewakili nomor tujuh di sini, 196 00:09:15,760 --> 00:09:18,510 Aku mungkin berubah pada tiga bola lampu tersebut. 197 00:09:18,510 --> 00:09:21,470 Dan memang, dalam komputer saya adalah jutaan, 198 00:09:21,470 --> 00:09:25,650 miliaran hal-hal yang hanya lebih kecil dari itu, yang disebut transistor, 199 00:09:25,650 --> 00:09:27,330 switch, bahwa Anda hanya menghidupkan dan mematikan. 200 00:09:27,330 --> 00:09:30,420 Jadi ini big-- relatif switch big-- dalam laptop-- saya 201 00:09:30,420 --> 00:09:32,150 banyak, banyak, banyak, lebih banyak switch. 202 00:09:32,150 --> 00:09:35,160 Tapi semua yang mereka lakukan adalah persis itu-- mengubah sesuatu pada, mengubah sesuatu off. 203 00:09:35,160 --> 00:09:38,076 Dan dengan demikian, komputer dapat mewakili, dengan orang-orang jutaan atau milyaran 204 00:09:38,076 --> 00:09:40,480 transistor, banyak dan banyak nol dan satu. 205 00:09:40,480 --> 00:09:43,160 Dan ada perangkat keras lainnya masih yang memungkinkan Anda menyimpan informasi jangka panjang, 206 00:09:43,160 --> 00:09:45,243 sehingga ketika Anda menarik pasang, Anda tidak akan kehilangan itu. 207 00:09:45,243 --> 00:09:46,900 Tapi itu cerita untuk hari lain. 208 00:09:46,900 --> 00:09:51,170 >> Jadi apa yang bisa kita lakukan dengan bit-bit? 209 00:09:51,170 --> 00:09:54,309 Mungkin kita hanya mengambil tekanan off dari me-- 210 00:09:54,309 --> 00:09:56,600 mungkin seseorang ingin datang di sini dan mempersembahkan demo? 211 00:09:56,600 --> 00:09:57,516 Aku melihat tangan pertama ini. 212 00:09:57,516 --> 00:09:58,709 Siapa namamu? 213 00:09:58,709 --> 00:09:59,250 Maday: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID Malan: Maday, datang ke atas. 215 00:10:00,542 --> 00:10:01,250 Senang bertemu denganmu. 216 00:10:01,250 --> 00:10:02,390 Maday: Senang bertemu Anda. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Malan: Ayo cara ini. 218 00:10:02,930 --> 00:10:04,182 Saya tidak perlu bibir Anda. 219 00:10:04,182 --> 00:10:04,682 Baiklah. 220 00:10:04,682 --> 00:10:11,090 Jadi di sini, kita memiliki, notice-- satu, two-- kita akan mengedit bahwa out-- satu, dua, empat, 221 00:10:11,090 --> 00:10:13,350 delapan, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Ini disengaja. 223 00:10:14,220 --> 00:10:17,370 Ada delapan bit sini- biner nol digits-- dan orang-orang. 224 00:10:17,370 --> 00:10:21,460 Dan sedikit adalah unit yang berguna measure-- tidak berguna satuan ukuran 225 00:10:21,460 --> 00:10:21,999 ke dirinya sendiri. 226 00:10:21,999 --> 00:10:24,290 Biasanya Anda ingin setidaknya delapan hal-hal ini, alias 227 00:10:24,290 --> 00:10:24,790 byte. 228 00:10:24,790 --> 00:10:26,230 Jadi kita memiliki byte bit di sini. 229 00:10:26,230 --> 00:10:31,130 >> Jadi jika kita ingin menantang Anda dengan, misalnya, mengeja, dalam biner, 230 00:10:31,130 --> 00:10:33,230 nilai ini di sini-42. 231 00:10:33,230 --> 00:10:35,140 Ingin mengambil bacokan di itu? 232 00:10:35,140 --> 00:10:36,034 >> Maday: [tidak terdengar]. 233 00:10:36,034 --> 00:10:38,700 DAVID Malan: Ya, hanya mendorong switch putih kecil di depan. 234 00:10:38,700 --> 00:10:41,290 Dan Anda ingin mengeja keluar 42, dan untuk diperebutkan 235 00:10:41,290 --> 00:10:44,061 adalah stres CS50 ini bola jika Anda mendapatkan ini. 236 00:10:44,061 --> 00:10:44,560 Baiklah. 237 00:10:44,560 --> 00:10:46,420 Jadi Anda memiliki 32. 238 00:10:46,420 --> 00:10:48,430 Kami akan membutuhkan 42. 239 00:10:48,430 --> 00:10:51,410 Jadi itu delapan, jadi itu 40. 240 00:10:51,410 --> 00:10:54,160 Dan excellent-- sangat baik dilakukan. 241 00:10:54,160 --> 00:10:55,186 Terima kasih. 242 00:10:55,186 --> 00:10:58,790 >> [TEPUK TANGAN] 243 00:10:58,790 --> 00:10:59,290 Baiklah. 244 00:10:59,290 --> 00:11:00,623 Jadi kita memiliki satu bola stres lagi. 245 00:11:00,623 --> 00:11:03,595 Mari kita lakukan ini sekali lagi jika kita dapat. 246 00:11:03,595 --> 00:11:05,368 Salah satu relawan lainnya? 247 00:11:05,368 --> 00:11:07,970 Bebas stres bola, bola bebas stres. 248 00:11:07,970 --> 00:11:08,470 BAIK. 249 00:11:08,470 --> 00:11:11,640 Di sini di tengah, Anda ingin turun? 250 00:11:11,640 --> 00:11:14,100 Baiklah. 251 00:11:14,100 --> 00:11:15,552 Aku tahu. 252 00:11:15,552 --> 00:11:16,360 Di sana kami pergi. 253 00:11:16,360 --> 00:11:20,818 >> Jadi angka sini-datang di bawah. 254 00:11:20,818 --> 00:11:21,567 Siapa namamu? 255 00:11:21,567 --> 00:11:21,984 >> DAVEY: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID Malan: Davey. 257 00:11:22,820 --> 00:11:23,320 BAIK. 258 00:11:23,320 --> 00:11:24,810 Ayo up, Davey. 259 00:11:24,810 --> 00:11:25,890 Senang bertemu denganmu. 260 00:11:25,890 --> 00:11:28,639 Dan apa yang kita akan memiliki Anda spell-- jika Anda bisa berlama-lama di sana 261 00:11:28,639 --> 00:11:32,810 hanya satu moment-- adalah nomor 50. 262 00:11:32,810 --> 00:11:36,293 Tapi, tapi, tapi tapi, tapi, ini magnet sekolah dasar karena suatu alasan. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Baru saja sedikit lebih keras, semua yang benar? 265 00:11:43,327 --> 00:11:44,160 Masih ada delapan. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Baiklah. 268 00:11:47,320 --> 00:11:48,486 Jadi apa yang kita miliki di sana? 269 00:11:48,486 --> 00:11:51,356 Kami memiliki 32. 270 00:11:51,356 --> 00:11:54,344 Bagus. 271 00:11:54,344 --> 00:11:58,610 32 ditambah 16 memberi kita 48-- begitu dekat. 272 00:11:58,610 --> 00:12:00,390 Dan indah. 273 00:12:00,390 --> 00:12:02,831 Selamat kepada Davey juga. 274 00:12:02,831 --> 00:12:05,720 >> [TEPUK TANGAN] 275 00:12:05,720 --> 00:12:06,516 >> Baiklah. 276 00:12:06,516 --> 00:12:09,390 Jadi kita bisa melakukan ini sepanjang hari, dan tidak mendapatkan semua yang jauh lebih 277 00:12:09,390 --> 00:12:10,800 menarik dan lebih menantang. 278 00:12:10,800 --> 00:12:13,250 Tapi itu benar-benar point-- yang adalah bagaimana relatif sederhana 279 00:12:13,250 --> 00:12:16,930 itu, pada akhir hari, apa komputer tidak untuk menyimpan informasi, 280 00:12:16,930 --> 00:12:21,740 untuk menyimpan input dan akhirnya menyimpan atau mewakili mereka output. 281 00:12:21,740 --> 00:12:23,750 Tapi angka saja tidak semua yang menarik. 282 00:12:23,750 --> 00:12:26,069 >> Jadi manusia, beberapa tahun yang lalu, memutuskan, Anda tahu apa? 283 00:12:26,069 --> 00:12:27,860 Akan lebih baik jika komputer tidak hanya 284 00:12:27,860 --> 00:12:31,030 kalkulator untuk aritmatika operasi, tapi benar-benar bisa 285 00:12:31,030 --> 00:12:35,209 melakukan hal-hal seperti pengolah kata, atau email, atau inkarnasi yang lebih modern 286 00:12:35,209 --> 00:12:36,500 dari jenis-jenis teknologi. 287 00:12:36,500 --> 00:12:40,680 Dan dunia memutuskan sewenang-wenang, tetapi secara universal, 288 00:12:40,680 --> 00:12:44,380 bahwa jika Anda ingin menyimpan modal huruf A di komputer, Anda tahu apa? 289 00:12:44,380 --> 00:12:47,730 Mari kita semua sepakat untuk menyimpan beberapa pola nol dan ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- yang pada akhirnya mewakili angka desimal 65. 291 00:12:52,422 --> 00:12:53,630 Kami hanya akan semua sepakat tentang itu. 292 00:12:53,630 --> 00:12:56,620 >> 66 akan mewakili B, 67 akan mewakili C, 293 00:12:56,620 --> 00:13:00,210 dan ada tandan pola lain nol dan satu, atau angka yang mendasari, 294 00:13:00,210 --> 00:13:02,224 yang akan mewakili surat lain masih. 295 00:13:02,224 --> 00:13:04,390 Jadi jika Anda jenis mental menyerap ini sejenak, 296 00:13:04,390 --> 00:13:10,900 Saya sengaja memasang A melalui Aku, di mana H 72 dan I adalah 73. 297 00:13:10,900 --> 00:13:15,830 Jika komputer kemudian, dalam konteks program pengolah kata atau e-mail, 298 00:13:15,830 --> 00:13:19,620 mengungkapkan bawah tenda untuk memiliki pola-pola pola bits-- 299 00:13:19,620 --> 00:13:22,500 bit yang mewakili 72, kemudian 73, kemudian 33-- 300 00:13:22,500 --> 00:13:26,640 apa yang mungkin ini mantra dalam program itu? 301 00:13:26,640 --> 00:13:28,150 >> Jadi hi, dan kemudian sesuatu. 302 00:13:28,150 --> 00:13:31,460 Kita tidak perlu tahu, tapi memang 33-- tidak pada grafik earlier-- 303 00:13:31,460 --> 00:13:33,170 hanya tanda seru. 304 00:13:33,170 --> 00:13:38,870 Jadi 72 adalah H, 73 adalah saya, 33 terjadi menjadi tanda seru masih. 305 00:13:38,870 --> 00:13:41,719 Tapi itu semua baik dan bagus, dan pada kenyataannya saat ini, daripada 306 00:13:41,719 --> 00:13:43,760 hanya menggunakan tujuh atau delapan bit, berkat sesuatu 307 00:13:43,760 --> 00:13:46,530 disebut Unicode sebagai lawan ASCII kembali pada hari, 308 00:13:46,530 --> 00:13:50,010 kita benar-benar dapat mewakili lebih karakter yang menarik dari sekedar 309 00:13:50,010 --> 00:13:52,980 ini asli Inggris bias huruf. 310 00:13:52,980 --> 00:13:56,030 Tapi kita juga bisa mewakili bahkan hal yang lebih rapi seperti warna. 311 00:13:56,030 --> 00:13:59,750 >> Jika Anda pernah mendengar akronim RGB, merah, hijau, biru, yang 312 00:13:59,750 --> 00:14:03,510 hanya berarti bahwa komputer biasanya menggunakan tiga set bits-- 313 00:14:03,510 --> 00:14:06,760 beberapa jumlah bit yang mewakili nomor untuk berapa banyak merah yang Anda inginkan, 314 00:14:06,760 --> 00:14:08,940 set bit untuk berapa banyak hijau yang Anda inginkan, 315 00:14:08,940 --> 00:14:11,430 dan nomor set untuk berapa banyak biru yang Anda inginkan. 316 00:14:11,430 --> 00:14:14,457 Sehingga sejumlah besar berarti banyak merah, sejumlah kecil berarti tidak ada merah. 317 00:14:14,457 --> 00:14:16,290 Dan jadi ini adalah jenis dari nilai tengah di sini. 318 00:14:16,290 --> 00:14:20,180 >> Jadi memberi saya beberapa merah, memberi saya beberapa hijau, dan memberikan saya sedikit biru. 319 00:14:20,180 --> 00:14:24,260 Dan jika Anda mencampur tiga warna warna bersama-sama, dalam hal ini, 320 00:14:24,260 --> 00:14:26,850 Anda mendapatkan warna keruh ini kuning atau coklat. 321 00:14:26,850 --> 00:14:32,330 Tapi pola delapan ditambah delapan ditambah eight-- sehingga 24 bits-- 322 00:14:32,330 --> 00:14:36,550 kiri ke kanan, adalah bagaimana komputer akan mewakili warna tertentu. 323 00:14:36,550 --> 00:14:38,090 Sekarang ini hanya sebuah titik pada layar. 324 00:14:38,090 --> 00:14:42,230 Jika Anda melihat benar-benar dekat di TV Anda Anda komputer, Anda akan melihat titik-titik atau piksel. 325 00:14:42,230 --> 00:14:45,420 Dan jika Anda memiliki seluruh grid piksel, horizontal dan vertikal, 326 00:14:45,420 --> 00:14:46,630 Anda memiliki gambar. 327 00:14:46,630 --> 00:14:49,029 Dan kemudian jika Anda mengambil gambar dan kemudian mencuci 328 00:14:49,029 --> 00:14:52,070 menunjukkan diri gambar lain, lain gambar, gambar lain, gambar lain, 329 00:14:52,070 --> 00:14:54,760 benar-benar cepat, Anda tentu memiliki film. 330 00:14:54,760 --> 00:14:56,109 >> Dan begitu melihat di mana kami mulai. 331 00:14:56,109 --> 00:14:57,650 Kami mulai dengan nol ini dan orang-orang. 332 00:14:57,650 --> 00:15:00,570 Kami bekerja dari sana ke desimal angka, bagaimana kita mewakili mereka. 333 00:15:00,570 --> 00:15:02,070 Sekarang kita memiliki huruf alfabet. 334 00:15:02,070 --> 00:15:05,664 Tapi dalam konteks lain menunggu, kita bisa menggunakan beberapa bit dan mewakili warna. 335 00:15:05,664 --> 00:15:07,830 Segera setelah Anda memiliki kemampuan untuk mewakili warna, 336 00:15:07,830 --> 00:15:11,200 Anda memiliki kemampuan untuk mewakili foto, dan gifs animasi 337 00:15:11,200 --> 00:15:13,780 dan karakter lain seperti di layar. 338 00:15:13,780 --> 00:15:17,160 Dan ketika Anda memiliki sejumlah besar gambar terbang oleh manusia sekaligus, 339 00:15:17,160 --> 00:15:21,480 sepertinya film, dan sehingga Anda mendapatkan video juga. 340 00:15:21,480 --> 00:15:23,460 >> Jadi menggunakan ini sangat primitif sederhana kita 341 00:15:23,460 --> 00:15:28,070 memiliki cara untuk mewakili akhirnya semua bentuk media. 342 00:15:28,070 --> 00:15:30,450 Dan kami telah disarikan lagi dan lagi dan lagi, sampai kita 343 00:15:30,450 --> 00:15:33,467 dapatkan dari tingkat terendah ke level tertinggi ini. 344 00:15:33,467 --> 00:15:35,550 Sehingga memberi kita ini ide umum abstraksi. 345 00:15:35,550 --> 00:15:36,990 Tapi kita mulai di sini. 346 00:15:36,990 --> 00:15:38,790 >> Di sini sekarang, kita mungkin mewakili dalam komputer 347 00:15:38,790 --> 00:15:41,920 input kami dengan nol dan satu, output kami di nol dan satu, 348 00:15:41,920 --> 00:15:43,640 tapi apa yang terjadi di dalam kotak? 349 00:15:43,640 --> 00:15:46,080 Di situlah komputer ilmu mulai menarik. 350 00:15:46,080 --> 00:15:49,770 Itu di mana Anda benar-benar membawa Anda pikiran sendiri untuk menanggung untuk memecahkan masalah. 351 00:15:49,770 --> 00:15:52,590 Kita sekarang dapat menetapkan, untuk sisa semester, ya. 352 00:15:52,590 --> 00:15:53,870 Aku tahu karya bagaimana biner. 353 00:15:53,870 --> 00:15:57,942 Aku ingat bagaimana Ascii atau Unicode-- pemetaan untuk letters-- karya. 354 00:15:57,942 --> 00:15:59,650 Dan itu pasti berdiri untuk alasan kita bahwa 355 00:15:59,650 --> 00:16:03,470 bisa mewakili merah dan hijau dan biru, dan mewakili multimedia juga. 356 00:16:03,470 --> 00:16:05,390 Tapi ini adalah hal menarik. 357 00:16:05,390 --> 00:16:09,790 Inilah yang membuat seseorang mampu memecahkan masalah. 358 00:16:09,790 --> 00:16:11,980 >> Dan satu masalah seperti kami ingin lakukan, memang, 359 00:16:11,980 --> 00:16:15,345 mengambil kehadiran, atau melakukan hal ini algoritma. 360 00:16:15,345 --> 00:16:16,470 Dan lagi, saya mungkin melakukan hal ini. 361 00:16:16,470 --> 00:16:19,580 Saya mungkin melakukan satu, dua, tiga, empat lima, enam, tujuh, delapan sembilan. 362 00:16:19,580 --> 00:16:21,520 Dan aku bisa menulis bawah untuk melacak itu. 363 00:16:21,520 --> 00:16:23,769 Tapi itu hanya bagaimana saya akan mewakili informasi. 364 00:16:23,769 --> 00:16:27,550 Atau aku bisa melakukan ini faster-- dua, empat, enam, delapan, sepuluh, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- rasanya seperti dua kali secepat tapi masih 366 00:16:30,380 --> 00:16:32,050 akan mengambil seluruh banyak waktu. 367 00:16:32,050 --> 00:16:35,990 >> Tapi ternyata, jika kita memanfaatkan belum lain resource-- dan memang komputer 368 00:16:35,990 --> 00:16:38,940 hari ini memiliki beberapa CPU atau otak. 369 00:16:38,940 --> 00:16:41,970 Ternyata komputer bisa melakukan banyak hal sekaligus, 370 00:16:41,970 --> 00:16:44,460 dan memang kita, di ruangan ini, mungkin mewakili persis ini. 371 00:16:44,460 --> 00:16:47,130 >> Jadi itu sedikit sosial canggung, tetapi jika Anda akan humor saya 372 00:16:47,130 --> 00:16:51,550 hanya proses tiga langkah, biarkan saya meminta semua orang di tempat sana hanya 373 00:16:51,550 --> 00:16:54,640 untuk berdiri sejenak. 374 00:16:54,640 --> 00:16:57,380 Berdiri. 375 00:16:57,380 --> 00:17:01,580 Jadi berpikir untuk diri sendiri, nomor satu-- sehingga semua orang di ruangan ini, 376 00:17:01,580 --> 00:17:05,010 kecuali orang-orang yang tidak oblige, berpikir nomor satu. 377 00:17:05,010 --> 00:17:06,510 Jadi yang nomor Anda sekarang. 378 00:17:06,510 --> 00:17:09,399 Itu adalah langkah pertama, atau sebagai ilmuwan komputer atau programmer 379 00:17:09,399 --> 00:17:11,827 biasanya akan lakukan, kita akan untuk mulai menghitung dari nol. 380 00:17:11,827 --> 00:17:14,410 Jika jumlah terkecil yang kita bisa mewakili dengan orang-bola lampu 381 00:17:14,410 --> 00:17:17,410 adalah nol, dengan hanya meninggalkan mereka semua ini, aku mungkin juga hanya 382 00:17:17,410 --> 00:17:19,271 mulai menghitung dari nol adalah bukan satu. 383 00:17:19,271 --> 00:17:21,020 Dan itulah yang ilmuwan komputer dilakukan. 384 00:17:21,020 --> 00:17:23,750 Jadi langkah nol, berdiri dan memikirkan nomor satu. 385 00:17:23,750 --> 00:17:26,339 Langkah berikutnya adalah pasangan ini-- off dengan seseorang berdiri 386 00:17:26,339 --> 00:17:27,660 dan menambahkan nomor Anda bersama-sama. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Hebat. 389 00:17:32,850 --> 00:17:37,640 >> Jadi pada saat ini dalam waktu, secara harfiah semua orang yang berpartisipasi 390 00:17:37,640 --> 00:17:41,930 berpikir untuk nomor 2, kecuali untuk satu orang aneh jika kita memiliki 391 00:17:41,930 --> 00:17:43,450 ganjil orang di dalam ruangan. 392 00:17:43,450 --> 00:17:50,640 Dan sekarang langkah ketiga di sini akan akan ini-- salah satu dari kalian harus duduk. 393 00:17:50,640 --> 00:17:54,490 Salah satu dari kalian harus duduk, dan jika Anda masih berdiri, 394 00:17:54,490 --> 00:17:56,590 kembali ke langkah satu. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Baiklah. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Baiklah. 399 00:19:01,650 --> 00:19:03,880 Jadi semakin banyak orang harus bisa duduk. 400 00:19:03,880 --> 00:19:08,280 Perhatikan bahwa ini telah menyebabkan a loop-- semacam siklus. 401 00:19:08,280 --> 00:19:11,983 Beberapa dari Anda harus canggung terjebak, akan bolak-balik antara langkah satu 402 00:19:11,983 --> 00:19:14,180 dan dua, satu dan dua, satu dan dua. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Itu OK. 405 00:19:21,810 --> 00:19:22,630 bug pertama kami. 406 00:19:22,630 --> 00:19:24,740 Kami akan berurusan dengan itu. 407 00:19:24,740 --> 00:19:25,320 Baiklah. 408 00:19:25,320 --> 00:19:27,370 Biarkan saya mencoba untuk memacu hal-hal bersama. 409 00:19:27,370 --> 00:19:31,454 >> Secara teori, hanya satu orang yang berdiri karena semua orang terus berpasangan. 410 00:19:31,454 --> 00:19:33,870 Tapi biarkan aku mempercepat dengan orang-orang masih berdiri. 411 00:19:33,870 --> 00:19:35,480 Apa nomor yang Anda pikirkan? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 BAIK. 414 00:19:36,570 --> 00:19:37,820 Pergi ke depan dan duduk. 415 00:19:37,820 --> 00:19:39,190 Kalian masih berdiri. 416 00:19:39,190 --> 00:19:42,130 Siapa yang masih berdiri? 417 00:19:42,130 --> 00:19:45,240 Apa nomor yang Anda pikirkan? 418 00:19:45,240 --> 00:19:46,160 BAIK. 419 00:19:46,160 --> 00:19:47,900 >> Jadi kami akan kembali kepada Anda. 420 00:19:47,900 --> 00:19:49,630 Di belakang? 421 00:19:49,630 --> 00:19:50,790 Apa itu? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK orang lain sampai top-- ya? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 BAIK. 426 00:19:58,300 --> 00:20:02,780 Di sini di right-- saya di sini? 427 00:20:02,780 --> 00:20:06,820 132, sangat bagus. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> BAIK. 430 00:20:08,990 --> 00:20:10,031 Dan siapa yang masih berdiri? 431 00:20:10,031 --> 00:20:11,000 Disini? 432 00:20:11,000 --> 00:20:14,520 46, sangat bagus. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Aku tidak bisa menunda lebih lama lagi. 435 00:20:18,220 --> 00:20:20,520 Ya? 436 00:20:20,520 --> 00:20:22,490 30, bagus. 437 00:20:22,490 --> 00:20:24,120 Disini? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> Dan saya pikir itu semua orang kecuali kalian, tidak ada tekanan. 441 00:20:30,920 --> 00:20:32,860 Oh tunggu. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Hanya delapan. 445 00:20:38,281 --> 00:20:38,780 BAIK. 446 00:20:38,780 --> 00:20:41,030 Hanya delapan. 447 00:20:41,030 --> 00:20:42,580 Dibawah sini? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Ini adalah implementasi terburuk algoritma ini pernah. 454 00:20:54,690 --> 00:20:55,190 BAIK. 455 00:20:55,190 --> 00:20:59,760 Jadi orang lain? 456 00:20:59,760 --> 00:21:00,421 Orang lain? 457 00:21:00,421 --> 00:21:00,920 BAIK. 458 00:21:00,920 --> 00:21:03,300 Satu lagi. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 BAIK. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 Baiklah. 463 00:21:06,010 --> 00:21:09,070 Jadi jika saya tidak melewatkan siapa pun di silau sini, ketika saya tekan Enter, 464 00:21:09,070 --> 00:21:13,091 kita akan melihat, algoritma, yang Jumlah orang di Sanders. 465 00:21:13,091 --> 00:21:16,340 Karena sekali lagi, itu seolah-olah semua orang Anda duduk, melewati nomor Anda off 466 00:21:16,340 --> 00:21:19,215 untuk orang lain, untuk orang lain, kepada orang lain, sehingga dalam teori, 467 00:21:19,215 --> 00:21:22,304 pada akhirnya, hanya satu canggung orang harus dibiarkan berdiri. 468 00:21:22,304 --> 00:21:22,970 Tapi itu baik-baik saja. 469 00:21:22,970 --> 00:21:24,290 Kami melaju hal-hal secara manual. 470 00:21:24,290 --> 00:21:27,590 Ini terutama sulit untuk melihat dalam ruang tertentu. 471 00:21:27,590 --> 00:21:34,200 >> Dan total jumlah orang kita berpikir ada di sini adalah 546. 472 00:21:34,200 --> 00:21:37,330 Jumlah aku tangan oleh rekan-rekan mengajar, 473 00:21:37,330 --> 00:21:40,660 siapa yang melakukannya lama sekolah cara lambat, adalah 820. 474 00:21:40,660 --> 00:21:43,660 >> [TERTAWA] 475 00:21:43,660 --> 00:21:47,170 >> [TEPUK TANGAN] 476 00:21:47,170 --> 00:21:48,670 >> Itu OK. 477 00:21:48,670 --> 00:21:50,740 Jadi pasti itu, ada bug ini. 478 00:21:50,740 --> 00:21:51,460 Dan itu baik-baik saja. 479 00:21:51,460 --> 00:21:53,810 Dan jadi pikirkan kembali ini pertama kalinya sesuatu 480 00:21:53,810 --> 00:21:55,420 Anda menulis tidak selalu bekerja. 481 00:21:55,420 --> 00:21:57,620 Ini telah terjadi kepada saya di sini juga. 482 00:21:57,620 --> 00:22:00,844 Tapi mari kita sekarang mempertimbangkan bagaimana kita mungkin menerapkan ide ini sama untuk sesuatu 483 00:22:00,844 --> 00:22:03,760 Anda mungkin telah melihat sebelumnya, yang adalah di sini-teknologi jadul ini 484 00:22:03,760 --> 00:22:05,130 buku telepon yang sangat besar. 485 00:22:05,130 --> 00:22:09,380 Dan anggaplah bahwa buku telepon ini memiliki 1.000 halaman dan 1.000 nama 486 00:22:09,380 --> 00:22:11,360 dan nomor abjad di dalamnya. 487 00:22:11,360 --> 00:22:14,860 >> Nah, kita bisa jenis menerapkan sejenis ide untuk masalah yang sangat fisik ini, 488 00:22:14,860 --> 00:22:16,270 hanya menggunakan saya. 489 00:22:16,270 --> 00:22:18,810 Aku hanya jenis ditipu dengan memanfaatkan semua Anda 490 00:22:18,810 --> 00:22:23,240 dengan banyak dan banyak CPU yang berbeda atau otak mengeksekusi beberapa algoritma. 491 00:22:23,240 --> 00:22:25,440 Tetapi jika itu hanya sedikit tua saya, saya masih bisa 492 00:22:25,440 --> 00:22:29,630 memanfaatkan bahwa esensi yang sama dari sebuah ide membagi dan menaklukkan masalah itu 493 00:22:29,630 --> 00:22:32,970 lagi dan lagi, dimana setengah dari Anda, setengah dari Anda, setengah dari Anda, setengah dari Anda, 494 00:22:32,970 --> 00:22:35,830 teoritis terus duduk, sampai kami meninggalkan, secara teoritis, 495 00:22:35,830 --> 00:22:36,990 dengan hanya satu orang. 496 00:22:36,990 --> 00:22:39,810 >> Jadi di sekolah tua ini technology-- kita tidak 497 00:22:39,810 --> 00:22:43,030 perlu ini map-- ini teknologi jadul, 498 00:22:43,030 --> 00:22:47,300 kita mungkin mulai mencari seseorang seperti Mike Smith, salah satu halaman pada satu waktu. 499 00:22:47,300 --> 00:22:49,410 Dan saya melihat bahwa tidak ada, Mike tidak ada di sini. 500 00:22:49,410 --> 00:22:51,110 Aku masih di bagian A. 501 00:22:51,110 --> 00:22:53,900 Akhirnya, saya menemukan sendiri di bagian B. 502 00:22:53,900 --> 00:22:56,910 Dan ini adalah algorithm-- langkah-demi-langkah instruksi. 503 00:22:56,910 --> 00:22:59,890 Mulai pada awal dan satu pada suatu waktu, mencari Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Apakah ini correct-- ini algoritma atau pendekatan? 505 00:23:03,410 --> 00:23:04,550 >> Ya, itu benar. 506 00:23:04,550 --> 00:23:06,840 Jika Mike di sini, akhirnya Aku akan sampai ke dia. 507 00:23:06,840 --> 00:23:08,139 Tapi itu tidak efisien. 508 00:23:08,139 --> 00:23:09,180 Ini jelas sangat lambat. 509 00:23:09,180 --> 00:23:11,340 Jadi saya bisa memanfaatkan twosies sama mendekati. 510 00:23:11,340 --> 00:23:15,350 Aku bisa melakukan semacam dua, empat, enam, delapan, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Ini dua kali lebih cepat. 512 00:23:16,330 --> 00:23:18,290 Aku akan sampai ke Mike cepat jika dia ada di sana. 513 00:23:18,290 --> 00:23:20,770 Apakah itu benar? 514 00:23:20,770 --> 00:23:22,320 Ya, tapi saya mendengar ada little--. 515 00:23:22,320 --> 00:23:24,200 Sekarang saya mendengar ada sebuah. 516 00:23:24,200 --> 00:23:24,700 Ya. 517 00:23:24,700 --> 00:23:26,190 Ada bug yang berpotensi. 518 00:23:26,190 --> 00:23:29,374 Mungkin Mike hanya sengaja mendapat terjepit di antara dua halaman, 519 00:23:29,374 --> 00:23:31,290 karena aku terbang melalui dua ini pada suatu waktu. 520 00:23:31,290 --> 00:23:33,580 Jadi setidaknya kita membutuhkan beberapa jenis memperbaiki bersyarat. 521 00:23:33,580 --> 00:23:35,330 Saya harus mengatakan, hey, jika aku memukul seseorang yang 522 00:23:35,330 --> 00:23:39,190 namanya dimulai dengan T bukan sebuah S, Saya lebih baik ganda kembali setidaknya satu halaman. 523 00:23:39,190 --> 00:23:40,767 Jadi kereta pada awalnya, tapi diperbaiki. 524 00:23:40,767 --> 00:23:43,850 Tapi tak satu pun dari kita akan mencari Mike Smith melalui telepon 1.000 halaman 525 00:23:43,850 --> 00:23:45,290 memesan satu halaman pada satu waktu. 526 00:23:45,290 --> 00:23:48,486 Apa orang normal akan lakukan? 527 00:23:48,486 --> 00:23:50,860 Anda akan pergi ke S, jika Anda tahu di mana S. 528 00:23:50,860 --> 00:23:54,230 Anda mungkin pergi kira-kira ke tengah atau sedikit miring menjelang akhir. 529 00:23:54,230 --> 00:23:56,850 Dan saya melihat di sini dan Saya di bagian M. 530 00:23:56,850 --> 00:23:58,952 Tapi apa yang Anda ketahui tentang masalah ini sekarang, 531 00:23:58,952 --> 00:24:02,160 bahwa kita tidak selalu tahu sebelum dengan semua dari kita hanya menghitung diri kita sendiri 532 00:24:02,160 --> 00:24:03,030 ekuivalen? 533 00:24:03,030 --> 00:24:06,010 Nah, Mike jelas akan berada di setengah buku ini 534 00:24:06,010 --> 00:24:07,920 jika dia ada di sini sama sekali karena itu diurutkan. 535 00:24:07,920 --> 00:24:10,160 >> Dan sehingga Anda dapat sangat dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Terengah] 537 00:24:11,250 --> 00:24:12,300 >> Aku tahu. 538 00:24:12,300 --> 00:24:16,940 >> [TEPUK TANGAN] 539 00:24:16,940 --> 00:24:19,450 >> Ini sebenarnya sangat mudah jika Anda melakukannya bawah tulang belakang sana. 540 00:24:19,450 --> 00:24:22,070 Tapi Anda kemudian dapat membuang setengah dari masalah pergi. 541 00:24:22,070 --> 00:24:25,950 Sekarang, aku meninggalkan dengan problem-- yang sama menemukan Mike Smith di telepon book-- 542 00:24:25,950 --> 00:24:29,610 tapi sekarang buku telepon dimulai pada M dan pergi ke Z, tapi itu setengah besar. 543 00:24:29,610 --> 00:24:30,890 >> Tapi ini adalah apa yang mengesankan. 544 00:24:30,890 --> 00:24:34,170 Sama seperti dalam teori, kalian, ketika Anda semua duduk hanya setengah pada suatu waktu, 545 00:24:34,170 --> 00:24:37,150 masalah mendapat setengah besar, setengah besar, lagi dan lagi. 546 00:24:37,150 --> 00:24:40,260 Jadi telah masalah ini menjadi masalah yang sama tapi setengah besar. 547 00:24:40,260 --> 00:24:42,670 Sekarang masalah 250 halaman. 548 00:24:42,670 --> 00:24:45,340 Begitu aku menyadari, oh, aku di bagian T sengaja. 549 00:24:45,340 --> 00:24:46,590 Saya sudah terlalu jauh. 550 00:24:46,590 --> 00:24:48,500 Aku bisa membuang setengah dari buku telepon. 551 00:24:48,500 --> 00:24:50,410 Sekarang, aku turun ke seperempat masalah. 552 00:24:50,410 --> 00:24:53,910 >> Dan Anda dapat mengulangi, ulangi, ulangi sampai, dalam teori, Anda 553 00:24:53,910 --> 00:24:55,460 kiri dengan hanya satu halaman. 554 00:24:55,460 --> 00:24:59,010 Dan jika Mike adalah pada halaman tersebut, Sekarang saya bisa memecahkan masalah ini. 555 00:24:59,010 --> 00:25:00,810 Tapi seberapa cepat aku mengatasinya? 556 00:25:00,810 --> 00:25:05,420 Dalam kasus pertama, aku butuh seperti mungkin 1.000 langkah untuk menemukan Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Ini mungkin telah mengambil me-- Aku mengambil buku telepon 558 00:25:09,260 --> 00:25:11,440 dan saya mulai mencari satu halaman pada satu waktu, 559 00:25:11,440 --> 00:25:13,480 dan Mike mungkin 1.000 halaman kemudian. 560 00:25:13,480 --> 00:25:16,020 >> Pendekatan kedua mungkin membawaku 500 langkah, 561 00:25:16,020 --> 00:25:17,960 karena aku terbang melalui dua pada satu waktu. 562 00:25:17,960 --> 00:25:21,082 Dan pendekatan ketiga meskipun, itu sangat kuat. 563 00:25:21,082 --> 00:25:23,790 Tapi mari kita mempertimbangkan apa yang kita benar-benar lakukan dengan pendekatan ketiga ini. 564 00:25:23,790 --> 00:25:27,590 Saya akan memiliki apa yang akan saya sebut saja ini laporan di sini, satu per satu. 565 00:25:27,590 --> 00:25:28,560 Mengambil sebuah buku telepon. 566 00:25:28,560 --> 00:25:30,130 Membuka ke tengah buku telepon. 567 00:25:30,130 --> 00:25:31,419 Lihatlah nama. 568 00:25:31,419 --> 00:25:33,960 Dan kemudian hal mendapatkan sedikit lebih menarik secara intelektual, 569 00:25:33,960 --> 00:25:35,170 jika masih sederhana. 570 00:25:35,170 --> 00:25:38,350 Jika Smith adalah salah satu nama pada halaman saat ini, 571 00:25:38,350 --> 00:25:40,170 kemudian melakukan sesuatu kondisional. 572 00:25:40,170 --> 00:25:41,840 Ini seperti persimpangan jalan. 573 00:25:41,840 --> 00:25:42,660 Menelepon Mike. 574 00:25:42,660 --> 00:25:44,930 Jika Mike adalah salah satu nama pada halaman tersebut, yang disebut Mike. 575 00:25:44,930 --> 00:25:49,720 Tapi hanya melakukan baris empat jika baris pohon, jika Anda mau, benar. 576 00:25:49,720 --> 00:25:51,590 Jawaban untuk pertanyaan itu adalah ya. 577 00:25:51,590 --> 00:25:55,520 >> Lain jika Smith adalah awal book-- yang dengan kata lain, jika saya di bagian M 578 00:25:55,520 --> 00:25:58,540 dan saya sedang mencari seseorang untuk kiri, lalu apa yang harus saya lakukan 579 00:25:58,540 --> 00:26:00,300 adalah sesuatu yang sangat mirip. 580 00:26:00,300 --> 00:26:03,440 Lalu aku harus membuka ke tengah dari kiri setengah dari buku. 581 00:26:03,440 --> 00:26:07,930 Jadi pergi kiri, dan kemudian kembali ke langkah dua. 582 00:26:07,930 --> 00:26:09,290 Lihatlah nama-nama di sana. 583 00:26:09,290 --> 00:26:12,779 >> Jadi dengan kata lain, melakukan hal yang sama, tetapi pada masalah yang telah dibelah dua. 584 00:26:12,779 --> 00:26:13,570 Anda tahu apa lagi? 585 00:26:13,570 --> 00:26:16,470 Jika Smith adalah nanti dalam buku ini berdasarkan pada halaman saya sedang melihat, 586 00:26:16,470 --> 00:26:18,790 terbuka untuk tengah kanan setengah dari buku 587 00:26:18,790 --> 00:26:22,050 dan kemudian kembali lagi ke langkah dua, else-- 588 00:26:22,050 --> 00:26:24,000 ada kemungkinan keempat di sini. 589 00:26:24,000 --> 00:26:28,830 Mike di sini atau ke kiri atau ke kanan atau tidak ada. 590 00:26:28,830 --> 00:26:30,570 Dan di sini kita lebih baik mempertimbangkan ini. 591 00:26:30,570 --> 00:26:33,360 Dan pada kenyataannya, jika Anda pernah memiliki komputer Anda hanya kecelakaan pada Anda, 592 00:26:33,360 --> 00:26:36,822 yang kadang-kadang, tapi tidak selalu, Hasil hanya programmer manusia tidak 593 00:26:36,822 --> 00:26:39,280 menyadari, oh menembak, ada sebenarnya skenario keempat ini. 594 00:26:39,280 --> 00:26:41,650 Dan jika Anda tidak menulis kode untuk menangani skenario itu, 595 00:26:41,650 --> 00:26:43,220 kadang-kadang Anda tidak tahu apa yang mungkin dilakukan komputer. 596 00:26:43,220 --> 00:26:44,770 Dan memang program mungkin crash. 597 00:26:44,770 --> 00:26:47,550 >> Tapi dalam kasus ini, saya pikir tentang hal itu, dan saya berkata, lain berhenti, 598 00:26:47,550 --> 00:26:49,850 karena itulah keempat logis mungkin skenario. 599 00:26:49,850 --> 00:26:51,950 Sekarang, mari kita tambahkan beberapa kosakata jadi kami 600 00:26:51,950 --> 00:26:55,320 dapat mulai untuk melemparkan sekitar istilah yang adalah jika tidak cukup intuitif. 601 00:26:55,320 --> 00:26:57,870 Semua hal yang saya baru saja warna kuning di sini, 602 00:26:57,870 --> 00:27:00,140 Aku hanya pergi ke fungsi atau prosedur. 603 00:27:00,140 --> 00:27:01,590 Mereka hanya jenis tindakan. 604 00:27:01,590 --> 00:27:04,900 Jadi mengambil, terbuka untuk, terlihat di, panggilan, terbuka, terbuka, 605 00:27:04,900 --> 00:27:09,170 quit-- ini hanya tindakan, atau kami akan memanggil mereka lebih formal, fungsi. 606 00:27:09,170 --> 00:27:11,410 >> Sementara itu, sekarang warna kuning, Aku sudah disorot hal 607 00:27:11,410 --> 00:27:14,084 itu-- mari kita mulai menelepon mereka kondisi atau cabang. 608 00:27:14,084 --> 00:27:16,750 Ini adalah keputusan poin mana Anda mungkin pergi dengan cara ini, cara ini, 609 00:27:16,750 --> 00:27:18,100 atau arah lain masih. 610 00:27:18,100 --> 00:27:19,430 Jadi mereka akan kondisi. 611 00:27:19,430 --> 00:27:20,930 Dan sekarang satu ini sedikit lebih menarik. 612 00:27:20,930 --> 00:27:24,600 Mari kita sebut pertanyaan ini ekspresi Boolean, 613 00:27:24,600 --> 00:27:26,530 setelah seseorang dengan nama belakang Bool. 614 00:27:26,530 --> 00:27:28,340 >> Dan ekspresi Boolean hanya sesuatu 615 00:27:28,340 --> 00:27:30,290 itu benar atau salah, ya atau tidak. 616 00:27:30,290 --> 00:27:35,870 Jadi pertanyaan yang jawabannya Anda peduli, sehingga dalam kondisi 617 00:27:35,870 --> 00:27:39,210 membuat decision-- mendapatkan kembali jawaban, dan kemudian pergi kiri atau kanan, atau sesuatu 618 00:27:39,210 --> 00:27:40,450 yang lain sama sekali. 619 00:27:40,450 --> 00:27:42,860 >> Dan kemudian terakhir, ini garis sini-kembali 620 00:27:42,860 --> 00:27:44,737 ke langkah dua, kembali untuk melangkah two-- kita bisa 621 00:27:44,737 --> 00:27:46,320 mengimplementasikan gagasan ini dengan cara yang berbeda. 622 00:27:46,320 --> 00:27:49,028 Dan kemudian orang-orang dari Anda dengan pengalaman pemrograman mungkin telah melakukan 623 00:27:49,028 --> 00:27:50,670 atau bisa membayangkan melakukan hal ini berbeda. 624 00:27:50,670 --> 00:27:53,170 Tapi untuk tujuan hari ini, itu hanya ide yang penting. 625 00:27:53,170 --> 00:27:55,400 Hal ini mendorong apa kita umumnya akan menelepon 626 00:27:55,400 --> 00:28:00,110 a loop-- semacam siklus, karena itu membuat saya melakukan sesuatu lagi. 627 00:28:00,110 --> 00:28:03,340 >> Jadi sekarang, mari kita pertimbangkan seberapa baik algoritma ini. 628 00:28:03,340 --> 00:28:03,899 Itu benar. 629 00:28:03,899 --> 00:28:06,940 Jika Mike di buku, itu salah satu empat scenarios-- lagi dan lagi 630 00:28:06,940 --> 00:28:08,023 dan sekali lagi, kami akan menemukannya. 631 00:28:08,023 --> 00:28:08,890 Tapi bagaimana yang baik itu? 632 00:28:08,890 --> 00:28:10,150 Yah, kita tidak memiliki menjadi terlalu formal sini. 633 00:28:10,150 --> 00:28:12,066 Tapi mari kita merencanakan sesuatu, x dan y, untuk mendapatkan 634 00:28:12,066 --> 00:28:14,470 rasa bentuk masalah ini. 635 00:28:14,470 --> 00:28:17,160 >> Pada sumbu x di sini adalah ukuran masalah saya. 636 00:28:17,160 --> 00:28:20,256 Dan mereka y-axis disini akan menjadi waktu untuk menyelesaikan. 637 00:28:20,256 --> 00:28:21,630 Jadi mungkin ini adalah jumlah halaman. 638 00:28:21,630 --> 00:28:24,400 Mungkin ini adalah detik atau Halaman turns-- apapun. 639 00:28:24,400 --> 00:28:27,290 Namun Anda ingin menghitung adalah apa gambar ini akan mewakili. 640 00:28:27,290 --> 00:28:30,630 Dan bahwa algoritma pertama, aku akan untuk menggambarkan hanya sebagai garis lurus. 641 00:28:30,630 --> 00:28:33,120 Jika ada n halaman di buku telepon, maka 642 00:28:33,120 --> 00:28:36,010 mungkin membawa saya banyak n langkah untuk menemukan Mike. 643 00:28:36,010 --> 00:28:38,930 Jika Verizon atau perusahaan telepon menambahkan satu lagi tahun depan, 644 00:28:38,930 --> 00:28:42,170 mungkin membawa saya satu lagi step-- satu unit waktu untuk menemukan Mike. 645 00:28:42,170 --> 00:28:44,230 Jadi hanya ada satu ini untuk satu rasio. 646 00:28:44,230 --> 00:28:45,970 Ini adalah lereng garis lurus. 647 00:28:45,970 --> 00:28:49,110 >> Sementara itu, yang kedua algorithm-- jika saya 648 00:28:49,110 --> 00:28:51,570 akan dua di time-- dua, empat, enam, delapan, atau double-- 649 00:28:51,570 --> 00:28:54,550 akan melalui halaman dua kali pada suatu waktu, dua sekaligus, 650 00:28:54,550 --> 00:28:55,710 itu masih garis lurus. 651 00:28:55,710 --> 00:28:58,720 Sekarang ada 1-2 rasio, tetapi hanya sedikit lebih rendah. 652 00:28:58,720 --> 00:29:02,240 Jadi jika ada ini banyak halaman pada grafik di sini dengan warna kuning, 653 00:29:02,240 --> 00:29:04,800 yang mungkin membawa saya ini banyak langkah atau detik, 654 00:29:04,800 --> 00:29:07,980 selain itu akan membawa saya dua kali lebih banyak di jalur merah. 655 00:29:07,980 --> 00:29:10,190 >> Tapi garis hijau adalah takeaway nyata. 656 00:29:10,190 --> 00:29:12,290 Ini adalah apa yang kita umumnya sebut log logorithm-- 657 00:29:12,290 --> 00:29:13,840 n, di mana n adalah jumlah halaman. 658 00:29:13,840 --> 00:29:16,450 Tapi itu bentuk yang penting hari ini, karena kita tidak memiliki 659 00:29:16,450 --> 00:29:17,950 untuk berpikir tentang merencanakan poin. 660 00:29:17,950 --> 00:29:19,830 >> Pikirkan tentang skenario ekstrim. 661 00:29:19,830 --> 00:29:23,070 Misalkan Verizon besok menggandakan jumlah halaman dalam buku telepon, 662 00:29:23,070 --> 00:29:24,900 dari 1.000 menjadi 2.000. 663 00:29:24,900 --> 00:29:28,440 Dalam algoritma pertama, saya mungkin buang tambahan 1.000 664 00:29:28,440 --> 00:29:32,080 langkah mencari Mike, hanya karena Verizon dua kali lipat ukuran buku. 665 00:29:32,080 --> 00:29:34,740 Kedua algorithm-- itu mungkin membawa saya ekstra 500 langkah. 666 00:29:34,740 --> 00:29:38,370 1.000 halaman lebih, aku pergi dua di time-- 500 langkah lagi untuk menemukan Mike. 667 00:29:38,370 --> 00:29:41,020 >> Tapi itu algoritma ketiga adalah jenis magis. 668 00:29:41,020 --> 00:29:44,270 Verizon ganda nomor halaman dari 1.000 ke 2.000, 669 00:29:44,270 --> 00:29:47,730 tapi berapa banyak lagi langkah tidak itu membawa saya untuk mencari Mike? 670 00:29:47,730 --> 00:29:51,220 Itu hanya satu, karena aku hanya bisa merobek buku telepon sekali lagi 671 00:29:51,220 --> 00:29:55,280 dari masalah 2.000 halaman ke 1.000 masalah halaman, dan voila. 672 00:29:55,280 --> 00:29:57,030 Saya telah mengambil gigitan besar dari itu. 673 00:29:57,030 --> 00:29:59,405 >> Dan jika Anda pergi benar-benar ekstrim, misalkan buku telepon 674 00:29:59,405 --> 00:30:03,600 Perusahaan memiliki sesuatu gila seperti telepon buku 4 miliar halaman. 675 00:30:03,600 --> 00:30:07,020 Nah berapa banyak langkah yang mungkin dibutuhkan untuk menemukan Mike Smith dalam 4 miliar 676 00:30:07,020 --> 00:30:09,990 buku telepon halaman? 677 00:30:09,990 --> 00:30:16,450 Ini jumlah yang besar, tetapi hanya 4 miliar untuk 2000000000-1000000000 ke 500 juta 678 00:30:16,450 --> 00:30:18,720 250 million-- masih Kedengarannya seperti jumlah besar, 679 00:30:18,720 --> 00:30:20,980 tapi aku sangat cepat mendapatkan nilai-nilai yang lebih kecil. 680 00:30:20,980 --> 00:30:24,790 >> Dan pada kenyataannya, jika saya melakukan matematika benar, aku hanya bisa membagi 4 miliar 681 00:30:24,790 --> 00:30:28,750 oleh sekitar 32 kali sebelum Saya turun ke hanya satu. 682 00:30:28,750 --> 00:30:31,640 Jadi jika itu buku telepon yang 4 miliar halaman, bukan masalah besar. 683 00:30:31,640 --> 00:30:35,270 Dalam beberapa detik, mungkin 32 detik, saya bisa membagi menjadi dua 684 00:30:35,270 --> 00:30:39,560 dan akhirnya menemukan Mike atau menyimpulkan bahwa dia tidak ada. 685 00:30:39,560 --> 00:30:42,219 Dan itulah esensi dari sebuah algorithm-- algoritma yang baik. 686 00:30:42,219 --> 00:30:44,260 Dan itulah salah satu tujuan dari kelas seperti ini, 687 00:30:44,260 --> 00:30:47,350 sedang mencoba untuk mencari tahu bagaimana saya memecahkan masalah bukan hanya benar, 688 00:30:47,350 --> 00:30:52,360 seperti aku selalu tahu bagaimana melakukannya satu Halaman di time-- tapi benar dan baik. 689 00:30:52,360 --> 00:30:55,034 Bagaimana cara merancang baik solusi untuk masalah? 690 00:30:55,034 --> 00:30:57,200 Jadi mari kita sejenak di sini dan memberikan rasa sekarang 691 00:30:57,200 --> 00:31:00,260 dari CS50 saja itself-- memperkenalkan anggota staf beberapa kursus ini. 692 00:31:00,260 --> 00:31:02,010 Tepat sebelum 02:00, kita akan mengambil istirahat sejenak 693 00:31:02,010 --> 00:31:03,520 sehingga bagi anda yang berbelanja dapat 694 00:31:03,520 --> 00:31:05,130 Bebek dan mengambil melihat beberapa kelas lain 695 00:31:05,130 --> 00:31:06,580 dan menonton sisa online ini. 696 00:31:06,580 --> 00:31:09,250 Tapi untuk saat ini, izinkan saya memperkenalkan CS50, kelas itu sendiri, 697 00:31:09,250 --> 00:31:11,330 dan khususnya apa yang baru. 698 00:31:11,330 --> 00:31:13,960 >> Jadi musim semi lalu, kami menghabiskan cukup sedikit time-- 699 00:31:13,960 --> 00:31:17,911 Staf kursus dan aku-- berpikir tentang apa yang kita inginkan CS50 menjadi, 700 00:31:17,911 --> 00:31:19,910 dan akan kembali ke pertama prinsip, sehingga untuk berbicara, 701 00:31:19,910 --> 00:31:22,760 untuk mempertimbangkan apa yang kita inginkan Tentu saja ini terlihat seperti dan menjadi 702 00:31:22,760 --> 00:31:23,740 seperti untuk mahasiswa. 703 00:31:23,740 --> 00:31:26,480 Dan Anda akan melihat di masalah ditetapkan nol juga, undangan 704 00:31:26,480 --> 00:31:28,780 untuk kita lihat bahwa URL yang merangkum 705 00:31:28,780 --> 00:31:33,270 beberapa motivasi di balik Berikut ciri-ciri jatuh 2016. 706 00:31:33,270 --> 00:31:35,570 >> Sehingga Anda mungkin telah diperoleh dari TL: handout DR, 707 00:31:35,570 --> 00:31:39,060 silabus hari serta dari katalog saja, tahun ini di CS50, 708 00:31:39,060 --> 00:31:42,540 Anda hanya diharapkan untuk hadir today-- sehingga pekerjaan baik done-- 709 00:31:42,540 --> 00:31:45,960 dan kuliah terakhir pada tanggal 21 November. 710 00:31:45,960 --> 00:31:49,150 Dan kau datang tapi tidak diharapkan untuk menghadiri mereka kuliah di tengah, 711 00:31:49,150 --> 00:31:51,180 karena apa yang kita lakukan tahun ini, menembak 712 00:31:51,180 --> 00:31:52,661 secara real-time materi kursus ini. 713 00:31:52,661 --> 00:31:54,660 Jadi semuanya akan tinggal saat ini dan dimasukkan 714 00:31:54,660 --> 00:31:57,410 sebaik can-- peristiwa saat dan percakapan yang orang mungkin 715 00:31:57,410 --> 00:32:00,400 akan mengalami dalam industri di dunia, tetapi membuat materi yang 716 00:32:00,400 --> 00:32:03,892 tersedia, sebagai hasilnya, bahkan earlier-- lengkap dengan transkrip teks lengkap 717 00:32:03,892 --> 00:32:05,850 dan searchability dan link ke sumber informasi lainnya. 718 00:32:05,850 --> 00:32:07,930 >> Dan memang, kami sudah mengklaim untuk beberapa waktu 719 00:32:07,930 --> 00:32:10,830 dan kami sekarang percaya ini, bahwa kita dapat menciptakan, digital, 720 00:32:10,830 --> 00:32:15,170 lebih mendalam, lebih menarik pengalaman pendidikan, sebagai lawan 721 00:32:15,170 --> 00:32:19,110 untuk mengumpulkan sini sekitar 23 kali secara pribadi, mendengar seseorang seperti saya 722 00:32:19,110 --> 00:32:22,925 hanya berbicara tentang ilmu komputer, sebagai lawan terlibat lebih aktif. 723 00:32:22,925 --> 00:32:25,800 Jadi Anda akan melihat dalam silabus kursus ini sketsa semester di sini, 724 00:32:25,800 --> 00:32:27,840 bersama dengan saat kuliah akan difilmkan, yang Anda 725 00:32:27,840 --> 00:32:29,710 Selamat datang tapi tidak diharapkan, dan ketika mereka akan 726 00:32:29,710 --> 00:32:31,640 akan dirilis di website kursus ini. 727 00:32:31,640 --> 00:32:34,300 >> Dan apa yang akan kita lakukan di sini di Rabu mulai minggu depan, 728 00:32:34,300 --> 00:32:37,362 jauh lebih intim, dengan hanya mereka orang-orang yang ingin berpartisipasi, 729 00:32:37,362 --> 00:32:39,820 adalah disebut berjalan melalui, di mana saya dan kepala kursus ini 730 00:32:39,820 --> 00:32:41,730 benar-benar akan membuat hal-hal sedikit lebih intim 731 00:32:41,730 --> 00:32:44,313 di sini di orkestra bagian, masih memiliki beberapa teknologi 732 00:32:44,313 --> 00:32:46,365 dan berjalan melalui minggu saat ini masalah set, 733 00:32:46,365 --> 00:32:50,020 dan menawarkan particularly-- jika antara mereka yang kurang comfortable-- semua lebih 734 00:32:50,020 --> 00:32:52,790 bimbingan yang Anda mungkin ingin atau butuhkan untuk tantangan minggu. 735 00:32:52,790 --> 00:32:55,820 Dan juga, bagi mereka yang tidak bisa menghadiri mereka secara pribadi, bukan masalah besar. 736 00:32:55,820 --> 00:32:58,486 Ada akan sama dipimpin oleh salah satu staf senior saja ini, 737 00:32:58,486 --> 00:33:02,650 Zamalya, kesempatan yang sama tertanam dalam masalah set sendiri. 738 00:33:02,650 --> 00:33:04,960 >> Masalah set tahun ini akan dirilis pada hari Jumat 739 00:33:04,960 --> 00:33:08,080 dan tidak lagi melakukan tujuh hari kemudian, tapi 10 hari later-- sengaja 740 00:33:08,080 --> 00:33:10,910 tumpang tindih dengan setiap masalah mengatur, sehingga untuk lebih mengakomodasi, 741 00:33:10,910 --> 00:33:13,050 kami berharap, pasang surut dan mengalir dalam jadwal siswa, 742 00:33:13,050 --> 00:33:16,550 terutama ketika ujian tengah semester atau atletik atau akademisi atau ekstrakurikuler 743 00:33:16,550 --> 00:33:18,465 cenderung datang dan pergi terutama pertengahan semester. 744 00:33:18,465 --> 00:33:21,340 Yang seharusnya memberi Anda sedikit lebih kebijaksanaan apakah Anda depan 745 00:33:21,340 --> 00:33:25,690 memuat minggu Anda dengan CS50 atau beban kembali pada akhir pekan berikut ini sebagai gantinya. 746 00:33:25,690 --> 00:33:28,817 Jadi melihat ke silabus kursus ini di sini untuk jadwal daripadanya. 747 00:33:28,817 --> 00:33:30,900 Dan Anda akan melihat terlalu kalangan perubahan tahun ini, 748 00:33:30,900 --> 00:33:34,082 bagi mereka lebih akrab dengan pemrograman di masa lalu, 749 00:33:34,082 --> 00:33:36,290 kami akan mulai semester sebagai kita akan hari ini di Scratch, 750 00:33:36,290 --> 00:33:39,730 fokus terutama pada bahasa disebut C, dan kemudian transisi tidak 751 00:33:39,730 --> 00:33:43,430 untuk PHP, tapi untuk bahasa yang disebut Python menjelang akhir semester 752 00:33:43,430 --> 00:33:46,565 dalam konteks pemrograman web, bersama dengan SQL dan JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, dan lebih banyak lagi. 754 00:33:48,930 --> 00:33:51,790 >> Dan untuk menjawab sebuah FAQ, itu memang terjadi 755 00:33:51,790 --> 00:33:55,520 bahwa CS ini tidak menakutkan seperti yang pernah pikir itu, tetapi banyak pekerjaan 756 00:33:55,520 --> 00:33:57,280 seperti yang saya dengar itu mungkin. 757 00:33:57,280 --> 00:34:03,210 Tapi ini adalah mengatakan bahwa di sini adalah beberapa statistik dari musim gugur 2015 mahasiswa, 758 00:34:03,210 --> 00:34:06,460 dimana garis biru horisontal merupakan jumlah rata-rata jam 759 00:34:06,460 --> 00:34:06,960 dilaporkan. 760 00:34:06,960 --> 00:34:10,570 Dan Anda akan melihat rata-rata enam sampai 10 untuk 12-- mungkin 16 761 00:34:10,570 --> 00:34:14,580 atau lebih dan sebagainya, tetapi dengan varians tinggi untuk menjadi jelas. 762 00:34:14,580 --> 00:34:18,570 Dan menyadari bahwa ada tidak hanya siswa lebih nyaman dan kurang 763 00:34:18,570 --> 00:34:22,150 nyaman dalam kursus, tapi dukungan yang sesuai 764 00:34:22,150 --> 00:34:25,699 struktur untuk mendapatkan para pelajar melalui semester berhasil. 765 00:34:25,699 --> 00:34:29,409 >> Memang, untuk menjawab sebuah FAQ, harus Anda mengambil CS50 sebagai tahun pertama? 766 00:34:29,409 --> 00:34:30,139 Benar. 767 00:34:30,139 --> 00:34:32,690 Dan pada kenyataannya, saya menyesal tidak memiliki menemukan jalan 768 00:34:32,690 --> 00:34:35,170 atau menemukan bidang baru tahun pertama juga. 769 00:34:35,170 --> 00:34:39,149 Dan harus Anda ambil CS50 dengan kursus lain, tentu seperti baik 770 00:34:39,149 --> 00:34:41,940 dan saran umum kita mungkin memberikan siswa, yang CS50 mungkin 771 00:34:41,940 --> 00:34:44,929 bukan jenis kelas atau kelas intro bahwa Anda harus mengambil dengan tiga 772 00:34:44,929 --> 00:34:47,199 atau empat kelas p-set lainnya. 773 00:34:47,199 --> 00:34:50,583 Tetapi jika Anda mengambil dua p-set lainnya kelas, sesuatu yang lain, dan CS50, 774 00:34:50,583 --> 00:34:51,499 benar-benar dikelola. 775 00:34:51,499 --> 00:34:54,900 Aku sudah banyak siswa di masa lalu melakukannya cukup berhasil. 776 00:34:54,900 --> 00:34:57,490 >> Dan untuk mendapatkan Anda menuju bahwa menyelesaikan garis berhasil, 777 00:34:57,490 --> 00:35:00,260 tidak saja memiliki sections-- trek yang berbeda untuk siswa 778 00:35:00,260 --> 00:35:03,100 kurang nyaman, lebih nyaman, dan di suatu tempat di antara, 779 00:35:03,100 --> 00:35:04,850 dimana dalam perjalanan ini Masalah pertama set, 780 00:35:04,850 --> 00:35:06,360 Anda akan diminta untuk menggambarkan diri Anda. 781 00:35:06,360 --> 00:35:09,151 Dan jika Anda termasuk orang yang kurang nyaman, itu jenis hal 782 00:35:09,151 --> 00:35:10,420 bahwa Anda hanya suka tahu. 783 00:35:10,420 --> 00:35:13,010 Dan memang, yang menjadi tumbuh demografis di CS50 784 00:35:13,010 --> 00:35:14,090 selama beberapa tahun. 785 00:35:14,090 --> 00:35:17,680 >> Pada musim gugur yang lalu untuk Misalnya, 58% dari kelas 786 00:35:17,680 --> 00:35:20,560 menggambarkan diri mereka sebagai antara mereka yang kurang nyaman, 787 00:35:20,560 --> 00:35:23,210 dengan 9% di antara mereka yang lebih nyaman, dan kemudian 788 00:35:23,210 --> 00:35:25,900 siswa lain ada di merah menggambarkan diri mereka 789 00:35:25,900 --> 00:35:27,890 sebagai suatu tempat di antara. 790 00:35:27,890 --> 00:35:31,980 Dan Anda akan melihat di sini topik keseluruhan dan jadwal bagian, yang semuanya 791 00:35:31,980 --> 00:35:34,820 ditawarkan dalam orang, di real time, dengan kursus ini 792 00:35:34,820 --> 00:35:38,320 menakjubkan staf fellows mengajar dan asisten saja, beberapa di antaranya 793 00:35:38,320 --> 00:35:39,660 Anda akan bertemu hanya dalam beberapa saat. 794 00:35:39,660 --> 00:35:42,993 >> Bagian diri, seperti yang Anda lihat, akan menjadi hari Senin dan Selasa dan Rabu, 795 00:35:42,993 --> 00:35:45,910 sehingga memungkinkan Anda untuk menyelam setelah terlibat, jika anda 796 00:35:45,910 --> 00:35:48,110 memilih, dalam kursus ini kuliah awal minggu itu. 797 00:35:48,110 --> 00:35:51,420 Dan kemudian jam kantor, yang tentu, setiap tahun, 798 00:35:51,420 --> 00:35:54,110 telah tidak kurang dari menantang untuk kursus. 799 00:35:54,110 --> 00:35:57,040 Dan tahun ini, kami berencana tidak hanya untuk memegang jabatan hours-- satu 800 00:35:57,040 --> 00:36:00,300 pada satu kesempatan bagi bantuan untuk siswa pada hari Rabu Kamis 801 00:36:00,300 --> 00:36:03,790 dan Minggu, yang terakhir dari mereka berada di sore hari dengan desain 802 00:36:03,790 --> 00:36:06,910 untuk mengurangi beberapa stres yang selalu muncul dengan malam 803 00:36:06,910 --> 00:36:10,180 p-settting dengan tenggat waktu looming-- tapi jam kantor juga akan ditawarkan 804 00:36:10,180 --> 00:36:14,920 pada hari Senin dan Selasa dan Rabu, dan Jumat dan Sabtu, 805 00:36:14,920 --> 00:36:17,080 terima kasih kepada teman-teman kita di HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 sekarang memiliki ruang sendiri bagi siswa dan staf CS50, 807 00:36:20,330 --> 00:36:23,070 atas 67 Mount Auburn Street, tepat di Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Visi yang adalah bahwa CS50 ini TF dan CA sepanjang minggu, 809 00:36:26,340 --> 00:36:29,052 cukup banyak di sebagian hari, akan berada di sana untuk dukungan. 810 00:36:29,052 --> 00:36:30,760 Jadi jika Anda punya beberapa pertanyaan pada p-set 811 00:36:30,760 --> 00:36:33,093 atau Anda merasa sedikit diblokir atau sedikit bingung, 812 00:36:33,093 --> 00:36:35,640 dan heck, Anda punya satu jam atau setengah jam antara kelas, 813 00:36:35,640 --> 00:36:38,920 terutama di square-- dapat Anda pop dan memiliki pertanyaan yang dijawab 814 00:36:38,920 --> 00:36:41,720 dari memiliki kebingungan yang clarified-- sangat banyak dalam roh, 815 00:36:41,720 --> 00:36:45,490 Anda kenal, dari matematika departemen sendiri pusat pertanyaan matematika, 816 00:36:45,490 --> 00:36:49,300 tapi cukup banyak sekitar jam per [? GCal?] Bahwa kami akan posting secara online. 817 00:36:49,300 --> 00:36:52,400 >> Bimbingan juga tersedia bagi mereka siswa, bebas dari kursus ini 818 00:36:52,400 --> 00:36:54,750 Staf sendiri jika Anda ingin lebih intim satu-satu, 819 00:36:54,750 --> 00:36:58,940 atau dua atau tiga teman sekelas saja, bekerja dengan salah satu anggota staf saja ini. 820 00:36:58,940 --> 00:37:02,320 Dan memang, ini di sini hanya beberapa anggota staf saja ini, 821 00:37:02,320 --> 00:37:04,120 beberapa di antaranya Anda akan bertemu hanya dalam beberapa saat. 822 00:37:04,120 --> 00:37:07,440 Bahkan, CS50 sendiri Kepala mengajar sesama, 823 00:37:07,440 --> 00:37:09,790 dan tentu saja kepala asisten, dan pembimbing, 824 00:37:09,790 --> 00:37:12,998 bisa datang ke atas, memungkinkan mereka untuk menyapa. 825 00:37:12,998 --> 00:37:22,498 >> [TEPUK TANGAN] 826 00:37:22,498 --> 00:37:23,456 SPEAKER 1: [tidak terdengar]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [TEPUK TANGAN] 829 00:37:57,856 --> 00:37:58,814 SPEAKER 2: [tidak terdengar]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [TEPUK TANGAN] 832 00:38:27,238 --> 00:38:28,196 SPEAKER 3: [tidak terdengar]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [TEPUK TANGAN] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Malan: Dan memungkinkan kita untuk membawa pada papan dua CS50 paling 836 00:39:06,740 --> 00:39:09,730 Staf senior, Rob dan Zamayla juga. 837 00:39:09,730 --> 00:39:15,120 >> [TEPUK TANGAN] 838 00:39:15,120 --> 00:39:17,226 >> Memang, baik Rob dan Zamayla telah bersama kami 839 00:39:17,226 --> 00:39:19,940 begitu lama, bahwa saya mampu untuk masuk ke arsip CS50 ini 840 00:39:19,940 --> 00:39:22,470 dan menemukan sangat SD ini cuplikan dari mereka yang berpartisipasi 841 00:39:22,470 --> 00:39:25,402 di atas panggung sendiri beberapa tahun yang lalu. 842 00:39:25,402 --> 00:39:26,110 ROB: [tidak terdengar]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [TEPUK TANGAN] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [tidak terdengar] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [TEPUK TANGAN] 848 00:40:52,467 --> 00:40:53,425 DAVID Malan: Terima kasih. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Jadi di samping ini anggota tim di sini, 851 00:40:58,030 --> 00:41:01,662 CS50 memiliki tim hampir 100 anggota staf, semuanya 852 00:41:01,662 --> 00:41:04,370 akan tersedia untuk bagian dan jam kantor dan banyak lagi. 853 00:41:04,370 --> 00:41:06,920 Dan seperti Rob mengatakan juga, ini adalah overhaul paling signifikan 854 00:41:06,920 --> 00:41:09,534 dari CS50 dalam 10 tahun yang Aku sudah di [tidak terdengar]. 855 00:41:09,534 --> 00:41:12,200 [Tidak terdengar] difokuskan terutama dalam menyediakan struktur dukungan, 856 00:41:12,200 --> 00:41:14,050 pemangkasan pergi banyak sebagian besar yang sudah 857 00:41:14,050 --> 00:41:16,870 terakumulasi dalam 10 tahun perkembangan berulang 858 00:41:16,870 --> 00:41:18,120 pada masalah set kursus ini. 859 00:41:18,120 --> 00:41:21,470 >> Jadi tahun ini, tidak hanya di kelas tetapi juga dalam bentuk masalah tentu saja ini 860 00:41:21,470 --> 00:41:24,800 set, jika Anda menemukan hal yang akan lebih efisien, pemangkas, banyak 861 00:41:24,800 --> 00:41:26,700 lebih mudah ditangani daripada di tahun terakhir, seperti yang kita 862 00:41:26,700 --> 00:41:31,330 menumpahkan beberapa bagasi yang dikembangkan oleh alam tahun berkembang 863 00:41:31,330 --> 00:41:32,970 setelah tahun dan iterasi. 864 00:41:32,970 --> 00:41:35,110 Jadi baru dan ditingkatkan dimulai hari ini. 865 00:41:35,110 --> 00:41:37,860 >> Anda akan bertemu beberapa lebih dari Staf saja keluar di [tidak terdengar] 866 00:41:37,860 --> 00:41:40,186 at 2:30, di mana kita melayani, sebagai tradisi, kue. 867 00:41:40,186 --> 00:41:42,060 Ada kue sedikit lebih dari itu, tapi Anda akan 868 00:41:42,060 --> 00:41:44,690 bertemu Erin dan Tobias dan lain-lain masih. 869 00:41:44,690 --> 00:41:46,470 Dan saya memberikan tur sebelum kita mendengar 870 00:41:46,470 --> 00:41:49,600 dari beberapa anggota staf lain di kelas, dari apa yang menanti juga. 871 00:41:49,600 --> 00:41:52,730 Bahkan, kita selalu mulai CS50 ini semester ini datang Sabtu, 872 00:41:52,730 --> 00:41:54,330 dengan apa yang disebut CS50 Puzzle Day. 873 00:41:54,330 --> 00:41:56,710 >> Ini tidak ada hubungannya dengan ilmu komputer per se, 874 00:41:56,710 --> 00:41:58,669 tapi dengan tentang masalah pemecahan lebih umum. 875 00:41:58,669 --> 00:42:01,210 Dan jika Anda memilih untuk mengambil bagian, per beberapa undangan, 876 00:42:01,210 --> 00:42:03,460 Anda mungkin telah melihat pintu menjatuhkan atau di atas panggung di sini, 877 00:42:03,460 --> 00:42:05,830 ini merupakan kesempatan di tim dari dua atau tiga atau empat, 878 00:42:05,830 --> 00:42:10,680 untuk berpartisipasi untuk teka-teki dan pizza dan hadiah dan more-- Sabtu ini, 879 00:42:10,680 --> 00:42:12,560 menantikan untuk lebih. 880 00:42:12,560 --> 00:42:15,082 >> Anda akan menemukan juga bahwa setiap Jumat, di Fire and Ice, 881 00:42:15,082 --> 00:42:16,790 tidak CS50 membawa sejumlah besar siswa 882 00:42:16,790 --> 00:42:19,100 untuk makan siang, untuk membuat besar kelas merasa lebih intim, 883 00:42:19,100 --> 00:42:21,820 dan umumnya membawa bersama-sama alumni dan teman-teman dari industri 884 00:42:21,820 --> 00:42:24,710 untuk berbicara tentang apa yang mereka sudah telah sampai sejak lulus. 885 00:42:24,710 --> 00:42:27,820 Demikian pula, tahun ini, akan kita meresmikan pertama CS50 50 886 00:42:27,820 --> 00:42:31,390 coding contest-- mid-semester kesempatan untuk memungkinkan semua orang 887 00:42:31,390 --> 00:42:35,430 pada opt dalam dasar, memiliki tantangan akal terhadap teman sekelas, 888 00:42:35,430 --> 00:42:39,250 lagi di tim dari dua atau tiga atau empat, hanya menggunakan pemrograman yang 889 00:42:39,250 --> 00:42:41,920 cerdas yang Anda kemudian harus di bawah ikat pinggang Anda setelah hanya enam atau tujuh 890 00:42:41,920 --> 00:42:44,710 minggu kelas, dan berpartisipasi dalam jenis kompetisi 891 00:42:44,710 --> 00:42:50,261 online-- jika Anda ingin mengasah Anda sendiri keterampilan semua lebih dalam tantangan itu. 892 00:42:50,261 --> 00:42:52,760 Pada akhir semester ini yang disebut CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 kesempatan yang dimulai pada 7:00 PM berakhir pada 7:00 AM, dan sepanjang jalan 894 00:42:56,970 --> 00:43:01,900 12 jam malam di mana untuk menyelam ke project-- akhir kursus ini 895 00:43:01,900 --> 00:43:04,820 kesempatan untuk merancang dan menerapkan apa yang paling menarik 896 00:43:04,820 --> 00:43:06,980 untuk Anda dengan mengajar Anda bimbingan sesama ini. 897 00:43:06,980 --> 00:43:09,600 Sekitar 09:00 kita biasanya melayani pizza, 01:00, 898 00:43:09,600 --> 00:43:13,210 Philippe, dan beberapa dari kami yang masih terjaga di 05:00, 899 00:43:13,210 --> 00:43:16,310 shuttle bussed bawah jalan ke IHOP untuk sarapan. 900 00:43:16,310 --> 00:43:19,340 >> Dan kemudian beberapa hari kemudian adalah disebut CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 akhir pameran semester di perayaan seberapa jauh begitu banyak 902 00:43:23,450 --> 00:43:28,200 dari CS50 siswa berasal dari minggu nol semua jalan ke minggu, 903 00:43:28,200 --> 00:43:32,610 dan dengan mengingat bahwa 73% dari mereka teman sekelas dan Anda tahun ini 904 00:43:32,610 --> 00:43:34,840 pernah mengambil kelas CS sebelumnya. 905 00:43:34,840 --> 00:43:39,226 Bahkan, untuk menekankan kembali sebanyak, di sini adalah beberapa wajah lebih dari staf CS50 ini. 906 00:43:39,226 --> 00:43:40,184 SPEAKER 4: [tidak terdengar]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 SPEAKER 5: [tidak terdengar]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 SPEAKER 6: [tidak terdengar]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 SPEAKER 7: [tidak terdengar]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 SPEAKER 8: [tidak terdengar] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 SPEAKER 9: [tidak terdengar]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> SPEAKER 4: [tidak terdengar]. 919 00:44:15,461 --> 00:44:16,461 >> SPEAKER 10: [tidak terdengar]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 SPEAKER 11: [tidak terdengar]. 922 00:44:23,438 --> 00:44:24,438 SPEAKER 12: [tidak terdengar]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 SPEAKER 13: [tidak terdengar] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> SPEAKER 14: [tidak terdengar]. 927 00:44:40,342 --> 00:44:42,863 >> SPEAKER 13: [tidak terdengar]. 928 00:44:42,863 --> 00:44:43,821 SPEAKER 15: [tidak terdengar] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 SPEAKER 16: [tidak terdengar]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> SPEAKER 11: [tidak terdengar] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 SPEAKER 5: [tidak terdengar]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Malan: Beberapa tim sendirinya belanja kelas. 937 00:45:15,130 --> 00:45:17,760 Tetapi jika para anggota staf CS50 di sini, 938 00:45:17,760 --> 00:45:19,230 bisa datang ke atas untuk sesaat. 939 00:45:19,230 --> 00:45:23,450 CS50 ini TF dan CA dan [? Staf?] anggota di sini-ini hanya beberapa 940 00:45:23,450 --> 00:45:28,880 dari faces-- salah satunya Anda hanya melihat, dan beberapa other-- dan beberapa orang lainnya 941 00:45:28,880 --> 00:45:30,020 masih. 942 00:45:30,020 --> 00:45:33,242 Mengapa kita tidak pergi ke depan dan memungkinkan kalian lima menit istirahat. 943 00:45:33,242 --> 00:45:35,450 Jika Anda perlu untuk bebek untuk kelas shop, itu baik-baik saja. 944 00:45:35,450 --> 00:45:38,900 Dan dalam lima menit, kami akan melanjutkan, mengambil melihat Scratch-- pertama 945 00:45:38,900 --> 00:45:42,420 bahasa pemrograman kami, memenuhi staf saja di sini lagi, 946 00:45:42,420 --> 00:45:45,020 dan fokus pada akhirnya pada masalah ditetapkan nol. 947 00:45:45,020 --> 00:45:46,710 Jadi kami akan kembali dalam lima menit. 1 00:45:46,864 --> 00:45:47,370 >> Baiklah. 2 00:45:47,370 --> 00:45:48,590 Jadi kita kembali. 3 00:45:48,590 --> 00:45:51,330 Dan di kami yang tersisa waktu hari ini, tujuannya 4 00:45:51,330 --> 00:45:54,320 adalah untuk tingkat lapangan dalam hal beberapa terminologi, 5 00:45:54,320 --> 00:45:55,297 dalam hal beberapa ide. 6 00:45:55,297 --> 00:45:57,380 Karena memang, sesuai beberapa grafik sebelumnya, 7 00:45:57,380 --> 00:46:00,130 ada akan menjadi berbagai tingkat pengalaman di kelas, 8 00:46:00,130 --> 00:46:03,210 beberapa yang siswa memiliki diambil beberapa program sebelumnya, 9 00:46:03,210 --> 00:46:04,200 beberapa di antaranya belum. 10 00:46:04,200 --> 00:46:07,430 Dan dengan masalah pertama ini menetapkan dan dengan bahasa pertama ini 11 00:46:07,430 --> 00:46:10,830 kita memiliki kesempatan untuk memulai untuk mengambil untuk diberikan setelah hari ini 12 00:46:10,830 --> 00:46:12,960 beberapa kosa kata umum dan ide. 13 00:46:12,960 --> 00:46:15,590 >> Dan kami akan melakukan ini dengan cara languages-- pertama kursus ini 14 00:46:15,590 --> 00:46:21,070 selain C dan Python dan JavaScript dan SQL dan HTML dan CSS, 15 00:46:21,070 --> 00:46:24,450 kita akan fokus pada awalnya dan hanya untuk masalah set nol 16 00:46:24,450 --> 00:46:28,160 bahasa grafis ini, yang disebut Scratch, yang dikembangkan oleh MIT Media Lab'S 17 00:46:28,160 --> 00:46:30,880 di jalan, untuk membantu mahasiswa dan anak-anak terutama 18 00:46:30,880 --> 00:46:35,070 mengekspresikan diri algorithmically-- dengan cara yang lebih konsisten dengan apa 19 00:46:35,070 --> 00:46:37,300 kita sebut berpikir komputasi. 20 00:46:37,300 --> 00:46:40,985 >> Dan itu bahasa berguna karena sangat cepat minggu depan di minggu satu, 21 00:46:40,985 --> 00:46:44,360 kita beralih ke yang lebih bahasa tradisional dan misterius yang disebut 22 00:46:44,360 --> 00:46:46,370 C, yang murni tekstual. 23 00:46:46,370 --> 00:46:48,930 Anda hanya menggunakan keyboard di untuk menulis instruksi 24 00:46:48,930 --> 00:46:50,230 seperti ini di layar. 25 00:46:50,230 --> 00:46:52,840 Tetapi bahkan jika Anda belum pernah melihat bahasa pemrograman sebelumnya, 26 00:46:52,840 --> 00:46:55,170 hanya melirik ini, semua akan hal itu samar, 27 00:46:55,170 --> 00:47:00,010 Anda mungkin bisa menebak bahwa mungkin mencetak Hello World. 28 00:47:00,010 --> 00:47:02,050 Tapi ada banyak overhead yang sintaksis ada. 29 00:47:02,050 --> 00:47:05,770 Ada hash aneh simbol atau hash tag di bagian atas. 30 00:47:05,770 --> 00:47:08,900 Ada kurung sudut, beberapa kurung, kurung kurawal, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 ada begitu banyak visual yang sintaks yang mendapat di jalan. 32 00:47:11,880 --> 00:47:13,940 Kita mulai saja dengan Scratch sehingga untuk mendapatkan 33 00:47:13,940 --> 00:47:17,600 melewati semua orang intelektual gangguan tidak menarik, 34 00:47:17,600 --> 00:47:20,290 dan berfokus pada ide-ide. 35 00:47:20,290 --> 00:47:22,540 >> Bahkan, ini mungkin sebelumnya. 36 00:47:22,540 --> 00:47:24,830 Ini, untuk ini, minggu akan setelah. 37 00:47:24,830 --> 00:47:26,760 Ini, dalam grafis ini Scratch bahasa, 38 00:47:26,760 --> 00:47:29,870 adalah bagaimana Anda akan menerapkan bahwa sama program-- program yang ketika dijalankan, 39 00:47:29,870 --> 00:47:31,340 hanya menyapa dunia. 40 00:47:31,340 --> 00:47:34,740 Dan apa yang baik tentang Scratch adalah bahwa itu pemrograman grafis ini 41 00:47:34,740 --> 00:47:38,780 lingkungan yang menggunakan potongan puzzle atau blok, yang hanya berpaut bersama-sama 42 00:47:38,780 --> 00:47:40,440 apakah masuk akal logis untuk melakukannya. 43 00:47:40,440 --> 00:47:43,810 Dan dengan Scratch dapat Anda kembangkan animasi dan permainan interaktif 44 00:47:43,810 --> 00:47:47,270 dan seni, dan sejumlah hal yang Anda mungkin membayangkan dalam pikiran Anda sendiri, 45 00:47:47,270 --> 00:47:51,200 dan menerapkannya hanya dengan menyeret dan menjatuhkan potongan puzzle. 46 00:47:51,200 --> 00:47:54,265 >> Dan memang, kita akan memiliki kemampuan untuk mengungkapkan beberapa ide yang sama 47 00:47:54,265 --> 00:47:56,890 yang saya sebutkan sesaat lalu dalam konteks Mike Smith 48 00:47:56,890 --> 00:48:00,670 dan mencari hal-hal telepon book-- seperti fungsi, hanya tindakan, 49 00:48:00,670 --> 00:48:03,070 hal-hal seperti loop yang melakukan hal lagi dan lagi, 50 00:48:03,070 --> 00:48:05,170 variabel, yaitu sesuatu yang kita akan memperkenalkan, 51 00:48:05,170 --> 00:48:08,086 tapi itu akrab mungkin dari algebra-- hanya semacam placeholder 52 00:48:08,086 --> 00:48:10,840 untuk menyimpan beberapa nilai Anda mungkin perlu ekspresi Boolean later--, 53 00:48:10,840 --> 00:48:13,720 di mana orang-orang ya tidak atau benar pertanyaan palsu dari sebelumnya. 54 00:48:13,720 --> 00:48:17,117 Kondisi adalah mereka garpu di road-- cabang-cabang sehingga untuk berbicara. 55 00:48:17,117 --> 00:48:19,700 Dan kemudian ada beberapa pengujian Fitur kita akan melihat bahkan hari ini, 56 00:48:19,700 --> 00:48:22,850 disebut array dan benang dan peristiwa, bahwa kita akan kemudian kembali lebih 57 00:48:22,850 --> 00:48:24,460 waktu dalam bahasa yang berbeda. 58 00:48:24,460 --> 00:48:26,790 Tapi Scratch memungkinkan kita untuk mengeksplorasi semua ini. 59 00:48:26,790 --> 00:48:30,779 Jadi di sini di Scratch, ini ungu blok apa fungsi biasanya 60 00:48:30,779 --> 00:48:31,570 akan terlihat seperti. 61 00:48:31,570 --> 00:48:35,620 teka-teki ini sepotong ungu yang memiliki beberapa kata seperti misalnya, yang merupakan tindakan, 62 00:48:35,620 --> 00:48:38,490 dan kemudian mungkin memiliki argumen atau parameter-- suatu cara 63 00:48:38,490 --> 00:48:41,140 dari jenis menyesuaikan apa yang blok tidak 64 00:48:41,140 --> 00:48:45,182 sehingga tidak pra-ditentukan oleh MIT apa yang dikatakan blok ungu ini. 65 00:48:45,182 --> 00:48:47,390 Bahkan, Anda akan melihat dalam saat itu aku bisa mengetik 66 00:48:47,390 --> 00:48:49,931 kata-kata seperti dunia halo, atau Halo David, atau Halo Zamayla, 67 00:48:49,931 --> 00:48:53,750 atau apa pun yang saya inginkan, dalam argumen teka-teki yang piece-- kotak putih 68 00:48:53,750 --> 00:48:54,251 sana. 69 00:48:54,251 --> 00:48:57,166 Sementara itu, jika saya ingin satu lingkaran, kita akan melihat bahwa ada potongan puzzle yang yang 70 00:48:57,166 --> 00:48:58,640 terlihat orange kecil seperti ini. 71 00:48:58,640 --> 00:49:01,690 Dan bentuknya semacam menunjukkan bahwa sesuatu terjadi lagi dan lagi 72 00:49:01,690 --> 00:49:02,680 dalam satu siklus. 73 00:49:02,680 --> 00:49:06,800 >> Jadi jika saya membungkus menyapa blok dunia dengan selamanya memblokir di Scratch, 74 00:49:06,800 --> 00:49:10,307 itu hanya akan terus menyapa dunia selamanya, secara harfiah. 75 00:49:10,307 --> 00:49:12,390 Sementara itu, ada lagi jenis loop dalam Scratch 76 00:49:12,390 --> 00:49:14,348 bahwa kita akan see-- mengulang block-- mana, jika Anda 77 00:49:14,348 --> 00:49:17,940 tahu sebelumnya berapa kali Anda ingin loop untuk mengeksekusi 78 00:49:17,940 --> 00:49:21,850 jumlah terbatas kali di fact-- Anda dapat menentukan bahwa dengan mengetikkan nomor 79 00:49:21,850 --> 00:49:25,380 atau bahkan memasukkan dalam variabel, seperti x atau y seperti yang akan kita lihat. 80 00:49:25,380 --> 00:49:27,690 >> Bahkan, variabel seperti i dalam kasus ini, yang 81 00:49:27,690 --> 00:49:30,109 adalah nama umum untuk variabel integer yang 82 00:49:30,109 --> 00:49:31,900 hanya menyimpan number-- sebuah integer mungkin, 83 00:49:31,900 --> 00:49:35,470 menggunakan blok oranye ini untuk menetapkan variabel seperti saya ke nol. 84 00:49:35,470 --> 00:49:38,900 Berikut ini adalah contoh hijau dari ekspresi Boolean dalam Scratch. 85 00:49:38,900 --> 00:49:43,700 Meskipun ini terlihat seperti matematika a rumus, ketidaksetaraan matematika seperti ini 86 00:49:43,700 --> 00:49:45,320 benar-benar adalah ekspresi Boolean. 87 00:49:45,320 --> 00:49:46,570 Hal ini bisa benar atau salah. 88 00:49:46,570 --> 00:49:48,300 Saya kurang dari 50. 89 00:49:48,300 --> 00:49:51,815 Ini baik jawaban ya atau tidak atau jawaban benar atau salah. 90 00:49:51,815 --> 00:49:53,940 Dan kita umumnya akan menelepon mereka ekspresi Boolean. 91 00:49:53,940 --> 00:49:55,148 Dan itu tidak harus 50. 92 00:49:55,148 --> 00:49:57,970 Hal ini dapat x kurang dari y, lebih besar dari y, sama dengan y-- 93 00:49:57,970 --> 00:50:00,020 sejumlah lainnya pertanyaan mungkin akan diminta. 94 00:50:00,020 --> 00:50:03,250 >> Sekarang, pada pandangan pertama, ini mungkin terlihat tiba-tiba cukup berani di sini, dan itu. 95 00:50:03,250 --> 00:50:06,540 Tapi konsep bijaksana, itu cukup akrab dari sebelumnya. 96 00:50:06,540 --> 00:50:09,370 Jika x kurang dari y, daripada mengatakan sebanyak. 97 00:50:09,370 --> 00:50:12,230 Lain jika x lebih besar dari y, maka katakan sebanyak. 98 00:50:12,230 --> 00:50:14,260 Lain mengatakan x sama dengan y. 99 00:50:14,260 --> 00:50:17,220 Jadi kita memiliki contoh ada dari scenario-- ketiga 100 00:50:17,220 --> 00:50:20,600 satu-satunya possibility-- ketiga x adalah baik lebih besar dari, kurang dari, atau sama dengan. 101 00:50:20,600 --> 00:50:22,420 Jadi kita memiliki garpu tiga cara di jalan. 102 00:50:22,420 --> 00:50:26,290 >> Dan perhatikan apa yang keren di sini-Scratch, tampaknya, hanya memiliki satu teka-teki 103 00:50:26,290 --> 00:50:28,840 sepotong, dalam hal ini, kalau blok lain. 104 00:50:28,840 --> 00:50:32,090 Namun yang tampaknya menyiratkan Anda dapat hanya memiliki garpu dua arah di jalan. 105 00:50:32,090 --> 00:50:34,631 Anda dapat pergi kiri atau kanan, tapi apa tentang itu skenario ketiga? 106 00:50:34,631 --> 00:50:35,760 Bagaimana jika x sama dengan y? 107 00:50:35,760 --> 00:50:36,500 Bukan masalah besar. 108 00:50:36,500 --> 00:50:39,640 Ambil satu potongan puzzle, menempatkan satu lagi di dalamnya 109 00:50:39,640 --> 00:50:45,759 untuk menciptakan semantik setara jika, lain jika, else-- dan sekarang Anda 110 00:50:45,759 --> 00:50:47,300 memiliki garpu tiga jalan di jalan. 111 00:50:47,300 --> 00:50:49,091 Dan seperti yang akan kita lihat, potongan Scratch puzzle 112 00:50:49,091 --> 00:50:51,820 dapat ditarik dan tumbuh, sehingga untuk menjejalkan lebih banyak barang di dalamnya. 113 00:50:51,820 --> 00:50:54,420 Anda tidak harus sesuai segala sesuatu dalam ukuran default. 114 00:50:54,420 --> 00:50:56,690 >> Ini adalah sesuatu yang kita akan segera lihat disebut array. 115 00:50:56,690 --> 00:51:00,880 Ini seperti list-- beberapa cara menyimpan beberapa potongan informasi 116 00:51:00,880 --> 00:51:02,886 dalam variabel, bukan hanya nomor. 117 00:51:02,886 --> 00:51:05,760 Ini kita akan melihat perwakilan dari sesuatu yang disebut multi-threading. 118 00:51:05,760 --> 00:51:08,280 Bahkan, semua Anda Mac dan PC hari ini 119 00:51:08,280 --> 00:51:10,810 mendukung multi-threading, yang berarti Anda dapat benar-benar 120 00:51:10,810 --> 00:51:12,390 melakukan beberapa hal pada suatu waktu. 121 00:51:12,390 --> 00:51:15,390 Anda dapat memiliki Microsoft Word up di foreground, bekerja pada beberapa esai. 122 00:51:15,390 --> 00:51:17,160 Anda mungkin memiliki browser dalam pembukaan latar belakang 123 00:51:17,160 --> 00:51:18,720 G-mail atau Facebook atau sejenisnya. 124 00:51:18,720 --> 00:51:22,730 Komputer Anda dapat melakukan beberapa hal hari ini karena itu adalah multi-threaded, 125 00:51:22,730 --> 00:51:26,390 dan program mereka di dalam tertentu juga multi-ulir. 126 00:51:26,390 --> 00:51:28,970 >> Ada hal-hal yang disebut sebagai peristiwa baik di dunia Scratch, 127 00:51:28,970 --> 00:51:32,640 dan kemudian ada jalan juga, untuk membuat sendiri potongan puzzle kebiasaan kami jika hal-hal 128 00:51:32,640 --> 00:51:34,810 tidak benar-benar ada di muka. 129 00:51:34,810 --> 00:51:38,260 Jadi mari kita memotivasi ini sebagai berikut. 130 00:51:38,260 --> 00:51:40,580 Beberapa tahun yang lalu, ketika saya pertama kali ditemukan Scratch, 131 00:51:40,580 --> 00:51:43,530 ketika saya benar-benar mahasiswa pascasarjana di MIT, kami 132 00:51:43,530 --> 00:51:45,640 diri kita sendiri ditugaskan untuk membuat pekerjaan rumah. 133 00:51:45,640 --> 00:51:47,614 Dan saya implemented-- yang, dalam retrospeksi, 134 00:51:47,614 --> 00:51:50,780 adalah keputusan yang sangat buruk karena itu lagu yang paling menyebalkan di dunia 135 00:51:50,780 --> 00:51:53,321 untuk mendengarkan selama delapan jam sementara bekerja pada homework-- Anda 136 00:51:53,321 --> 00:51:57,180 tapi sesuatu yang saya telah disebut Oscar Time, yang mungkin lagu akrab. 137 00:51:57,180 --> 00:51:59,820 >> CS50s memiliki Jordan Hayashi, salah satu kita lebih anggota staf senior, 138 00:51:59,820 --> 00:52:03,920 telah ditingkatkan untuk tahun 2015 dan sekarang tahun 2016, sejak kembali pada hari, 139 00:52:03,920 --> 00:52:06,610 Aku punya semua yang hanya akan ke Oscar sampah. 140 00:52:06,610 --> 00:52:09,320 Sekarang kita mendukung daur ulang dan kompos. 141 00:52:09,320 --> 00:52:12,050 >> Tapi untuk melukis gambar dari apa yang bisa kita lakukan di sini 142 00:52:12,050 --> 00:52:14,130 dan untuk memotivasi beberapa contoh tingkat yang lebih rendah, 143 00:52:14,130 --> 00:52:16,400 bisa kita mendapatkan satu lainnya relawan hanya datang ke atas 144 00:52:16,400 --> 00:52:18,331 dan bermain pertama saya tugas pekerjaan rumah yang pernah? 145 00:52:18,331 --> 00:52:18,830 Ayo up. 146 00:52:18,830 --> 00:52:19,250 Siapa namamu? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Malan: Henry, datang ke atas. 149 00:52:22,660 --> 00:52:24,190 Ayo up. 150 00:52:24,190 --> 00:52:27,070 Kepala cara baik, dan Anda akan melihat dalam beberapa saat, 151 00:52:27,070 --> 00:52:29,870 Aku akan pergi ke depan dan memukul bendera hijau di kanan atas 152 00:52:29,870 --> 00:52:31,100 sudut, yang berarti pergi. 153 00:52:31,100 --> 00:52:33,320 Kecil berhenti ikon tanda akan mengatakan berhenti, 154 00:52:33,320 --> 00:52:35,490 dan saat itulah Anda mulai dan menghentikan program. 155 00:52:35,490 --> 00:52:36,450 Senang bertemu denganmu. 156 00:52:36,450 --> 00:52:36,950 Baiklah. 157 00:52:36,950 --> 00:52:39,100 Jadi kita akan melihat petunjuk pada layar hanya dalam beberapa saat. 158 00:52:39,100 --> 00:52:41,450 Dan hanya dengan memainkan game ini selama beberapa seconds-- percayalah, 159 00:52:41,450 --> 00:52:43,670 kita tidak akan ingin bermain semua cara untuk end-- Anda akan 160 00:52:43,670 --> 00:52:45,470 mendapatkan rasa apa program ini tidak. 161 00:52:45,470 --> 00:52:49,170 Dan lebih dari hanya fokus pada Henry menjadi baik atau buruk di game ini, fokus 162 00:52:49,170 --> 00:52:52,600 dan bagaimana itu dilaksanakan oleh saya awalnya dan kemudian dengan Jordan. 163 00:52:52,600 --> 00:52:54,640 Dengan kata lain, di mana variabel? 164 00:52:54,640 --> 00:52:55,520 Dimana loop? 165 00:52:55,520 --> 00:52:56,520 Dimana fungsi? 166 00:52:56,520 --> 00:53:00,700 Dan kita akan melihat apakah kita tidak melihat mereka di bawah tenda. 167 00:53:00,700 --> 00:53:03,660 >> Cukup klik dan tarik sampah ke bin sesuai. 168 00:53:03,660 --> 00:54:02,100 >> [MUSIC PLAYING] 169 00:54:02,100 --> 00:54:02,600 Baiklah. 170 00:54:02,600 --> 00:54:03,160 Itu sangat baik. 171 00:54:03,160 --> 00:54:04,286 Mengapa kita tidak berhenti di sana. 172 00:54:04,286 --> 00:54:04,786 Terima kasih. 173 00:54:04,786 --> 00:54:05,830 Selamat kepada Henry. 174 00:54:05,830 --> 00:54:07,002 Terima kasih. 175 00:54:07,002 --> 00:54:10,690 >> [TEPUK TANGAN] 176 00:54:10,690 --> 00:54:12,450 >> Bayangkan saja debugging program itu. 177 00:54:12,450 --> 00:54:15,880 Jika ada masalah dua menit ke song-- tapi begitu 178 00:54:15,880 --> 00:54:17,430 apa yang terjadi di sini benar-benar? 179 00:54:17,430 --> 00:54:20,900 Serumit itu mungkin mulai tampaknya mendapatkan dari waktu ke waktu, 180 00:54:20,900 --> 00:54:22,910 memang lebih banyak hal mulai jatuh, 181 00:54:22,910 --> 00:54:25,370 apa yang menarik tentang semacam ini misalnya-- 182 00:54:25,370 --> 00:54:27,270 dan kita akan melihat beberapa others-- adalah bahwa jika Anda 183 00:54:27,270 --> 00:54:30,416 melihat masa lalu kompleksitas atau kecanggihan permainan, 184 00:54:30,416 --> 00:54:33,040 ada sebuah bangunan yang sangat sederhana blok yang play-- yang semuanya, 185 00:54:33,040 --> 00:54:35,840 jika Anda menyaring mereka untuk mereka blok bangunan, yang sangat mudah 186 00:54:35,840 --> 00:54:37,401 dan diimplementasikan kepada diri mereka sendiri. 187 00:54:37,401 --> 00:54:39,150 Misalnya, itu Sudah beberapa waktu, tapi aku 188 00:54:39,150 --> 00:54:42,900 cukup yakin apa yang awalnya saya lakukan ketika membuat game ini untuk pertama kalinya 189 00:54:42,900 --> 00:54:44,787 adalah aku benar-benar seperti menunda-nunda. 190 00:54:44,787 --> 00:54:47,120 Saya tidak fokus sama sekali pada logika atau potongan puzzle, 191 00:54:47,120 --> 00:54:50,810 Saya berfokus pada grafis dan temuan jalan pos dan tempat sampah 192 00:54:50,810 --> 00:54:51,540 dan semua itu. 193 00:54:51,540 --> 00:54:53,456 Tetapi orang-orang yang diperlukan bahan pada awalnya. 194 00:54:53,456 --> 00:54:57,220 Dan setelah saya selesai menunda-nunda dan meletakkan kerangka menyeluruh, 195 00:54:57,220 --> 00:55:00,337 Aku memutuskan, saya hanya membuat satu sepotong sampah jatuh dari langit. 196 00:55:00,337 --> 00:55:02,170 Dan kita akan melihat Scratch mendukung hal disebut 197 00:55:02,170 --> 00:55:06,386 karakter sprites-- yang dapat memiliki kostum yang berbeda pada sehingga mereka 198 00:55:06,386 --> 00:55:07,010 terlihat berbeda. 199 00:55:07,010 --> 00:55:09,660 >> Dan jadi aku meletakkan sampah kostum pada satu sprite tersebut. 200 00:55:09,660 --> 00:55:12,007 Dan aku hanya membutuhkannya jatuh dari langit. 201 00:55:12,007 --> 00:55:14,590 Dan ternyata, Scratch, seperti bahasa pemrograman yang paling, 202 00:55:14,590 --> 00:55:18,099 mendukung nomor acak atau angka acak teknis pseudocode, 203 00:55:18,099 --> 00:55:20,390 sehingga dengan menyeret dan menjatuhkan potongan puzzle tertentu, 204 00:55:20,390 --> 00:55:22,890 Saya mampu untuk memiliki tempat sampah datang dari sebelah kiri pada awalnya. 205 00:55:22,890 --> 00:55:25,580 Dan kemudian pada saat jatuh, dari hak dan kemudian dari tengah. 206 00:55:25,580 --> 00:55:28,060 Dan semua permainan tidak hanya memiliki sampah jatuh dari langit. 207 00:55:28,060 --> 00:55:29,770 Anda tidak bisa menunjukkan hal itu atau klik di atasnya. 208 00:55:29,770 --> 00:55:31,103 Anda tidak bisa membuka tempat sampah. 209 00:55:31,103 --> 00:55:32,160 Anda tidak bisa melakukan apa-apa. 210 00:55:32,160 --> 00:55:34,450 Tapi itu langkah bayi menuju visi utama saya. 211 00:55:34,450 --> 00:55:36,720 >> Dan setelah itu, aku benar-benar dilaksanakan beberapa jenis 212 00:55:36,720 --> 00:55:41,230 penginderaan sehingga jika Anda tidak mengklik dan tarik pada sepotong sampah 213 00:55:41,230 --> 00:55:44,350 atas sampah, Oscar tutup akan membuka dan menutup. 214 00:55:44,350 --> 00:55:47,650 Tidak ada yang akan terjadi ke tempat sampah, tapi setidaknya tutupnya akan membuka dan menutup. 215 00:55:47,650 --> 00:55:49,642 Jadi kemudian memeriksa, langkah dua dua. 216 00:55:49,642 --> 00:55:52,100 Dan ini adalah apa yang akan menjadi kunci dalam kedua masalah set nol 217 00:55:52,100 --> 00:55:55,970 dan dalam pemrograman lebih umum, adalah untuk mengambil langkah-langkah bayi sangat disengaja. 218 00:55:55,970 --> 00:55:59,390 Karena bukan hanya tidak memungkinkan Anda untuk merasa jujur ​​dicapai jauh lebih 219 00:55:59,390 --> 00:56:01,250 quickly-- itu adalah Hal terburuk di dunia 220 00:56:01,250 --> 00:56:06,149 mencoba untuk menerapkan semua Oscar Time, kemudian jam kemudian memukul bendera hijau, 221 00:56:06,149 --> 00:56:08,440 dan tidak ada yang berhasil seperti yang diharapkan karena di mana Anda bahkan 222 00:56:08,440 --> 00:56:11,150 mulai debug atau untuk memecahkan program yang? 223 00:56:11,150 --> 00:56:12,470 Ini hanya luar biasa. 224 00:56:12,470 --> 00:56:16,792 >> Dan benar-benar merangkul ide ini mengambil langkah-langkah bayi steps-- lagi 225 00:56:16,792 --> 00:56:19,000 dan again-- membangun sesuatu yang, pada akhirnya, 226 00:56:19,000 --> 00:56:23,672 benar-benar mengesankan dan kompleks, tapi pada awalnya, hampir tidak banyak sehingga. 227 00:56:23,672 --> 00:56:24,630 Bahkan, mari kita lakukan ini. 228 00:56:24,630 --> 00:56:28,989 Biarkan aku pergi ke depan dan-- Scratch itu sendiri ada di web pada Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 dan Anda akan diberitahu sebagai banyak lagi di masalah 230 00:56:30,780 --> 00:56:34,200 set nol, spesifikasi untuk yang sudah di website CS50 ini. 231 00:56:34,200 --> 00:56:35,725 >> Tapi ini adalah apa Gores itu sendiri. 232 00:56:35,725 --> 00:56:38,210 Dan ada benar-benar hanya tiga bidang utama. 233 00:56:38,210 --> 00:56:40,980 Di kiri atas ada adalah tahap yang disebut. 234 00:56:40,980 --> 00:56:41,810 Ini adalah Scratch. 235 00:56:41,810 --> 00:56:43,710 Kostum default adalah kucing. 236 00:56:43,710 --> 00:56:46,950 Dan ini adalah dunia persegi panjang di yang dapat Anda move-- atas, bawah, kiri, 237 00:56:46,950 --> 00:56:48,130 benar dan beberapa hal lain. 238 00:56:48,130 --> 00:56:51,839 Di tengah di sini adalah kategori kami atau palet kami potongan puzzle, 239 00:56:51,839 --> 00:56:53,630 dan warna yang berbeda berarti hal yang berbeda. 240 00:56:53,630 --> 00:56:56,520 Dan jika Anda aduk sekitar, Anda akan melihat hal-hal seperti loop dan kondisi 241 00:56:56,520 --> 00:56:58,160 dan variabel dan bahan-bahan lainnya. 242 00:56:58,160 --> 00:57:00,060 >> Dan kemudian di sini adalah daerah skrip. 243 00:57:00,060 --> 00:57:03,020 Ini adalah di mana saya dapat drag dan drop potongan-potongan puzzle untuk melakukan sesuatu. 244 00:57:03,020 --> 00:57:04,690 Jadi mari kita melakukan satu hal seperti itu. 245 00:57:04,690 --> 00:57:06,630 Biarkan aku pergi ke depan dan-- dan aku tahu di mana itu. 246 00:57:06,630 --> 00:57:10,110 Jadi aku akan segera klik mana aku tahu hal-hal yang siap menjadi, 247 00:57:10,110 --> 00:57:13,140 tapi menunjuk dan mengklik dan mengaduk-aduk yang tak terelakkan. 248 00:57:13,140 --> 00:57:15,320 Jadi ketika bendera hijau diklik, apa yang ingin saya lakukan? 249 00:57:15,320 --> 00:57:17,100 Aku akan melakukan hal ini. 250 00:57:17,100 --> 00:57:20,699 Aku akan menyeret puzzle ungu ini sepotong, menyapa selama dua detik, 251 00:57:20,699 --> 00:57:21,490 dan biarkan aku memperbesar. 252 00:57:21,490 --> 00:57:23,865 >> Dan aku akan mengubah ini untuk menjadi apa yang saya inginkan be-- 253 00:57:23,865 --> 00:57:26,471 halo dunia selama dua detik baik-baik saja. 254 00:57:26,471 --> 00:57:28,970 Sekarang, aku akan klik bendera hijau, atau jika saya benar-benar ingin, 255 00:57:28,970 --> 00:57:31,820 Saya penuh dapat menyaring dan kemudian kembali. 256 00:57:31,820 --> 00:57:34,060 Ini hanya akan terus semuanya dalam satu jendela. 257 00:57:34,060 --> 00:57:36,141 Hijau flag-- halo dunia. 258 00:57:36,141 --> 00:57:36,640 Baiklah. 259 00:57:36,640 --> 00:57:38,789 Tidak semua yang menarik. 260 00:57:38,789 --> 00:57:40,080 Jadi biarkan aku pergi ke depan dan melakukan hal ini. 261 00:57:40,080 --> 00:57:41,038 Biarkan aku mencoba satu sama lain. 262 00:57:41,038 --> 00:57:44,740 Ketika bendera hijau clicked-- mari melakukan sesuatu seperti suara. 263 00:57:44,740 --> 00:57:46,880 Dan perhatikan bahwa dari kotak gratis yang Anda dapatkan 264 00:57:46,880 --> 00:57:49,910 suara kucing, seperti sprite default. 265 00:57:49,910 --> 00:57:52,380 Jadi sekarang biarkan aku pergi ke depan dan memukul bendera hijau sekarang. 266 00:57:52,380 --> 00:57:53,224 >> [MENGEONG] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Itu menggemaskan. 269 00:57:55,370 --> 00:57:57,040 Aku pemrograman. 270 00:57:57,040 --> 00:57:58,550 Jadi apa yang saya lakukan? 271 00:57:58,550 --> 00:58:00,430 Ini adalah setara dengan sebuah program. 272 00:58:00,430 --> 00:58:01,600 Ini jelas super sederhana. 273 00:58:01,600 --> 00:58:05,300 Itu tidak benar-benar mengambil semua yang banyak usaha dan MIT melakukan sebagian besar pekerjaan, 274 00:58:05,300 --> 00:58:07,890 tetapi Aku menyebut fungsi. 275 00:58:07,890 --> 00:58:08,940 Saya telah menggunakan fungsi. 276 00:58:08,940 --> 00:58:12,480 Saya telah membuat beberapa tindakan, dengan hanya menggunakan yang satu ungu potongan puzzle. 277 00:58:12,480 --> 00:58:15,960 >> Nah, jika saya ingin melakukan tiga meows berturut-turut? 278 00:58:15,960 --> 00:58:18,570 Biarkan aku pergi ke depan dan melakukan dua dan tiga. 279 00:58:18,570 --> 00:58:20,910 Dan melihat bahwa ketika Anda arahkan terdekat sepotong puzzle, 280 00:58:20,910 --> 00:58:22,970 garis putih kecil muncul semacam magnetis, 281 00:58:22,970 --> 00:58:25,190 dan itu akan snap bersama-sama ketika Anda membiarkan pergi. 282 00:58:25,190 --> 00:58:26,600 Mari kita lihat apa yang terjadi di sini. 283 00:58:26,600 --> 00:58:27,920 >> [MENGEONG] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Ada bug. 286 00:58:34,510 --> 00:58:35,650 Saya hanya mendengar satu meong. 287 00:58:35,650 --> 00:58:37,440 Mengapa itu terjadi? 288 00:58:37,440 --> 00:58:39,001 Ya? 289 00:58:39,001 --> 00:58:39,500 Ya. 290 00:58:39,500 --> 00:58:41,650 Kami tidak benar-benar mendengar itu, tapi itu intuisi yang baik. 291 00:58:41,650 --> 00:58:43,400 Mereka semua bermain pada waktu yang sama. 292 00:58:43,400 --> 00:58:44,000 Mengapa? 293 00:58:44,000 --> 00:58:46,587 Nah, komputer hanya akan melakukan apa yang Anda katakan untuk dilakukan. 294 00:58:46,587 --> 00:58:48,670 Jadi jika Anda mengatakan, bermain suara, memainkan suara, memutar suara, 295 00:58:48,670 --> 00:58:52,887 tetapi Anda tidak mengatakan itu untuk bermain sampai Anda sudah selesai, bermain sampai selesai, 296 00:58:52,887 --> 00:58:54,970 itu akan meniup melalui program benar-benar cepat 297 00:58:54,970 --> 00:58:56,830 dan jangan hanya apa yang Anda katakan untuk dilakukan. 298 00:58:56,830 --> 00:58:59,040 >> Jadi saya benar-benar harus memperbaiki ini dalam beberapa cara. 299 00:58:59,040 --> 00:59:00,623 Aku hanya bisa melakukan ini, menyingkirkan ini. 300 00:59:00,623 --> 00:59:04,180 Biarkan aku mencoba puzzle lainnya ini piece-- bermain meow suara sampai selesai, 301 00:59:04,180 --> 00:59:07,072 dan kemudian tarik tiga ini dan klik Play. 302 00:59:07,072 --> 00:59:09,430 >> [MENGEONG] 303 00:59:09,430 --> 00:59:13,350 >> Ini tidak benar-benar very-- terima you-- sangat alami. 304 00:59:13,350 --> 00:59:16,590 Jadi kenapa tidak Aku-- biarkan aku pergi untuk mengontrol sini. 305 00:59:16,590 --> 00:59:17,090 Bagus. 306 00:59:17,090 --> 00:59:22,230 Tunggu satu detik, dan sekarang biarkan aku kembali untuk suara, dan suara bermain sampai selesai, 307 00:59:22,230 --> 00:59:24,620 dan kemudian biarkan aku menunggu satu detik. 308 00:59:24,620 --> 00:59:28,692 Dan kemudian biarkan aku pergi dan mendapatkan satu lebih suara, dan di sini kita pergi. 309 00:59:28,692 --> 00:59:31,350 >> [MENGEONG] 310 00:59:31,350 --> 00:59:35,930 >> Sedikit lebih alami, tapi ini sangat tidak efisien. 311 00:59:35,930 --> 00:59:39,830 Seperti aku mulai bosan, semua akan sebentar, mengklik bolak-balik 312 00:59:39,830 --> 00:59:42,724 dan benar-benar duplikasi work-- saya cukup banyak copy dan paste. 313 00:59:42,724 --> 00:59:44,640 Memang, jika saya Kontrol diklik atau kanan diklik, 314 00:59:44,640 --> 00:59:46,500 Saya bisa saja disalin dan disisipkan. 315 00:59:46,500 --> 00:59:49,870 Apa yang akan menjadi lebih baik membangun untuk digunakan? 316 00:59:49,870 --> 00:59:51,090 Apa ide dari sebelumnya? 317 00:59:51,090 --> 00:59:51,990 >> Ya, jadi loop. 318 00:59:51,990 --> 00:59:54,580 Dan pada kenyataannya, jika kita menjulurkan sekitar, kita mungkin menemukan yang tepat. 319 00:59:54,580 --> 00:59:57,730 Biarkan aku pergi dengan Acara atau lebih tepatnya Control. 320 00:59:57,730 --> 00:59:59,650 Jadi repeat-- saya tidak ingin menjadi 10 kali. 321 00:59:59,650 --> 01:00:01,370 Itu akan mendapatkan menjengkelkan cepat. 322 01:00:01,370 --> 01:00:03,380 Tapi saya akan mengulangi tiga kali. 323 01:00:03,380 --> 01:00:06,355 Biarkan aku kembali terdengar dan memutar suara sampai selesai. 324 01:00:06,355 --> 01:00:08,480 Biarkan aku kembali ke Kontrol dan hanya menunggu satu detik. 325 01:00:08,480 --> 01:00:10,271 Dan pemberitahuan, Anda mungkin pikir itu tidak cocok, 326 01:00:10,271 --> 01:00:13,520 tapi sekali lagi jika magnetis Anda membiarkannya jepret di tempat, ia akan tumbuh untuk mengisi. 327 01:00:13,520 --> 01:00:14,971 Apa itu bermain sekarang? 328 01:00:14,971 --> 01:00:18,500 >> [MENGEONG] 329 01:00:18,500 --> 01:00:19,000 BAIK. 330 01:00:19,000 --> 01:00:19,660 Bagus. 331 01:00:19,660 --> 01:00:22,540 Dan ini adalah apa yang disebut sebuah program yang juga benar. 332 01:00:22,540 --> 01:00:27,590 Ini mengeong tiga kali cukup secara alami, tapi itu lebih baik dirancang. 333 01:00:27,590 --> 01:00:29,580 Saya menggunakan kurang redundansi. 334 01:00:29,580 --> 01:00:30,970 Saya tidak copy paste apa-apa. 335 01:00:30,970 --> 01:00:32,470 Aku hanya menggunakan ide yang lebih baik. 336 01:00:32,470 --> 01:00:35,340 >> Sekarang, ini masih tidak semua yang menarik dengan Scratch tidak melakukan 337 01:00:35,340 --> 01:00:35,930 apa pun. 338 01:00:35,930 --> 01:00:37,388 Jadi mari kita lakukan sesuatu yang lain sebagai gantinya. 339 01:00:37,388 --> 01:00:38,670 Mari kita lakukan sesuatu selamanya. 340 01:00:38,670 --> 01:00:39,420 Dan kau tahu apa? 341 01:00:39,420 --> 01:00:40,470 Gerak tampaknya menarik. 342 01:00:40,470 --> 01:00:45,760 Mari kita memiliki dia pindah 10 langkah dan tekan tombol play sekarang. 343 01:00:45,760 --> 01:00:46,570 >> BAIK. 344 01:00:46,570 --> 01:00:49,300 Nah kita bisa semacam hambatan dia kembali, dan dia masih 345 01:00:49,300 --> 01:00:51,250 berjalan karena dia melakukan ini selamanya. 346 01:00:51,250 --> 01:00:53,150 Jadi loop adalah melakukan apa itu mengatakan untuk melakukan, 347 01:00:53,150 --> 01:00:54,650 tapi ini tidak semua yang menarik. 348 01:00:54,650 --> 01:00:55,310 Ayo lakukan ini. 349 01:00:55,310 --> 01:00:59,870 Izinkan saya menambahkan blok kontrol, dan menggunakan satu kondisi-kondisi untuk pertama kalinya. 350 01:00:59,870 --> 01:01:03,119 >> Jadi itu akan bergerak 10 steps-- 10 titik, 10 piksel pada screen-- yang 351 01:01:03,119 --> 01:01:04,660 maka itu akan mengajukan pertanyaan ini. 352 01:01:04,660 --> 01:01:09,340 Jika sesuatu itu benar, maka lakukan sesuatu di dalam blok ini. 353 01:01:09,340 --> 01:01:13,060 Jadi ternyata penginderaan memiliki keseluruhan sekelompok expressions-- Boolean 354 01:01:13,060 --> 01:01:16,580 pertanyaan dari ya tidak ada atau benar palsu form-- biarkan aku melakukan hal ini. 355 01:01:16,580 --> 01:01:19,260 >> Jika touching-- dan kemudian ada Penurunan ini sedikit down. 356 01:01:19,260 --> 01:01:20,410 Saya dapat parameterize itu. 357 01:01:20,410 --> 01:01:23,010 Jika menyentuh edge-- mari melakukan sesuatu seperti itu. 358 01:01:23,010 --> 01:01:27,310 Jadi jika menyentuh edge-- biarkan aku kembali ke gerak. 359 01:01:27,310 --> 01:01:32,281 Dan kenapa tidak kita hanya berbalik 180 derajat? 360 01:01:32,281 --> 01:01:32,780 Baiklah. 361 01:01:32,780 --> 01:01:35,070 Jadi selamanya, bergerak 10 langkah. 362 01:01:35,070 --> 01:01:37,670 Jika Anda menyentuh tepi, berubah 180 derajat. 363 01:01:37,670 --> 01:01:39,720 Dan itu bukan akhir dari program karena Anda berada dalam selamanya memblokir, 364 01:01:39,720 --> 01:01:42,053 sehingga akan pergi lagi dan lagi dan lagi dan lagi. 365 01:01:42,053 --> 01:01:43,980 Jadi mari kita lihat apa yang terjadi. 366 01:01:43,980 --> 01:01:44,785 BAIK. 367 01:01:44,785 --> 01:01:48,270 Sebuah kereta kecil, tapi agak dingin. 368 01:01:48,270 --> 01:01:51,710 >> Dan kita bisa menambahkan ini beberapa hal konyol bahwa tidak semua yang intelektual 369 01:01:51,710 --> 01:01:52,270 menarik. 370 01:01:52,270 --> 01:01:57,210 Tetapi jika kita memukul ini sedikit mikrofon button-- aduh. 371 01:01:57,210 --> 01:01:58,480 Biarkan aku membersihkan ini. 372 01:01:58,480 --> 01:02:01,540 Mari saya meningkatkan ini sebagai mereka akan mengatakan di TV. 373 01:02:01,540 --> 01:02:05,400 Membersihkan itu, Save, dan sekarang pergi ke script. 374 01:02:05,400 --> 01:02:07,500 >> Dan sekarang, biarkan aku pergi terdengar. 375 01:02:07,500 --> 01:02:09,002 Biarkan saya memberikan nama. 376 01:02:09,002 --> 01:02:12,440 Saya akan menelepon ouch ini. 377 01:02:12,440 --> 01:02:13,840 Dan sekarang bermain Aduh suara. 378 01:02:13,840 --> 01:02:16,520 Perhatikan muncul di sedikit drop down menu. 379 01:02:16,520 --> 01:02:17,612 Ayo lihat. 380 01:02:17,612 --> 01:02:20,444 >> [ADUH] 381 01:02:20,444 --> 01:02:24,377 >> [TERTAWA] 382 01:02:24,377 --> 01:02:25,835 Tapi kita bisa mengubah t-nya dengan cepat. 383 01:02:25,835 --> 01:02:28,106 Kita bisa menjadi dua kali lebih menjengkelkan. 384 01:02:28,106 --> 01:02:31,760 >> [ADUH] 385 01:02:31,760 --> 01:02:35,332 >> Atau jika kita membuatnya seperti 1.000 langkah di time-- sebuah 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> BAIK. 388 01:02:40,670 --> 01:02:42,295 Jadi kita akan meninggalkan satu itu saja. 389 01:02:42,295 --> 01:02:45,290 Jadi sekali lagi, membangun blocks-- saya dimulai dengan sesuatu yang super sederhana, 390 01:02:45,290 --> 01:02:47,930 dan kemudian saya menambahkan fitur, menambahkan fitur, menambahkan fitur. 391 01:02:47,930 --> 01:02:50,721 Dan saya tidak lagi perlu khawatir tentang bagaimana pertama fitur tersebut 392 01:02:50,721 --> 01:02:53,690 dilaksanakan seperti yang saya terus ke lapisan hal-hal di atas. 393 01:02:53,690 --> 01:02:55,430 Jadi sebenarnya, biarkan aku melakukan satu lainnya di sini. 394 01:02:55,430 --> 01:03:00,580 Biarkan aku pergi ke depan dan membuka file yang Aku membawa di muka, disebut Domba. 395 01:03:00,580 --> 01:03:03,970 >> Sehingga memiliki sedikit berbeda Karakter yang terlihat seperti ini. 396 01:03:03,970 --> 01:03:07,370 Dan biarkan aku melihat apakah saya tidak bisa melakukan sesuatu menggunakan counter 397 01:03:07,370 --> 01:03:09,310 dalam hal ini case-- variabel disebut. 398 01:03:09,310 --> 01:03:15,540 Aku akan pergi ke depan dan di bawah Events-- biarkan aku mendapatkan bendera hijau diklik. 399 01:03:15,540 --> 01:03:19,030 Lalu biarkan aku pergi ke Data, yang saya tahu dari hanya bermain-main sebelumnya, 400 01:03:19,030 --> 01:03:20,214 adalah di mana variabel. 401 01:03:20,214 --> 01:03:21,880 Dan aku akan pergi ke depan dan tarik ini. 402 01:03:21,880 --> 01:03:25,144 >> Jadi variabel yang disebut counter, dan Aku akan menginisialisasi ke nol. 403 01:03:25,144 --> 01:03:27,560 Saya bisa menyebutnya anything-- x atau y atau z-- tetapi dalam pemrograman, 404 01:03:27,560 --> 01:03:30,410 memanggil sesuatu dalam semantik cara yang berguna, seperti counter, 405 01:03:30,410 --> 01:03:34,540 yang menjelaskan apa itu, itu adalah jauh lebih mudah untuk membaca kode Anda nanti. 406 01:03:34,540 --> 01:03:37,460 Biarkan aku pergi ke depan dan mendapatkan selamanya memblokir sini. 407 01:03:37,460 --> 01:03:41,289 Dan biarkan aku pergi ke penampilan Halaman dan melakukan blok Say. 408 01:03:41,289 --> 01:03:44,330 Tapi apa yang keren tentang variabel adalah saya tidak perlu ketik saja sesuatu 409 01:03:44,330 --> 01:03:47,850 seperti halo dunia, yang kita sudah sudah dilakukan, saya malah bisa pergi ke Data 410 01:03:47,850 --> 01:03:50,690 dan tarik variabel saya, dan bahkan meskipun bentuknya tidak cukup 411 01:03:50,690 --> 01:03:53,000 terlihat seperti itu harus sesuai, akan tumbuh untuk mengisi. 412 01:03:53,000 --> 01:03:58,396 Dan aku hanya akan mengatakan meja untuk satu spoiler-- second-- dia akan menghitung. 413 01:03:58,396 --> 01:04:00,380 Kami akan mengatakannya selama satu detik. 414 01:04:00,380 --> 01:04:02,840 Lalu aku akan pergi dan memiliki dia menunggu satu detik, 415 01:04:02,840 --> 01:04:04,650 sehingga tidak menghitung terlalu cepat. 416 01:04:04,650 --> 01:04:08,430 Dan kemudian terakhir, mengubah meja oleh satu-- dengan kata lain, 417 01:04:08,430 --> 01:04:13,520 increment counter per satu nilai tambah dan melakukan ini selamanya. 418 01:04:13,520 --> 01:04:16,129 >> Jadi domba juga, seperti programmer, menghitung dari 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 Dan jika kita menunggu cukup lama, ia akan melakukan hal ini selamanya. 421 01:04:23,740 --> 01:04:27,740 Tapi itu tidak sepenuhnya benar, karena pada kenyataannya, seperti yang akan kita temukan di minggu satu, 422 01:04:27,740 --> 01:04:31,871 bilangan bulat dan komputer lebih umum, secara teknis hanya memiliki finite-- baik, 423 01:04:31,871 --> 01:04:33,829 bukan komputer, ketika mereka mewakili bilangan bulat, 424 01:04:33,829 --> 01:04:35,670 hanya memiliki jumlah terbatas bit. 425 01:04:35,670 --> 01:04:37,860 Mereka lampu ada hanya bisa menghitung begitu tinggi 426 01:04:37,860 --> 01:04:39,239 sebelum Anda keluar dari bola lampu. 427 01:04:39,239 --> 01:04:41,590 Dan komputer juga, hanya memiliki begitu banyak memori, 428 01:04:41,590 --> 01:04:44,640 hanya memiliki begitu banyak transistor, sehingga hanya bisa menghitung begitu tinggi. 429 01:04:44,640 --> 01:04:47,409 >> Jadi ternyata bahwa domba, Saya pikir, bisa menghitung sampai 2 miliar 430 01:04:47,409 --> 01:04:48,409 atau sesuatu yang cukup besar. 431 01:04:48,409 --> 01:04:50,325 Jadi kita tidak akan menunggu hal ini terjadi. 432 01:04:50,325 --> 01:04:54,850 Tapi akhirnya beberapa bug yang akan terjadi yang dapat memiliki beberapa dunia yang sangat nyata 433 01:04:54,850 --> 01:04:55,970 akibat. 434 01:04:55,970 --> 01:04:58,861 Tapi di luar domba, yang hanya memperkenalkan variabel. 435 01:04:58,861 --> 01:05:01,110 Mari kita pergi ke depan dan membuka sesuatu yang saya dilakukan di muka 436 01:05:01,110 --> 01:05:07,430 di sini disebut Pet yang Cat-- Pet Cat di sini. 437 01:05:07,430 --> 01:05:10,420 Dan perhatikan di sini itu beberapa blok, tapi ketika bendera hijau 438 01:05:10,420 --> 01:05:12,474 diklik, selamanya melakukan hal berikut. 439 01:05:12,474 --> 01:05:15,265 Jika Anda menyentuh mouse pointer-- sehingga kursor pada layar, 440 01:05:15,265 --> 01:05:18,529 yang arrow-- bermain meow suara dan kemudian menunggu dua detik. 441 01:05:18,529 --> 01:05:19,570 Dan hanya melakukan ini selamanya. 442 01:05:19,570 --> 01:05:22,619 Hanya terus menunggu untuk melihat apakah pointer-- yang 443 01:05:22,619 --> 01:05:24,710 jika kucing menyentuh pointer. 444 01:05:24,710 --> 01:05:26,060 >> Jadi saya tekan tombol play. 445 01:05:26,060 --> 01:05:26,920 Tidak ada yang terjadi. 446 01:05:26,920 --> 01:05:28,980 Tapi seperti yang saya gerakkan kursor kucing, 447 01:05:28,980 --> 01:05:31,960 >> [MENGEONG] 448 01:05:31,960 --> 01:05:34,750 >> Dan jika aku memindahkannya, tidak membelai kucing lagi. 449 01:05:34,750 --> 01:05:38,090 Jadi beberapa logika kondisional bersarang di dalam loop. 450 01:05:38,090 --> 01:05:43,070 Bagaimana contoh ini, sengaja disebut Jangan Pet Cat? 451 01:05:43,070 --> 01:05:45,253 Apa ini akan lakukan? 452 01:05:45,253 --> 01:05:47,880 >> [MENGEONG] 453 01:05:47,880 --> 01:05:50,215 >> Mengapa Anda tidak pet kucing? 454 01:05:50,215 --> 01:05:59,440 >> [MENGEONG] 455 01:05:59,440 --> 01:06:00,699 >> BAIK. 456 01:06:00,699 --> 01:06:03,880 Jadi ini adalah contoh dari sebuah jika yang lain. 457 01:06:03,880 --> 01:06:06,482 Ini adalah titik keputusan dan karena duduk dalam lingkaran, 458 01:06:06,482 --> 01:06:07,690 mereka berdua mendapatkan diperiksa. 459 01:06:07,690 --> 01:06:08,280 Apakah ini benar? 460 01:06:08,280 --> 01:06:08,760 Apakah ini benar? 461 01:06:08,760 --> 01:06:09,250 Apakah ini benar? 462 01:06:09,250 --> 01:06:09,791 Apakah ini benar? 463 01:06:09,791 --> 01:06:11,880 Dan akhirnya, salah satu dari mereka akan menerapkan 464 01:06:11,880 --> 01:06:16,480 dan sehingga Anda mendengar baik meow atau raungan singa dalam kasus itu. 465 01:06:16,480 --> 01:06:21,400 >> Nah, mari kita lakukan satu sedikit lebih mewah yang saya buat di muka too-- benang. 466 01:06:21,400 --> 01:06:25,210 Jadi benang adalah salah satu hal yang komputer dapat dilakukan. 467 01:06:25,210 --> 01:06:29,349 Jadi program multi-ulir adalah sebuah program yang dapat melakukan beberapa hal sekaligus. 468 01:06:29,349 --> 01:06:31,140 Dan semua contoh ini sejauh ini telah 469 01:06:31,140 --> 01:06:35,980 hanya satu script, sehingga untuk speak-- satu program seperti ini di sini. 470 01:06:35,980 --> 01:06:38,810 Tapi melihat program ini memiliki dua sprite, dua karakter. 471 01:06:38,810 --> 01:06:40,020 Salah satunya adalah burung. 472 01:06:40,020 --> 01:06:40,870 Salah satunya adalah kucing. 473 01:06:40,870 --> 01:06:45,080 >> Dan perhatikan ketika saya klik pada ini turun kiri, mereka masing-masing memiliki skrip mereka sendiri 474 01:06:45,080 --> 01:06:47,120 atau program yang terkait dengan mereka. 475 01:06:47,120 --> 01:06:49,420 Dan kedua dari mereka program, pemberitahuan, mulai 476 01:06:49,420 --> 01:06:52,600 dengan bendera clicked-- ketika hijau mari kita lihat cat-- yang 477 01:06:52,600 --> 01:06:54,030 ketika bendera hijau diklik. 478 01:06:54,030 --> 01:06:58,220 Dan memang, ketika saya tekan tombol play sekarang, dua hal yang akan terjadi sekaligus. 479 01:06:58,220 --> 01:07:01,750 Kucing dan burung keduanya akan beroperasi secara bersamaan 480 01:07:01,750 --> 01:07:03,815 untuk membuat efek ini. 481 01:07:03,815 --> 01:07:05,440 Dan Anda bayangkan apa yang terjadi. 482 01:07:05,440 --> 01:07:08,340 Ada loop dan burung dan kucing berada dalam satu kelompok. 483 01:07:08,340 --> 01:07:11,270 Burung itu hanya memantul seperti Saya sebelumnya ketika saya mengatakan aduh. 484 01:07:11,270 --> 01:07:13,040 Tapi kucing itu jelas memiliki keuntungan. 485 01:07:13,040 --> 01:07:16,040 Ada blok penginderaan lain yang menunjuk kucing sengaja 486 01:07:16,040 --> 01:07:19,836 untuk burung dalam kasus ini di sini. 487 01:07:19,836 --> 01:07:22,960 Jadi kita bisa menggoda terpisah, dengan melihat melalui blok-blok, apa yang terjadi. 488 01:07:22,960 --> 01:07:25,460 Tetapi bahan utama di sini adalah salah satu. 489 01:07:25,460 --> 01:07:28,520 Burung, sehingga game ini tidak benar-benar boring-- atau animation-- ini 490 01:07:28,520 --> 01:07:30,060 dimulai pada arah yang acak. 491 01:07:30,060 --> 01:07:32,890 Dan komputer adalah memilih angka antara 90 dan 180 492 01:07:32,890 --> 01:07:36,110 dasarnya, sehingga itu sedikit animasi yang berbeda setiap kali. 493 01:07:36,110 --> 01:07:39,480 >> Dan kemudian melihat di sini, jika kucing menyentuh burung, maka 494 01:07:39,480 --> 01:07:42,030 bermain singa empat sound-- gemuruh. 495 01:07:42,030 --> 01:07:46,330 Tetapi sementara di burung palet, kita memiliki ini. 496 01:07:46,330 --> 01:07:49,229 Selamanya, jika tidak menyentuh kucing, terus bergerak tiga langkah. 497 01:07:49,229 --> 01:07:50,770 Dan maka di sini adalah potongan puzzle yang lain. 498 01:07:50,770 --> 01:07:52,030 Jika Anda berada di tepi, bangkit. 499 01:07:52,030 --> 01:07:54,840 Jadi burung ini hanya jenis mengurus bisnis sendiri, 500 01:07:54,840 --> 01:07:57,330 hanya terbang di sekitar dan memantul, dan itu benar-benar 501 01:07:57,330 --> 01:08:01,780 kucing yang memiliki logika kondisional untuk menentukan apakah itu telah menangkap burung. 502 01:08:01,780 --> 01:08:02,280 Baiklah. 503 01:08:02,280 --> 01:08:08,800 Jadi mari kita melakukan satu lain di sini, satu ini disebut Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 Dan yang satu ini di sini hanya melakukan ini dalam selamanya lingkaran. 505 01:08:15,100 --> 01:08:18,925 Tapi notice-- bagaimana kita menghentikan program ini sangat mengganggu? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Tekan tombol spasi. 508 01:08:22,640 --> 01:08:27,990 Karena jika saya melakukan itu, yang program-- tangan kiri 509 01:08:27,990 --> 01:08:31,550 melihat itu terus listening-- adalah ruang tekan tombol. 510 01:08:31,550 --> 01:08:34,090 Jika ruang bar ditekan, dan jika demikian, apa fungsinya? 511 01:08:34,090 --> 01:08:35,980 Itu tidak teknik yang sangat umum. 512 01:08:35,980 --> 01:08:38,590 Ini menetapkan variabel sama dengan beberapa nilai. 513 01:08:38,590 --> 01:08:39,741 Tapi ia mengubah nilai tersebut. 514 01:08:39,741 --> 01:08:41,490 [? Jadi penampilan?] berdasarkan shape-- I 515 01:08:41,490 --> 01:08:43,160 memiliki variabel yang saya menulis di muka disebut 516 01:08:43,160 --> 01:08:44,770 Diredam, yang hanya mengatakan ya atau tidak. 517 01:08:44,770 --> 01:08:45,880 Apakah suara dimatikan atau tidak? 518 01:08:45,880 --> 01:08:46,990 Benar atau salah? 519 01:08:46,990 --> 01:08:51,580 Dan pemberitahuan, saya katakan ini-- jika diredam adalah nol, kemudian berubah menjadi satu, 520 01:08:51,580 --> 01:08:53,840 lain mengatur bisu ke nol. 521 01:08:53,840 --> 01:08:55,540 Jadi hanya flip nilai dari nol sampai satu. 522 01:08:55,540 --> 01:08:58,320 Aku bisa memiliki done-- mengubahnya dari dua hingga tiga dan 3-2 523 01:08:58,320 --> 01:09:00,162 atau 4-5 atau 4-6. 524 01:09:00,162 --> 01:09:01,870 Tapi itu tidak masalah apa angka yang saya gunakan, 525 01:09:01,870 --> 01:09:04,090 asalkan aku tetap mengubahnya sebaliknya. 526 01:09:04,090 --> 01:09:07,290 >> Dan yang paling programmer hanya akan memilih nol dan satu-- palsu dan benar, 527 01:09:07,290 --> 01:09:09,510 off dan on-- untuk mewakili ini. 528 01:09:09,510 --> 01:09:10,930 Dan ini masih berjalan. 529 01:09:10,930 --> 01:09:12,190 Jika saya memukul spasi lagi 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SOUNDS] 531 01:09:13,590 --> 01:09:15,440 >> Program ini masih berjalan. 532 01:09:15,440 --> 01:09:18,400 Karena ada script lain ini yang mengatakan, selamanya melakukan hal berikut. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Jika variabel diredam sama zero-- jadi jika Anda tidak diredam 535 01:09:24,770 --> 01:09:29,609 adalah logic-- jika itu palsu atau tidak, maka memutar suara, 536 01:09:29,609 --> 01:09:30,650 karena Anda tidak diredam. 537 01:09:30,650 --> 01:09:33,358 Anda harus bermain suara dan kemudian berpikir hi hi hi selama dua detik 538 01:09:33,358 --> 01:09:35,790 dan kemudian menunggu, dan melakukannya lagi dan lagi dan lagi. 539 01:09:35,790 --> 01:09:40,760 >> Dan dengan cara ini kita memiliki cara untuk orang to-- untuk program untuk berinteraksi. 540 01:09:40,760 --> 01:09:43,120 Dan mereka tidak perlu sebagaimana tanggal yang lain. 541 01:09:43,120 --> 01:09:46,280 Bahkan, menusuk around-- no pun intended-- 542 01:09:46,280 --> 01:09:49,250 seseorang menghabiskan sejumlah besar waktu di internet menerapkan 543 01:09:49,250 --> 01:09:51,580 PokemonGo di Scratch. 544 01:09:51,580 --> 01:09:55,440 Bahkan geolocates Anda di Cambridge atau Allston sini. 545 01:09:55,440 --> 01:10:03,120 Jadi jika Anda ingin melihat terlalu apa yang orang dapat lakukan adalah ini-- menu yang sangat mewah. 546 01:10:03,120 --> 01:10:04,780 Klik di sini. 547 01:10:04,780 --> 01:10:07,430 >> Ini aku dengan tombol panah saya sekarang. 548 01:10:07,430 --> 01:10:09,446 Aku akan pergi setelah ini. 549 01:10:09,446 --> 01:10:09,946 Klik. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 Dan sekarang Anda klik pokeball itu. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Maksudku, saya pikir Anda seharusnya klik pokeball itu. 554 01:10:20,260 --> 01:10:20,760 Baiklah. 555 01:10:20,760 --> 01:10:22,680 Jadi saya melakukan itu. 556 01:10:22,680 --> 01:10:23,950 Aku bisa pergi ke sini. 557 01:10:23,950 --> 01:10:27,790 Dan orang ini dilaksanakan lagi Pokeballs lebih di sini-tiga Pokeballs. 558 01:10:27,790 --> 01:10:29,950 >> Kami akan memposting link ke ini online sehingga Anda bisa bermain. 559 01:10:29,950 --> 01:10:32,364 Tapi melihat ada hanya beberapa blok bangunan dasar. 560 01:10:32,364 --> 01:10:33,780 Ini terlihat banyak pengujian, dan itu. 561 01:10:33,780 --> 01:10:35,905 Hal ini mengesankan dan lebih daripada kita akan biasanya 562 01:10:35,905 --> 01:10:37,740 berharap, tentu untuk masalah ditetapkan nol. 563 01:10:37,740 --> 01:10:40,809 Saya tidak tahu berapa lama orang ini menghabiskan online. 564 01:10:40,809 --> 01:10:41,850 Tapi itu semua hanya satu lingkaran. 565 01:10:41,850 --> 01:10:43,180 Ada bermain suara. 566 01:10:43,180 --> 01:10:44,850 Ada beberapa jenis loop mendengarkan apakah saya 567 01:10:44,850 --> 01:10:47,558 memukul panah ke atas atau ke bawah panah atau kiri dan kanan, 568 01:10:47,558 --> 01:10:49,834 dan kemudian jika demikian, itu bergerak itu beberapa jumlah piksel. 569 01:10:49,834 --> 01:10:51,750 Dan kemudian jika saya klik sprite lain, ada 570 01:10:51,750 --> 01:10:53,390 semacam jika kondisi di sana. 571 01:10:53,390 --> 01:10:54,806 Ya, ini sudah terlalu intens. 572 01:10:54,806 --> 01:10:56,100 Kita akan berhenti. 573 01:10:56,100 --> 01:10:57,750 Ini semua blok bangunan yang dasar. 574 01:10:57,750 --> 01:11:01,530 Tidak ada bahan lain lain daripada yang kita telah melihat sudah. 575 01:11:01,530 --> 01:11:04,670 >> Namun di sini, biarkan aku melakukan satu set final contoh 576 01:11:04,670 --> 01:11:06,960 yang melukiskan gambaran terlalu dari apa yang dapat Anda lakukan di sini. 577 01:11:06,960 --> 01:11:10,481 Berikut adalah program yang sangat sederhana yang hanya melakukan ini-- batuk, batuk, batuk. 578 01:11:10,481 --> 01:11:12,480 Dan hanya berdasarkan apa yang kita telah melihat sejauh ini, 579 01:11:12,480 --> 01:11:14,570 di mana adalah jelas kesempatan untuk perbaikan. 580 01:11:14,570 --> 01:11:15,570 Program ini benar. 581 01:11:15,570 --> 01:11:17,980 Hal batuk tiga kali, yang merupakan apa yang dimaksudkan. 582 01:11:17,980 --> 01:11:19,650 Tapi itu diimplementasikan dengan buruk. 583 01:11:19,650 --> 01:11:20,600 Ini dirancang buruk. 584 01:11:20,600 --> 01:11:22,000 Mengapa? 585 01:11:22,000 --> 01:11:22,500 Ya. 586 01:11:22,500 --> 01:11:23,230 Ini bukan lingkaran. 587 01:11:23,230 --> 01:11:24,610 Dan itu tidak begitu banyak bahwa itu bukan lingkaran, 588 01:11:24,610 --> 01:11:26,400 itu bahwa ada banyak redundansi. 589 01:11:26,400 --> 01:11:28,830 Ada disalin dan kode disisipkan, sehingga untuk berbicara. 590 01:11:28,830 --> 01:11:31,830 Dan solusinya mungkin memang lingkaran. 591 01:11:31,830 --> 01:11:34,350 Jadi biarkan aku pergi ke depan dan memperbaiki itu. 592 01:11:34,350 --> 01:11:36,250 Dan aku akan menyeret ini di sini. 593 01:11:36,250 --> 01:11:39,986 Biarkan aku pergi ke depan dan mendapatkan mengulang blok, mengubahnya ke tiga. 594 01:11:39,986 --> 01:11:41,860 Aku akan membuang beberapa blok-blok. 595 01:11:41,860 --> 01:11:43,150 >> Dan Anda akan melihat itu cukup intuitif. 596 01:11:43,150 --> 01:11:45,691 Anda drag dan drop dan hal-hal muncul dan menghilang akhirnya. 597 01:11:45,691 --> 01:11:49,170 Dan aku hanya bisa menyeret ini di sini, dan sekarang saya memiliki versi bersih masih. 598 01:11:49,170 --> 01:11:50,730 Tapi kau tahu apa? 599 01:11:50,730 --> 01:11:52,940 Ada kesempatan ini sekarang ke abstraction-- 600 01:11:52,940 --> 01:11:56,350 untuk memulai untuk menentukan kosa kata baru bahwa MIT tidak mengantisipasi. 601 01:11:56,350 --> 01:11:59,110 Ada menunggu dan ulangi dan selamanya dan jika, 602 01:11:59,110 --> 01:12:02,590 tapi bagaimana jika saya ingin memperkenalkan kata batuk sebagai blok? 603 01:12:02,590 --> 01:12:06,230 Bagaimana jika saya ingin sepotong puzzle Tujuan yang dalam hidup adalah batuk? 604 01:12:06,230 --> 01:12:10,720 >> Nah, mari kita lihat versi ini di sini, yang saya dibuat sebagai berikut. 605 01:12:10,720 --> 01:12:13,579 Ajaib, saya telah membuat potongan puzzle ini di sini, 606 01:12:13,579 --> 01:12:14,870 yang Scratch memungkinkan Anda untuk melakukan. 607 01:12:14,870 --> 01:12:16,787 Dan memang C dan Python dan JavaScript adalah 608 01:12:16,787 --> 01:12:18,370 akan memungkinkan Anda untuk melakukan hal ini juga. 609 01:12:18,370 --> 01:12:21,830 Anda dapat membuat kustom Anda sendiri potongan-potongan yang Anda sebut apa yang Anda inginkan. 610 01:12:21,830 --> 01:12:24,890 Dalam hal ini, batuk terasa seperti definisi yang masuk akal. 611 01:12:24,890 --> 01:12:27,880 Dan kemudian dengan potongan-potongan ini turun di sini dapat Anda mendefinisikan apa artinya. 612 01:12:27,880 --> 01:12:30,290 >> Aku menyeret dan menjatuhkan dari palet ini di sini-lebih 613 01:12:30,290 --> 01:12:33,500 blocks-- ungu besar ini blok, di mana saya mengetik di batuk 614 01:12:33,500 --> 01:12:35,290 sebagai nama potongan puzzle baru saya. 615 01:12:35,290 --> 01:12:39,920 Dan kemudian saya katakan setiap kali pengguna menyebut sepotong batuk puzzle baru, 616 01:12:39,920 --> 01:12:41,770 melakukan katakanlah dan menunggu. 617 01:12:41,770 --> 01:12:46,160 Dan di sini di blok saya ulangi, Aku hanya bisa batuk tiga kali. 618 01:12:46,160 --> 01:12:49,972 >> Dan saya berpendapat, terutama jika sekarang Anda menyembunyikan rincian ini. 619 01:12:49,972 --> 01:12:51,430 Siapa yang peduli bagaimana batuk diimplementasikan? 620 01:12:51,430 --> 01:12:54,390 Semua saya peduli sebagai programmer yang bisa saya batuk. 621 01:12:54,390 --> 01:12:56,280 Saya tidak peduli bagaimana mengatakan diimplementasikan. 622 01:12:56,280 --> 01:12:58,620 Aku hanya peduli bahwa kucing bisa mengatakan sesuatu. 623 01:12:58,620 --> 01:13:02,720 Aku bisa abstrak yang rinci dan hanya fokus pada apa yang ada di layar di sini. 624 01:13:02,720 --> 01:13:04,400 Tapi aku bisa mengambil satu langkah lebih jauh. 625 01:13:04,400 --> 01:13:08,070 >> Perhatikan bahwa di sini, saya memiliki diimplementasikan loop tiga kali. 626 01:13:08,070 --> 01:13:11,560 Tapi bagaimana jika sebaliknya saya ambil versi ini? 627 01:13:11,560 --> 01:13:14,640 Dan bagaimana jika sebaliknya dalam versi ini di sini, 628 01:13:14,640 --> 01:13:18,730 Saya hanya mengubah potongan puzzle saya untuk mengambil argumen dan masukan kepada dirinya sendiri? 629 01:13:18,730 --> 01:13:21,100 Dan masukan yang dapat nomor seperti tiga. 630 01:13:21,100 --> 01:13:24,580 Jadi sekarang, jika saya menulis sebuah program dan saya ingin kucing batuk, 631 01:13:24,580 --> 01:13:28,270 Aku benar-benar dapat memberitahu teka-teki potong berapa kali batuk, 632 01:13:28,270 --> 01:13:31,990 karena pada bagian bawah sini, sebuah pelamun versi potongan puzzle kustom 633 01:13:31,990 --> 01:13:34,500 memungkinkan saya menentukan bahwa batuk benar-benar membutuhkan 634 01:13:34,500 --> 01:13:36,951 sebuah input-- membawa argumen seperti ini. 635 01:13:36,951 --> 01:13:37,700 Dan kau tahu apa? 636 01:13:37,700 --> 01:13:38,890 Mungkin aku menyadari, tunggu sebentar. 637 01:13:38,890 --> 01:13:40,680 Batuk adalah same-- yang itu dasarnya 638 01:13:40,680 --> 01:13:42,120 ide yang sama seperti bersin-bersin. 639 01:13:42,120 --> 01:13:44,040 Itu hanya berbeda kata di layar. 640 01:13:44,040 --> 01:13:46,550 Aku bisa abstrak lebih lanjut dan menerapkan 641 01:13:46,550 --> 01:13:48,750 ini versi final dari batuk, yang sekilas 642 01:13:48,750 --> 01:13:50,660 adalah cara yang lebih kompleks cari. 643 01:13:50,660 --> 01:13:52,140 Tapi perhatikan apa yang saya lakukan. 644 01:13:52,140 --> 01:13:55,930 Saya sekarang generalized-- genericized really-- potongan puzzle ini 645 01:13:55,930 --> 01:13:59,900 disebut mengatakan kata n kali. 646 01:13:59,900 --> 01:14:04,410 >> Dan sekarang saya memiliki dua potongan teka-teki baru di sini mendefinisikan batuk n kali. 647 01:14:04,410 --> 01:14:06,790 Dan apa fungsi batuk lakukan? 648 01:14:06,790 --> 01:14:08,420 Apa saya kustom potongan puzzle lakukan? 649 01:14:08,420 --> 01:14:11,996 Itu hanya panggilan blok katakanlah, lewat di kata yang saya ingin mengatakan, 650 01:14:11,996 --> 01:14:13,870 lewat di nomor kali saya ingin mengatakan. 651 01:14:13,870 --> 01:14:18,210 Karena sekarang saya bisa menerapkan bersin dengan hanya mengatakan Achoo, 652 01:14:18,210 --> 01:14:20,320 dalam hal ini, beberapa beberapa kali. 653 01:14:20,320 --> 01:14:22,360 >> Dan jadi aku layering dan layering. 654 01:14:22,360 --> 01:14:25,690 Dan lagi, kuncinya di sini adalah tidak bagaimana saya menerapkan itu, tetapi kenyataannya 655 01:14:25,690 --> 01:14:28,070 bahwa jika saya hanya benar-benar bergerak ini dari layar, 656 01:14:28,070 --> 01:14:31,280 melihat bagaimana sederhana jika tidak cukup program saya sekarang terlihat. 657 01:14:31,280 --> 01:14:33,930 Karena itu tidak apa mengatakan, saya sudah disarikan 658 01:14:33,930 --> 01:14:37,640 pergi apa yang di dalam kotak hitam. itu terjadi menjadi sebuah kotak ungu di sini, 659 01:14:37,640 --> 01:14:41,430 tapi aku terhalang jauh apa yang di dalam karena saya tidak peduli bagaimana cara kerjanya. 660 01:14:41,430 --> 01:14:43,650 Aku hanya peduli sekarang bahwa ia bekerja. 661 01:14:43,650 --> 01:14:46,375 >> Dan memang, di masalah set nol, ini adalah persis 662 01:14:46,375 --> 01:14:49,250 jenis layering ide Anda akan memiliki kesempatan untuk mengeksplorasi. 663 01:14:49,250 --> 01:14:53,510 Ini persis kesempatan untuk menerapkan pemecahan masalah teknik, 664 01:14:53,510 --> 01:14:55,550 apa mungkin seorang lingkungan yang asing. 665 01:14:55,550 --> 01:14:57,890 Dan apakah Anda sudah tidak diprogram sebelum atau diprogram sebelumnya, 666 01:14:57,890 --> 01:14:59,500 Anda akan menemukan bahwa ada sedikit sesuatu 667 01:14:59,500 --> 01:15:00,874 dalam lingkungan ini untuk semua orang. 668 01:15:00,874 --> 01:15:02,770 Dan dengan permasalahan yang satu dalam waktu satu minggu, 669 01:15:02,770 --> 01:15:06,630 kita akan dialihkan ke fokus pada bahasa tingkat tinggi yang disebut 670 01:15:06,630 --> 01:15:09,290 C-- atau lebih tepatnya lebih rendah bahasa tingkat disebut 671 01:15:09,290 --> 01:15:11,347 C-- yang bahkan lebih kuat, meskipun itu 672 01:15:11,347 --> 01:15:12,930 sedikit lebih samar pada pandangan pertama. 673 01:15:12,930 --> 01:15:16,740 >> Dan Anda akan menyadari per TL hari ini: DR, bahwa masalah ini diatur memiliki lebih pendek 674 01:15:16,740 --> 01:15:19,880 jendela waktu dari yang di masa depan, hanya karena Anda harus merasa cukup 675 01:15:19,880 --> 01:15:20,420 diakses. 676 01:15:20,420 --> 01:15:22,211 Dan tidak perlu khawatir jika Anda menambahkan kelas akhir. 677 01:15:22,211 --> 01:15:23,920 Kami akan membahas yang lama. 678 01:15:23,920 --> 01:15:28,480 Dan sebelum kita menunda untuk kue, mari kita selesai dengan hanya dua menit tampilan 679 01:15:28,480 --> 01:15:30,500 apa yang menanti Anda di sini di CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUSIC PLAYING] 682 01:17:20,803 --> 01:17:21,302 Baiklah. 683 01:17:21,302 --> 01:17:22,690 Itu saja untuk CS50. 684 01:17:22,690 --> 01:17:23,650 Kami akan melihat Anda segera. 685 01:17:23,650 --> 01:17:25,526 Kue sekarang disajikan. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUSIC PLAYING] 688 01:18:14,267 --> 01:18:16,350 SPEAKER 17: Pernahkah Anda mendengar dari cuti, Chief? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 SPEAKER 18: Mungkin ada lebih di bawah tenda. 691 01:18:31,920 --> 01:18:38,279