1 00:00:00,000 --> 00:00:15,059 >> [MUZIK Bermain] 2 00:00:15,059 --> 00:00:19,170 >> Ini adalah CS50-- Harvard Pengenalan Universiti 3 00:00:19,170 --> 00:00:22,070 kepada intelektual perusahaan sains komputer 4 00:00:22,070 --> 00:00:23,800 dan seni pengaturcaraan. 5 00:00:23,800 --> 00:00:27,020 Dan nama-Ku Daud Malan, dan Saya hanya berfikir pagi ini, 6 00:00:27,020 --> 00:00:33,120 ia telah menakjubkan 20 tahun hari ini sejak saya duduk di mana anda semua lakukan sekarang. 7 00:00:33,120 --> 00:00:33,840 >> Ia adalah 1996. 8 00:00:33,840 --> 00:00:37,550 Saya adalah mahasiswa tingkat kedua, dan saya telah mengambil CS50 buat kali pertama. 9 00:00:37,550 --> 00:00:40,890 Dan saya telah tidak mendapat sehingga saraf untuk mengambil diri saya tahun pertamanya, 10 00:00:40,890 --> 00:00:42,500 sebahagiannya kerana pada masa itu. 11 00:00:42,500 --> 00:00:44,782 sains komputer kepada saya adalah jenis suka, meh. 12 00:00:44,782 --> 00:00:46,990 Saya adalah sedikit geek yang semakin meningkat , tetapi saya tidak benar-benar 13 00:00:46,990 --> 00:00:49,180 mempunyai apa-apa intelek kepentingan dalam apa yang kelihatan 14 00:00:49,180 --> 00:00:51,920 untuk hanya menjadi sejumlah besar orang pengaturcaraan sepanjang masa. 15 00:00:51,920 --> 00:00:53,904 >> Dan saya takut untuk bersikap jujur. 16 00:00:53,904 --> 00:00:56,820 Kursus dan komputer sains lebih umumnya mempunyai dan sedikit sebanyak, 17 00:00:56,820 --> 00:01:01,230 masih mempunyai reputasi ini medan untuk berhati-hati, jika hanya kerana begitu ramai di antara kita 18 00:01:01,230 --> 00:01:04,410 tidak biasa dengannya dan tidak pasti itu. 19 00:01:04,410 --> 00:01:08,480 Dan ia benar-benar tidak sehingga saya membeli-belah kelas ini yang mahasiswa tingkat kedua fall-- 20 00:01:08,480 --> 00:01:10,880 dan walaupun begitu, saya hanya mendaftar kerana professor-- yang 21 00:01:10,880 --> 00:01:13,950 seorang dari penasihat pertama saya, Brian Kernighan sekarang di Princeton-- 22 00:01:13,950 --> 00:01:15,700 membolehkan saya untuk mengambil pas kelas gagal. 23 00:01:15,700 --> 00:01:18,020 Dan sesungguhnya, itulah sebabnya hari ini kita membenarkan dan menggalakkan 24 00:01:18,020 --> 00:01:20,030 pelajar mengambil kelas ini duduk / UNSAT. 25 00:01:20,030 --> 00:01:22,040 >> Dan hanya kemudian, oleh akhir semester 26 00:01:22,040 --> 00:01:24,870 adakah saya sedar seperti, wow, ini tidak seperti bidang yang tidak dikenali. 27 00:01:24,870 --> 00:01:26,850 Sesungguhnya, ini adalah sangat memperkasakan bidang, 28 00:01:26,850 --> 00:01:28,970 dan lebih excitingly, terutama di kemudian hari, 29 00:01:28,970 --> 00:01:32,809 kerana saya mengambil kursus dalam Seni Dramatik 101 dan Latin A 30 00:01:32,809 --> 00:01:34,600 dan kemudian akhirnya grad arkeologi sekolah, 31 00:01:34,600 --> 00:01:37,860 adakah saya benar-benar mula melihat persimpangan medan ini, komputer 32 00:01:37,860 --> 00:01:41,979 sains, dengan kemanusiaan, sains semula jadi, seni, perubatan, 33 00:01:41,979 --> 00:01:42,520 dan sebagainya. 34 00:01:42,520 --> 00:01:44,420 Dan supaya apa yang hanya begitu kemas tentang sains komputer 35 00:01:44,420 --> 00:01:46,930 akhirnya, kerana kami berharap yang anda akan see-- adalah kebolehgunaan 36 00:01:46,930 --> 00:01:50,280 kepada bidang-bidang lain, dan bagaimana anda boleh mengambil beberapa hari ini dan semester ini 37 00:01:50,280 --> 00:01:53,070 idea dan kemahiran praktikal kembali kepada domain anda sendiri, 38 00:01:53,070 --> 00:01:58,200 dan benar-benar meneroka persimpangan ini seni liberal dan sains. 39 00:01:58,200 --> 00:02:02,690 >> Jadi 73% daripada anda, jika lalu tahun merupakan satu petunjuk, 40 00:02:02,690 --> 00:02:04,390 tidak pernah mengambil kursus CS sebelum ini. 41 00:02:04,390 --> 00:02:06,389 Jadi, jika, seperti saya, anda rasa sedikit 42 00:02:06,389 --> 00:02:09,190 takut, atau terus-terang anda tidak benar-benar pasti mengapa anda malah di sini. 43 00:02:09,190 --> 00:02:11,510 Mungkin anda hanya mengikuti beberapa rakan-rakan lebih untuk Sanders sekarang. 44 00:02:11,510 --> 00:02:12,490 Itulah betul-betul halus. 45 00:02:12,490 --> 00:02:15,059 Matlamat di sini adalah untuk menyambung anda dan untuk meyakinkan anda 46 00:02:15,059 --> 00:02:17,100 bahawa jika anda melihat kepada kiri dan ke kanan, 47 00:02:17,100 --> 00:02:21,480 anda akan dapat melihat rakan-rakan dengan pengalaman sedikit atau sebanyak 48 00:02:21,480 --> 00:02:22,890 yang anda sendiri mungkin mempunyai. 49 00:02:22,890 --> 00:02:25,280 Dan sesungguhnya, kami akan berkongsi beberapa statistik lewat hari ini 50 00:02:25,280 --> 00:02:28,120 apa demografi kelas biasanya kelihatan seperti. 51 00:02:28,120 --> 00:02:31,440 >> Dan seperti yang ditambah reassurance-- dan kami ini maksudkan sejak saya mengambil alih kursus 52 00:02:31,440 --> 00:02:33,252 dalam beberapa tahun ago-- sukatan pelajaran kursus ini 53 00:02:33,252 --> 00:02:35,460 adalah this-- bahawa apa yang akhirnya perkara-perkara dalam kursus ini 54 00:02:35,460 --> 00:02:38,040 tidak begitu banyak di mana anda berakhir up berbanding dengan rakan-rakan anda, 55 00:02:38,040 --> 00:02:43,110 tetapi di mana anda pada minggu 11, akhir semester, akhirnya relatif kepada diri 56 00:02:43,110 --> 00:02:46,280 pada minggu 0, yang di mana kami berada di sini hari ini. 57 00:02:46,280 --> 00:02:48,704 Dan ini adalah apa yang saya sedar semua tahun-tahun yang lalu. 58 00:02:48,704 --> 00:02:50,620 Dan saya tahu banyak kelas mengatakan ini, tetapi ia 59 00:02:50,620 --> 00:02:52,450 terutama berlaku dalam bidang sains komputer. 60 00:02:52,450 --> 00:02:55,320 Pada akhir hari, bidang ini tidak biasa kerana ia adalah untuk saya 61 00:02:55,320 --> 00:02:58,590 dan mungkin untuk anda, adalah benar-benar hanya kira-kira penyelesaian masalah. 62 00:02:58,590 --> 00:03:01,324 Dan oleh itu, ia mempunyai ini kesesuaian untuk mendapatkan bidang lain. 63 00:03:01,324 --> 00:03:03,490 Dan sebenarnya, jika kita cuba untuk menyuling apa ini bermakna, 64 00:03:03,490 --> 00:03:06,897 ini adalah penyelesaian masalah pada asasnya, saya berani mengatakan bahawa. 65 00:03:06,897 --> 00:03:09,480 Ada input-- jadi apa sahaja yang ia adalah bahawa anda cuba untuk menyelesaikan. 66 00:03:09,480 --> 00:03:12,264 Ada output, yang mudah-mudahan penyelesaian untuk masalah itu. 67 00:03:12,264 --> 00:03:14,180 Dan kemudian, seperti yang kita akan berkata dalam sains komputer, 68 00:03:14,180 --> 00:03:17,310 ada kotak hitam ini dalam pertengahan bahawa anda tidak semestinya 69 00:03:17,310 --> 00:03:19,450 perlu mengambil berat tentang bagaimana ia berfungsi. 70 00:03:19,450 --> 00:03:22,230 Anda sendiri akhirnya mungkin melaksanakan apa yang di dalam kotak itu. 71 00:03:22,230 --> 00:03:25,194 Tetapi untuk tujuan hari ini dan banyak lagi umumnya dalam kehidupan, semua yang anda hargai 72 00:03:25,194 --> 00:03:26,610 adalah bahawa masalah ini mendapatkan diselesaikan. 73 00:03:26,610 --> 00:03:29,340 >> Dan apa kursus ini adalah akhirnya mengenai sedang meneroka 74 00:03:29,340 --> 00:03:31,700 persimpangan ini input dan output, 75 00:03:31,700 --> 00:03:34,410 dan apa yang dipanggil algoritma, kerana kita tidak lama lagi akan melihat, 76 00:03:34,410 --> 00:03:37,450 yang melaksanakan apa yang di bawah sana, hood. 77 00:03:37,450 --> 00:03:40,487 Tetapi ini input dan ini outputs-- apakah yang sebenarnya bermakna? 78 00:03:40,487 --> 00:03:43,570 Nah, pada akhir hari, kita perlu jalan untuk mewakili maklumat. 79 00:03:43,570 --> 00:03:46,660 Hal ini terutama berlaku dalam komputer, yang sebagai mewah dan kompleks kerana ia 80 00:03:46,660 --> 00:03:48,160 mungkin kelihatan, adalah alat yang agak bodoh. 81 00:03:48,160 --> 00:03:52,240 Ia mengambil masa electricity-- sama ada dari kabel atau bateri sebagai input-- 82 00:03:52,240 --> 00:03:55,820 dan kemudian ia menghasilkan beberapa jawapan preprogramed pada skrin. 83 00:03:55,820 --> 00:03:57,970 >> Tetapi bagaimana kita dapat daripada mula untuk menyelesaikan sana? 84 00:03:57,970 --> 00:03:59,470 Nah, apa yang masalah yang perlu diselesaikan? 85 00:03:59,470 --> 00:04:01,050 Well, mungkin kita mungkin, di permulaan semester, 86 00:04:01,050 --> 00:04:02,841 cuba untuk mengambil kehadiran di dalam bilik seperti ini. 87 00:04:02,841 --> 00:04:04,750 Jadi saya boleh melakukan seperti satu, dua, tiga. 88 00:04:04,750 --> 00:04:07,060 Atau mungkin, jika saya melakukannya untuk menyusun mengesan 89 00:04:07,060 --> 00:04:10,560 daripada myself-- untuk mengesan things-- Saya cepat boleh kehabisan jari. 90 00:04:10,560 --> 00:04:14,650 Jadi saya hanya mungkin membuat hash satu marks-- seorang, dua, tiga, empat, lima, enam, 91 00:04:14,650 --> 00:04:15,431 tujuh, lapan. 92 00:04:15,431 --> 00:04:17,930 Dan kita semua mungkin dilakukan ini, sama ada di tangan anda 93 00:04:17,930 --> 00:04:19,680 atau di atas sekeping kertas. 94 00:04:19,680 --> 00:04:22,140 Dan ini sebenarnya hanya sesuatu yang dinamakan notation-- unari 95 00:04:22,140 --> 00:04:26,130 di mana jika anda hanya mempunyai satu huruf dalam abjad anda, satu atau hash 96 00:04:26,130 --> 00:04:29,440 tanda dalam kes ini, bagi setiap input yang anda mahu untuk mengira, 97 00:04:29,440 --> 00:04:32,330 anda perlu meletakkan salah satu daripada letters-- salah satu daripada tanda-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 Malah, sebahagian besar daripada anda mungkin tahu walaupun anda tidak benar-benar telah 102 00:04:40,770 --> 00:04:44,080 dianggap apa ini bermakna, bahawa komputer hanya memahami sifar 103 00:04:44,080 --> 00:04:45,870 dan ones-- sistem yang dipanggil binari. 104 00:04:45,870 --> 00:04:49,390 Kita manusia, sebaliknya, begitu lebih canggih setakat 105 00:04:49,390 --> 00:04:51,770 seperti yang kita faham sifar melalui nines. 106 00:04:51,770 --> 00:04:55,740 >> Tetapi, jika binari adalah, pada mulanya pandang, tidak semua yang biasa, 107 00:04:55,740 --> 00:05:00,330 ternyata ia seperti sistem dan idea-idea yang kita sudah tahu. 108 00:05:00,330 --> 00:05:02,420 Jadi misalnya, pertimbangkan ini. 109 00:05:02,420 --> 00:05:03,896 Ini hanya satu urutan simbol. 110 00:05:03,896 --> 00:05:05,770 Dan kamu semua, apabila sambil mengerling ke arah itu, mungkin 111 00:05:05,770 --> 00:05:09,380 berfikir 123-- apa-apa benar-benar menarik di sana. 112 00:05:09,380 --> 00:05:11,940 Tetapi mengapa jumlah itu, 123? 113 00:05:11,940 --> 00:05:14,440 Ini hanya glyphs pada screen-- hanya corak 114 00:05:14,440 --> 00:05:16,387 bahawa seseorang mungkin telah dikeluarkan atau ditaip. 115 00:05:16,387 --> 00:05:18,970 Tetapi jika anda seperti saya, anda mungkin ingat dari sekolah rendah 116 00:05:18,970 --> 00:05:21,610 bahawa terdapat semacam ruangan atau tempat-tempat di sini. 117 00:05:21,610 --> 00:05:25,340 Ada tempat yang salah dan yang tempat sepuluh dan tempat ratus ini. 118 00:05:25,340 --> 00:05:29,820 Dan sebab bahawa ini adalah 123 dan bukan hanya satu corak tiga simbol 119 00:05:29,820 --> 00:05:33,090 kerana, sudah tentu, jika kita mempunyai satu dalam tempat ratus, 120 00:05:33,090 --> 00:05:36,610 anda melakukan matematik sebanyak 100 kali satu, dan kemudian dua di tempat yang ten. 121 00:05:36,610 --> 00:05:41,390 Jadi, itu 10 kali 2, dan kemudian tiga tempat yang salah dan itulah 1 kali 3. 122 00:05:41,390 --> 00:05:45,670 Dan apabila anda menambah semua orang-orang, sudah Sudah tentu, anda mendapat 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Oleh itu, kita bermula dengan hanya corak daripada symbols-- alphabet-- yang 124 00:05:48,220 --> 00:05:51,670 tetapi kemudian kita dipetakan makna ke ia melalui lajur ini. 125 00:05:51,670 --> 00:05:54,450 Nah, ternyata bahawa komputer adalah benar-benar tidak 126 00:05:54,450 --> 00:05:56,300 semua yang berbeza daripada anda dan saya. 127 00:05:56,300 --> 00:06:01,840 Tetapi bukannya menggunakan kuasa 10, jadi untuk speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10,000 tempat dan sebagainya forth-- mereka sebenarnya 129 00:06:04,330 --> 00:06:08,930 hanya menggunakan kuasa 2-- jadi satu, 2, 4, dan kemudian 130 00:06:08,930 --> 00:06:12,810 jika kita meletakkan lebih digit, 8, 16, 32, 64, 128, dan sebagainya. 131 00:06:12,810 --> 00:06:16,050 Dan sebagainya ini adalah bagaimana komputer akan mewakili nombor 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 boleh meneka apa corak sifar dan satu, 134 00:06:21,660 --> 00:06:24,610 jika komputer hanya boleh bercakap 0 atau 1-- apa 135 00:06:24,610 --> 00:06:29,110 corak akan mewakili bilangan kita manusia dikenali 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 kita mewakili 1, jadi anda mungkin cenderung kemudian 139 00:06:35,900 --> 00:06:39,510 untuk mewakili nombor 2, jika anda mempunyai tempat yang empat dan tempat kedua-dua ini 140 00:06:39,510 --> 00:06:48,290 sebagai tempat yang salah, anda mungkin berkata, baik, jika kita mempunyai 1 di tempat yang satu ini, 141 00:06:48,290 --> 00:06:50,430 dan kini kita mahu mengira sehingga 2, anda mungkin 142 00:06:50,430 --> 00:06:53,310 melakukan ini dan meninggalkan ini sebagai sifar. 143 00:06:53,310 --> 00:06:56,397 Tetapi sudah tentu ini tidak bagaimana sistem perpuluhan berfungsi sama ada. 144 00:06:56,397 --> 00:06:58,230 Jika anda meletakkan angka dalam kedua-dua mereka tiang, 145 00:06:58,230 --> 00:06:59,563 anda perlu melakukan aritmetik. 146 00:06:59,563 --> 00:07:01,930 Jadi apa nombor tidak saya sengaja hanya mewakili? 147 00:07:01,930 --> 00:07:06,710 >> Jadi ia adalah 3, kerana 2 kali 1 plus 1 kali 1, sudah tentu, memberikan 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 jenis lambungan, boleh dikatakan, sebagai 0 menjadi satu, sama seperti 9 peranan lebih 150 00:07:12,730 --> 00:07:14,840 dan menjadi 0 apabila anda membawa 1. 151 00:07:14,840 --> 00:07:16,510 Ini kemudiannya akan menjadi tiga sudah tentu. 152 00:07:16,510 --> 00:07:20,170 Four-- satu lagi perkara yang menarik berlaku, di mana orang-orang yang bergolek 153 00:07:20,170 --> 00:07:21,750 dan anda membawa 1, jadi untuk bercakap. 154 00:07:21,750 --> 00:07:23,320 Jadi ini, sudah tentu, adalah 4. 155 00:07:23,320 --> 00:07:25,160 >> Tetapi jika anda ke hadapan yang laju sekarang, apa nombor yang terbesar akan 156 00:07:25,160 --> 00:07:26,660 untuk menjadi yang komputer boleh mewakili? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Jadi ia hanya tujuh dalam kes ini, bukan? 159 00:07:32,380 --> 00:07:35,570 Kerana anda mempunyai satu dalam empat, satu dalam dua, satu dalam satu. 160 00:07:35,570 --> 00:07:36,900 Jadi itulah 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Jadi yang memberikan anda tujuh. 162 00:07:37,972 --> 00:07:39,680 Dan sesungguhnya, ia akan kelihatan pada pandangan pertama 163 00:07:39,680 --> 00:07:43,750 bahawa komputer boleh mengira tidak lebih daripada ini. 164 00:07:43,750 --> 00:07:45,210 >> Tetapi ini sudah tentu tidak benar. 165 00:07:45,210 --> 00:07:48,243 Apa yang kita manusia lakukan apabila kita mahu untuk mengira yang lebih 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 menambah digit keempat ke kiri. 168 00:07:53,900 --> 00:07:55,070 Dan maka sesungguhnya kita boleh. 169 00:07:55,070 --> 00:07:57,900 Kita boleh mempunyai lapan ini tempat dan tempat ke-16 ini, 170 00:07:57,900 --> 00:08:02,000 dan tempat yang 32 itu, 64, 128-- dan anda hanya boleh menyimpan berlaku sehingga infiniti. 171 00:08:02,000 --> 00:08:04,640 Jadi ini sifar dan ones-- dipanggil system-- binari 172 00:08:04,640 --> 00:08:10,290 adalah apa yang seorang saintis komputer akan umumnya memanggil sedikit, atau angka binari. 173 00:08:10,290 --> 00:08:13,590 >> Tetapi sekarang, bagaimana kita dapat daripada konsep atau grafik perkara-perkara ini 174 00:08:13,590 --> 00:08:14,620 kepada komputer sebenar? 175 00:08:14,620 --> 00:08:17,170 Kita seolah-olah ponteng langkah di sini. 176 00:08:17,170 --> 00:08:20,210 Well, satu-satunya input pada akhir hari, ke komputer riba saya di sini 177 00:08:20,210 --> 00:08:22,060 aliran ini elektrik. 178 00:08:22,060 --> 00:08:24,560 Walaupun ia telah lama masa kerana anda berfikir tentang 179 00:08:24,560 --> 00:08:26,580 atau tidak pernah berfikir tentang bagaimana elektrik berfungsi, 180 00:08:26,580 --> 00:08:30,909 ada elektron yang mengalir di dalam atau keluar, dan itulah saya jenis input. 181 00:08:30,909 --> 00:08:34,659 >> Jadi, jika itu sahaja yang kita mendapat sebagai input di sini, 182 00:08:34,659 --> 00:08:36,830 apa yang boleh kita lakukan dengan maklumat tersebut? 183 00:08:36,830 --> 00:08:40,040 Nah, kita mungkin berfikir sifar sebagai hanya ketiadaan elektrik. 184 00:08:40,040 --> 00:08:42,540 Tidak ada yang flowinw, tiada apa yang bergerak, tiada apa yang berlaku. 185 00:08:42,540 --> 00:08:44,690 Itu hanya lalai state-- sifar. 186 00:08:44,690 --> 00:08:48,200 Tetapi jika ada elektrik mengalir, mengapa tidak kita hanya sewenang-wenangnya, tetapi di seluruh dunia 187 00:08:48,200 --> 00:08:50,250 konsisten, memanggil bahawa salah satu. 188 00:08:50,250 --> 00:08:54,760 >> Jadi hanya dengan tidak mempunyai kuasa, kita mempunyai sifar, ya kuasa, 189 00:08:54,760 --> 00:08:57,520 kita mempunyai one-- tidak ada kuasa, ya kuasa. 190 00:08:57,520 --> 00:09:01,520 Dan dengan cara itu, menggunakan sesuatu lebih fizikal atau elektronik 191 00:09:01,520 --> 00:09:05,340 kita mula melaksanakan idea ini daripada sesuatu sama ada menjadi satu atau sifar. 192 00:09:05,340 --> 00:09:07,230 Malah, kita boleh melakukannya di sini. 193 00:09:07,230 --> 00:09:10,590 tidak jadi di sini, saya mempunyai tiga tetapi lapan mentol lampu, setiap yang 194 00:09:10,590 --> 00:09:11,810 mempunyai suis sendiri. 195 00:09:11,810 --> 00:09:15,760 >> Dan jadi jika saya mahu untuk mewakili nombor tujuh di sini, 196 00:09:15,760 --> 00:09:18,510 Saya mungkin menghidupkan tiga mentol lampu. 197 00:09:18,510 --> 00:09:21,470 Dan sesungguhnya, di dalam komputer saya adalah berjuta-juta, 198 00:09:21,470 --> 00:09:25,650 berbilion-bilion perkara yang hanya lebih kecil daripada itu, yang dikenali sebagai transistor, 199 00:09:25,650 --> 00:09:27,330 suis, yang anda hanya menghidupkan dan mematikan. 200 00:09:27,330 --> 00:09:30,420 Jadi ini big-- agak suis big-- dalam laptop-- saya 201 00:09:30,420 --> 00:09:32,150 banyak, banyak, banyak, banyak lagi suis. 202 00:09:32,150 --> 00:09:35,160 Tetapi semua mereka lakukan adalah tepat bahawa- menghidupkan sesuatu pada, menjadikan sesuatu dari. 203 00:09:35,160 --> 00:09:38,076 Dan oleh itu, komputer boleh mewakili, dengan orang-orang berjuta-juta atau berbilion-bilion 204 00:09:38,076 --> 00:09:40,480 transistor, banyak dan banyak sifar dan satu. 205 00:09:40,480 --> 00:09:43,160 Dan ada perkakasan lain masih yang membolehkan anda menyimpan maklumat jangka panjang, 206 00:09:43,160 --> 00:09:45,243 supaya apabila anda menarik plug, anda tidak hilang. 207 00:09:45,243 --> 00:09:46,900 Tetapi itu cerita untuk hari lain. 208 00:09:46,900 --> 00:09:51,170 >> Jadi apa yang kita boleh lakukan dengan bit ini? 209 00:09:51,170 --> 00:09:54,309 Mungkin kita hanya untuk mengambil tekanan kira me-- 210 00:09:54,309 --> 00:09:56,600 mungkin seseorang mahu datang di sini dan mempersembahkan demo? 211 00:09:56,600 --> 00:09:57,516 Saya melihat tangan pertama ini. 212 00:09:57,516 --> 00:09:58,709 Apa nama anda? 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 Gembira dapat bertemu dengan anda. 216 00:10:01,250 --> 00:10:02,390 MADAY: Nice untuk bertemu dengan kamu. 217 00:10:02,390 --> 00:10:02,930 >> DAVID MALAN: Marilah cara ini. 218 00:10:02,930 --> 00:10:04,182 Saya tidak perlu bibir kamu. 219 00:10:04,182 --> 00:10:04,682 Baiklah. 220 00:10:04,682 --> 00:10:11,090 Jadi di sini, kita ada, notice-- satu, two-- kami akan mengedit out-- satu, dua, empat, 221 00:10:11,090 --> 00:10:13,350 lapan, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Ini adalah sengaja. 223 00:10:14,220 --> 00:10:17,370 Ada lapan bit sini-- binari sifar digits-- dan satu. 224 00:10:17,370 --> 00:10:21,460 Dan sedikit ialah unit berguna measure-- tidak berguna unit ukuran 225 00:10:21,460 --> 00:10:21,999 ke sendiri. 226 00:10:21,999 --> 00:10:24,290 Biasanya anda mahu sekurang-kurangnya lapan perkara-perkara ini, juga dikenali sebagai 227 00:10:24,290 --> 00:10:24,790 bait. 228 00:10:24,790 --> 00:10:26,230 Jadi kita mempunyai bait bit di sini. 229 00:10:26,230 --> 00:10:31,130 >> Jadi, jika kita mahu untuk mencabar anda dengan, misalnya, mengeja, dalam binari, 230 00:10:31,130 --> 00:10:33,230 nilai ini sini-- 42. 231 00:10:33,230 --> 00:10:35,140 Mahu mengambil tikaman pada itu? 232 00:10:35,140 --> 00:10:36,034 >> MADAY: [didengar]. 233 00:10:36,034 --> 00:10:38,700 DAVID MALAN: Ya, hanya menolak suis putih yang kecil di hadapan. 234 00:10:38,700 --> 00:10:41,290 Dan anda mahu untuk mengeja daripada 42, dan untuk dimenangi 235 00:10:41,290 --> 00:10:44,061 adalah tekanan 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 mempunyai 32. 238 00:10:46,420 --> 00:10:48,430 Kami akan memerlukan 42. 239 00:10:48,430 --> 00:10:51,410 Jadi itulah lapan, 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 >> [BERTEPUK TANGAN] 243 00:10:58,790 --> 00:10:59,290 Baiklah. 244 00:10:59,290 --> 00:11:00,623 Oleh itu, kita mempunyai satu lagi tekanan bola. 245 00:11:00,623 --> 00:11:03,595 Mari kita buat ini sekali lagi jika kita boleh. 246 00:11:03,595 --> 00:11:05,368 Seorang sukarelawan yang lain? 247 00:11:05,368 --> 00:11:07,970 bola tekanan percuma, bola tekanan percuma. 248 00:11:07,970 --> 00:11:08,470 OKEY. 249 00:11:08,470 --> 00:11:11,640 Di sini di tengah-tengah, anda ingin turun? 250 00:11:11,640 --> 00:11:14,100 Baiklah. 251 00:11:14,100 --> 00:11:15,552 Saya tahu. 252 00:11:15,552 --> 00:11:16,360 Di sana kami pergi. 253 00:11:16,360 --> 00:11:20,818 >> Jadi nombor sini-- datang ke 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 OKEY. 258 00:11:23,320 --> 00:11:24,810 Naiklah, Davey. 259 00:11:24,810 --> 00:11:25,890 Gembira dapat bertemu dengan anda. 260 00:11:25,890 --> 00:11:28,639 Dan apa yang kita akan mempunyai anda spell-- jika anda boleh berlama-lama di sana 261 00:11:28,639 --> 00:11:32,810 hanya satu moment-- adalah nombor 50. 262 00:11:32,810 --> 00:11:36,293 Tetapi, tetapi, tetapi tetapi, tetapi, ini adalah magnet sekolah rendah untuk sebab. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Hanya mendapat sedikit lebih keras, ok? 265 00:11:43,327 --> 00:11:44,160 Masih ada lapan. 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 ada di sana? 269 00:11:48,486 --> 00:11:51,356 Kami mempunyai 32. 270 00:11:51,356 --> 00:11:54,344 Nice. 271 00:11:54,344 --> 00:11:58,610 32 plus 16 memberikan kita 48-- begitu dekat. 272 00:11:58,610 --> 00:12:00,390 Dan indah. 273 00:12:00,390 --> 00:12:02,831 Tahniah kepada Davey juga. 274 00:12:02,831 --> 00:12:05,720 >> [BERTEPUK TANGAN] 275 00:12:05,720 --> 00:12:06,516 >> Baiklah. 276 00:12:06,516 --> 00:12:09,390 Oleh itu, kita boleh melakukan ini sepanjang hari, dan ia tidak mendapat semua yang banyak lebih 277 00:12:09,390 --> 00:12:10,800 menarik dan lebih mencabar. 278 00:12:10,800 --> 00:12:13,250 Tetapi itu benar-benar point-- yang adalah bagaimana agak mudah 279 00:12:13,250 --> 00:12:16,930 ia adalah, pada akhir hari, apa yang komputer tidak untuk menyimpan maklumat, 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 Tetapi nombor sahaja tidak semua yang menarik itu. 282 00:12:23,750 --> 00:12:26,069 >> Jadi manusia, beberapa tahun yang lalu, membuat keputusan, anda tahu apa? 283 00:12:26,069 --> 00:12:27,860 Ia akan lebih baik jika komputer tidak hanya 284 00:12:27,860 --> 00:12:31,030 kalkulator untuk aritmetik operasi, tetapi sebenarnya boleh 285 00:12:31,030 --> 00:12:35,209 melakukan perkara seperti pemprosesan perkataan, atau e-mel, atau jelmaan lebih moden 286 00:12:35,209 --> 00:12:36,500 jenis-jenis teknologi. 287 00:12:36,500 --> 00:12:40,680 Dan supaya dunia memutuskan sewenang-wenangnya, tetapi universal, 288 00:12:40,680 --> 00:12:44,380 bahawa jika anda mahu untuk menyimpan modal Surat dalam komputer, anda tahu apa? 289 00:12:44,380 --> 00:12:47,730 Mari kita semua bersetuju untuk menyimpan beberapa corak sifar dan ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- yang akhirnya mewakili nombor perpuluhan 65. 291 00:12:52,422 --> 00:12:53,630 Kami akan hanya bersetuju mengenai 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 corak yang lain sifar dan satu, atau nombor asas, 294 00:13:00,210 --> 00:13:02,224 yang akan mewakili surat lain yang masih. 295 00:13:02,224 --> 00:13:04,390 Jadi, jika anda jenis mental menyerap ini untuk seketika, 296 00:13:04,390 --> 00:13:10,900 Saya sengaja meletakkan A melalui I, di mana H 72 dan saya adalah 73. 297 00:13:10,900 --> 00:13:15,830 Jika komputer itu, dalam konteks program pemprosesan perkataan atau e-mel, 298 00:13:15,830 --> 00:13:19,620 mendedahkan di bawah hood untuk mempunyai ini corak corak bits-- 299 00:13:19,620 --> 00:13:22,500 bit mewakili 72, kemudian 73, kemudian 33-- 300 00:13:22,500 --> 00:13:26,640 apa yang mungkin ini mengeja 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 semestinya tahu, tetapi sesungguhnya 33-- tidak pada carta earlier-- 303 00:13:31,460 --> 00:13:33,170 adalah semata-mata tanda seru. 304 00:13:33,170 --> 00:13:38,870 Jadi 72 adalah H, 73 I, 33 berlaku menjadi tanda seru masih. 305 00:13:38,870 --> 00:13:41,719 Tetapi itu semua baik dan baik, dan sebenarnya pada masa kini, dan bukannya 306 00:13:41,719 --> 00:13:43,760 hanya menggunakan tujuh atau lapan bit, terima kasih kepada sesuatu 307 00:13:43,760 --> 00:13:46,530 dipanggil Unicode berbanding kepada ASCII kembali pada hari itu, 308 00:13:46,530 --> 00:13:50,010 kita sebenarnya boleh mewakili lebih watak-watak menarik daripada hanya 309 00:13:50,010 --> 00:13:52,980 ini asal Bahasa Inggeris berat sebelah huruf. 310 00:13:52,980 --> 00:13:56,030 Tetapi kita juga boleh mewakili walaupun perkara yang lebih kemas 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 bermakna bahawa komputer biasanya menggunakan tiga set bits-- 313 00:14:03,510 --> 00:14:06,760 beberapa bilangan bit yang mewakili beberapa berapa banyak merah yang anda mahu, 314 00:14:06,760 --> 00:14:08,940 satu lagi set bit untuk berapa banyak yang hijau yang anda mahu, 315 00:14:08,940 --> 00:14:11,430 dan satu lagi beberapa set untuk berapa banyak biru yang anda mahu. 316 00:14:11,430 --> 00:14:14,457 Jadi satu jumlah yang besar bererti banyak merah, sebilangan kecil bermakna tiada merah. 317 00:14:14,457 --> 00:14:16,290 Dan sebagainya ini adalah jenis nilai pertengahan di sini. 318 00:14:16,290 --> 00:14:20,180 >> Jadi memberi saya merah, memberi saya beberapa hijau, dan memberikan saya sedikit biru. 319 00:14:20,180 --> 00:14:24,260 Dan jika anda campuran ketiga-tiga warna warna bersama-sama, dalam kes ini, 320 00:14:24,260 --> 00:14:26,850 anda mendapat naungan keruh ini kuning atau coklat. 321 00:14:26,850 --> 00:14:32,330 Tetapi telah mentaati lapan plus lapan plus eight-- jadi 24 bits-- 322 00:14:32,330 --> 00:14:36,550 kiri ke kanan, adalah bagaimana komputer akan mewakili warna yang tertentu. 323 00:14:36,550 --> 00:14:38,090 Sekarang ini adalah hanya satu titik pada skrin. 324 00:14:38,090 --> 00:14:42,230 Jika anda kelihatan benar-benar dekat di TV anda anda komputer, anda akan melihat titik atau piksel. 325 00:14:42,230 --> 00:14:45,420 Dan jika anda mempunyai grid keseluruhan piksel, mendatar dan menegak, 326 00:14:45,420 --> 00:14:46,630 anda mempunyai imej. 327 00:14:46,630 --> 00:14:49,029 Dan kemudian jika anda mengambil imej dan kemudian mencuci 328 00:14:49,029 --> 00:14:52,070 menunjukkan diri anda imej yang lain, satu lagi imej, imej yang lain, imej yang lain, 329 00:14:52,070 --> 00:14:54,760 benar-benar cepat, anda sudah tentu mempunyai filem. 330 00:14:54,760 --> 00:14:56,109 >> Dan sebagainya notis di mana kita bermula. 331 00:14:56,109 --> 00:14:57,650 Kami bermula dengan ini sifar dan satu. 332 00:14:57,650 --> 00:15:00,570 Kami bekerja dari sana kepada perpuluhan nombor, bagaimana kita mewakili mereka. 333 00:15:00,570 --> 00:15:02,070 Sekarang kita mempunyai huruf abjad. 334 00:15:02,070 --> 00:15:05,664 Tetapi dalam konteks yang lain menunggu, kita boleh menggunakan beberapa bit dan mewakili warna. 335 00:15:05,664 --> 00:15:07,830 Sebaik sahaja anda mempunyai keupayaan untuk mewakili warna, 336 00:15:07,830 --> 00:15:11,200 anda mempunyai keupayaan untuk mewakili gambar-gambar dan gifs animasi 337 00:15:11,200 --> 00:15:13,780 dan lain-lain watak-watak itu pada skrin. 338 00:15:13,780 --> 00:15:17,160 Dan apabila anda mempunyai sejumlah besar imej terbang oleh manusia pada satu masa, 339 00:15:17,160 --> 00:15:21,480 ia kelihatan seperti gambar bergerak, dan supaya anda mendapatkan video juga. 340 00:15:21,480 --> 00:15:23,460 >> Jadi menggunakan ini sangat primitif mudah kita 341 00:15:23,460 --> 00:15:28,070 mempunyai cara yang mewakili akhirnya semua bentuk-bentuk media. 342 00:15:28,070 --> 00:15:30,450 Dan kami telah disarikan lagi dan lagi dan lagi, sehingga kita 343 00:15:30,450 --> 00:15:33,467 mendapatkan dari peringkat rendah ke tahap tertinggi ini. 344 00:15:33,467 --> 00:15:35,550 Supaya memberikan kita ini idea umum abstraksi. 345 00:15:35,550 --> 00:15:36,990 Tetapi kita bermula di sini. 346 00:15:36,990 --> 00:15:38,790 >> Di sini sekarang, kita mungkin mewakili dalam suatu komputer 347 00:15:38,790 --> 00:15:41,920 input kami dengan sifar dan satu, output kami di sifar dan satu, 348 00:15:41,920 --> 00:15:43,640 tetapi apa yang berlaku di dalam kotak? 349 00:15:43,640 --> 00:15:46,080 Itulah di mana komputer sains mendapat menarik. 350 00:15:46,080 --> 00:15:49,770 Itulah di mana anda benar-benar membawa anda fikiran sendiri untuk menanggung untuk menyelesaikan masalah. 351 00:15:49,770 --> 00:15:52,590 Kami kini boleh menetapkan, bagi sepanjang semester, ya. 352 00:15:52,590 --> 00:15:53,870 Aku tahu bagaimana binari. 353 00:15:53,870 --> 00:15:57,942 Saya masih ingat bagaimana Ascii atau Unicode-- pemetaan untuk letters-- kerja-kerja. 354 00:15:57,942 --> 00:15:59,650 Dan ia pasti berdiri dengan alasan kita yang 355 00:15:59,650 --> 00:16:03,470 boleh mewakili merah dan hijau dan biru, dan mewakili multimedia juga. 356 00:16:03,470 --> 00:16:05,390 Tetapi ini adalah barangan yang menarik. 357 00:16:05,390 --> 00:16:09,790 Inilah yang membuat seseorang mampu menyelesaikan masalah. 358 00:16:09,790 --> 00:16:11,980 >> Dan satu masalah seperti kita suka lakukan, sesungguhnya, 359 00:16:11,980 --> 00:16:15,345 mengambil kehadiran, atau melakukan ini secara algoritma. 360 00:16:15,345 --> 00:16:16,470 Dan sekali lagi, saya boleh melakukan ini. 361 00:16:16,470 --> 00:16:19,580 Saya mungkin melakukan satu, dua, tiga, empat lima, enam, tujuh, lapan sembilan. 362 00:16:19,580 --> 00:16:21,520 Dan saya boleh tulis ke bawah untuk mengesan ia. 363 00:16:21,520 --> 00:16:23,769 Tetapi itu hanya bagaimana saya akan mewakili maklumat. 364 00:16:23,769 --> 00:16:27,550 Atau saya boleh melakukan ini faster-- dua, empat, enam, lapan, sepuluh, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- rasanya dua kali secepat tetapi ia masih 366 00:16:30,380 --> 00:16:32,050 akan mengambil banyak masa. 367 00:16:32,050 --> 00:16:35,990 >> Tetapi ternyata, jika kita memanfaatkan lagi lain resource-- dan sesungguhnya komputer 368 00:16:35,990 --> 00:16:38,940 hari ini mempunyai pelbagai CPU atau otak. 369 00:16:38,940 --> 00:16:41,970 Ternyata komputer boleh melakukan banyak perkara pada satu masa, 370 00:16:41,970 --> 00:16:44,460 dan sesungguhnya kami, di dalam bilik ini, mungkin mewakili betul-betul ini. 371 00:16:44,460 --> 00:16:47,130 >> Jadi ia sedikit sosial janggal, tetapi jika anda akan humor saya 372 00:16:47,130 --> 00:16:51,550 hanya satu proses tiga langkah, mari saya tanya semua orang di tempat sana hanya 373 00:16:51,550 --> 00:16:54,640 untuk berdiri untuk seketika. 374 00:16:54,640 --> 00:16:57,380 Berdiri. 375 00:16:57,380 --> 00:17:01,580 Jadi berfikir kepada diri sendiri, nombor one-- supaya semua orang di dalam bilik ini, 376 00:17:01,580 --> 00:17:05,010 kecuali orang-orang yang tidak memaksa, berfikir nombor satu. 377 00:17:05,010 --> 00:17:06,510 Jadi itulah nombor anda sekarang. 378 00:17:06,510 --> 00:17:09,399 Itu adalah langkah pertama, atau sebagai ahli sains komputer atau programmer 379 00:17:09,399 --> 00:17:11,827 biasanya akan lakukan, kita akan untuk mula mengira pada sifar. 380 00:17:11,827 --> 00:17:14,410 Jika nombor yang paling kecil kita boleh mewakili dengan mereka mentol lampu 381 00:17:14,410 --> 00:17:17,410 adalah sifar, dengan hanya meninggalkan mereka semua itu, saya mungkin juga hanya 382 00:17:17,410 --> 00:17:19,271 mula mengira dari sifar adalah bukan satu. 383 00:17:19,271 --> 00:17:21,020 Dan sebagainya itulah yang saintis komputer lakukan. 384 00:17:21,020 --> 00:17:23,750 Jadi langkah sifar, berdiri dan memikirkan nombor satu. 385 00:17:23,750 --> 00:17:26,339 Langkah seterusnya adalah pasangan this-- off dengan seseorang berdiri 386 00:17:26,339 --> 00:17:27,660 dan menambah nombor anda bersama-sama. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Indah. 389 00:17:32,850 --> 00:17:37,640 >> Jadi pada masa ini dalam masa, literal semua orang yang mengambil bahagian 390 00:17:37,640 --> 00:17:41,930 sedang memikirkan untuk nombor 2, kecuali untuk satu orang ganjil jika kita mempunyai 391 00:17:41,930 --> 00:17:43,450 nombor ganjil orang di dalam bilik. 392 00:17:43,450 --> 00:17:50,640 Dan kini langkah ketiga di sini akan dapat this-- salah satu daripada anda perlu duduk. 393 00:17:50,640 --> 00:17:54,490 Salah satu anda perlu 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 lebih ramai orang sepatutnya dapat duduk. 400 00:19:03,880 --> 00:19:08,280 Perhatikan bahawa ini telah mendorong yang loop-- beberapa jenis kitaran. 401 00:19:08,280 --> 00:19:11,983 Sebahagian daripada anda harus canggung tersekat, pergi dan 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 Tidak mengapa. 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 Biar saya cuba untuk merangsang perkara bersama-sama. 409 00:19:27,370 --> 00:19:31,454 >> Dalam teori, hanya satu orang berdiri seperti yang semua orang terus berpasangan. 410 00:19:31,454 --> 00:19:33,870 Tetapi biarlah saya mempercepatkan perkara dengan orang yang masih berdiri. 411 00:19:33,870 --> 00:19:35,480 Apa nombor yang anda fikirkan? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 OKEY. 414 00:19:36,570 --> 00:19:37,820 Teruskan 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 nombor yang anda fikirkan? 418 00:19:45,240 --> 00:19:46,160 OKEY. 419 00:19:46,160 --> 00:19:47,900 >> Oleh itu, kita akan kembali kepada anda. 420 00:19:47,900 --> 00:19:49,630 Di belakang? 421 00:19:49,630 --> 00:19:50,790 Apakah itu? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK orang lain sehingga top-- yeah? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 OKEY. 426 00:19:58,300 --> 00:20:02,780 Di sini pada 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 >> OKEY. 430 00:20:08,990 --> 00:20:10,031 Dan siapa yang masih berdiri? 431 00:20:10,031 --> 00:20:11,000 Dekat sini? 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 Saya tidak boleh gerai lebih lama. 435 00:20:18,220 --> 00:20:20,520 Yeah? 436 00:20:20,520 --> 00:20:22,490 30, nice. 437 00:20:22,490 --> 00:20:24,120 Dekat sini? 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 fikir itu semua orang kecuali anda semua, tiada 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 lapan. 445 00:20:38,281 --> 00:20:38,780 OKEY. 446 00:20:38,780 --> 00:20:41,030 Hanya lapan. 447 00:20:41,030 --> 00:20:42,580 Bawah ini? 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 merupakan pelaksanaan yang paling teruk algoritma ini pernah. 454 00:20:54,690 --> 00:20:55,190 OKEY. 455 00:20:55,190 --> 00:20:59,760 Jadi orang lain? 456 00:20:59,760 --> 00:21:00,421 Sesiapa lagi? 457 00:21:00,421 --> 00:21:00,920 OKEY. 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 OKEY. 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 terlepas sesiapa dalam silau di sini, apabila saya tekan Enter, 464 00:21:09,070 --> 00:21:13,091 kita lihat, algorithmically, yang Jumlah penduduk di Sanders. 465 00:21:13,091 --> 00:21:16,340 Kerana sekali lagi, ia seolah-olah semua orang seperti yang anda duduk, meninggal nombor anda off 466 00:21:16,340 --> 00:21:19,215 kepada orang lain, kepada orang lain, kepada orang lain, supaya dalam teori, 467 00:21:19,215 --> 00:21:22,304 pada akhirnya, hanya satu janggal orang harus dibiarkan berdiri. 468 00:21:22,304 --> 00:21:22,970 Tetapi itulah denda. 469 00:21:22,970 --> 00:21:24,290 Kami dipercepatkan perkara secara manual. 470 00:21:24,290 --> 00:21:27,590 Ia amat sukar untuk melihat dalam ruang tertentu. 471 00:21:27,590 --> 00:21:34,200 >> Dan jumlah bilangan orang kita fikir ada di sini adalah 546. 472 00:21:34,200 --> 00:21:37,330 Jumlah saya tangan oleh felo pengajaran, 473 00:21:37,330 --> 00:21:40,660 siapa yang melakukannya lama cara sekolah lambat, adalah 820. 474 00:21:40,660 --> 00:21:43,660 >> [KETAWA] 475 00:21:43,660 --> 00:21:47,170 >> [BERTEPUK TANGAN] 476 00:21:47,170 --> 00:21:48,670 >> Tidak mengapa. 477 00:21:48,670 --> 00:21:50,740 Jadi pasti kemudian, terdapat serangga ini. 478 00:21:50,740 --> 00:21:51,460 Dan itulah denda. 479 00:21:51,460 --> 00:21:53,810 Dan supaya berfikir kembali ini yang sesuatu yang kali pertama 480 00:21:53,810 --> 00:21:55,420 anda menulis tidak semestinya bekerja. 481 00:21:55,420 --> 00:21:57,620 Ini telah berlaku kepada saya di sini juga. 482 00:21:57,620 --> 00:22:00,844 Tetapi mari kita kini mempertimbangkan bagaimana kita mungkin memohon idea yang sama untuk sesuatu 483 00:22:00,844 --> 00:22:03,760 anda mungkin telah melihat sebelum ini, yang ialah yang lalu sini-- teknologi sekolah 484 00:22:03,760 --> 00:22:05,130 buku telefon yang sangat besar. 485 00:22:05,130 --> 00:22:09,380 Dan andaikan bahawa buku telefon ini mempunyai 1,000 muka surat dan 1000 nama-nama 486 00:22:09,380 --> 00:22:11,360 dan nombor abjad di dalamnya. 487 00:22:11,360 --> 00:22:14,860 >> Well, kita jenis boleh memohon yang sama idea untuk masalah yang sangat fizikal ini, 488 00:22:14,860 --> 00:22:16,270 hanya menggunakan saya. 489 00:22:16,270 --> 00:22:18,810 Saya hanya jenis ditipu dengan memanfaatkan anda semua 490 00:22:18,810 --> 00:22:23,240 dengan banyak dan banyak CPU yang berbeza atau otak melaksanakan beberapa algoritma. 491 00:22:23,240 --> 00:22:25,440 Tetapi jika ia hanya sedikit lama saya, saya masih boleh 492 00:22:25,440 --> 00:22:29,630 memanfaatkan intipati yang sama idea membahagikan dan menakluk masalah yang 493 00:22:29,630 --> 00:22:32,970 lagi dan lagi, di mana separuh daripada anda, separuh daripada anda, separuh daripada anda, separuh daripada anda, 494 00:22:32,970 --> 00:22:35,830 secara teori disimpan duduk, sehingga kita dibiarkan, secara teori, 495 00:22:35,830 --> 00:22:36,990 dengan hanya satu orang. 496 00:22:36,990 --> 00:22:39,810 >> Jadi dalam sekolah lama ini technology-- kita tidak 497 00:22:39,810 --> 00:22:43,030 perlu ini map-- ini teknologi sekolah lama, 498 00:22:43,030 --> 00:22:47,300 kita mungkin mula mencari seseorang suka Mike Smith, satu halaman pada satu masa. 499 00:22:47,300 --> 00:22:49,410 Dan saya melihat bahawa tidak ada, Mike tidak ada di sini. 500 00:22:49,410 --> 00:22:51,110 Saya masih dalam seksyen A. 501 00:22:51,110 --> 00:22:53,900 Akhirnya, saya mendapati diri saya dalam seksyen B. 502 00:22:53,900 --> 00:22:56,910 Dan ini adalah algorithm-- yang langkah demi langkah arahan. 503 00:22:56,910 --> 00:22:59,890 Bermula pada halaman awal dan yang pada satu masa, mencari Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Adakah ini correct-- ini algoritma atau pendekatan? 505 00:23:03,410 --> 00:23:04,550 >> Ya, ia betul. 506 00:23:04,550 --> 00:23:06,840 Jika Mike ada di sini, akhirnya Saya akan mendapatkan kepadanya. 507 00:23:06,840 --> 00:23:08,139 Tetapi ia tidak cekap. 508 00:23:08,139 --> 00:23:09,180 Ia jelas sangat perlahan. 509 00:23:09,180 --> 00:23:11,340 Jadi saya boleh memanfaatkan twosies sama mendekati. 510 00:23:11,340 --> 00:23:15,350 Saya mempunyai jenis dua, empat, enam, lapan, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Ia adalah dua kali lebih cepat. 512 00:23:16,330 --> 00:23:18,290 Saya akan dapat Mike lebih cepat jika dia ada. 513 00:23:18,290 --> 00:23:20,770 Betulkah? 514 00:23:20,770 --> 00:23:22,320 Ya, tetapi saya mendengar tidak little--. 515 00:23:22,320 --> 00:23:24,200 Sekarang saya mendengar tiada a. 516 00:23:24,200 --> 00:23:24,700 Yeah. 517 00:23:24,700 --> 00:23:26,190 Ada bug berpotensi. 518 00:23:26,190 --> 00:23:29,374 Mungkin Mike hanya sengaja mendapat diapit di antara dua muka surat, 519 00:23:29,374 --> 00:23:31,290 kerana saya terbang melalui ini dua pada satu masa. 520 00:23:31,290 --> 00:23:33,580 Jadi sekurang-kurangnya kita perlu beberapa jenis tetap bersyarat. 521 00:23:33,580 --> 00:23:35,330 Saya perlu berkata, hey, jika saya memukul seseorang yang 522 00:23:35,330 --> 00:23:39,190 nama bermula dengan T bukannya S, Saya lebih baik menggandakan kembali sekurang-kurangnya satu halaman. 523 00:23:39,190 --> 00:23:40,767 Jadi kereta pada mulanya, tetapi dipecahkan. 524 00:23:40,767 --> 00:23:43,850 Tetapi tidak seorang pun daripada kita akan mencari Mike Smith melalui telefon 1000 halaman 525 00:23:43,850 --> 00:23:45,290 menempah satu halaman pada satu masa. 526 00:23:45,290 --> 00:23:48,486 Apa yang orang biasa 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 secara kasar ke tengah atau sedikit condong ke arah akhir. 529 00:23:54,230 --> 00:23:56,850 Dan saya melihat ke bawah di sini dan Saya dalam seksyen M. 530 00:23:56,850 --> 00:23:58,952 Tetapi apa yang anda tahu tentang masalah ini sekarang, 531 00:23:58,952 --> 00:24:02,160 bahawa kita tidak semestinya tahu sebelum dengan kita semua hanya mengira diri kita 532 00:24:02,160 --> 00:24:03,030 setara? 533 00:24:03,030 --> 00:24:06,010 Well, Mike jelas akan berada dalam setengah ini buku 534 00:24:06,010 --> 00:24:07,920 jika dia di sini sama sekali kerana ia disusun. 535 00:24:07,920 --> 00:24:10,160 >> Dan supaya anda boleh sangat dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Tercungap-cungap] 537 00:24:11,250 --> 00:24:12,300 >> Saya tahu. 538 00:24:12,300 --> 00:24:16,940 >> [BERTEPUK TANGAN] 539 00:24:16,940 --> 00:24:19,450 >> Ia sebenarnya benar-benar mudah jika anda melakukannya ke bawah tulang belakang di sana. 540 00:24:19,450 --> 00:24:22,070 Tetapi anda boleh membuang separuh daripada masalah yang jauh. 541 00:24:22,070 --> 00:24:25,950 Sekarang, saya ditinggalkan dengan problem-- yang sama mencari Mike Smith dalam telefon book-- 542 00:24:25,950 --> 00:24:29,610 tetapi kini buku telefon bermula pada M dan pergi ke Z, tetapi ia separuh besar. 543 00:24:29,610 --> 00:24:30,890 >> Tetapi ini adalah apa yang mengesankan. 544 00:24:30,890 --> 00:24:34,170 Sama seperti dalam teori, anda semua, apabila anda semua duduk hanya separuh pada satu masa, 545 00:24:34,170 --> 00:24:37,150 masalah ini mendapat setengah sebagai besar, separuh besar, lagi dan lagi. 546 00:24:37,150 --> 00:24:40,260 Jadi telah masalah ini menjadi Masalah yang sama tetapi separuh besar. 547 00:24:40,260 --> 00:24:42,670 Kini ia adalah satu masalah 250 halaman. 548 00:24:42,670 --> 00:24:45,340 Sebaik sahaja saya sedar, oh, Saya dalam seksyen T sengaja. 549 00:24:45,340 --> 00:24:46,590 Saya telah pergi terlalu jauh. 550 00:24:46,590 --> 00:24:48,500 Saya boleh membuang separuh buku telefon jauh. 551 00:24:48,500 --> 00:24:50,410 Sekarang, saya turun kepada perempat daripada masalah. 552 00:24:50,410 --> 00:24:53,910 >> Dan anda boleh ulangi, ulangi, ulangi sehingga, dalam teori, anda 553 00:24:53,910 --> 00:24:55,460 ditinggalkan dengan hanya satu halaman. 554 00:24:55,460 --> 00:24:59,010 Dan jika Mike adalah pada laman tersebut, Saya kini boleh menyelesaikan masalah ini. 555 00:24:59,010 --> 00:25:00,810 Tetapi berapa cepat yang saya menyelesaikannya? 556 00:25:00,810 --> 00:25:05,420 Dalam kes pertama, ia membawa saya seperti mungkin 1000 langkah-langkah untuk mencari Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Ia mungkin mengambil me-- Saya mengambil buku telefon 558 00:25:09,260 --> 00:25:11,440 dan saya mula mencari satu halaman pada satu masa, 559 00:25:11,440 --> 00:25:13,480 dan Mike mungkin 1,000 muka surat kemudian. 560 00:25:13,480 --> 00:25:16,020 >> Pendekatan kedua mungkin mengambil saya 500 langkah-langkah, 561 00:25:16,020 --> 00:25:17,960 kerana saya terbang melalui dua pada satu masa. 562 00:25:17,960 --> 00:25:21,082 Dan pendekatan ketiga walaupun, ia amat kuat. 563 00:25:21,082 --> 00:25:23,790 Tetapi mari kita mempertimbangkan apa yang kita sebenarnya lakukan dengan Pendekatan ketiga ini. 564 00:25:23,790 --> 00:25:27,590 Saya akan mempunyai apa yang saya akan memanggil hanya ini kenyataan di sini, satu pada satu masa. 565 00:25:27,590 --> 00:25:28,560 Mengambil sebuah buku telefon. 566 00:25:28,560 --> 00:25:30,130 Dibuka kepada pertengahan buku telefon. 567 00:25:30,130 --> 00:25:31,419 Lihatlah nama. 568 00:25:31,419 --> 00:25:33,960 Dan kemudian perkara mendapatkan sedikit lebih intelektual yang menarik, 569 00:25:33,960 --> 00:25:35,170 jika masih mudah. 570 00:25:35,170 --> 00:25:38,350 Jika Smith adalah antara nama pada bahawa laman semasa, 571 00:25:38,350 --> 00:25:40,170 kemudian melakukan sesuatu yang bersyarat. 572 00:25:40,170 --> 00:25:41,840 Ia seperti garpu di jalan raya. 573 00:25:41,840 --> 00:25:42,660 Panggil Mike. 574 00:25:42,660 --> 00:25:44,930 Jika Mike merupakan antara nama yang pada laman tersebut, yang dikenali sebagai Mike. 575 00:25:44,930 --> 00:25:49,720 Tetapi hanya berbuat garis empat jika talian pokok, jika anda akan, adalah benar. 576 00:25:49,720 --> 00:25:51,590 Jawapan kepada soalan itu adalah ya. 577 00:25:51,590 --> 00:25:55,520 >> Lain jika Smith adalah awal book-- yang dalam erti kata lain, jika saya dalam seksyen M 578 00:25:55,520 --> 00:25:58,540 dan saya mencari orang yang dapat kiri, maka apa yang perlu saya lakukan 579 00:25:58,540 --> 00:26:00,300 adalah sesuatu yang amat serupa. 580 00:26:00,300 --> 00:26:03,440 Kemudian saya perlu membuka ke tengah separuh kiri buku ini. 581 00:26:03,440 --> 00:26:07,930 Oleh itu, pergilah 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 dalam erti kata lain, melakukan perkara yang sama, tetapi masalah yang sudah separuh. 584 00:26:12,779 --> 00:26:13,570 Anda tahu apa lagi? 585 00:26:13,570 --> 00:26:16,470 Jika Smith yang kemudian dalam buku ini berdasarkan pada halaman saya melihat, 586 00:26:16,470 --> 00:26:18,790 dibuka kepada orang tengah separuh betul buku ini 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 sama ada 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 sebenarnya, jika anda pernah mempunyai komputer anda hanya kemalangan kepada anda, 592 00:26:33,360 --> 00:26:36,822 yang kadang-kadang, tetapi tidak biasa, hasil hanya programmer manusia tidak 593 00:26:36,822 --> 00:26:39,280 menyedari, oh menembak, ada sebenarnya senario keempat ini. 594 00:26:39,280 --> 00:26:41,650 Dan jika anda tidak menulis kod untuk mengendalikan situasi ini, 595 00:26:41,650 --> 00:26:43,220 kadang-kadang anda tidak tahu apa komputer mungkin lakukan. 596 00:26:43,220 --> 00:26:44,770 Dan sesungguhnya program mungkin crash. 597 00:26:44,770 --> 00:26:47,550 >> Tetapi dalam kes ini, saya fikir mengenainya, dan saya berkata, lain berhenti, 598 00:26:47,550 --> 00:26:49,850 kerana itulah keempat senario yang mungkin logik. 599 00:26:49,850 --> 00:26:51,950 Sekarang, mari kita hanya menambah beberapa perbendaharaan kata jadi kami 600 00:26:51,950 --> 00:26:55,320 boleh mula melambungkan sekitar istilah yang sebaliknya cukup intuitif. 601 00:26:55,320 --> 00:26:57,870 Semua perkara yang saya baru sahaja berwarna kuning di sini, 602 00:26:57,870 --> 00:27:00,140 Saya hanya pergi ke fungsi atau prosedur. 603 00:27:00,140 --> 00:27:01,590 Mereka jenis hanya tindakan. 604 00:27:01,590 --> 00:27:04,900 Jadi mengambil, terbuka kepada, melihat di, panggilan, terbuka, terbuka, 605 00:27:04,900 --> 00:27:09,170 quit-- ini hanya tindakan, atau kita akan memanggil mereka lebih secara rasmi, fungsi. 606 00:27:09,170 --> 00:27:11,410 >> Sementara itu, kini dalam warna kuning, Saya telah menekankan perkara 607 00:27:11,410 --> 00:27:14,084 bahawa- mari kita mula memanggil mereka syarat atau cawangan. 608 00:27:14,084 --> 00:27:16,750 Ini adalah titik di mana keputusan anda mungkin pergi cara ini, cara ini, 609 00:27:16,750 --> 00:27:18,100 atau beberapa arahan lain masih. 610 00:27:18,100 --> 00:27:19,430 Jadi mereka akan menjadi syarat. 611 00:27:19,430 --> 00:27:20,930 Dan kini satu ini adalah sedikit pelamun. 612 00:27:20,930 --> 00:27:24,600 Mari kita memanggil soalan-soalan ini ungkapan Boolean, 613 00:27:24,600 --> 00:27:26,530 selepas seseorang dengan nama akhir Bool. 614 00:27:26,530 --> 00:27:28,340 >> Dan ungkapan Boolean hanya sesuatu 615 00:27:28,340 --> 00:27:30,290 itulah sama ada benar atau palsu, ya atau tidak. 616 00:27:30,290 --> 00:27:35,870 Jadi ia adalah soalan yang jawapan anda mengambil berat tentang, untuk berada dalam keadaan yang 617 00:27:35,870 --> 00:27:39,210 membuat decision-- kembali jawapan, 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 akhir sekali, ini garis sini-- kembali 620 00:27:42,860 --> 00:27:44,737 ke langkah dua, kembali untuk melangkah two-- kita boleh 621 00:27:44,737 --> 00:27:46,320 melaksanakan idea ini dengan cara yang berbeza. 622 00:27:46,320 --> 00:27:49,028 Dan kemudian Persekitaran dengan pengalaman pengaturcaraan mungkin telah dilakukan 623 00:27:49,028 --> 00:27:50,670 atau boleh bayangkan melakukan ini berbeza. 624 00:27:50,670 --> 00:27:53,170 Tetapi untuk tujuan hari ini, ia adalah hanya idea yang penting. 625 00:27:53,170 --> 00:27:55,400 Ini mendorong apa kita biasanya akan memanggil 626 00:27:55,400 --> 00:28:00,110 yang loop-- beberapa jenis kitaran, kerana ia membuat saya melakukan sesuatu lagi. 627 00:28:00,110 --> 00:28:03,340 >> Oleh sebab itu, mari kita mempertimbangkan bagaimana baik algoritma ini adalah. 628 00:28:03,340 --> 00:28:03,899 Itu betul. 629 00:28:03,899 --> 00:28:06,940 Jika Mike dalam buku ini, ia adalah salah satu mereka empat scenarios-- lagi dan lagi 630 00:28:06,940 --> 00:28:08,023 dan sekali lagi, kita akan mencari dia. 631 00:28:08,023 --> 00:28:08,890 Tetapi bagaimana gunanya itu? 632 00:28:08,890 --> 00:28:10,150 Nah, kita tidak mempunyai terlalu formal di sini. 633 00:28:10,150 --> 00:28:12,066 Tetapi mari kita hanya merancang 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 paksi-x di sini adalah saiz masalah saya. 636 00:28:17,160 --> 00:28:20,256 Dan mereka yang y-axis sini akan menjadi masa untuk menyelesaikan. 637 00:28:20,256 --> 00:28:21,630 Jadi mungkin ini adalah bilangan muka surat. 638 00:28:21,630 --> 00:28:24,400 Mungkin ini adalah saat atau halaman turns-- apa sahaja. 639 00:28:24,400 --> 00:28:27,290 Walau bagaimanapun anda mahu mengira adalah apa gambar ini akan mewakili. 640 00:28:27,290 --> 00:28:30,630 Dan bahawa algoritma pertama, saya akan untuk menggambarkan sebagai hanya satu garis lurus. 641 00:28:30,630 --> 00:28:33,120 Jika ada n muka surat dalam buku telefon, maka ia 642 00:28:33,120 --> 00:28:36,010 mungkin mengambil saya sebagai banyak sebagai langkah n untuk mencari Mike. 643 00:28:36,010 --> 00:28:38,930 Jika Verizon atau syarikat telefon menambah satu halaman lagi tahun depan, 644 00:28:38,930 --> 00:28:42,170 ia mungkin mengambil masa saya sekali lagi step-- satu unit masa untuk mencari Mike. 645 00:28:42,170 --> 00:28:44,230 Jadi terdapat hanya satu ini kepada satu nisbah. 646 00:28:44,230 --> 00:28:45,970 Ia adalah satu garis cerun lurus. 647 00:28:45,970 --> 00:28:49,110 >> Sementara itu, kedua yang algorithm-- jika saya 648 00:28:49,110 --> 00:28:51,570 akan dua pada dua yang time--, empat, enam, lapan, atau double-- 649 00:28:51,570 --> 00:28:54,550 melalui halaman dua kali pada satu masa, dua pada satu masa, 650 00:28:54,550 --> 00:28:55,710 ia masih garis lurus. 651 00:28:55,710 --> 00:28:58,720 Kini terdapat 01:59 nisbah, tetapi hanya sedikit lebih rendah. 652 00:28:58,720 --> 00:29:02,240 Jadi, jika ada banyak halaman ini pada carta di sini dalam kuning, 653 00:29:02,240 --> 00:29:04,800 yang mungkin membawa saya ini banyak langkah atau saat, 654 00:29:04,800 --> 00:29:07,980 jika tidak ia akan membawa saya dua kali ganda di laluan merah. 655 00:29:07,980 --> 00:29:10,190 >> Tetapi garis hijau adalah Fleet sebenar. 656 00:29:10,190 --> 00:29:12,290 Ini adalah apa yang kita biasanya memanggil log logorithm-- 657 00:29:12,290 --> 00:29:13,840 n, di mana n adalah bilangan muka surat. 658 00:29:13,840 --> 00:29:16,450 Tetapi ia adalah bentuk yang penting hari ini, kerana kita tidak mempunyai 659 00:29:16,450 --> 00:29:17,950 untuk memikirkan tentang memplot titik. 660 00:29:17,950 --> 00:29:19,830 >> Fikirkan tentang senario yang melampau. 661 00:29:19,830 --> 00:29:23,070 Katakan Verizon esok beregu Bilangan halaman dalam buku telefon, 662 00:29:23,070 --> 00:29:24,900 dari 1,000 hingga 2,000. 663 00:29:24,900 --> 00:29:28,440 Dalam algoritma pertama, saya mungkin membazirkan tambahan 1000 664 00:29:28,440 --> 00:29:32,080 langkah mencari Mike, hanya kerana Verizon menggandakan saiz buku ini. 665 00:29:32,080 --> 00:29:34,740 Kedua algorithm-- ia mungkin membawa saya tambahan 500 langkah. 666 00:29:34,740 --> 00:29:38,370 1000 lebih halaman, saya pergi dua pada satu time-- 500 lebih langkah-langkah untuk mencari Mike. 667 00:29:38,370 --> 00:29:41,020 >> Tetapi itu algoritma ketiga adalah jenis ajaib. 668 00:29:41,020 --> 00:29:44,270 Verizon beregu jumlah halaman dari 1000 ke 2000, 669 00:29:44,270 --> 00:29:47,730 tetapi berapa banyak lagi langkah-langkah yang tidak ia membawa saya untuk mencari Mike? 670 00:29:47,730 --> 00:29:51,220 Ia hanya satu, kerana saya boleh hanya lusuh buku telefon sekali lagi 671 00:29:51,220 --> 00:29:55,280 daripada masalah 2000 halaman kepada 1000 masalah halaman, dan Voilà. 672 00:29:55,280 --> 00:29:57,030 Saya telah mengambil santapan besar daripada itu. 673 00:29:57,030 --> 00:29:59,405 >> Dan jika anda pergi benar-benar melampau, menganggap bahawa buku telefon 674 00:29:59,405 --> 00:30:03,600 syarikat mempunyai sesuatu yang gila seperti yang 4 bilion halaman buku telefon. 675 00:30:03,600 --> 00:30:07,020 Well jumlah langkah ia mungkin mengambil masa untuk mencari Mike Smith dalam 4 bilion 676 00:30:07,020 --> 00:30:09,990 halaman buku telefon? 677 00:30:09,990 --> 00:30:16,450 Ia adalah satu jumlah yang besar, tetapi hanya 4 bilion kepada 2 bilion untuk 1000000000-500,000,000, 678 00:30:16,450 --> 00:30:18,720 250 million-- masih bunyi seperti nombor besar, 679 00:30:18,720 --> 00:30:20,980 tetapi saya sangat cepat mendapat nilai-nilai yang lebih kecil. 680 00:30:20,980 --> 00:30:24,790 >> Dan sebenarnya, jika saya melakukan matematik betul, saya hanya boleh membahagikan 4 bilion 681 00:30:24,790 --> 00:30:28,750 oleh kira-kira 32 kali sebelum Saya turun ke hanya satu. 682 00:30:28,750 --> 00:30:31,640 Jadi, jika buku telefon adalah 4 bilion muka surat yang panjang, ada masalah besar. 683 00:30:31,640 --> 00:30:35,270 Dalam masa beberapa saat, mungkin 32 saat, saya boleh bahagikan kepada dua bahagian 684 00:30:35,270 --> 00:30:39,560 dan akhirnya mencari Mike atau membuat kesimpulan bahawa beliau tidak ada. 685 00:30:39,560 --> 00:30:42,219 Dan itulah intipati yang algorithm-- algoritma yang baik. 686 00:30:42,219 --> 00:30:44,260 Dan itulah salah satu daripada matlamat kelas seperti ini, 687 00:30:44,260 --> 00:30:47,350 cuba untuk memikirkan bagaimana saya menyelesaikan masalah ini bukan hanya dengan betul, 688 00:30:47,350 --> 00:30:52,360 seperti saya sentiasa tahu bagaimana untuk melakukannya satu halaman pada time-- tetapi dengan betul dan baik. 689 00:30:52,360 --> 00:30:55,034 Bagaimana saya mereka bentuk baik penyelesaian kepada masalah? 690 00:30:55,034 --> 00:30:57,200 Jadi mari kita mengambil kesempatan ini, dan memberikan anda kefahaman yang sekarang 691 00:30:57,200 --> 00:31:00,260 CS50 kursus itself-- memperkenalkan kakitangan kursus Beberapa ini. 692 00:31:00,260 --> 00:31:02,010 Sebelum 02:00, kita akan berehat sebentar 693 00:31:02,010 --> 00:31:03,520 supaya Persekitaran yang membeli-belah boleh 694 00:31:03,520 --> 00:31:05,130 itik keluar dan mengambil lihat beberapa kelas yang lain 695 00:31:05,130 --> 00:31:06,580 dan menonton seluruh talian ini. 696 00:31:06,580 --> 00:31:09,250 Tetapi buat masa ini, izinkan saya memperkenalkan CS50, kelas itu sendiri, 697 00:31:09,250 --> 00:31:11,330 dan terutama apa yang baru. 698 00:31:11,330 --> 00:31:13,960 >> Jadi musim bunga lalu, kami menghabiskan masa agak sedikit time-- 699 00:31:13,960 --> 00:31:17,911 kakitangan kursus dan Saya-- berfikir tentang apa yang kita mahu CS50 menjadi, 700 00:31:17,911 --> 00:31:19,910 dan pergi kepada pertama prinsip, jadi untuk bercakap, 701 00:31:19,910 --> 00:31:22,760 untuk mempertimbangkan apa yang kita mahu kursus ini kelihatan seperti dan 702 00:31:22,760 --> 00:31:23,740 seperti untuk pelajarnya. 703 00:31:23,740 --> 00:31:26,480 Dan supaya anda akan melihat dalam masalah menetapkan sifar juga, jemputan 704 00:31:26,480 --> 00:31:28,780 untuk mengambil lihat yang URL yang meringkaskan 705 00:31:28,780 --> 00:31:33,270 beberapa motivasi di belakang berikut ciri-ciri musim luruh 2016. 706 00:31:33,270 --> 00:31:35,570 >> Jadi seperti yang anda mungkin telah dikumpulkan dari TL: nota DR, 707 00:31:35,570 --> 00:31:39,060 sukatan pelajaran hari ini dan juga dari katalog tentu, tahun ini di CS50, 708 00:31:39,060 --> 00:31:42,540 anda hanya diharapkan untuk menghadiri today-- supaya kerja yang done-- 709 00:31:42,540 --> 00:31:45,960 dan kuliah yang terakhir pada 21 November. 710 00:31:45,960 --> 00:31:49,150 Dan anda dialu-alukan tetapi tidak dijangka menghadiri kuliah mereka di tengah-tengah, 711 00:31:49,150 --> 00:31:51,180 kerana apa yang kita lakukan tahun ini, menembak 712 00:31:51,180 --> 00:31:52,661 dalam masa nyata bahan kursus ini. 713 00:31:52,661 --> 00:31:54,660 Jadi semuanya akan kekal semasa dan diperbadankan 714 00:31:54,660 --> 00:31:57,410 sebaik mungkin can-- peristiwa-peristiwa semasa dan perbualan yang orang mungkin 715 00:31:57,410 --> 00:32:00,400 dapat mempunyai dalam industri dalam dunia, tetapi membuat bahan yang 716 00:32:00,400 --> 00:32:03,892 ada, hasilnya, walaupun earlier-- lengkap dengan transkrip teks penuh 717 00:32:03,892 --> 00:32:05,850 dan searchability dan pautan kepada sumber-sumber lain. 718 00:32:05,850 --> 00:32:07,930 >> Dan sesungguhnya kami telah menuntut masa 719 00:32:07,930 --> 00:32:10,830 dan kami kini percaya ini, bahawa kita boleh membuat, secara digital, 720 00:32:10,830 --> 00:32:15,170 yang lebih mendalam, yang lebih menarik pengalaman pendidikan, berbanding 721 00:32:15,170 --> 00:32:19,110 untuk mengumpul di sini beberapa 23 kali secara peribadi, seseorang mendengar seperti saya 722 00:32:19,110 --> 00:32:22,925 hanya bercakap tentang sains komputer, berbanding dengan mengambil lebih aktif. 723 00:32:22,925 --> 00:32:25,800 Jadi, anda akan melihat dalam sukatan pelajaran kursus lakaran semester di sini, 724 00:32:25,800 --> 00:32:27,840 bersama-sama dengan apabila kuliah akan difilemkan, yang anda berada 725 00:32:27,840 --> 00:32:29,710 dialu-alukan tetapi tidak dijangka, dan apabila mereka akan 726 00:32:29,710 --> 00:32:31,640 dikeluarkan pada laman web kursus ini. 727 00:32:31,640 --> 00:32:34,300 >> Dan apa yang kita akan lakukan di sini pada Rabu bermula minggu depan, 728 00:32:34,300 --> 00:32:37,362 adalah lebih rapat, dengan hanya mereka orang yang ingin mengambil bahagian, 729 00:32:37,362 --> 00:32:39,820 adalah berjalan kaki yang dipanggil melalui, di mana saya dan ketua kursus ini 730 00:32:39,820 --> 00:32:41,730 sebenarnya akan membuat perkara yang sedikit lebih intim 731 00:32:41,730 --> 00:32:44,313 turun di sini dalam orkestra seksyen, masih mempunyai beberapa teknologi 732 00:32:44,313 --> 00:32:46,365 dan berjalan melalui set masalah minggu semasa, 733 00:32:46,365 --> 00:32:50,020 dan menawarkan anda particularly-- jika di kalangan mereka yang kurang comfortable-- semua lebih 734 00:32:50,020 --> 00:32:52,790 bimbingan yang mungkin anda mahu atau perlu untuk cabaran minggu ini. 735 00:32:52,790 --> 00:32:55,820 Begitu juga, bagi mereka yang tidak boleh menghadiri mereka secara peribadi, tiada masalah besar. 736 00:32:55,820 --> 00:32:58,486 Terdapat akan juga diketuai oleh salah seorang kakitangan kanan kursus ini, 737 00:32:58,486 --> 00:33:02,650 Zamalya, peluang yang sama tertanam dalam masalah yang menetapkan diri mereka sendiri. 738 00:33:02,650 --> 00:33:04,960 >> Masalah menetapkan tahun ini akan dikeluarkan pada hari Jumaat 739 00:33:04,960 --> 00:33:08,080 dan tidak lagi melakukan tujuh hari kemudian, tetapi 10 hari later-- sengaja 740 00:33:08,080 --> 00:33:10,910 bertindih dengan setiap masalah menetapkan, untuk lebih baik menampung, 741 00:33:10,910 --> 00:33:13,050 kami berharap, pasang surut dalam jadual pelajar, 742 00:33:13,050 --> 00:33:16,550 terutamanya apabila ujian tengah semester atau olahraga atau ahli akademik atau ko-kurikulum 743 00:33:16,550 --> 00:33:18,465 cenderung untuk datang dan pergi terutamanya pertengahan semester. 744 00:33:18,465 --> 00:33:21,340 Yang sepatutnya memberikan anda yang lebih sedikit budi bicara sama ada anda depan 745 00:33:21,340 --> 00:33:25,690 memuatkan minggu anda dengan CS50 atau beban belakang pada hujung minggu berikutnya sebaliknya. 746 00:33:25,690 --> 00:33:28,817 Oleh itu, mencari sukatan pelajaran kursus ini di sini untuk jadual 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 biasa dengan pengaturcaraan pada masa lalu, 749 00:33:34,082 --> 00:33:36,290 kami akan memulakan semester seperti yang kita akan hari di Awal, 750 00:33:36,290 --> 00:33:39,730 memberi tumpuan terutamanya kepada bahasa yang dipanggil C, dan kemudian tidak beralih 751 00:33:39,730 --> 00:33:43,430 untuk PHP, tetapi untuk bahasa yang dipanggil Python pada akhir semester 752 00:33:43,430 --> 00:33:46,565 dalam konteks pengaturcaraan web, bersama-sama dengan SQL dan JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, dan lagi lebih. 754 00:33:48,930 --> 00:33:51,790 >> Dan dalam jawapan kepada FAQ, sesungguhnya ia kes yang 755 00:33:51,790 --> 00:33:55,520 yang CS tidak begitu menakutkan kerana saya pernah fikir ia adalah, tetapi ia adalah kerana banyak kerja 756 00:33:55,520 --> 00:33:57,280 kerana saya telah mendengar ia mungkin. 757 00:33:57,280 --> 00:34:03,210 Tetapi ini katakan bahawa di sini adalah beberapa statistik daripada kejatuhan 2015 badan pelajar, 758 00:34:03,210 --> 00:34:06,460 mana garis biru mendatar mewakili purata bilangan jam 759 00:34:06,460 --> 00:34:06,960 dilaporkan. 760 00:34:06,960 --> 00:34:10,570 Dan anda akan melihat purata enam hingga 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 supaya sedar bahawa tidak ada hanya pelajar lebih selesa dan kurang 763 00:34:18,570 --> 00:34:22,150 selesa dalam perjalanan, tetapi sokongan yang sepadan 764 00:34:22,150 --> 00:34:25,699 struktur untuk mendapatkan pelajar-pelajar melalui semester dengan jayanya. 765 00:34:25,699 --> 00:34:29,409 >> Malah, dalam jawapan kepada Soalan Lazim, sekiranya anda mengambil CS50 sebagai tahun pertama? 766 00:34:29,409 --> 00:34:30,139 Sama sekali. 767 00:34:30,139 --> 00:34:32,690 Dan sebenarnya, saya menyesal tidak telah mendapati cara saya 768 00:34:32,690 --> 00:34:35,170 atau didapati satu bidang baru tahun pertama juga. 769 00:34:35,170 --> 00:34:39,149 Dan anda harus mengambil CS50 dengan kursus-kursus lain, Demi well-- 770 00:34:39,149 --> 00:34:41,940 dan nasihat umum kita mungkin memberi pelajar, CS50 itu mungkin 771 00:34:41,940 --> 00:34:44,929 bukan jenis kelas atau kelas intro yang anda perlu mengambil dengan tiga 772 00:34:44,929 --> 00:34:47,199 lain atau empat kelas p-set lain-lain. 773 00:34:47,199 --> 00:34:50,583 Tetapi jika anda mengambil dua lagi p-set kelas, sesuatu yang lain, dan CS50, 774 00:34:50,583 --> 00:34:51,499 benar-benar terkawal. 775 00:34:51,499 --> 00:34:54,900 Saya mempunyai ramai pelajar di lalu berbuat demikian agak berjaya. 776 00:34:54,900 --> 00:34:57,490 >> Dan untuk mendapatkan anda ke arah yang menamatkan talian dengan jayanya, 777 00:34:57,490 --> 00:35:00,260 adakah kursus mempunyai sections-- trek yang berbeza untuk pelajar 778 00:35:00,260 --> 00:35:03,100 kurang selesa, lebih selesa, dan di suatu tempat di antara, 779 00:35:03,100 --> 00:35:04,850 di mana dalam perjalanan ini set masalah pertama, 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 adalah antara mereka yang kurang selesa, ia adalah jenis perkara 782 00:35:09,151 --> 00:35:10,420 bahawa anda hanya lebih tahu. 783 00:35:10,420 --> 00:35:13,010 Dan sesungguhnya, itu menjadi berkembang demografi di CS50 784 00:35:13,010 --> 00:35:14,090 untuk beberapa tahun. 785 00:35:14,090 --> 00:35:17,680 >> Sehingga jatuh lepas untuk contoh, 58% daripada kelas 786 00:35:17,680 --> 00:35:20,560 menyifatkan diri mereka sebagai di kalangan mereka yang kurang selesa, 787 00:35:20,560 --> 00:35:23,210 dengan 9% di kalangan mereka yang lebih selesa, dan kemudian 788 00:35:23,210 --> 00:35:25,900 pelajar-pelajar lain di sana pada merah menggambarkan diri mereka sendiri 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 lihat di sini topik keseluruhan dan jadual bahagian, semua yang 791 00:35:31,980 --> 00:35:34,820 ditawarkan dalam orang, dalam masa sebenar, dengan kursus ini 792 00:35:34,820 --> 00:35:38,320 kakitangan menakjubkan felo pengajaran dan kursus pembantu, sesetengah daripada mereka 793 00:35:38,320 --> 00:35:39,660 anda akan bertemu dalam hanya seketika. 794 00:35:39,660 --> 00:35:42,993 >> Seksyen diri mereka sendiri, seperti yang anda akan lihat, akan menjadi hari Isnin dan Selasa dan Rabu, 795 00:35:42,993 --> 00:35:45,910 untuk membolehkan anda untuk menyelam selepas menarik, jika anda supaya 796 00:35:45,910 --> 00:35:48,110 pilih, dalam perjalanan ini kuliah awal minggu itu. 797 00:35:48,110 --> 00:35:51,420 Dan kemudian waktu pejabat, yang pasti, dengan setiap tahun yang berlalu, 798 00:35:51,420 --> 00:35:54,110 telah tidak kurang daripada mencabar untuk kursus. 799 00:35:54,110 --> 00:35:57,040 Dan tahun ini, kami tidak merancang hanya memegang jawatan hours-- satu 800 00:35:57,040 --> 00:36:00,300 pada satu peluang untuk bantuan untuk pelajar pada hari Rabu Khamis 801 00:36:00,300 --> 00:36:03,790 dan Ahad, yang terakhir dari orang-orang berada di sebelah petang oleh reka bentuk 802 00:36:03,790 --> 00:36:06,910 untuk mengurangkan beberapa tekanan yang selalunya timbul lewat malam 803 00:36:06,910 --> 00:36:10,180 p-settting dengan tarikh akhir yang looming-- tetapi waktu pejabat juga akan ditawarkan 804 00:36:10,180 --> 00:36:14,920 pada hari Isnin dan Selasa dan Hari Rabu, dan Jumaat dan Sabtu, 805 00:36:14,920 --> 00:36:17,080 terima kasih kepada rakan-rakan kami di HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 kini mempunyai ruang sendiri untuk pelajar dan kakitangan CS50, 807 00:36:20,330 --> 00:36:23,070 di atas 67 Mount Auburn Street, di sana di Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Visi yang adalah bahawa CS50 TFS dan CA sepanjang minggu ini, 809 00:36:26,340 --> 00:36:29,052 cukup banyak di sebahagian hari, akan berada di sana untuk sokongan. 810 00:36:29,052 --> 00:36:30,760 Jadi jika anda telah mendapat beberapa soalan pada p-set 811 00:36:30,760 --> 00:36:33,093 atau anda berasa sedikit disekat atau sedikit keliru, 812 00:36:33,093 --> 00:36:35,640 dan palang pintu, anda telah mendapat satu jam atau setengah jam antara kelas, 813 00:36:35,640 --> 00:36:38,920 terutamanya dalam square-- yang boleh anda pop dalam dan mempunyai menjawab soalan yang 814 00:36:38,920 --> 00:36:41,720 daripada mempunyai kekeliruan yang clarified-- sangat banyak di dalam roh, 815 00:36:41,720 --> 00:36:45,490 anda biasa, matematik yang sendiri pusat soalan matematik jabatan, 816 00:36:45,490 --> 00:36:49,300 tetapi cukup banyak sepanjang masa setiap [? GCal?] Kita akan menyiarkan dalam talian. 817 00:36:49,300 --> 00:36:52,400 >> Tutoring juga disediakan bagi mereka pelajar, bebas daripada kursus ini 818 00:36:52,400 --> 00:36:54,750 kakitangan sendiri jika anda mahu lebih intim satu lawan satu, 819 00:36:54,750 --> 00:36:58,940 atau dua atau tiga rakan-rakan sahaja, bekerja dengan salah satu daripada ahli-ahli kakitangan kursus ini. 820 00:36:58,940 --> 00:37:02,320 Dan sesungguhnya, adalah ini di sini sahaja beberapa ahli kakitangan kursus ini, 821 00:37:02,320 --> 00:37:04,120 beberapa daripada mereka anda akan bertemu dalam hanya seketika. 822 00:37:04,120 --> 00:37:07,440 Malah, CS50 sendiri kepala pengajaran rakan-rakan, 823 00:37:07,440 --> 00:37:09,790 dan kursus kepala pembantu, dan pendidik, 824 00:37:09,790 --> 00:37:12,998 boleh datang ke atas, ia membolehkan mereka untuk bertanya khabar. 825 00:37:12,998 --> 00:37:22,498 >> [BERTEPUK TANGAN] 826 00:37:22,498 --> 00:37:23,456 SPEAKER 1: [didengar]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [BERTEPUK TANGAN] 829 00:37:57,856 --> 00:37:58,814 SPEAKER 2: [didengar]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [BERTEPUK TANGAN] 832 00:38:27,238 --> 00:38:28,196 SPEAKER 3: [didengar]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [BERTEPUK TANGAN] 835 00:39:03,120 --> 00:39:06,740 >> DAVID MALAN: Dan membolehkan kita untuk membawa di atas kapal dua CS50 paling 836 00:39:06,740 --> 00:39:09,730 kakitangan kanan, Rob dan Zamayla juga. 837 00:39:09,730 --> 00:39:15,120 >> [BERTEPUK TANGAN] 838 00:39:15,120 --> 00:39:17,226 >> Malah, kedua-dua Rob dan Zamayla telah bersama kami 839 00:39:17,226 --> 00:39:19,940 sekian lama, yang saya dapat untuk pergi ke arkib CS50 840 00:39:19,940 --> 00:39:22,470 dan mencari sangat SD ini rakaman daripada mereka yang mengambil bahagian 841 00:39:22,470 --> 00:39:25,402 di atas pentas sendiri beberapa tahun lalu. 842 00:39:25,402 --> 00:39:26,110 ROB: [didengar]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [BERTEPUK TANGAN] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [didengar] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [BERTEPUK 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 sebagai tambahan kepada ini ahli pasukan di sini, 851 00:40:58,030 --> 00:41:01,662 CS50 mempunyai pasukan hampir 100 kakitangan, yang semuanya 852 00:41:01,662 --> 00:41:04,370 akan disediakan untuk bahagian dan waktu pejabat dan banyak lagi. 853 00:41:04,370 --> 00:41:06,920 Dan sebagai Rob berkata juga, ini adalah baik pulih yang paling penting 854 00:41:06,920 --> 00:41:09,534 CS50 dalam tempoh 10 tahun yang Saya telah berada dalam [didengar]. 855 00:41:09,534 --> 00:41:12,200 [Didengar] tertumpu terutamanya dalam menyediakan struktur sokongan, 856 00:41:12,200 --> 00:41:14,050 pemangkasan jauh banyak sebahagian besar yang sudah 857 00:41:14,050 --> 00:41:16,870 terkumpul dalam masa 10 tahun perkembangan lelaran 858 00:41:16,870 --> 00:41:18,120 pada set masalah tentu. 859 00:41:18,120 --> 00:41:21,470 >> Jadi tahun ini, bukan sahaja di dalam kelas tetapi juga dalam bentuk masalah tentu 860 00:41:21,470 --> 00:41:24,800 set, anda perlu mencari sesuatu untuk dapat lebih diselaraskan, trimmer, banyak 861 00:41:24,800 --> 00:41:26,700 lebih terkawal daripada pada tahun-tahun yang lalu, seperti yang kita 862 00:41:26,700 --> 00:41:31,330 menumpahkan beberapa bagasi itulah dibangunkan oleh sifat tahun berkembang 863 00:41:31,330 --> 00:41:32,970 demi tahun dan mengulanginya. 864 00:41:32,970 --> 00:41:35,110 Jadi baru dan lebih baik bermula hari ini. 865 00:41:35,110 --> 00:41:37,860 >> Anda akan bertemu dengan beberapa lebih daripada kakitangan kursus di dalam [didengar] 866 00:41:37,860 --> 00:41:40,186 pada jam 2:30, di mana kita berkhidmat, sebagai tradisi, kek. 867 00:41:40,186 --> 00:41:42,060 Ada kek sedikit lebih daripada itu, tetapi 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 biarlah saya memberikan anda lawatan sebelum kita mendengar 870 00:41:46,470 --> 00:41:49,600 dari beberapa ahli-ahli kakitangan lain dalam kelas, apa yang menanti juga. 871 00:41:49,600 --> 00:41:52,730 Malah, kita sentiasa bermula CS50 semester akan datang Sabtu, 872 00:41:52,730 --> 00:41:54,330 dengan apa yang dipanggil Hari CS50 Puzzle. 873 00:41:54,330 --> 00:41:56,710 >> Ia tidak ada kena mengena dengan sains komputer per se, 874 00:41:56,710 --> 00:41:58,669 tetapi dengan tentang masalah menyelesaikan amnya. 875 00:41:58,669 --> 00:42:01,210 Dan jika anda memilih untuk mengambil bahagian, setiap beberapa jemputan, 876 00:42:01,210 --> 00:42:03,460 anda mungkin telah melihat pintu menurun atau di atas pentas di sini, 877 00:42:03,460 --> 00:42:05,830 ia merupakan satu peluang dalam pasukan dua atau tiga atau empat, 878 00:42:05,830 --> 00:42:10,680 untuk mengambil bahagian untuk teka-teki dan pizza dan hadiah-hadiah dan more-- Sabtu ini, 879 00:42:10,680 --> 00:42:12,560 harap sabar menunggu untuk lebih. 880 00:42:12,560 --> 00:42:15,082 >> Anda akan mendapati terlalu bahawa setiap Jumaat, di Fire and Ice, 881 00:42:15,082 --> 00:42:16,790 tidak CS50 membawa seluruh sekumpulan pelajar 882 00:42:16,790 --> 00:42:19,100 untuk makan tengah hari, untuk membuat yang besar kelas berasa lebih intim, 883 00:42:19,100 --> 00:42:21,820 dan secara amnya membawa bersama-sama alumni dan rakan-rakan daripada industri 884 00:42:21,820 --> 00:42:24,710 untuk bercakap tentang apa yang mereka telah telah sehingga sejak tamat pengajian. 885 00:42:24,710 --> 00:42:27,820 Begitu juga, tahun ini, akan kita merasmikan pertama CS50 50 886 00:42:27,820 --> 00:42:31,390 pengekodan contest-- pertengahan semester peluang untuk membolehkan semua orang 887 00:42:31,390 --> 00:42:35,430 pada opt dalam asas, mempunyai cabaran kecerdasan terhadap rakan-rakan, 888 00:42:35,430 --> 00:42:39,250 lagi dalam pasukan dua atau tiga atau empat, dengan hanya menggunakan pengaturcaraan yang 889 00:42:39,250 --> 00:42:41,920 savvy yang kemudian mempunyai di bawah tali pinggang anda selepas hanya enam atau tujuh 890 00:42:41,920 --> 00:42:44,710 minggu kelas, dan mengambil bahagian dalam jenis ini persaingan 891 00:42:44,710 --> 00:42:50,261 online-- jika anda ingin untuk mengasah anda sendiri kemahiran lebih-lebih dalam cabaran itu. 892 00:42:50,261 --> 00:42:52,760 Pada akhir semester adalah yang dipanggil CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 peluang yang bermula pada 07:00 PM berakhir pada 7:00 AM, dan di sepanjang jalan 894 00:42:56,970 --> 00:43:01,900 12 jam malam di mana untuk menyelam ke dalam project-- akhir kursus ini 895 00:43:01,900 --> 00:43:04,820 peluang untuk mereka bentuk dan melaksanakan apa-apa yang paling menarik 896 00:43:04,820 --> 00:43:06,980 kepada anda dengan ajaranmu bimbingan rakan-rakan. 897 00:43:06,980 --> 00:43:09,600 Sekitar 9:00 kita biasanya berkhidmat pizza, 01:00, 898 00:43:09,600 --> 00:43:13,210 Philippe, dan beberapa daripada kita yang masih berjaga pada 05:00, 899 00:43:13,210 --> 00:43:16,310 adalah ulang-alik bussed turun Jalan ke IHOP untuk sarapan pagi. 900 00:43:16,310 --> 00:43:19,340 >> Dan kemudian beberapa hari kemudian adalah CS50 yang dipanggil fare-- 901 00:43:19,340 --> 00:43:23,450 yang akhir pameran semester dalam sambutan sejauh mana begitu banyak 902 00:43:23,450 --> 00:43:28,200 CS50 pelajar datang dari minggu sifar sehingga ke minggu, 903 00:43:28,200 --> 00:43:32,610 dan menyimpan dalam minda bahawa 73% daripada mereka yang rakan-rakan dan anda tahun ini mempunyai 904 00:43:32,610 --> 00:43:34,840 pernah mengambil kelas CS sebelum ini. 905 00:43:34,840 --> 00:43:39,226 Malah, untuk reemphasize sebanyak di sini adalah beberapa lagi muka daripada kakitangan CS50. 906 00:43:39,226 --> 00:43:40,184 SPEAKER 4: [didengar]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 SPEAKER 5: [didengar]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 SPEAKER 6: [didengar]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 SPEAKER 7: [didengar]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 SPEAKER 8: [didengar] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 SPEAKER 9: [didengar]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> SPEAKER 4: [didengar]. 919 00:44:15,461 --> 00:44:16,461 >> SPEAKER 10: [didengar]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 SPEAKER 11: [didengar]. 922 00:44:23,438 --> 00:44:24,438 SPEAKER 12: [didengar]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 SPEAKER 13: [didengar] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> SPEAKER 14: [didengar]. 927 00:44:40,342 --> 00:44:42,863 >> SPEAKER 13: [didengar]. 928 00:44:42,863 --> 00:44:43,821 SPEAKER 15: [didengar] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 SPEAKER 16: [didengar]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> SPEAKER 11: [didengar] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 SPEAKER 5: [didengar]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID MALAN: Sebahagian daripada pasukan sedang mereka membeli-belah kelas. 937 00:45:15,130 --> 00:45:17,760 Tetapi jika ahli-ahli kakitangan CS50 berada di sini, 938 00:45:17,760 --> 00:45:19,230 boleh datang pada sehingga hanya untuk seketika. 939 00:45:19,230 --> 00:45:23,450 CS50 TFS dan CA dan [? kakitangan ?] ahli sini-- ini hanya sedikit yang 940 00:45:23,450 --> 00:45:28,880 daripada faces-- salah seorang daripada mereka anda hanya melihat, dan beberapa other-- dan beberapa yang lain 941 00:45:28,880 --> 00:45:30,020 masih. 942 00:45:30,020 --> 00:45:33,242 Apa kata kita pergi ke depan dan membolehkan anda semua rehat lima minit. 943 00:45:33,242 --> 00:45:35,450 Jika anda perlu keluar untuk itik kelas kedai, itulah denda. 944 00:45:35,450 --> 00:45:38,900 Dan dalam masa lima minit, kami akan menyambung semula, mengambil melihat Scratch-- pertama 945 00:45:38,900 --> 00:45:42,420 bahasa pengaturcaraan kami, memenuhi Kakitangan perjalanan di sini ada yang lebih, 946 00:45:42,420 --> 00:45:45,020 dan menumpukan akhirnya pada masalah set sifar. 947 00:45:45,020 --> 00:45:46,710 Oleh itu, kita akan kembali dalam masa lima minit. 1 00:45:46,864 --> 00:45:47,370 >> Baiklah. 2 00:45:47,370 --> 00:45:48,590 Oleh itu, kita kembali. 3 00:45:48,590 --> 00:45:51,330 Dan dalam baki kami masa hari ini, matlamatnya 4 00:45:51,330 --> 00:45:54,320 adalah untuk memberi taraf yang sama dari segi beberapa istilah, 5 00:45:54,320 --> 00:45:55,297 dari segi beberapa idea. 6 00:45:55,297 --> 00:45:57,380 Kerana sesungguhnya, seperti beberapa carta lebih awal, 7 00:45:57,380 --> 00:46:00,130 ada akan menjadi pelbagai tahap pengalaman di dalam kelas, 8 00:46:00,130 --> 00:46:03,210 beberapa yang pelajar mempunyai mengambil beberapa program sebelum ini, 9 00:46:03,210 --> 00:46:04,200 sesetengah daripada mereka tidak mempunyai. 10 00:46:04,200 --> 00:46:07,430 Dan sebagainya dengan masalah pertama ini ditetapkan dan dengan bahasa pertama ini 11 00:46:07,430 --> 00:46:10,830 kita mempunyai peluang untuk memulakan mengambil mudah selepas hari ini 12 00:46:10,830 --> 00:46:12,960 beberapa perbendaharaan kata yang sama dan idea. 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 sebagai tambahan kepada C dan Python dan JavaScript dan SQL dan HTML dan CSS, 15 00:46:21,070 --> 00:46:24,450 kami akan memberi tumpuan pada mulanya dan hanya untuk masalah set sifar 16 00:46:24,450 --> 00:46:28,160 kepada bahasa grafik ini, yang dipanggil Scratch, yang dibangunkan oleh Makmal Media MIT'S 17 00:46:28,160 --> 00:46:30,880 di jalan, untuk membantu pelajar dan kanak-kanak terutamanya 18 00:46:30,880 --> 00:46:35,070 meluahkan perasaan algorithmically-- dengan cara yang lebih konsisten dengan apa yang 19 00:46:35,070 --> 00:46:37,300 kita mungkin panggilan pemikiran pengiraan. 20 00:46:37,300 --> 00:46:40,985 >> Dan ia adalah satu bahasa berguna kerana dengan cepat minggu depan dalam satu minggu, 21 00:46:40,985 --> 00:46:44,360 kita beralih kepada yang lebih bahasa tradisional dan batin dipanggil 22 00:46:44,360 --> 00:46:46,370 C, yang semata-mata teks. 23 00:46:46,370 --> 00:46:48,930 Anda hanya menggunakan papan kekunci anda dalam untuk menulis arahan 24 00:46:48,930 --> 00:46:50,230 seperti ini pada skrin. 25 00:46:50,230 --> 00:46:52,840 Tetapi, jika anda tidak pernah dilihat bahasa pengaturcaraan sebelum ini, 26 00:46:52,840 --> 00:46:55,170 dalam hanya sambil mengerling ke arah ini, semua sama ada samar, 27 00:46:55,170 --> 00:47:00,010 anda mungkin boleh meneka yang mungkin mencetak Hello World. 28 00:47:00,010 --> 00:47:02,050 Tetapi ada banyak overhead sintaksis sana. 29 00:47:02,050 --> 00:47:05,770 Terdapat hash yang pelik simbol atau hash tag sehingga atas. 30 00:47:05,770 --> 00:47:08,900 Ada kurungan sudut, beberapa kurungan, pendakap kerinting, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 terdapat hanya begitu banyak visual sintaks yang mendapat di jalan. 32 00:47:11,880 --> 00:47:13,940 Kami memulakan kursus dengan Scratch supaya untuk mendapatkan 33 00:47:13,940 --> 00:47:17,600 lalu semua orang-orang intelektual gangguan tidak menarik, 34 00:47:17,600 --> 00:47:20,290 dan sebaliknya memberi tumpuan kepada idea-idea. 35 00:47:20,290 --> 00:47:22,540 >> Malah, mungkin ini sebelum ini. 36 00:47:22,540 --> 00:47:24,830 Ini, untuk ini, minggu hendaklah selepas. 37 00:47:24,830 --> 00:47:26,760 Ini, grafik ini Scratch bahasa, 38 00:47:26,760 --> 00:47:29,870 adalah bagaimana anda akan melaksanakan yang sama program-- satu program yang apabila berjalan, 39 00:47:29,870 --> 00:47:31,340 hanya berkata hello dunia. 40 00:47:31,340 --> 00:47:34,740 Dan apa yang baik tentang Scratch adalah bahawa itu pengaturcaraan grafik ini 41 00:47:34,740 --> 00:47:38,780 persekitaran yang menggunakan kepingan teka-teki atau blok, yang hanya berpaut bersama-sama 42 00:47:38,780 --> 00:47:40,440 jika ia masuk akal logik untuk berbuat demikian. 43 00:47:40,440 --> 00:47:43,810 Dan dengan Scratch anda boleh membangunkan animasi dan permainan interaktif 44 00:47:43,810 --> 00:47:47,270 dan seni, dan apa-apa beberapa perkara yang anda mungkin bayangkan dalam fikiran anda sendiri, 45 00:47:47,270 --> 00:47:51,200 dan melaksanakannya hanya dengan mengheret dan menjatuhkan kepingan teka-teki. 46 00:47:51,200 --> 00:47:54,265 >> Dan sesungguhnya, kami akan mempunyai keupayaan untuk menyatakan beberapa idea-idea sama 47 00:47:54,265 --> 00:47:56,890 yang saya nyatakan tadi seketika lalu dalam konteks Mike Smith 48 00:47:56,890 --> 00:48:00,670 dan mencari perkara-perkara yang telefon book-- seperti fungsi, hanya tindakan, 49 00:48:00,670 --> 00:48:03,070 perkara seperti gelung yang melakukan perkara lagi dan lagi, 50 00:48:03,070 --> 00:48:05,170 pembolehubah, iaitu sesuatu yang kita akan memperkenalkan, 51 00:48:05,170 --> 00:48:08,086 tetapi ia biasa mungkin dari algebra-- hanya beberapa jenis pemegang tempat 52 00:48:08,086 --> 00:48:10,840 untuk menyimpan beberapa nilai yang anda mungkin perlu ungkapan Boolean later--, 53 00:48:10,840 --> 00:48:13,720 mana orang-orang yes no atau benar soalan palsu dari sebelum ini. 54 00:48:13,720 --> 00:48:17,117 Syarat ini adalah orang-orang garpu dalam road-- orang-orang cawangan jadi untuk bercakap. 55 00:48:17,117 --> 00:48:19,700 Dan kemudian ada beberapa pelamun ciri-ciri kita akan melihat sehingga ke hari ini, 56 00:48:19,700 --> 00:48:22,850 dipanggil tatasusunan dan benang dan peristiwa, yang kami kemudiannya akan mengkaji semula lebih 57 00:48:22,850 --> 00:48:24,460 masa dalam pelbagai bahasa. 58 00:48:24,460 --> 00:48:26,790 Tetapi Scratch membolehkan kita untuk menerokai semua ini. 59 00:48:26,790 --> 00:48:30,779 Jadi di sini dalam Scratch, ini ungu blok adalah apa fungsi yang biasanya 60 00:48:30,779 --> 00:48:31,570 akan kelihatan seperti. 61 00:48:31,570 --> 00:48:35,620 Ini sekeping teka-teki ungu yang mempunyai beberapa perkataan seperti berkata, yang merupakan tindakan itu, 62 00:48:35,620 --> 00:48:38,490 dan kemudian ia mungkin mempunyai hujah atau parameter-- yang beberapa cara 63 00:48:38,490 --> 00:48:41,140 daripada jenis menyesuaikan apa blok yang tidak 64 00:48:41,140 --> 00:48:45,182 supaya ia tidak pra-ditentukan oleh MIT apa blok ungu ini berkata. 65 00:48:45,182 --> 00:48:47,390 Malah, anda akan melihat dalam ketika itu saya dapat menaip 66 00:48:47,390 --> 00:48:49,931 kata-kata seperti dunia hello, atau hello David, atau hello Zamayla, 67 00:48:49,931 --> 00:48:53,750 atau apa sahaja yang saya mahu, dalam hujah untuk teka-teki yang piece-- kotak putih 68 00:48:53,750 --> 00:48:54,251 di sana. 69 00:48:54,251 --> 00:48:57,166 Sementara itu, jika saya mahu gelung, kita akan melihat bahawa terdapat kepingan teka-teki yang 70 00:48:57,166 --> 00:48:58,640 kelihatan oren kecil seperti ini. 71 00:48:58,640 --> 00:49:01,690 Dan bentuk mereka jenis mencadangkan bahawa sesuatu berlaku lagi dan lagi 72 00:49:01,690 --> 00:49:02,680 dalam kitaran. 73 00:49:02,680 --> 00:49:06,800 >> Jadi jika saya balut blok dunia bertanya khabar dengan selama-lamanya menyekat di Awal, 74 00:49:06,800 --> 00:49:10,307 ia hanya akan terus mengatakan hello dunia selama-lamanya, agak literal. 75 00:49:10,307 --> 00:49:12,390 Sementara itu, terdapat satu lagi jenis gelung dalam Scratch 76 00:49:12,390 --> 00:49:14,348 bahawa kita akan see-- berulang block-- di mana, jika anda 77 00:49:14,348 --> 00:49:17,940 tahu terlebih dahulu berapa kali anda mahu gelung untuk melaksanakan 78 00:49:17,940 --> 00:49:21,850 nombor terhingga kali dalam fact-- anda boleh menentukan bahawa dengan menaip sebilangan 79 00:49:21,850 --> 00:49:25,380 atau memasang pembolehubah, seperti x atau y seperti yang kita akan lihat. 80 00:49:25,380 --> 00:49:27,690 >> Malah, pembolehubah seperti i dalam kes ini, yang 81 00:49:27,690 --> 00:49:30,109 adalah nama biasa bagi pembolehubah integer yang 82 00:49:30,109 --> 00:49:31,900 hanya menyimpan number-- yang integer mungkin, 83 00:49:31,900 --> 00:49:35,470 menggunakan blok oren ini di sini untuk menetapkan pembolehubah seperti i kepada sifar. 84 00:49:35,470 --> 00:49:38,900 Berikut adalah satu contoh dalam hijau daripada ungkapan Boolean dalam Scratch. 85 00:49:38,900 --> 00:49:43,700 Walaupun ini kelihatan seperti matematik yang formula, ketidaksamaan matematik seperti ini 86 00:49:43,700 --> 00:49:45,320 sebenarnya ungkapan Boolean. 87 00:49:45,320 --> 00:49:46,570 Ini sama ada benar atau palsu. 88 00:49:46,570 --> 00:49:48,300 Saya adalah kurang daripada 50. 89 00:49:48,300 --> 00:49:51,815 Ia sama ada ya atau tidak jawapan atau jawapan benar atau palsu. 90 00:49:51,815 --> 00:49:53,940 Dan kita biasanya akan memanggil ungkapan itu Boolean. 91 00:49:53,940 --> 00:49:55,148 Dan ia tidak perlu berada 50. 92 00:49:55,148 --> 00:49:57,970 Ia boleh menjadi x kurang daripada y, lebih besar daripada y, sama dengan y-- 93 00:49:57,970 --> 00:50:00,020 apa-apa bilangan lain soalan mungkin akan diminta. 94 00:50:00,020 --> 00:50:03,250 >> Sekarang, pada pandangan pertama, ini mungkin kelihatan tiba-tiba agak berani di sini, dan ia adalah. 95 00:50:03,250 --> 00:50:06,540 Tetapi konsep bijak, ia cukup biasa dari sebelum ini. 96 00:50:06,540 --> 00:50:09,370 Jika x kurang daripada y, daripada berkata sebanyak. 97 00:50:09,370 --> 00:50:12,230 Lain jika x lebih besar daripada y, maka katakanlah sebanyak. 98 00:50:12,230 --> 00:50:14,260 Yang lain mengatakan x sama dengan y. 99 00:50:14,260 --> 00:50:17,220 Oleh itu, kita mempunyai contoh terdapat satu scenario-- ketiga 100 00:50:17,220 --> 00:50:20,600 hanya ketiga possibility-- x sama ada lebih besar daripada, kurang daripada, atau sama dengan. 101 00:50:20,600 --> 00:50:22,420 Jadi kita mempunyai garpu tiga cara di jalan raya. 102 00:50:22,420 --> 00:50:26,290 >> Dan perhatikan apa yang Scratch sini-- sejuk, ia akan kelihatan, mempunyai hanya satu teka-teki 103 00:50:26,290 --> 00:50:28,840 keping, dalam kes ini, dalam jika blok yang lain. 104 00:50:28,840 --> 00:50:32,090 Dan lagi bahawa seolah-olah membayangkan anda boleh hanya mempunyai garpu dua cara di jalan raya. 105 00:50:32,090 --> 00:50:34,631 Anda boleh pergi ke kiri atau kanan, tetapi bagaimana pula bahawa senario ketiga? 106 00:50:34,631 --> 00:50:35,760 Bagaimana jika x sama y? 107 00:50:35,760 --> 00:50:36,500 Tiada masalah besar. 108 00:50:36,500 --> 00:50:39,640 Ambil satu bahagian teka-teki, meletakkan satu di dalam yang lain daripadanya 109 00:50:39,640 --> 00:50:45,759 untuk mewujudkan bersamaan semantik daripada jika, lain jika, else-- dan sekarang anda 110 00:50:45,759 --> 00:50:47,300 mempunyai fork tiga cara anda di jalan raya. 111 00:50:47,300 --> 00:50:49,091 Dan seperti yang kita akan lihat, kepingan teka-teki Scratch 112 00:50:49,091 --> 00:50:51,820 boleh diregangkan dan berkembang, begitu sebagai untuk mengasak lebih barangan di dalamnya. 113 00:50:51,820 --> 00:50:54,420 Anda tidak perlu untuk dimuatkan segala-galanya dalam saiz lalainya. 114 00:50:54,420 --> 00:50:56,690 >> Ini adalah sesuatu yang kita akan tidak lama lagi lihat dipanggil array. 115 00:50:56,690 --> 00:51:00,880 Ia seperti list-- beberapa cara menyimpan beberapa keping maklumat 116 00:51:00,880 --> 00:51:02,886 dalam pembolehubah, bukan hanya nombor. 117 00:51:02,886 --> 00:51:05,760 Ini kita akan melihat seorang wakil sesuatu yang dipanggil multi-threading. 118 00:51:05,760 --> 00:51:08,280 Malah, semua anda Mac dan PC hari ini 119 00:51:08,280 --> 00:51:10,810 menyokong multi-threading, yang bermakna anda boleh benar-benar 120 00:51:10,810 --> 00:51:12,390 melakukan pelbagai perkara pada satu masa. 121 00:51:12,390 --> 00:51:15,390 Anda boleh mempunyai Microsoft Word ke dalam latar depan, bekerja di beberapa esei. 122 00:51:15,390 --> 00:51:17,160 Anda mungkin mempunyai pelayar yang dalam pembukaan latar belakang 123 00:51:17,160 --> 00:51:18,720 G-mel atau Facebook atau seumpamanya. 124 00:51:18,720 --> 00:51:22,730 Komputer anda boleh melakukan pelbagai perkara hari ini kerana ia adalah multi-threaded, 125 00:51:22,730 --> 00:51:26,390 dan program-program mereka di dalam tertentu juga berbilang bebenang. 126 00:51:26,390 --> 00:51:28,970 >> Ada perkara-perkara yang dipanggil peristiwa sebagai baik dalam dunia Awal, 127 00:51:28,970 --> 00:51:32,640 dan kemudian ada cara yang terlalu, untuk membuat sendiri kepingan teka-teki adat kami jika perkara 128 00:51:32,640 --> 00:51:34,810 sebenarnya tidak wujud terlebih dahulu. 129 00:51:34,810 --> 00:51:38,260 Jadi mari kita memberi motivasi ini seperti berikut. 130 00:51:38,260 --> 00:51:40,580 Beberapa tahun lalu, apabila saya pertama kali ditemui Awal, 131 00:51:40,580 --> 00:51:43,530 ketika saya sebenarnya pelajar grad di MIT, kita 132 00:51:43,530 --> 00:51:45,640 diri kita telah ditugaskan untuk membuat kerja rumah. 133 00:51:45,640 --> 00:51:47,614 Dan saya implemented-- yang, jika ditinjau kembali, 134 00:51:47,614 --> 00:51:50,780 merupakan satu keputusan yang sangat miskin kerana ia adalah lagu yang paling menyebalkan di dunia 135 00:51:50,780 --> 00:51:53,321 untuk mendengar selama lapan jam semasa bekerja di homework-- anda 136 00:51:53,321 --> 00:51:57,180 tetapi sesuatu yang saya telah dipanggil Oscar Masa, yang mungkin sebuah lagu biasa. 137 00:51:57,180 --> 00:51:59,820 >> CS50s memiliki Jordan Hayashi, salah satu daripada lebih ramai ahli kakitangan kanan kami, 138 00:51:59,820 --> 00:52:03,920 telah dinaik taraf bagi tahun 2015 dan sekarang 2016, kerana pada zaman dahulu, 139 00:52:03,920 --> 00:52:06,610 Saya mempunyai segala-galanya hanya akan ke dalam Oscar tong sampah. 140 00:52:06,610 --> 00:52:09,320 Sekarang kita menyokong kitar semula dan kompos. 141 00:52:09,320 --> 00:52:12,050 >> Tetapi untuk cat gambar daripada apa yang kita boleh lakukan di sini 142 00:52:12,050 --> 00:52:14,130 dan untuk memberi motivasi kepada beberapa contoh tahap yang lebih rendah, 143 00:52:14,130 --> 00:52:16,400 yang kita boleh mendapatkan satu yang lain sukarelawan untuk hanya datang pada sehingga 144 00:52:16,400 --> 00:52:18,331 dan bermain pertama saya tugasan kerja rumah yang pernah? 145 00:52:18,331 --> 00:52:18,830 Naiklah. 146 00:52:18,830 --> 00:52:19,250 Apa nama anda? 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 Naiklah. 150 00:52:24,190 --> 00:52:27,070 Mengetuai cara sama ada, dan anda akan melihat dalam seketika, 151 00:52:27,070 --> 00:52:29,870 Saya akan pergi ke hadapan dan tekan bendera hijau di tangan kanan atas 152 00:52:29,870 --> 00:52:31,100 sudut, yang bermakna pergi. 153 00:52:31,100 --> 00:52:33,320 Kecil stop icon tanda akan berkata berhenti, 154 00:52:33,320 --> 00:52:35,490 dan itulah apabila anda mula dan berhenti program. 155 00:52:35,490 --> 00:52:36,450 Gembira dapat bertemu dengan anda. 156 00:52:36,450 --> 00:52:36,950 Baiklah. 157 00:52:36,950 --> 00:52:39,100 Oleh itu, kita akan lihat arahan pada skrin dalam hanya seketika. 158 00:52:39,100 --> 00:52:41,450 Dan hanya dengan bermain permainan ini untuk beberapa seconds-- percayalah, 159 00:52:41,450 --> 00:52:43,670 kita tidak akan mahu untuk bermain sepanjang jalan ke end-- anda akan 160 00:52:43,670 --> 00:52:45,470 mendapatkan rasa apa yang program ini tidak. 161 00:52:45,470 --> 00:52:49,170 Dan lebih daripada hanya memberi tumpuan kepada Henry yang baik atau buruk untuk permainan ini, tumpuan 162 00:52:49,170 --> 00:52:52,600 dan bagaimana ia dilaksanakan oleh saya asalnya dan kemudian oleh Jordan. 163 00:52:52,600 --> 00:52:54,640 Dalam erti kata lain, di mana pembolehubah? 164 00:52:54,640 --> 00:52:55,520 Di manakah gelung? 165 00:52:55,520 --> 00:52:56,520 Di manakah fungsi? 166 00:52:56,520 --> 00:53:00,700 Dan kita akan lihat jika kita tidak melihat orang-orang di bawah hood. 167 00:53:00,700 --> 00:53:03,660 >> Hanya klik dan seret sampah ke tong yang sesuai. 168 00:53:03,660 --> 00:54:02,100 >> [MUZIK Bermain] 169 00:54:02,100 --> 00:54:02,600 Baiklah. 170 00:54:02,600 --> 00:54:03,160 Itu sangat bagus. 171 00:54:03,160 --> 00:54:04,286 Kenapa 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 Tahniah kepada Henry. 174 00:54:05,830 --> 00:54:07,002 Terima kasih. 175 00:54:07,002 --> 00:54:10,690 >> [BERTEPUK TANGAN] 176 00:54:10,690 --> 00:54:12,450 >> Bayangkan debugging program itu. 177 00:54:12,450 --> 00:54:15,880 Jika ada masalah dua minit selepas song-- berkenaan tetapi sehingga 178 00:54:15,880 --> 00:54:17,430 apa yang berlaku di sini benar-benar? 179 00:54:17,430 --> 00:54:20,900 Seperti yang rumit kerana ia mungkin mula seolah-olah mendapat masa ke masa, 180 00:54:20,900 --> 00:54:22,910 memang lebih dan lebih barangan mula jatuh, 181 00:54:22,910 --> 00:54:25,370 apa yang menarik tentang jenis ini contoh yang 182 00:54:25,370 --> 00:54:27,270 dan kita akan melihat beberapa others-- adalah bahawa jika anda 183 00:54:27,270 --> 00:54:30,416 melihat masa lalu kerumitan atau kecanggihan permainan, 184 00:54:30,416 --> 00:54:33,040 ada sebuah bangunan yang sangat mudah blok yang play-- semua yang, 185 00:54:33,040 --> 00:54:35,840 jika anda menyuling mereka kepada orang-orang blok bangunan, adalah sangat mudah 186 00:54:35,840 --> 00:54:37,401 dan boleh dilaksanakan kepada diri mereka sendiri. 187 00:54:37,401 --> 00:54:39,150 Sebagai contoh, ia adalah menjadi beberapa waktu, tetapi saya 188 00:54:39,150 --> 00:54:42,900 cukup yakin yang semula saya lakukan apabila membuat permainan ini untuk kali pertama 189 00:54:42,900 --> 00:54:44,787 adalah saya benar-benar seperti melengah-lengahkan. 190 00:54:44,787 --> 00:54:47,120 Saya tidak memberi tumpuan pada semua orang atas logik atau kepingan teka-teki, 191 00:54:47,120 --> 00:54:50,810 Saya memberi tumpuan kepada grafik dan dapatan jawatan jalan dan tong sampah 192 00:54:50,810 --> 00:54:51,540 dan semua itu. 193 00:54:51,540 --> 00:54:53,456 Tetapi mereka adalah diperlukan bahan-bahan pada mulanya. 194 00:54:53,456 --> 00:54:57,220 Dan apabila saya selesai procrastinating dan meletakkan rangka kerja menyeluruh itu, 195 00:54:57,220 --> 00:55:00,337 Saya mengambil keputusan, biarlah saya membuat satu sekeping sampah jatuh dari langit. 196 00:55:00,337 --> 00:55:02,170 Dan kita akan melihat Scratch menyokong perkara yang dipanggil 197 00:55:02,170 --> 00:55:06,386 Watak sprites-- yang boleh mempunyai pakaian yang berbeza, jadi mereka 198 00:55:06,386 --> 00:55:07,010 kelihatan berbeza. 199 00:55:07,010 --> 00:55:09,660 >> Oleh itu, saya meletakkan tong sampah pakaian pada satu bidadari itu. 200 00:55:09,660 --> 00:55:12,007 Dan saya hanya memerlukannya jatuh dari langit. 201 00:55:12,007 --> 00:55:14,590 Dan maka ia ternyata, Awal, seperti kebanyakan bahasa pengaturcaraan, 202 00:55:14,590 --> 00:55:18,099 menyokong nombor rawak atau nombor rawak teknikal pseudokod, 203 00:55:18,099 --> 00:55:20,390 supaya dengan menarik dan menjatuhkan kepingan teka-teki tertentu, 204 00:55:20,390 --> 00:55:22,890 Saya dapat mempunyai tong sampah datang dari sebelah kiri pada mulanya. 205 00:55:22,890 --> 00:55:25,580 Dan kemudian masa akan datang ia jatuh, dari yang betul dan kemudian dari tengah. 206 00:55:25,580 --> 00:55:28,060 Dan semua permainan tidak hanya mempunyai sampah yang jatuh dari langit. 207 00:55:28,060 --> 00:55:29,770 Anda tidak boleh tunjuk pada atau klik di atasnya. 208 00:55:29,770 --> 00:55:31,103 Anda tidak boleh membuka tong sampah. 209 00:55:31,103 --> 00:55:32,160 Anda tidak dapat melakukan apa-apa. 210 00:55:32,160 --> 00:55:34,450 Tetapi ia adalah satu langkah bayi ke arah visi utama saya. 211 00:55:34,450 --> 00:55:36,720 >> Dan selepas itu, saya sebenarnya melaksanakan beberapa jenis 212 00:55:36,720 --> 00:55:41,230 sensing supaya jika anda tidak klik dan seret di atas sekeping sampah 213 00:55:41,230 --> 00:55:44,350 lebih tin tong sampah, Oscar tudung akan membuka dan menutup. 214 00:55:44,350 --> 00:55:47,650 Tiada apa-apa yang akan berlaku kepada sampah, tapi sekurang-kurangnya tudung 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 inilah yang akan menjadi utama dalam kedua-dua set masalah sifar 217 00:55:52,100 --> 00:55:55,970 dan dalam pengaturcaraan secara umum, adalah untuk mengambil langkah-langkah bayi amat perlahan. 218 00:55:55,970 --> 00:55:59,390 Kerana bukan sahaja ia membolehkan anda untuk berasa jujur ​​dicapai lebih 219 00:55:59,390 --> 00:56:01,250 quickly-- ia adalah Perkara yang paling teruk di dunia 220 00:56:01,250 --> 00:56:06,149 untuk mencuba untuk melaksanakan semua Oscar Masa, kemudian jam kemudian memukul bendera hijau, 221 00:56:06,149 --> 00:56:08,440 dan apa-apa kerja-kerja seperti yang diharapkan kerana di mana adakah anda walaupun 222 00:56:08,440 --> 00:56:11,150 mula debug atau menyelesaikan masalah program itu? 223 00:56:11,150 --> 00:56:12,470 Ia hanya menggalakkan. 224 00:56:12,470 --> 00:56:16,792 >> Dan supaya benar-benar memeluk idea ini mengambil langkah-langkah bayi steps-- lagi 225 00:56:16,792 --> 00:56:19,000 dan again-- membina sesuatu yang, pada akhirnya, 226 00:56:19,000 --> 00:56:23,672 benar-benar menarik dan kompleks, tetapi pada mulanya, adalah tidak sebanyak demikian. 227 00:56:23,672 --> 00:56:24,630 Malah, mari kita buat ini. 228 00:56:24,630 --> 00:56:28,989 Biar saya pergi ke hadapan dan- Scratch sendiri wujud di web di Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 dan anda akan diberitahu sebagai lebih lagi dalam masalah 230 00:56:30,780 --> 00:56:34,200 menetapkan sifar, spesifikasi untuk yang sudah di laman web CS50. 231 00:56:34,200 --> 00:56:35,725 >> Tetapi ini adalah apa Scratch 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 bahagian atas kiri ada adalah peringkat yang dipanggil. 234 00:56:40,980 --> 00:56:41,810 Ini adalah Scratch. 235 00:56:41,810 --> 00:56:43,710 Kostum lalai adalah kucing. 236 00:56:43,710 --> 00:56:46,950 Dan ini adalah dunia segi empat tepat dalam yang anda boleh move-- atas, bawah, kiri, 237 00:56:46,950 --> 00:56:48,130 betul dan beberapa barangan lain. 238 00:56:48,130 --> 00:56:51,839 Di tengah-tengah di sini adalah kategori kami atau palet kami kepingan teka-teki, 239 00:56:51,839 --> 00:56:53,630 dan warna yang berbeza bermaksud perkara yang berbeza. 240 00:56:53,630 --> 00:56:56,520 Dan jika anda mencucuk di sekitar, anda akan melihat perkara seperti gelung dan syarat 241 00:56:56,520 --> 00:56:58,160 dan pembolehubah dan bahan-bahan lain. 242 00:56:58,160 --> 00:57:00,060 >> Dan kemudian di sini ialah kawasan skrip. 243 00:57:00,060 --> 00:57:03,020 Ini adalah di mana saya boleh menyeret dan melepaskan orang-orang keping teka-teki untuk melakukan sesuatu. 244 00:57:03,020 --> 00:57:04,690 Jadi mari kita buat satu perkara itu. 245 00:57:04,690 --> 00:57:06,630 Biar saya pergi ke hadapan dan- dan saya tahu di mana ia. 246 00:57:06,630 --> 00:57:10,110 Jadi saya akan segera klik pada di mana saya mengetahui perkara-perkara bersedia untuk menjadi, 247 00:57:10,110 --> 00:57:13,140 tetapi menunjuk dan mengklik dan poking sekitar tidak dapat dielakkan. 248 00:57:13,140 --> 00:57:15,320 Oleh itu, apabila bendera hijau diklik, apa yang saya mahu lakukan? 249 00:57:15,320 --> 00:57:17,100 Saya akan melakukan ini. 250 00:57:17,100 --> 00:57:20,699 Saya akan mengheret teka-teki ungu ini keping, bertanya khabar selama dua saat, 251 00:57:20,699 --> 00:57:21,490 dan biarlah saya zum masuk. 252 00:57:21,490 --> 00:57:23,865 >> Dan saya akan menukar ini untuk menjadi apa yang saya mahu ia adalah- 253 00:57:23,865 --> 00:57:26,471 hello dunia selama dua saat adalah baik. 254 00:57:26,471 --> 00:57:28,970 Sekarang, saya akan klik bendera hijau, atau jika saya benar-benar mahu, 255 00:57:28,970 --> 00:57:31,820 Saya penuh boleh menyaring dan kemudian kembali. 256 00:57:31,820 --> 00:57:34,060 Ia hanya akan terus segala-galanya dalam satu tetingkap. 257 00:57:34,060 --> 00:57:36,141 Green dunia hello flag--. 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 biarlah saya pergi ke hadapan dan melakukan ini. 261 00:57:40,080 --> 00:57:41,038 Biar saya cuba satu sama lain. 262 00:57:41,038 --> 00:57:44,740 Apabila bendera hijau clicked-- mari melakukan sesuatu seperti bunyi. 263 00:57:44,740 --> 00:57:46,880 Dan perhatikan bahawa daripada kotak secara percuma anda 264 00:57:46,880 --> 00:57:49,910 bunyi kucing, seperti bidadari lalai. 265 00:57:49,910 --> 00:57:52,380 Jadi sekarang mari saya pergi ke hadapan dan melanda bendera hijau sekarang. 266 00:57:52,380 --> 00:57:53,224 >> [Mengiu] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Itulah comel. 269 00:57:55,370 --> 00:57:57,040 Saya pengaturcaraan. 270 00:57:57,040 --> 00:57:58,550 Jadi apa yang telah kuperbuat? 271 00:57:58,550 --> 00:58:00,430 Ini adalah sama dengan program. 272 00:58:00,430 --> 00:58:01,600 Ia jelas super mudah. 273 00:58:01,600 --> 00:58:05,300 Ia tidak benar-benar mengambil semua yang banyak usaha dan MIT melakukan sebahagian besar kerja, 274 00:58:05,300 --> 00:58:07,890 tetapi saya telah dipanggil 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 bahagian teka-teki ungu. 277 00:58:12,480 --> 00:58:15,960 >> Nah, jika saya mahu lakukan tiga meows berturut-turut? 278 00:58:15,960 --> 00:58:18,570 Biar saya pergi ke hadapan dan melakukan dua dan tiga. 279 00:58:18,570 --> 00:58:20,910 Dan perhatikan bahawa apabila anda berlegar berdekatan sekeping teka-teki, 280 00:58:20,910 --> 00:58:22,970 garis putih yang kecil muncul jenis magnet, 281 00:58:22,970 --> 00:58:25,190 dan ia akan snap bersama-sama apabila anda membiarkan pergi. 282 00:58:25,190 --> 00:58:26,600 Mari kita lihat apa yang berlaku di sini. 283 00:58:26,600 --> 00:58:27,920 >> [Mengiu] 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 meow. 287 00:58:35,650 --> 00:58:37,440 Mengapa yang mungkin? 288 00:58:37,440 --> 00:58:39,001 Yeah? 289 00:58:39,001 --> 00:58:39,500 Yeah. 290 00:58:39,500 --> 00:58:41,650 Kita tidak mendengarnya, tetapi itu gerak hati yang baik. 291 00:58:41,650 --> 00:58:43,400 Mereka semua bermain pada masa yang sama. 292 00:58:43,400 --> 00:58:44,000 Mengapa? 293 00:58:44,000 --> 00:58:46,587 Well, komputer hanya akan untuk melakukan apa yang anda beritahu kepada lakukan. 294 00:58:46,587 --> 00:58:48,670 Jadi, jika anda mengatakan, bunyi bermain, bermain bunyi, bermain bunyi, 295 00:58:48,670 --> 00:58:52,887 tetapi anda tidak beritahu kepada bermain sehingga anda selesai, bermain sehingga anda selesai, 296 00:58:52,887 --> 00:58:54,970 ia akan meniup melalui program yang benar-benar cepat 297 00:58:54,970 --> 00:58:56,830 dan jangan hanya apa yang anda beritahu kepada lakukan. 298 00:58:56,830 --> 00:58:59,040 >> Jadi saya benar-benar perlu untuk menetapkan ini dalam beberapa cara. 299 00:58:59,040 --> 00:59:00,623 Saya hanya boleh melakukan ini, menghilangkan ini. 300 00:59:00,623 --> 00:59:04,180 Biar saya cuba teka-teki lain ini piece-- bermain meow bunyi sehingga selesai, 301 00:59:04,180 --> 00:59:07,072 dan kemudian seret tiga daripada ini dan klik Main. 302 00:59:07,072 --> 00:59:09,430 >> [Mengiu] 303 00:59:09,430 --> 00:59:13,350 >> Ia tidak benar-benar very-- terima atasmu sangat semulajadi. 304 00:59:13,350 --> 00:59:16,590 Jadi mengapa tidak saya-- biarlah saya pergi untuk mengawal di sini. 305 00:59:16,590 --> 00:59:17,090 Nice. 306 00:59:17,090 --> 00:59:22,230 Tunggu satu saat, dan sekarang mari saya kembali untuk bunyi, dan bunyi bermain sehingga selesai, 307 00:59:22,230 --> 00:59:24,620 dan kemudian membiarkan saya menunggu satu saat. 308 00:59:24,620 --> 00:59:28,692 Dan biarkan aku pergi mendapatkan satu lebih kukuh, dan di sini kita pergi. 309 00:59:28,692 --> 00:59:31,350 >> [Mengiu] 310 00:59:31,350 --> 00:59:35,930 >> Sedikit lebih semula jadi, tetapi ini tidak begitu cekap. 311 00:59:35,930 --> 00:59:39,830 Seperti yang saya telah bosan, semua menjadi ia secara ringkas, klik belakang dan sebagainya 312 00:59:39,830 --> 00:59:42,724 dan benar-benar pendua work-- saya cukup banyak menyalin dan menampal. 313 00:59:42,724 --> 00:59:44,640 Sesungguhnya, jika saya Mengawal klik atau kanan diklik, 314 00:59:44,640 --> 00:59:46,500 Saya boleh baru sahaja disalin dan ditampal. 315 00:59:46,500 --> 00:59:49,870 Apa yang akan menjadi yang lebih baik membina untuk digunakan? 316 00:59:49,870 --> 00:59:51,090 Apa idea dari sebelum ini? 317 00:59:51,090 --> 00:59:51,990 >> Ya, jadi gelung. 318 00:59:51,990 --> 00:59:54,580 Dan sebenarnya, jika kita mencucuk di sekitar, kita mungkin mendapati perkara tersebut. 319 00:59:54,580 --> 00:59:57,730 Biar saya pergi ke Acara atau sebaliknya Kawalan. 320 00:59:57,730 --> 00:59:59,650 Jadi repeat-- saya tidak mahu ia menjadi 10 kali. 321 00:59:59,650 --> 01:00:01,370 Itu akan menjadi terlalu menjengkelkan dengan cepat. 322 01:00:01,370 --> 01:00:03,380 Tetapi saya akan mengulangi tiga kali. 323 01:00:03,380 --> 01:00:06,355 Biar saya kembali kepada bunyi dan memainkan bunyi sehingga ia dilakukan. 324 01:00:06,355 --> 01:00:08,480 Biar saya kembali ke Control dan hanya menunggu satu saat. 325 01:00:08,480 --> 01:00:10,271 Dan notis, anda mungkin fikir ia tidak sesuai, 326 01:00:10,271 --> 01:00:13,520 tetapi sekali lagi jika magnet anda membiarkan ia snap di tempat, ia akan berkembang untuk mengisi. 327 01:00:13,520 --> 01:00:14,971 Apa yang ia bermain sekarang? 328 01:00:14,971 --> 01:00:18,500 >> [Mengiu] 329 01:00:18,500 --> 01:00:19,000 OKEY. 330 01:00:19,000 --> 01:00:19,660 Nice. 331 01:00:19,660 --> 01:00:22,540 Dan ini adalah apa yang dipanggil program itu juga betul. 332 01:00:22,540 --> 01:00:27,590 Ia meowed tiga kali agak secara semula jadi, tetapi ia lebih baik yang direka. 333 01:00:27,590 --> 01:00:29,580 Saya menggunakan kurang lebihan. 334 01:00:29,580 --> 01:00:30,970 Saya tidak copy dan paste apa-apa. 335 01:00:30,970 --> 01:00:32,470 Saya hanya menggunakan idea 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-apa. 338 01:00:35,930 --> 01:00:37,388 Jadi mari kita buat sesuatu yang lain sebaliknya. 339 01:00:37,388 --> 01:00:38,670 Mari kita buat sesuatu selama-lamanya. 340 01:00:38,670 --> 01:00:39,420 Dan anda tahu apa? 341 01:00:39,420 --> 01:00:40,470 Motion kelihatan menarik. 342 01:00:40,470 --> 01:00:45,760 Mari kita dia bergerak 10 langkah-langkah dan tekan bermain sekarang. 343 01:00:45,760 --> 01:00:46,570 >> OKEY. 344 01:00:46,570 --> 01:00:49,300 Baik kita boleh jenis drag dia kembali, dan dia masih 345 01:00:49,300 --> 01:00:51,250 berjalan kerana dia lakukan ini selama-lamanya. 346 01:00:51,250 --> 01:00:53,150 Jadi gelung yang dilakukan apa yang ia berkata yang perlu dilakukan, 347 01:00:53,150 --> 01:00:54,650 tetapi ini tidak semua yang menarik. 348 01:00:54,650 --> 01:00:55,310 Mari lakukan ini. 349 01:00:55,310 --> 01:00:59,870 Biar saya menambah blok kawalan, dan menggunakan satu syarat-syarat itu buat kali pertama. 350 01:00:59,870 --> 01:01:03,119 >> Jadi ia akan bergerak 10 steps-- 10 titik, 10 piksel pada screen-- yang 351 01:01:03,119 --> 01:01:04,660 maka ia akan bertanya soalan ini. 352 01:01:04,660 --> 01:01:09,340 Jika sesuatu yang tidak benar, maka tidak sesuatu di dalam blok ini. 353 01:01:09,340 --> 01:01:13,060 Jadi ternyata sensing mempunyai keseluruhannya sekumpulan expressions-- Boolean 354 01:01:13,060 --> 01:01:16,580 soalan ya tidak atau benar palsu form-- biarlah saya melakukan ini. 355 01:01:16,580 --> 01:01:19,260 >> Jika touching-- dan kemudian ada senarai jatuh sedikit down menu. 356 01:01:19,260 --> 01:01:20,410 Saya boleh parameterize ia. 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-- biarlah saya kembali kepada gerakan. 359 01:01:27,310 --> 01:01:32,281 Dan mengapa tidak kita hanya berbalik 180 darjah? 360 01:01:32,281 --> 01:01:32,780 Baiklah. 361 01:01:32,780 --> 01:01:35,070 Jadi selama-lamanya, bergerak 10 langkah. 362 01:01:35,070 --> 01:01:37,670 Jika anda menyentuh kelebihan, bertukar 180 darjah. 363 01:01:37,670 --> 01:01:39,720 Dan itu bukan akhir program kerana anda berada dalam untuk selama-lamanya menyekat, 364 01:01:39,720 --> 01:01:42,053 jadi ia akan pergi sekali lagi dan lagi dan lagi dan lagi. 365 01:01:42,053 --> 01:01:43,980 Jadi mari kita lihat apa yang berlaku. 366 01:01:43,980 --> 01:01:44,785 OKEY. 367 01:01:44,785 --> 01:01:48,270 A kereta kecil, tetapi jenis sejuk. 368 01:01:48,270 --> 01:01:51,710 >> Dan kita boleh menambah ini beberapa perkara yang bodoh yang tidak semua yang intelek 369 01:01:51,710 --> 01:01:52,270 menarik. 370 01:01:52,270 --> 01:01:57,210 Tetapi jika kita mencapai ini sedikit mikrofon button-- ouch. 371 01:01:57,210 --> 01:01:58,480 Biar saya membersihkan ini sehingga. 372 01:01:58,480 --> 01:02:01,540 Biar saya meningkatkan ini sebagai mereka akan berkata di TV. 373 01:02:01,540 --> 01:02:05,400 Bersihkan bahawa sehingga, Simpan, dan Segeralah kamu kembali kepada skrip. 374 01:02:05,400 --> 01:02:07,500 >> Dan sekarang, saya pergi kepada bunyi. 375 01:02:07,500 --> 01:02:09,002 Biar saya memberi nama. 376 01:02:09,002 --> 01:02:12,440 Saya akan panggil ouch ini. 377 01:02:12,440 --> 01:02:13,840 Dan kini bermain ouch bunyi. 378 01:02:13,840 --> 01:02:16,520 Perhatikan ia muncul dalam sedikit drop down menu. 379 01:02:16,520 --> 01:02:17,612 Mari kita lihat. 380 01:02:17,612 --> 01:02:20,444 >> [ADUH] 381 01:02:20,444 --> 01:02:24,377 >> [KETAWA] 382 01:02:24,377 --> 01:02:25,835 Tetapi kita boleh mengubah t beliau dengan cepat. 383 01:02:25,835 --> 01:02:28,106 Kita boleh 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 membuat ia seperti 1000 langkah-langkah di time-- yang 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> OKEY. 388 01:02:40,670 --> 01:02:42,295 Jadi, kita akan meninggalkan satu itu sahaja. 389 01:02:42,295 --> 01:02:45,290 Jadi sekali lagi, membina blocks-- Saya bermula dengan sesuatu yang super mudah, 390 01:02:45,290 --> 01:02:47,930 dan kemudian saya menambah ciri, menambah ciri, menambah ciri. 391 01:02:47,930 --> 01:02:50,721 Dan saya tidak lagi perlu bimbang tentang bagaimana pertama ciri-ciri 392 01:02:50,721 --> 01:02:53,690 dilaksanakan kerana saya terus untuk lapisan perkara di atas. 393 01:02:53,690 --> 01:02:55,430 Jadi sebenarnya, saya melakukan satu lain di sini. 394 01:02:55,430 --> 01:03:00,580 Biar saya pergi ke hadapan dan membuka fail yang Saya dibawa terlebih dahulu, yang dipanggil Sheep. 395 01:03:00,580 --> 01:03:03,970 >> Jadi ia mempunyai yang sedikit berbeza watak yang kelihatan seperti ini. 396 01:03:03,970 --> 01:03:07,370 Dan biarlah saya lihat jika saya tidak boleh melakukan sesuatu menggunakan kaunter 397 01:03:07,370 --> 01:03:09,310 dalam ini case-- pembolehubah dipanggil. 398 01:03:09,310 --> 01:03:15,540 Saya akan pergi ke hadapan dan di bawah Events-- biarlah saya mendapatkan bendera hijau diklik. 399 01:03:15,540 --> 01:03:19,030 Maka biarlah saya pergi ke Data, yang saya tahu dari hanya bermain-main di hadapan, 400 01:03:19,030 --> 01:03:20,214 adalah di mana pembolehubah. 401 01:03:20,214 --> 01:03:21,880 Dan saya akan pergi ke hadapan dan tarik ini. 402 01:03:21,880 --> 01:03:25,144 >> Jadi pembolehubah yang dipanggil kaunter, dan Saya akan memulakan ia kepada sifar. 403 01:03:25,144 --> 01:03:27,560 Saya boleh memanggil ia sesuatupun x atau y atau z-- tetapi dalam pengaturcaraan, 404 01:03:27,560 --> 01:03:30,410 memanggil sesuatu dalam semantik cara yang berguna, seperti kaunter, 405 01:03:30,410 --> 01:03:34,540 yang menerangkan apa itu, ia adalah satu banyak lebih mudah untuk membaca kod anda kemudian. 406 01:03:34,540 --> 01:03:37,460 Biar saya pergi ke hadapan dan mendapatkan selama-lamanya menyekat di sini. 407 01:03:37,460 --> 01:03:41,289 Dan biarlah saya pergi ke kelihatan halaman dan melakukan blok Say. 408 01:03:41,289 --> 01:03:44,330 Tetapi apa yang sejuk kira-kira pembolehubah adalah saya tidak perlu taip sesuatu 409 01:03:44,330 --> 01:03:47,850 seperti hello dunia, yang kami telah pun dilakukan, saya bukannya boleh pergi ke Data 410 01:03:47,850 --> 01:03:50,690 dan seret pembolehubah saya, dan juga walaupun bentuk yang tidak cukup 411 01:03:50,690 --> 01:03:53,000 kelihatan seperti ia harus sesuai, ia akan berkembang untuk mengisi. 412 01:03:53,000 --> 01:03:58,396 Dan saya hanya akan mengatakan kaunter untuk satu spoiler-- second-- dia akan dikira. 413 01:03:58,396 --> 01:04:00,380 Kami akan mengatakan ia untuk satu saat. 414 01:04:00,380 --> 01:04:02,840 Kemudian saya akan pergi dan mempunyai dia menunggu untuk satu saat, 415 01:04:02,840 --> 01:04:04,650 supaya ia tidak mengira sehingga terlalu cepat. 416 01:04:04,650 --> 01:04:08,430 Dan kemudian akhir sekali, menukar kaunter oleh one-- dalam erti kata lain, 417 01:04:08,430 --> 01:04:13,520 kenaikan kaunter demi satu nilai tambahan dan melakukan ini selama-lamanya. 418 01:04:13,520 --> 01:04:16,129 >> Jadi domba juga, seperti yang programmer, yang diambil kira 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, dia akan melakukan ini selama-lamanya. 421 01:04:23,740 --> 01:04:27,740 Tetapi itu tidak betul-betul benar, kerana sebenarnya, seperti yang kita akan temui dalam satu minggu, 422 01:04:27,740 --> 01:04:31,871 bilangan bulat dan komputer lebih umum, secara teknikal hanya mempunyai finite-- baik, 423 01:04:31,871 --> 01:04:33,829 dan bukan komputer, apabila mereka mewakili integer, 424 01:04:33,829 --> 01:04:35,670 hanya mempunyai beberapa terhingga bit. 425 01:04:35,670 --> 01:04:37,860 Mereka mentol lampu terdapat hanya boleh bergantung begitu tinggi 426 01:04:37,860 --> 01:04:39,239 sebelum anda keluar dari mentol lampu. 427 01:04:39,239 --> 01:04:41,590 Dan komputer juga, hanya mempunyai ingatan yang begitu banyak, 428 01:04:41,590 --> 01:04:44,640 hanya mempunyai begitu banyak transistor, jadi ia hanya boleh bergantung begitu tinggi. 429 01:04:44,640 --> 01:04:47,409 >> Jadi ternyata bahawa biri-biri, Saya fikir, boleh bergantung kepada 2 bilion 430 01:04:47,409 --> 01:04:48,409 atau sesuatu yang cukup besar. 431 01:04:48,409 --> 01:04:50,325 Oleh itu, kita tidak akan menunggu ini berlaku. 432 01:04:50,325 --> 01:04:54,850 Tetapi akhirnya beberapa bug yang akan berlaku yang boleh mempunyai beberapa dunia yang amat nyata 433 01:04:54,850 --> 01:04:55,970 kesan. 434 01:04:55,970 --> 01:04:58,861 Tetapi lebih dari kambing domba, yang hanya memperkenalkan pembolehubah. 435 01:04:58,861 --> 01:05:01,110 Mari kita pergi ke hadapan dan membuka sesuatu yang saya dibuat terlebih dahulu 436 01:05:01,110 --> 01:05:07,430 di sini dipanggil haiwan peliharaan yang Cat-- Haiwan Cat di sini. 437 01:05:07,430 --> 01:05:10,420 Dan perhatikan di sini adalah beberapa blok, tetapi apabila bendera hijau 438 01:05:10,420 --> 01:05:12,474 klik, selama-lamanya lakukan yang berikut. 439 01:05:12,474 --> 01:05:15,265 Jika anda menyentuh tetikus pointer-- supaya kursor pada skrin, 440 01:05:15,265 --> 01:05:18,529 bermain arrow-- meow bunyi dan kemudian tunggu dua saat. 441 01:05:18,529 --> 01:05:19,570 Dan hanya melakukan ini selama-lamanya. 442 01:05:19,570 --> 01:05:22,619 Hanya sentiasa menunggu untuk melihat jika pointer-- yang 443 01:05:22,619 --> 01:05:24,710 jika kucing itu menyentuh penunjuk. 444 01:05:24,710 --> 01:05:26,060 >> Jadi saya tekan bermain. 445 01:05:26,060 --> 01:05:26,920 Tiada apa-apa yang berlaku. 446 01:05:26,920 --> 01:05:28,980 Tetapi seperti yang saya menggerakkan kursor ke atas kucing, 447 01:05:28,980 --> 01:05:31,960 >> [Mengiu] 448 01:05:31,960 --> 01:05:34,750 >> Dan jika saya bergerak ia jauh, tidak membelai kucing lagi. 449 01:05:34,750 --> 01:05:38,090 Jadi beberapa logik bersyarat bersarang di dalam gelung. 450 01:05:38,090 --> 01:05:43,070 Bagaimana pula contoh ini, sengaja dipanggil Jangan Pet Cat? 451 01:05:43,070 --> 01:05:45,253 Apakah ini akan lakukan? 452 01:05:45,253 --> 01:05:47,880 >> [Mengiu] 453 01:05:47,880 --> 01:05:50,215 >> Mengapa kamu tidak haiwan kucing? 454 01:05:50,215 --> 01:05:59,440 >> [Mengiu] 455 01:05:59,440 --> 01:06:00,699 >> OKEY. 456 01:06:00,699 --> 01:06:03,880 Jadi ini adalah satu contoh jika lain. 457 01:06:03,880 --> 01:06:06,482 Ia adalah satu titik keputusan dan kerana ia duduk di dalam gelung, 458 01:06:06,482 --> 01:06:07,690 kedua-dua mereka mendapat diperiksa. 459 01:06:07,690 --> 01:06:08,280 Adakah ini benar? 460 01:06:08,280 --> 01:06:08,760 Adakah ini benar? 461 01:06:08,760 --> 01:06:09,250 Adakah ini benar? 462 01:06:09,250 --> 01:06:09,791 Adakah ini benar? 463 01:06:09,791 --> 01:06:11,880 Dan akhirnya, salah satu mereka akan memohon 464 01:06:11,880 --> 01:06:16,480 dan supaya anda mendengar sama ada meow atau ngauman singa dalam kes itu. 465 01:06:16,480 --> 01:06:21,400 >> Nah, mari kita buat satu yang sedikit lebih mewah yang saya buat terlebih dahulu too-- benang. 466 01:06:21,400 --> 01:06:25,210 Jadi thread yang merupakan salah satu Perkara yang komputer boleh lakukan. 467 01:06:25,210 --> 01:06:29,349 Jadi program multi-threaded adalah program yang yang boleh melakukan pelbagai perkara pada satu masa. 468 01:06:29,349 --> 01:06:31,140 Dan semua contoh-contoh ini setakat ini mempunyai 469 01:06:31,140 --> 01:06:35,980 hanya satu skrip, jadi untuk speak-- satu program seperti ini di sini. 470 01:06:35,980 --> 01:06:38,810 Tetapi melihat program ini mempunyai dua sprites, dua watak. 471 01:06:38,810 --> 01:06:40,020 Satu adalah burung. 472 01:06:40,020 --> 01:06:40,870 Satu adalah kucing. 473 01:06:40,870 --> 01:06:45,080 >> Dan perhatikan apabila saya klik pada ini turun kiri, mereka masing-masing mempunyai skrip mereka sendiri 474 01:06:45,080 --> 01:06:47,120 atau program yang berkaitan dengan mereka. 475 01:06:47,120 --> 01:06:49,420 Dan kedua-dua mereka program, notis, permulaan 476 01:06:49,420 --> 01:06:52,600 dengan clicked-- bendera apabila hijau mari kita lihat cat-- yang 477 01:06:52,600 --> 01:06:54,030 apabila bendera hijau diklik. 478 01:06:54,030 --> 01:06:58,220 Dan maka sesungguhnya, apabila saya tekan bermain sekarang, dua perkara akan berlaku pada sekali. 479 01:06:58,220 --> 01:07:01,750 Kucing dan burung kedua-duanya akan beroperasi secara serentak 480 01:07:01,750 --> 01:07:03,815 untuk mewujudkan kesan ini. 481 01:07:03,815 --> 01:07:05,440 Dan anda mungkin bayangkan apa yang berlaku. 482 01:07:05,440 --> 01:07:08,340 Ada satu gelung dan burung dan kucing berada di dalam gelung. 483 01:07:08,340 --> 01:07:11,270 Burung itu hanya melantun seperti Saya sebelum ini apabila saya berkata ouch. 484 01:07:11,270 --> 01:07:13,040 Tetapi kucing jelas mempunyai kelebihan. 485 01:07:13,040 --> 01:07:16,040 Ada satu lagi blok sensing yang menunjukkan kucing sengaja 486 01:07:16,040 --> 01:07:19,836 kepada burung itu dalam kes ini di sini. 487 01:07:19,836 --> 01:07:22,960 Oleh itu, kita boleh mengusik selain, dengan melihat melalui orang-orang blok, apa yang berlaku. 488 01:07:22,960 --> 01:07:25,460 Tetapi bahan utama di sini adalah salah. 489 01:07:25,460 --> 01:07:28,520 Burung, supaya permainan ini tidak sepenuhnya boring-- atau animation-- ini 490 01:07:28,520 --> 01:07:30,060 bermula pada arah yang rawak. 491 01:07:30,060 --> 01:07:32,890 Dan komputer adalah memilih nombor di antara 90 dan 180 492 01:07:32,890 --> 01:07:36,110 pada dasarnya, supaya ia yang sedikit animasi berbeza setiap kali. 493 01:07:36,110 --> 01:07:39,480 >> Dan kemudian perhatikan di sini, jika kucing menyentuh burung, kemudian 494 01:07:39,480 --> 01:07:42,030 bermain singa empat sound-- bergelora. 495 01:07:42,030 --> 01:07:46,330 Tetapi sementara itu dalam burung palet, kita mempunyai ini. 496 01:07:46,330 --> 01:07:49,229 Selama-lamanya, jika tidak menyentuh kucing, hanya terus bergerak tiga langkah. 497 01:07:49,229 --> 01:07:50,770 Dan kemudian di sini adalah satu lagi teka-teki. 498 01:07:50,770 --> 01:07:52,030 Jika anda berada di pinggir, melantun. 499 01:07:52,030 --> 01:07:54,840 Jadi burung adalah hanya jenis mengurus perniagaan sendiri, 500 01:07:54,840 --> 01:07:57,330 hanya terbang di sekitar dan melantun, dan ia benar-benar 501 01:07:57,330 --> 01:08:01,780 kucing yang mempunyai logik bersyarat untuk menentukan sama ada ia telah menarik burung. 502 01:08:01,780 --> 01:08:02,280 Baiklah. 503 01:08:02,280 --> 01:08:08,800 Jadi mari kita buat satu lain di sini, satu ini dipanggil Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 Dan satu ini di sini hanya melakukan ini dalam selama-lamanya gelung. 505 01:08:15,100 --> 01:08:18,925 Tetapi notice-- bagaimana kita menghentikan ini program yang sangat menjengkelkan? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Hit bar ruang. 508 01:08:22,640 --> 01:08:27,990 Kerana jika saya berbuat demikian, yang program-- tangan kiri 509 01:08:27,990 --> 01:08:31,550 notis itu sentiasa listening-- adalah akhbar ruang utama. 510 01:08:31,550 --> 01:08:34,090 Jika bar ruang ditekan, dan jika ya, apa yang ia buat? 511 01:08:34,090 --> 01:08:35,980 Ia melakukan teknik yang sangat biasa. 512 01:08:35,980 --> 01:08:38,590 Ia menetapkan pembolehubah sama dengan beberapa nilai. 513 01:08:38,590 --> 01:08:39,741 Tetapi ia bertukar-tukar nilai itu. 514 01:08:39,741 --> 01:08:41,490 [? Jadi rupanya?] berdasarkan I shape-- 515 01:08:41,490 --> 01:08:43,160 mempunyai pembolehubah yang saya menulis terlebih dahulu dipanggil 516 01:08:43,160 --> 01:08:44,770 Disenyapkan, yang hanya berkata ya atau tidak. 517 01:08:44,770 --> 01:08:45,880 Adakah bunyi disenyapkan atau tidak? 518 01:08:45,880 --> 01:08:46,990 Betul atau salah? 519 01:08:46,990 --> 01:08:51,580 Dan lihat, saya katakan this-- jika disenyapkan adalah sifar, kemudian bertukar kepada satu, 520 01:08:51,580 --> 01:08:53,840 lagi menetapkan bisu kepada sifar. 521 01:08:53,840 --> 01:08:55,540 Jadi hanya flip nilai dari sifar kepada satu. 522 01:08:55,540 --> 01:08:58,320 Saya boleh mempunyai done-- mengubahnya daripada dua kepada tiga dan 01:57 523 01:08:58,320 --> 01:09:00,162 atau 04:56 atau 05:56. 524 01:09:00,162 --> 01:09:01,870 Tetapi ia tidak penting apa nombor yang saya gunakan, 525 01:09:01,870 --> 01:09:04,090 selagi saya terus menukar ia sebaliknya. 526 01:09:04,090 --> 01:09:07,290 >> Dan yang paling mana-mana programmer akan sama pilih sifar dan one-- palsu dan benar, 527 01:09:07,290 --> 01:09:09,510 kira dan pada-- 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 bar ruang 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 Kerana ada skrip lain ini yang mengatakan, selama-lamanya melakukan yang berikut. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Jika pembolehubah disenyapkan sama zero-- jadi jika anda tidak disenyapkan 535 01:09:24,770 --> 01:09:29,609 adalah logic-- jika ia adalah palsu atau tidak, kemudian memainkan bunyi, 536 01:09:29,609 --> 01:09:30,650 kerana anda tidak disenyapkan. 537 01:09:30,650 --> 01:09:33,358 Anda perlu memainkan bunyi dan kemudian berfikir hi hi hi selama dua saat 538 01:09:33,358 --> 01:09:35,790 dan kemudian tunggu, dan melakukannya lagi dan lagi dan lagi. 539 01:09:35,790 --> 01:09:40,760 >> Jadi dengan cara ini kita mempunyai cara untuk orang supaya- untuk program-program untuk berinteraksi. 540 01:09:40,760 --> 01:09:43,120 Dan mereka tidak perlu sebagaimana yang bertarikh seperti orang lain. 541 01:09:43,120 --> 01:09:46,280 Malah, poking around-- pun tidak intended-- 542 01:09:46,280 --> 01:09:49,250 seseorang menghabiskan sejumlah besar masa di internet melaksanakan 543 01:09:49,250 --> 01:09:51,580 PokemonGo dalam Scratch. 544 01:09:51,580 --> 01:09:55,440 Ia juga geolocates anda Cambridge atau Allston sini. 545 01:09:55,440 --> 01:10:03,120 Jadi, jika anda mahu melihat terlalu apa yang orang boleh lakukan ialah this-- menu sangat mewah. 546 01:10:03,120 --> 01:10:04,780 Klik di sini. 547 01:10:04,780 --> 01:10:07,430 >> Ini adalah saya dengan kekunci anak panah saya sekarang. 548 01:10:07,430 --> 01:10:09,446 Saya akan pergi selepas 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 Maksud saya, saya fikir anda berada sepatutnya klik PokeBall itu. 554 01:10:20,260 --> 01:10:20,760 Baiklah. 555 01:10:20,760 --> 01:10:22,680 Jadi saya lakukan itu. 556 01:10:22,680 --> 01:10:23,950 Saya boleh pergi di sini. 557 01:10:23,950 --> 01:10:27,790 Dan orang ini melaksanakan beberapa lebih PokeBalls lebih sini-- tiga PokeBalls. 558 01:10:27,790 --> 01:10:29,950 >> Kami akan menyiarkan link ini dalam talian supaya anda boleh bermain. 559 01:10:29,950 --> 01:10:32,364 Tetapi notis ada hanya beberapa konsep asas. 560 01:10:32,364 --> 01:10:33,780 Ia kelihatan banyak pelamun, dan ia adalah. 561 01:10:33,780 --> 01:10:35,905 Ini adalah mengagumkan dan banyak lagi daripada kita akan biasanya 562 01:10:35,905 --> 01:10:37,740 mengharapkan, sudah tentu untuk masalah set sifar. 563 01:10:37,740 --> 01:10:40,809 Saya tidak tahu berapa lama orang ini dihabiskan dalam talian. 564 01:10:40,809 --> 01:10:41,850 Tetapi itu semua hanya gelung. 565 01:10:41,850 --> 01:10:43,180 Ada bermain bunyi. 566 01:10:43,180 --> 01:10:44,850 Ada beberapa jenis gelung mendengar untuk sama ada saya 567 01:10:44,850 --> 01:10:47,558 memukul anak panah ke atas atau ke bawah arrow atau kiri dan kanan, 568 01:10:47,558 --> 01:10:49,834 dan kemudian jika demikian, ia bergerak ia beberapa beberapa piksel. 569 01:10:49,834 --> 01:10:51,750 Dan kemudian jika saya klik pada bidadari yang lain, ada 570 01:10:51,750 --> 01:10:53,390 beberapa jenis jika keadaan di sana. 571 01:10:53,390 --> 01:10:54,806 Ya, ini semakin terlalu sengit. 572 01:10:54,806 --> 01:10:56,100 Kita akan berhenti. 573 01:10:56,100 --> 01:10:57,750 Itu semua orang-orang blok binaan asas. 574 01:10:57,750 --> 01:11:01,530 Tiada bahan-bahan lain lain daripada orang-orang kita telah melihat sudah. 575 01:11:01,530 --> 01:11:04,670 >> Namun di sini, biar saya satu set akhir contoh 576 01:11:04,670 --> 01:11:06,960 yang cat gambar yang terlalu apa yang anda boleh lakukan di sini. 577 01:11:06,960 --> 01:11:10,481 Berikut adalah program yang sangat mudah yang hanya melakukan this-- batuk, batuk, batuk. 578 01:11:10,481 --> 01:11:12,480 Dan hanya berdasarkan apa kita telah melihat setakat ini, 579 01:11:12,480 --> 01:11:14,570 di mana adalah jelas peluang untuk penambahbaikan. 580 01:11:14,570 --> 01:11:15,570 Program ini adalah betul. 581 01:11:15,570 --> 01:11:17,980 Ia batuk tiga kali, yang apa yang saya dimaksudkan. 582 01:11:17,980 --> 01:11:19,650 Tetapi ia kurang dilaksanakan. 583 01:11:19,650 --> 01:11:20,600 Ia teruk direka. 584 01:11:20,600 --> 01:11:22,000 Mengapa? 585 01:11:22,000 --> 01:11:22,500 Yeah. 586 01:11:22,500 --> 01:11:23,230 Ia bukan gelung. 587 01:11:23,230 --> 01:11:24,610 Dan ia tidak begitu banyak bahawa ia bukan gelung, 588 01:11:24,610 --> 01:11:26,400 ia adalah bahawa terdapat banyak lebihan. 589 01:11:26,400 --> 01:11:28,830 Terdapat disalin dan kod ditampal, jadi untuk bercakap. 590 01:11:28,830 --> 01:11:31,830 Dan penyelesaian mungkin memang gelung. 591 01:11:31,830 --> 01:11:34,350 Jadi biarlah saya pergi ke hadapan dan memperbaiki itu. 592 01:11:34,350 --> 01:11:36,250 Dan saya akan mengheret ini di sini. 593 01:11:36,250 --> 01:11:39,986 Biar saya pergi ke hadapan dan mendapatkan berulang blok, menukar ini kepada tiga. 594 01:11:39,986 --> 01:11:41,860 Saya akan buang beberapa orang-orang blok. 595 01:11:41,860 --> 01:11:43,150 >> Dan anda akan melihat ia agak intuitif. 596 01:11:43,150 --> 01:11:45,691 Anda seret dan lepaskan dan perkara-perkara muncul dan hilang akhirnya. 597 01:11:45,691 --> 01:11:49,170 Dan saya hanya boleh menyeret ini di sini, dan sekarang saya mempunyai versi yang lebih bersih masih. 598 01:11:49,170 --> 01:11:50,730 Tetapi anda tahu apa? 599 01:11:50,730 --> 01:11:52,940 Ada peluang ini sekarang untuk abstraction-- 600 01:11:52,940 --> 01:11:56,350 untuk memulakan untuk menentukan perbendaharaan kata baru yang MIT tidak menjangka. 601 01:11:56,350 --> 01:11:59,110 Ada tunggu dan berulang dan selama-lamanya dan jika, 602 01:11:59,110 --> 01:12:02,590 tetapi bagaimana jika saya ingin memperkenalkan batuk perkataan sebagai blok? 603 01:12:02,590 --> 01:12:06,230 Bagaimana jika saya mahu sekeping teka-teki tujuan yang dalam hidup adalah untuk batuk? 604 01:12:06,230 --> 01:12:10,720 >> Nah, mari kita lihat versi ini di sini, yang saya buat sebagai berikut. 605 01:12:10,720 --> 01:12:13,579 Ajaib, saya telah mencipta sekeping teka-teki ini di sini, 606 01:12:13,579 --> 01:12:14,870 yang Scratch membolehkan anda untuk melakukan. 607 01:12:14,870 --> 01:12:16,787 Dan sesungguhnya C dan Python dan JavaScript adalah 608 01:12:16,787 --> 01:12:18,370 akan membolehkan anda untuk melakukan ini juga. 609 01:12:18,370 --> 01:12:21,830 Anda boleh membuat anda sendiri keping yang anda memanggil apa yang anda mahu. 610 01:12:21,830 --> 01:12:24,890 Dalam kes ini, batuk merasakan seperti definisi yang munasabah. 611 01:12:24,890 --> 01:12:27,880 Dan kemudian dengan serpihan ini turun di sini anda boleh menentukan apa yang dimaksudkan. 612 01:12:27,880 --> 01:12:30,290 >> Aku menarik dan digugurkan daripada palet ini sini-- lebih 613 01:12:30,290 --> 01:12:33,500 blocks-- ini ungu besar blok, di mana saya ditaip dalam batuk 614 01:12:33,500 --> 01:12:35,290 sebagai nama sekeping teka-teki baru saya. 615 01:12:35,290 --> 01:12:39,920 Dan kemudian saya berkata bila-bila masa pengguna panggilan sekeping teka-teki batuk baru ini, 616 01:12:39,920 --> 01:12:41,770 melakukan katakan dan menunggu. 617 01:12:41,770 --> 01:12:46,160 Dan sebagainya di sini dalam blok berulang saya, Saya hanya boleh batuk tiga kali. 618 01:12:46,160 --> 01:12:49,972 >> Dan saya akan berhujah, terutamanya jika sekarang kamu sembunyikan detail ini. 619 01:12:49,972 --> 01:12:51,430 Siapa yang peduli bagaimana batuk dilaksanakan? 620 01:12:51,430 --> 01:12:54,390 Semua saya mengambil berat tentang sebagai programmer yang saya boleh batuk. 621 01:12:54,390 --> 01:12:56,280 Saya tidak peduli bagaimana mengatakan dilaksanakan. 622 01:12:56,280 --> 01:12:58,620 Saya hanya peduli bahawa kucing boleh mengatakan sesuatu. 623 01:12:58,620 --> 01:13:02,720 Saya boleh abstrak jauh yang terperinci dan hanya memberi tumpuan kepada apa yang pada skrin di sini. 624 01:13:02,720 --> 01:13:04,400 Tetapi saya boleh mengambil satu langkah lebih lanjut. 625 01:13:04,400 --> 01:13:08,070 >> Perhatikan bahawa di sini, saya mempunyai dilaksanakan gelung tiga kali. 626 01:13:08,070 --> 01:13:11,560 Tetapi bagaimana jika sebaliknya saya merebut 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 menukar sekeping teka-teki saya untuk mengambil hujah dan input kepada dirinya? 629 01:13:18,730 --> 01:13:21,100 Dan input yang boleh beberapa seperti tiga. 630 01:13:21,100 --> 01:13:24,580 Jadi sekarang, jika saya menulis program dan saya mahu kucing untuk batuk, 631 01:13:24,580 --> 01:13:28,270 Saya sebenarnya boleh memberitahu teka-teki simpulkan berapa kali batuk, 632 01:13:28,270 --> 01:13:31,990 kerana pada bahagian bawah di sini, yang pelamun versi ini keping teka-teki adat 633 01:13:31,990 --> 01:13:34,500 membolehkan saya menentukan bahawa batuk sebenarnya mengambil 634 01:13:34,500 --> 01:13:36,951 input-- yang mengambil hujah seperti ini. 635 01:13:36,951 --> 01:13:37,700 Dan anda tahu apa? 636 01:13:37,700 --> 01:13:38,890 Mungkin saya sedar, tunggu satu minit. 637 01:13:38,890 --> 01:13:40,680 Batuk adalah same-- yang ia adalah asasnya 638 01:13:40,680 --> 01:13:42,120 idea yang sama seperti bersin. 639 01:13:42,120 --> 01:13:44,040 Ia hanya berbeza perkataan pada skrin. 640 01:13:44,040 --> 01:13:46,550 Saya boleh abstrak jauh lanjut dan melaksanakan 641 01:13:46,550 --> 01:13:48,750 Versi akhir ini daripada batuk, yang pada pandangan pertama 642 01:13:48,750 --> 01:13:50,660 adalah cara yang lebih kompleks mencari. 643 01:13:50,660 --> 01:13:52,140 Tetapi melihat apa yang saya lakukan. 644 01:13:52,140 --> 01:13:55,930 Saya ada sekarang generalized-- genericized really-- sekeping teka-teki ini 645 01:13:55,930 --> 01:13:59,900 untuk dipanggil berkata-kata n masa. 646 01:13:59,900 --> 01:14:04,410 >> Dan kini saya mempunyai dua keping teka-teki baru turun di sini menentukan batuk n masa. 647 01:14:04,410 --> 01:14:06,790 Dan apa fungsi batuk lakukan? 648 01:14:06,790 --> 01:14:08,420 Apa sekeping teka-teki adat saya lakukan? 649 01:14:08,420 --> 01:14:11,996 Ia hanya panggilan blok katakan itu, lulus dalam perkataan yang saya mahu katakan, 650 01:14:11,996 --> 01:14:13,870 lulus dalam bilangan kali saya ingin katakan. 651 01:14:13,870 --> 01:14:18,210 Kerana sekarang saya boleh melaksanakan bersin dengan hanya mengatakan achoo, 652 01:14:18,210 --> 01:14:20,320 dalam kes ini, ada beberapa kali. 653 01:14:20,320 --> 01:14:22,360 >> Dan jadi saya lapisan dan lapisan. 654 01:14:22,360 --> 01:14:25,690 Dan sekali lagi, yang penting di sini bukan bagaimana saya melaksanakannya, tetapi hakikatnya 655 01:14:25,690 --> 01:14:28,070 bahawa jika saya hanya literal bergerak ini dari skrin, 656 01:14:28,070 --> 01:14:31,280 melihat bagaimana mudah tidak jika cantik program saya kini kelihatan. 657 01:14:31,280 --> 01:14:33,930 Kerana ia melakukan apa yang ia berkata, saya telah disarikan 658 01:14:33,930 --> 01:14:37,640 dari apa yang ada di dalam bahawa kotak hitam. ia berlaku untuk menjadi kotak ungu sini, 659 01:14:37,640 --> 01:14:41,430 tetapi saya telah terhalang dari apa yang di dalam kerana saya tidak peduli bagaimana ia berfungsi. 660 01:14:41,430 --> 01:14:43,650 Saya hanya mengambil berat sekarang bahawa ia berfungsi. 661 01:14:43,650 --> 01:14:46,375 >> Dan sesungguhnya, dalam masalah menetapkan sifar, ini betul-betul 662 01:14:46,375 --> 01:14:49,250 jenis lapisan idea anda akan mempunyai peluang untuk meneroka. 663 01:14:49,250 --> 01:14:53,510 Ia betul-betul peluang untuk menggunakan teknik penyelesaian masalah, 664 01:14:53,510 --> 01:14:55,550 untuk apa yang mungkin yang persekitaran yang tidak dikenali. 665 01:14:55,550 --> 01:14:57,890 Dan sama ada anda telah tidak diprogramkan sebelum atau diprogramkan sebelum ini, 666 01:14:57,890 --> 01:14:59,500 anda akan mendapati bahawa ada sesuatu yang sedikit 667 01:14:59,500 --> 01:15:00,874 dalam persekitaran ini untuk semua orang. 668 01:15:00,874 --> 01:15:02,770 Dan dengan masalah set satu dalam masa seminggu, 669 01:15:02,770 --> 01:15:06,630 kita akan beralih kepada memberi tumpuan kepada bahasa tahap yang lebih tinggi dipanggil 670 01:15:06,630 --> 01:15:09,290 C-- atau sebaliknya yang lebih rendah bahasa peringkat dipanggil 671 01:15:09,290 --> 01:15:11,347 C-- itulah lebih berkuasa, walaupun ia 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 menyedari setiap TL hari ini: DR, bahawa masalah ini ditetapkan mempunyai lebih pendek 674 01:15:16,740 --> 01:15:19,880 tingkap masa daripada yang akan datang, hanya kerana anda perlu mencari ia agak 675 01:15:19,880 --> 01:15:20,420 boleh akses. 676 01:15:20,420 --> 01:15:22,211 Dan tidak perlu bimbang jika anda menambah kelas lewat. 677 01:15:22,211 --> 01:15:23,920 Kami akan menangani perkara itu tidak lama lagi. 678 01:15:23,920 --> 01:15:28,480 Dan sebelum kita menangguhkan untuk kek, mari kita selesai dengan hanya lihat dua minit 679 01:15:28,480 --> 01:15:30,500 pada apa yang menanti anda di sini dalam CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUZIK Bermain] 682 01:17:20,803 --> 01:17:21,302 Baiklah. 683 01:17:21,302 --> 01:17:22,690 Itu sahaja untuk CS50. 684 01:17:22,690 --> 01:17:23,650 Kita akan melihat anda tidak lama lagi. 685 01:17:23,650 --> 01:17:25,526 Cake kini dihidangkan. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUZIK Bermain] 688 01:18:14,267 --> 01:18:16,350 SPEAKER 17: Adakah anda pernah mendengar daripada sabatikal, Ketua? 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 hood. 691 01:18:31,920 --> 01:18:38,279