1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK MUSIC] 2 00:00:32,435 --> 00:00:35,429 [MUSIC - "HAPPY BERSAMA" kura-kura] 3 00:01:27,330 --> 00:01:30,170 DAVID Malan: Hari ini, kita mulai eksplorasi kita tentang 4 00:01:30,170 --> 00:01:32,710 dasar-dasar ilmu komputer dan pengantar kami, 5 00:01:32,710 --> 00:01:35,070 Sekarang, dengan seni pemrograman, dimana itu adalah 6 00:01:35,070 --> 00:01:36,260 salah satu contoh. 7 00:01:36,260 --> 00:01:39,600 Namun dalam pembuluh darah yang sama dari pemecahan masalah, tahu bahwa 8 00:01:39,600 --> 00:01:42,080 Hari Puzzle tradisional CS50 adalah besok. 9 00:01:42,080 --> 00:01:45,190 Jika Anda belum RSVPed untuk acara ini, Anda bisa pergi ke 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Anda dapat membawa tim dari dua atau tiga atau empat. 12 00:01:50,940 --> 00:01:53,080 Anda akan ditantang dengan masalah seperti yang Anda lihat 13 00:01:53,080 --> 00:01:54,190 di sana pada awalnya. 14 00:01:54,190 --> 00:01:57,000 Semua masalah baru tahun ini jika Anda mengambil bagian tahun lalu, dan Anda 15 00:01:57,000 --> 00:01:59,680 akan memiliki kesempatan kemudian untuk memenangkan hadiah luar biasa. 16 00:01:59,680 --> 00:02:02,750 Di antara mereka, Wii dan beberapa hadiah sertifikat dan seperti, 17 00:02:02,750 --> 00:02:05,650 sementara semua bergaul dengan CS50 siswa dan teman sekelas 18 00:02:05,650 --> 00:02:07,720 dan pizza dan Facebook. 19 00:02:07,720 --> 00:02:10,430 Jadi lebih pada besok jika Anda ingin. 20 00:02:10,430 --> 00:02:13,330 >> Ini kemudian adalah CS50, bagi Anda bergabung dengan kami untuk 21 00:02:13,330 --> 00:02:14,510 pertama kali. 22 00:02:14,510 --> 00:02:18,030 Dan tahu bahwa kursus ini terutama ditentukan untuk mendapatkan 23 00:02:18,030 --> 00:02:22,605 Anda melalui kursus ini berakhir akhir, di mana titik Anda 24 00:02:22,605 --> 00:02:24,270 akan memiliki tidak hanya pemahaman ini 25 00:02:24,270 --> 00:02:26,450 dasar-dasar ilmu komputer, tetapi Anda akan memiliki 26 00:02:26,450 --> 00:02:29,120 ini set keterampilan yang sangat praktis yang Anda kemudian dapat mengambil kembali ke 27 00:02:29,120 --> 00:02:31,370 departemen Anda sendiri, apakah itu ilmu teknik, 28 00:02:31,370 --> 00:02:33,570 terapan matematika, ilmu-ilmu fisik, alam 29 00:02:33,570 --> 00:02:34,780 ilmu pengetahuan, atau sejenisnya. 30 00:02:34,780 --> 00:02:37,030 Memang, apa yang begitu menarik tentang ilmu komputer ini 31 00:02:37,030 --> 00:02:39,900 hari adalah bahwa hal itu hanya begitu berlaku untuk 32 00:02:39,900 --> 00:02:40,990 segala macam bidang. 33 00:02:40,990 --> 00:02:46,210 Dan meskipun saat ini, kita hanya akan menggores permukaan 34 00:02:46,210 --> 00:02:49,020 sangat tradisional bahasa pemrograman yang dikenal sebagai C, kita akan 35 00:02:49,020 --> 00:02:51,040 bukannya melihat sesuatu yang disebut Scratch, sesuatu dengan 36 00:02:51,040 --> 00:02:53,420 yang cerita cinta kue dilaksanakan oleh salah satu Anda 37 00:02:53,420 --> 00:02:57,020 pendahulu dalam beberapa tahun terakhir, untuk bercerita, untuk membuat game, 38 00:02:57,020 --> 00:03:00,060 untuk menciptakan seni interaktif, dan benar-benar mulai untuk membungkus kami 39 00:03:00,060 --> 00:03:02,240 pikiran sekitar beberapa konstruksi dasar yang 40 00:03:02,240 --> 00:03:05,390 mendasari pemrograman tetapi dalam konteks, seperti yang akan Anda lihat, itu 41 00:03:05,390 --> 00:03:09,140 apalagi menakutkan, itu jauh lebih sedikit misterius, daripada Anda akan melihat 42 00:03:09,140 --> 00:03:10,140 tak lama. 43 00:03:10,140 --> 00:03:12,410 Dan menyadari juga, bagi Anda hanya bergabung dengan kami ini 44 00:03:12,410 --> 00:03:16,170 semester, ungkapan yang kita berakhir kuliah Rabu, 45 00:03:16,170 --> 00:03:20,260 itu tidak begitu penting di mana Anda berakhir relatif terhadap Anda 46 00:03:20,260 --> 00:03:22,950 teman sekelas di kelas ini, tetapi di mana Anda, pada akhir semester 47 00:03:22,950 --> 00:03:27,190 pada minggu 11, akhirnya relatif terhadap diri Anda tepat hari ini. 48 00:03:27,190 --> 00:03:32,000 >> Jadi tanpa basa-basi lagi, ini juga diperhatikan bahwa 49 00:03:32,000 --> 00:03:34,450 mereka yang kurang nyaman, mereka di suatu tempat di antara, yang 50 00:03:34,450 --> 00:03:36,825 juga, dengan desain dari kursus ini, tidak dirugikan apapun 51 00:03:36,825 --> 00:03:38,760 vis-a-vis yang lebih nyaman 52 00:03:38,760 --> 00:03:39,920 datang ke kelas ini. 53 00:03:39,920 --> 00:03:41,810 Seperti yang Anda akan melihat selama beberapa minggu mendatang, kami memiliki berbagai 54 00:03:41,810 --> 00:03:44,600 lagu untuk latar belakang yang berbeda kembali, bagian untuk mereka 55 00:03:44,600 --> 00:03:46,500 kurang nyaman, lebih nyaman, mereka di suatu tempat 56 00:03:46,500 --> 00:03:47,250 di antara. 57 00:03:47,250 --> 00:03:49,520 Seperti yang Anda akan melihat akhir pekan ini dan pekan depan, dua versi 58 00:03:49,520 --> 00:03:52,410 masalah paling set di kedua edisi standar dan hacker sehingga 59 00:03:52,410 --> 00:03:55,390 bahwa Anda semua bisa memilih sendiri menyusuri jalan setapak dengan yang Anda 60 00:03:55,390 --> 00:03:56,615 paling nyaman. 61 00:03:56,615 --> 00:03:58,770 >> Jadi hari ini, kita menyelam ke dalam program ini 62 00:03:58,770 --> 00:04:00,060 bahasa disebut Scratch. 63 00:04:00,060 --> 00:04:02,250 Ini adalah bahasa pemrograman grafis, dan belum memiliki 64 00:04:02,250 --> 00:04:04,500 sama fitur dari beberapa bahasa tingkat yang lebih tinggi kita akan 65 00:04:04,500 --> 00:04:07,050 mengeksplorasi kemudian dalam semester, di antara mereka dan C 66 00:04:07,050 --> 00:04:08,670 JavaScript dan PHP. 67 00:04:08,670 --> 00:04:11,890 Tapi itu akan memungkinkan kita untuk menghindari beberapa gangguan 68 00:04:11,890 --> 00:04:14,890 awal dari sintaks, hal-hal seperti titik koma, tanda kurung, 69 00:04:14,890 --> 00:04:17,720 dan rincian lain yang misterius, pada pandangan pertama, tidak hanya 70 00:04:17,720 --> 00:04:19,916 sama sekali intelektual menarik dan cenderung untuk mendapatkan di 71 00:04:19,916 --> 00:04:22,310 cara dari beberapa pemahaman mendasar. 72 00:04:22,310 --> 00:04:24,870 Dalam hal sekarang struktur dukungan menjelang, menyadari hal ini 73 00:04:24,870 --> 00:04:27,570 alat, CS50 Bahas, yang akan dihubungkan pada kursus ini 74 00:04:27,570 --> 00:04:30,320 Website hari ini, adalah forum diskusi online di 75 00:04:30,320 --> 00:04:32,480 yang Anda akan dapat mengajukan pertanyaan satu sama lain dan 76 00:04:32,480 --> 00:04:35,020 Staf, dan juga alat, seperti yang akan kita lihat minggu depan, 77 00:04:35,020 --> 00:04:37,240 yang akan kami gunakan cukup terpadu dalam 78 00:04:37,240 --> 00:04:38,780 Kantor jam juga. 79 00:04:38,780 --> 00:04:41,670 Memang, jam kerja dimulai pada hari Senin, dan terus terang, yang pertama 80 00:04:41,670 --> 00:04:43,930 minggu jam kantor adalah kunci cukup rendah. 81 00:04:43,930 --> 00:04:46,820 >> Saya tidak berpikir Anda akan menemukan semua yang tidak dapat diakses Scratch. 82 00:04:46,820 --> 00:04:48,930 Ini agak cukup jelas, seperti yang akan kita lihat, dan jadi apa 83 00:04:48,930 --> 00:04:51,380 kita akan menggunakannya untuk hari ini adalah untuk mengekstrak beberapa 84 00:04:51,380 --> 00:04:53,990 dasar ide-ide yang akan, maka, bertahan sepanjang 85 00:04:53,990 --> 00:04:54,900 sisa semester. 86 00:04:54,900 --> 00:04:57,980 Tapi mulai Senin, di 8:00 melalui 23:00 akan 87 00:04:57,980 --> 00:05:01,530 kantor jam di Annenberg selama liburan otak. 88 00:05:01,530 --> 00:05:04,490 Sectioning dua akan dimulai malam ini, jadi kadang-kadang ini 89 00:05:04,490 --> 00:05:07,260 akhir pekan, pergi ke cs50.net/section, dan Anda akan 90 00:05:07,260 --> 00:05:08,530 diminta sejumlah pertanyaan. 91 00:05:08,530 --> 00:05:10,290 Di antara mereka, bagaimana Anda menggambarkan Anda 92 00:05:10,290 --> 00:05:12,040 tingkat kenyamanan untuk hari ini? 93 00:05:12,040 --> 00:05:14,450 Tidak ada aturan yang keras dan cepat untuk siapa yang ember. 94 00:05:14,450 --> 00:05:17,170 Ini hanya semacam hal yang Anda mungkin tahu jika Anda 95 00:05:17,170 --> 00:05:20,280 di antara mereka yang kurang nyaman atau sebaliknya. 96 00:05:20,280 --> 00:05:21,350 >> Dan sekarang, Walkthroughs. 97 00:05:21,350 --> 00:05:24,020 Sejumlah masalah spesifikasi untuk minggu ini, kedua standar 98 00:05:24,020 --> 00:05:28,560 dan edisi hacker sama, yang online di cs50.net seperti yang sekarang. 99 00:05:28,560 --> 00:05:31,500 Dan Anda akan melihat bahwa pertama dari edisi, 100 00:05:31,500 --> 00:05:33,940 Edisi standar setiap minggu, disertai dengan sesuatu yang kita 101 00:05:33,940 --> 00:05:36,550 memanggil pelacakan kode, sesi dipimpin oleh salah satu 102 00:05:36,550 --> 00:05:39,100 rekan mengajar kursus untuk memandu Anda melalui, memberikan 103 00:05:39,100 --> 00:05:42,290 tips, dan membuat Anda menuruni jalan tertentu ketika datang 104 00:05:42,290 --> 00:05:44,150 untuk memulai set ini masalah. 105 00:05:44,150 --> 00:05:46,790 Jadi dengan masing-masing masalah tersebut menetapkan, jika Anda pernah ingin 106 00:05:46,790 --> 00:05:50,250 untuk diri sendiri di mana saya mulai, Anda mulai dengan 107 00:05:50,250 --> 00:05:50,890 Walkthroughs. 108 00:05:50,890 --> 00:05:53,450 Dan pada kenyataannya, izinkan saya untuk memperkenalkan Zamyla Chan, ini 109 00:05:53,450 --> 00:05:55,870 tahun mengajar rekan yang akan memimpin setiap 110 00:05:55,870 --> 00:05:56,910 salah satu Walkthroughs. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Tepuk Tangan] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: Oh, hi, semua orang. 114 00:06:03,975 --> 00:06:05,130 Nama saya Zamyla. 115 00:06:05,130 --> 00:06:08,250 Aku belajar teknik junior di Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Tapi aku mencoba dan cocok sebagai program ilmu komputer banyak yang saya 117 00:06:10,890 --> 00:06:13,350 bisa, itulah sebabnya saya benar-benar senang bisa memimpin ini 118 00:06:13,350 --> 00:06:14,590 tahun penelusuran. 119 00:06:14,590 --> 00:06:16,950 Walkthrough, bagi saya, adalah bagian penting dari CS50 saya 120 00:06:16,950 --> 00:06:17,910 pengalaman. 121 00:06:17,910 --> 00:06:22,710 Selama walkthrough, untuk setiap set p-, kita akan pergi melalui 122 00:06:22,710 --> 00:06:25,580 masalah ditetapkan bersama, melihat di atas masalah, jenis 123 00:06:25,580 --> 00:06:27,360 membagi mereka menjadi gigitan dikelola. 124 00:06:27,360 --> 00:06:28,990 Aku akan memberikan tips, teknik, untuk mendapatkan 125 00:06:28,990 --> 00:06:30,820 melalui dan memulai. 126 00:06:30,820 --> 00:06:33,510 Saya berharap untuk melihat Anda semua di penelusuran. 127 00:06:33,510 --> 00:06:34,720 Jika Anda tidak dapat membuat secara langsung, maka 128 00:06:34,720 --> 00:06:36,580 silahkan melakukan lagu secara online. 129 00:06:36,580 --> 00:06:36,840 >> DAVID Malan: Sangat baik. 130 00:06:36,840 --> 00:06:37,950 Terima kasih, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Jadi menyadari bahwa walkthrough, memang, pada hari Jumat 132 00:06:40,870 --> 00:06:43,110 sore, tapi ini sengaja dengan desain sehingga 133 00:06:43,110 --> 00:06:45,750 bahkan jika Anda tidak ingin menghadiri kelas pada hari Jumat 134 00:06:45,750 --> 00:06:48,490 sore, video akan sampai semua lebih cepat lebih 135 00:06:48,490 --> 00:06:48,990 akhir pekan. 136 00:06:48,990 --> 00:06:51,880 Jadi menyadari bahwa cs50.net akan semua ini Zamyla 137 00:06:51,880 --> 00:06:53,130 Walkthroughs. 138 00:06:54,800 --> 00:06:56,890 Dan bahwa ada tanggal hari ini dan waktu, 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 Dan beberapa rekan-rekan mengajar juga telah disiapkan 141 00:07:00,080 --> 00:07:03,250 beberapa komentar Anda untuk in absentia untuk memberikan sedikit 142 00:07:03,250 --> 00:07:06,760 Perspektif seperti apa pengalaman mereka datang ke dan 143 00:07:06,760 --> 00:07:08,990 akan keluar dari CS50 seperti. 144 00:07:08,990 --> 00:07:11,250 Jadi jika kita bisa meredupkan lampu untuk sesaat, aku memberikan 145 00:07:11,250 --> 00:07:18,100 beberapa staf CS50 itu. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON STEINKAMP: Aku mengambil CS50 tahun lalu sebagai mahasiswa di 147 00:07:20,440 --> 00:07:22,880 jatuh, dan itu benar-benar meniup pikiran saya. 148 00:07:22,880 --> 00:07:25,090 Saya tidak pernah mengambil setiap kelas pemrograman sebelumnya, 149 00:07:25,090 --> 00:07:26,380 dan tidak pernah datang dengan ilmu komputer 150 00:07:26,380 --> 00:07:27,320 pengalaman sama sekali. 151 00:07:27,320 --> 00:07:29,240 Dan, saya mendengar buzz tentang kelas dan 152 00:07:29,240 --> 00:07:30,050 memutuskan untuk mengambilnya. 153 00:07:30,050 --> 00:07:31,780 >> JULIA MITELMAN: Itu benar-benar menyenangkan, benar-benar menarik. 154 00:07:31,780 --> 00:07:33,480 Saya masih, sampai hari ini - 155 00:07:33,480 --> 00:07:36,560 Saya baru saja melihat saya memiliki floppy disk yang David memberi kami 156 00:07:36,560 --> 00:07:38,140 pada hari pertama kami kuliah. 157 00:07:38,140 --> 00:07:40,020 Saya telah menggantungnya di dinding saya. 158 00:07:40,020 --> 00:07:42,410 Ini mungkin sedikit kutu buku, tapi aku menggantung di atas saya 159 00:07:42,410 --> 00:07:46,930 dinding selama kelas sebagai pengingat bagaimana dingin itu. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: Ini sangat memalukan. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON STEINKAMP: Ilmu komputer adalah sesuatu yang Anda 162 00:07:50,770 --> 00:07:52,370 harus mencoba bahkan jika Anda tidak satu untuk 163 00:07:52,370 --> 00:07:54,980 ilmu-ilmu tradisional. 164 00:07:54,980 --> 00:07:58,510 Ini adalah pengalaman sendiri, dan CS50 akan pastikan Anda 165 00:07:58,510 --> 00:08:01,520 didukung baik melalui itu dengan tentara benar nya TF. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: aku mengambilnya sebagai mahasiswa baru, dan jadi saya membuat banyak 167 00:08:03,700 --> 00:08:04,215 teman-teman baru. 168 00:08:04,215 --> 00:08:07,170 Saya juga harus diperkenalkan ke seluruh konsentrasi dan 169 00:08:07,170 --> 00:08:10,770 seluruh sekolah teknik, dan jadi saya sangat merekomendasikannya 170 00:08:10,770 --> 00:08:14,360 dan menyambut Anda untuk keluarga CS50 kami. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv Yacoby: CS50 hanya mengajarkan Anda bagaimana menggunakan alat-alat 172 00:08:17,510 --> 00:08:19,210 yang dapat diakses secara luas. 173 00:08:19,210 --> 00:08:21,840 Anda hanya perlu sebuah laptop, Anda memerlukan browser web, dan Anda 174 00:08:21,840 --> 00:08:26,030 perlu belajar untuk menulis beberapa kode, dan Anda benar-benar dapat membangun 175 00:08:26,030 --> 00:08:27,400 hal-hal rapi. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: Ini hanya begitu sejuk untuk dapat membuat sesuatu 177 00:08:31,660 --> 00:08:34,580 dan memiliki orang-orang menggunakannya dan memiliki orang-orang melihatnya, dan itu 178 00:08:34,580 --> 00:08:35,900 apa yang saya benar-benar mencintai tentang hal itu. 179 00:08:35,900 --> 00:08:37,429 >> TIM McLaughlin: - rasa masyarakat, saya pikir, dalam hal ini 180 00:08:37,429 --> 00:08:39,470 lebih dari jalan lain saya telah diambil sejauh ini saja. 181 00:08:39,470 --> 00:08:41,350 Anda tidak hanya mengambil yang lain - 182 00:08:41,350 --> 00:08:42,740 Anda tidak mengisi persyaratan lain. 183 00:08:42,740 --> 00:08:45,310 Anda tidak hanya akan kuliah dan pergi ke bagian. 184 00:08:45,310 --> 00:08:49,630 Tapi kau melakukan banyak hal yang semua tentang 185 00:08:49,630 --> 00:08:51,560 pemrograman dan semua tentang teknologi, tetapi tidak 186 00:08:51,560 --> 00:08:53,090 benar-benar merasa seperti kelas sebagian besar waktu. 187 00:08:53,090 --> 00:08:55,012 >> DOWNS TRAVIS: Dan pada hari pertama, mereka membagi-bagikan kue, dan 188 00:08:55,012 --> 00:08:56,215 Saya langsung dijual. 189 00:08:56,215 --> 00:08:57,822 >> JACOB Pritt: permen gratis dan pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - terlepas dari tingkat minat Anda, saya pikir 191 00:08:59,820 --> 00:09:05,170 bahwa CS50, Anda akan bersenang-senang, dan Anda akan intelektual 192 00:09:05,170 --> 00:09:06,070 dirangsang. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: Selalu pesta di kelas, dan itu adalah 194 00:09:07,926 --> 00:09:09,990 Partai setiap malam bekerja pada p-set Anda. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON STEINKAMP: Setiap kali Anda menyelesaikan satu set masalah, Anda 196 00:09:11,880 --> 00:09:13,710 akan merasa seperti Anda telah selesai proyek. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Itu tahun pertama, dan aku selesai belanja. 198 00:09:16,580 --> 00:09:19,030 Aku punya empat kelas saya siap, dan saya berada di Annenberg. 199 00:09:19,030 --> 00:09:21,670 Dan saya bertemu seorang teman, dan dia berkata, hey, Aku belanja 200 00:09:21,670 --> 00:09:24,330 kelas ini disebut CS50, dan Anda harus datang dengan saya. 201 00:09:24,330 --> 00:09:28,150 Akhirnya mengambil musim gugur itu, dan setelah kelas itu, saya 202 00:09:28,150 --> 00:09:30,510 pikir mungkin aku akan kecil di CS. 203 00:09:30,510 --> 00:09:33,760 Tapi di sini saya, tiga tahun kemudian, masih belajar komputer 204 00:09:33,760 --> 00:09:36,680 ilmu pengetahuan dan benar-benar melakukannya sebagai utama, dan aku mencintai setiap 205 00:09:36,680 --> 00:09:37,780 saat itu. 206 00:09:37,780 --> 00:09:39,030 >> ROB Bowden: Saya tidak tahu. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Mari kita lihat. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: kegilaan. 209 00:09:49,200 --> 00:09:50,610 >> SPEAKER 1: Saya merasa seperti saya akan sangat klise. 210 00:09:50,610 --> 00:09:52,530 Aku hanya akan mengatakan, seperti, mengagumkan. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv Yacoby: Aksesibilitas. 212 00:09:53,540 --> 00:09:55,080 >> JACOB Pritt: permen gratis dan pizza. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: Tidak dapat menolak kelas yang tangan keluar kue. 214 00:09:57,310 --> 00:09:58,510 >> TIM McLaughlin: Energetic. 215 00:09:58,510 --> 00:10:00,040 >> VIPUL SHEKHAWAT: Penting. 216 00:10:00,040 --> 00:10:02,636 >> ROB Bowden: Biarkan saya memikirkan jawaban. 217 00:10:02,636 --> 00:10:04,480 Saya pikir saya punya sesuatu. 218 00:10:04,480 --> 00:10:07,092 Oh, Tuhan. 219 00:10:07,092 --> 00:10:13,370 Ya, nama saya Rob Bowden, dan ini adalah CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Tepuk Tangan] 221 00:10:20,810 --> 00:10:23,390 DAVID Malan: Baiklah, jadi mari kita mulai melukis gambar 222 00:10:23,390 --> 00:10:26,230 dari arah di mana kita bisa pergi, dan mari kita memperkenalkan 223 00:10:26,230 --> 00:10:28,190 konsep ini di sini dikenal sebagai pseudocode. 224 00:10:28,190 --> 00:10:29,560 Jadi pseudocode bukanlah pemrograman 225 00:10:29,560 --> 00:10:30,810 bahasa tersendiri. 226 00:10:30,810 --> 00:10:33,250 Bukan apa-apa teknis per se, tapi itu hanya semacam 227 00:10:33,250 --> 00:10:36,490 umum cara mengekspresikan diri cukup tepat, 228 00:10:36,490 --> 00:10:39,730 cukup algorithmically, cukup prosedural, tapi tanpa 229 00:10:39,730 --> 00:10:42,570 harus khawatir tentang apa bahasa yang Anda mengekspresikan 230 00:10:42,570 --> 00:10:43,150 diri masuk 231 00:10:43,150 --> 00:10:46,280 Ini adalah beberapa model bahasa Inggris dan bahasa pemrograman dengan 232 00:10:46,280 --> 00:10:48,790 yang Anda kebetulan menjadi akrab, sehingga kami dapat mulai 233 00:10:48,790 --> 00:10:50,600 menulis hal semacam ini seperti yang kita pergi. 234 00:10:50,600 --> 00:10:54,450 Dan pada kenyataannya, Joseph, bisa saya pinjam Anda di atas panggung menjadi 235 00:10:54,450 --> 00:10:55,490 juru tulis di sini? 236 00:10:55,490 --> 00:11:00,130 Aku telah pergi ke depan di sini di muka dan lupa untuk menempatkan 237 00:11:00,130 --> 00:11:02,920 pada beberapa kaus kaki saat ini, dan ini akan berada di antara kita yang lebih 238 00:11:02,920 --> 00:11:03,780 contoh konyol. 239 00:11:03,780 --> 00:11:04,580 >> Sekarang, aku butuh kau di sini. 240 00:11:04,580 --> 00:11:05,630 Aku akan melakukan bagian kaus kaki. 241 00:11:05,630 --> 00:11:08,040 Jadi di sini kita memiliki pad awal sedikit. 242 00:11:08,040 --> 00:11:09,940 Ini benar-benar hanya TextEdit di Mac. 243 00:11:09,940 --> 00:11:12,270 Kita tidak benar-benar akan menulis sebuah program runnable, namun 244 00:11:12,270 --> 00:11:14,220 kami hanya akan mulai membuat sketsa berbasis pseudocode 245 00:11:14,220 --> 00:11:17,830 pada beberapa nasihat yang Anda berikan kepada saya di sini. 246 00:11:17,830 --> 00:11:20,760 Jadi di sini adalah tumpukan kaus kaki saya di rumah. 247 00:11:20,760 --> 00:11:23,320 Saya tidak punya kaus kaki ketika saya bangun di pagi hari, dan kami sekarang 248 00:11:23,320 --> 00:11:26,280 perlu menulis sebuah program, algoritma macam, dengan mana 249 00:11:26,280 --> 00:11:27,900 untuk mendapatkan kaus kaki di kaki saya. 250 00:11:27,900 --> 00:11:30,860 Dan sepanjang jalan, mari kita lihat apakah kita tersandung, atau menemukan, 251 00:11:30,860 --> 00:11:32,860 beberapa ide yang Anda akan harus mulai 252 00:11:32,860 --> 00:11:35,470 memikirkan lebih serius ketika pemrograman 253 00:11:35,470 --> 00:11:37,950 supaya program Anda tidak berperilaku cukup sebagaimana dimaksud. 254 00:11:37,950 --> 00:11:39,580 >> Jadi aku duduk di sini. 255 00:11:39,580 --> 00:11:41,180 Aku punya tumpukan saya kaus kaki. 256 00:11:41,180 --> 00:11:43,780 Apa hal pertama manusia wajar akan 257 00:11:43,780 --> 00:11:46,600 lakukan ketika tujuannya adalah untuk memakai sepasang kaus kaki? 258 00:11:46,600 --> 00:11:49,190 Seseorang memberi saya satu langkah, dan hanya satu langkah. 259 00:11:49,190 --> 00:11:49,796 Ya? 260 00:11:49,796 --> 00:11:50,690 HADIRIN: Bend bawah. 261 00:11:50,690 --> 00:11:54,290 DAVID Malan: Bend turun, Oke. 262 00:11:54,290 --> 00:11:55,540 Langkah dua. 263 00:11:59,975 --> 00:12:00,645 Langkah dua. 264 00:12:00,645 --> 00:12:01,840 HADIRIN: Ambil kaus kaki Anda. 265 00:12:01,840 --> 00:12:03,220 DAVID Malan: Pick up kaus kaki Anda. 266 00:12:03,220 --> 00:12:07,610 Oke, ambiguitas sangat sedikit di sini, dan ini adalah salah satu yang pertama 267 00:12:07,610 --> 00:12:09,380 batu sandungan bahwa kita seharusnya sengaja 268 00:12:09,380 --> 00:12:10,290 menemukan di sini. 269 00:12:10,290 --> 00:12:14,110 Ini sedikit ambigu, sehingga mengambil kaus kaki Anda. 270 00:12:14,110 --> 00:12:17,425 Baik, aku akan mengambil satu ini, tapi komputer, menyadari hanya dalam 271 00:12:17,425 --> 00:12:20,420 bit, tidak akan memiliki semacam naluri manusia untuk hanya 272 00:12:20,420 --> 00:12:21,490 memilih yang terdekat. 273 00:12:21,490 --> 00:12:23,590 Kita akan harus mulai, sebelum lama, mengekspresikan 274 00:12:23,590 --> 00:12:24,610 diri kita lebih tepat. 275 00:12:24,610 --> 00:12:26,600 >> Baiklah, sehingga langkah kedua adalah mengambil kaus Anda. 276 00:12:26,600 --> 00:12:27,520 Kami akan mengambilnya. 277 00:12:27,520 --> 00:12:28,620 Langkah tiga. 278 00:12:28,620 --> 00:12:29,532 Di bagian belakang. 279 00:12:29,532 --> 00:12:30,900 HADIRIN: Cari pasangan yang cocok. 280 00:12:30,900 --> 00:12:32,060 DAVID Malan: Menemukan pasangan yang cocok. 281 00:12:32,060 --> 00:12:34,740 Oke, jadi ini adalah baik. 282 00:12:34,740 --> 00:12:35,650 Saya harus memilih kaus kaki ini. 283 00:12:35,650 --> 00:12:39,200 Jadi tujuannya adalah untuk menemukan kaus kaki yang cocok, sekarang, tapi apa 284 00:12:39,200 --> 00:12:39,990 artinya? 285 00:12:39,990 --> 00:12:42,130 Sebuah wajar manusia, seperti pada hari Rabu ketika aku hanya 286 00:12:42,130 --> 00:12:44,700 tahu bagaimana menemukan Mike Smith dalam buku telepon, hanya jenis 287 00:12:44,700 --> 00:12:45,640 pergi dengan insting mereka. 288 00:12:45,640 --> 00:12:49,220 Tapi di sini, itu jelas ini kaus kaki di sini, tapi komputer ini 289 00:12:49,220 --> 00:12:51,350 tidak akan begitu naluriah. 290 00:12:51,350 --> 00:12:53,830 Sebuah komputer akan memiliki koleksi bit, seperti yang kita 291 00:12:53,830 --> 00:12:55,380 dibahas pada hari Rabu, dan mereka adalah 292 00:12:55,380 --> 00:12:56,710 terorganisir entah bagaimana dalam memori. 293 00:12:56,710 --> 00:13:00,400 Tetapi intinya adalah bahwa komputer hanya memiliki kemampuan 294 00:13:00,400 --> 00:13:03,390 untuk melihat hal-hal pada suatu waktu, dan pada kenyataannya, bahkan kita 295 00:13:03,390 --> 00:13:05,980 manusia - meskipun rasanya Aku menunduk dan perpecahan 296 00:13:05,980 --> 00:13:08,900 Sedetik kemudian aku tahu di mana kaus kaki adalah, otak dan mataku 297 00:13:08,900 --> 00:13:12,000 mungkin tidak cepat skim tersebut kaus kaki, dan kemudian terkunci 298 00:13:12,000 --> 00:13:13,400 pada satu pertanyaan. 299 00:13:13,400 --> 00:13:15,780 >> Jadi jika kita menjadi semakin disengaja sekarang sebagai komputer, 300 00:13:15,780 --> 00:13:17,780 bagaimana cara menemukan pasangan yang cocok? 301 00:13:17,780 --> 00:13:18,890 Nah, kita harus iterate. 302 00:13:18,890 --> 00:13:21,440 Kita harus mungkin loop atas kekacauan ini kaus kaki di 303 00:13:21,440 --> 00:13:25,760 lantai dimana saya mengatakan sesuatu seperti kaus kaki UNTUK SETIAP, mengambilnya 304 00:13:25,760 --> 00:13:30,195 up, DAN JIKA bentuk dan ukuran yang sama seperti yang lain, MAKA 305 00:13:30,195 --> 00:13:32,150 dot, dot, dot, kami akan lanjutkan ceritanya. 306 00:13:32,150 --> 00:13:34,430 Jadi untuk setiap kaus kaki, jadi aku mengambil satu ini. 307 00:13:34,430 --> 00:13:36,520 Saya cek ini sama dengan yang satu ini. 308 00:13:36,520 --> 00:13:38,250 Ini tidak, jadi saya mengesampingkan sisi. 309 00:13:38,250 --> 00:13:39,220 Lalu aku iterate lagi. 310 00:13:39,220 --> 00:13:40,340 Apakah ini satu sama? 311 00:13:40,340 --> 00:13:42,010 Tidak, itu tidak, jadi aku menyimpannya. 312 00:13:42,010 --> 00:13:42,710 Apakah yang satu ini? 313 00:13:42,710 --> 00:13:43,200 Tidak. 314 00:13:43,200 --> 00:13:43,670 Yang ini? 315 00:13:43,670 --> 00:13:44,520 Tidak, dan sebagainya. 316 00:13:44,520 --> 00:13:48,730 Dan akhirnya, mudah-mudahan, saya akan menghadapi kaus kaki ini di sini. 317 00:13:48,730 --> 00:13:51,350 Jadi jika bentuk yang sama, ukuran, bawa. 318 00:13:51,350 --> 00:13:53,980 >> Dan sekarang, apa yang akan menjadi langkah berikutnya kita di sini? 319 00:13:53,980 --> 00:13:54,402 Ya? 320 00:13:54,402 --> 00:13:56,090 HADIRIN: Identifikasi kanan dari kiri. 321 00:13:56,090 --> 00:13:58,980 DAVID Malan: Oke, mengidentifikasi kanan dan kiri, sehingga 322 00:13:58,980 --> 00:14:01,870 untungnya, bahwa jenis karya. 323 00:14:01,870 --> 00:14:04,020 Sebuah simetris kecil, atau aku hanya dikenakan mereka seperti itu. 324 00:14:04,020 --> 00:14:07,020 Baiklah, jadi aku telah mengidentifikasi kanan. 325 00:14:07,020 --> 00:14:09,980 Dan sekarang, sebelum kita melanjutkan, biarkan saya menunjukkan apa yang Yusuf 326 00:14:09,980 --> 00:14:12,890 telah melakukan di sini sebagai semacam programmer berpengalaman. 327 00:14:12,890 --> 00:14:15,800 Jadi sekali lagi, tidak ada satu cara untuk melakukan hal ini, tetapi lebih dari sekedar 328 00:14:15,800 --> 00:14:18,480 penomoran baris, Yusuf sudah mulai melakukan hal ini 329 00:14:18,480 --> 00:14:19,460 semacam lekukan. 330 00:14:19,460 --> 00:14:21,950 Memang, ini adalah konvensi yang sangat umum dalam pemrograman, 331 00:14:21,950 --> 00:14:26,110 dimana ketika Anda melakukan sesuatu berulang, looping gaya, seperti 332 00:14:26,110 --> 00:14:28,480 kita menyiratkan dengan frase bahasa Inggris "UNTUK SETIAP 333 00:14:28,480 --> 00:14:31,090 kaus kaki, "konvensi dalam pseudocode dan, seperti yang akan kita lihat, 334 00:14:31,090 --> 00:14:33,410 bahasa pemrograman yang normal, adalah hanya indent. 335 00:14:33,410 --> 00:14:36,240 Tekan space bar beberapa kali, tekan tombol Tab atau sejenisnya, 336 00:14:36,240 --> 00:14:40,660 sehingga bersarang di bawah "UNTUK SETIAP kaus kaki" adalah sepotong 337 00:14:40,660 --> 00:14:43,430 hal-hal yang perlu Anda lakukan sebagai hasil dari lingkaran itu. 338 00:14:43,430 --> 00:14:45,940 Jadi itu saja yang menyampaikan semantik. 339 00:14:45,940 --> 00:14:48,620 Sekarang sementara itu, "Jika bentuk dan ukuran yang sama," kata 340 00:14:48,620 --> 00:14:51,590 Fakta bahwa "Take it" lebih menjorok jauh hanya berarti 341 00:14:51,590 --> 00:14:54,370 itulah satu-satunya hal yang harus Anda lakukan jika kondisi itu, 342 00:14:54,370 --> 00:14:59,770 jika cabang, bahwa persimpangan jalan, pada kenyataannya benar. 343 00:14:59,770 --> 00:15:02,130 >> Jadi sekarang di sini, kita pada langkah keempat, mengidentifikasi kanan dan kiri. 344 00:15:02,130 --> 00:15:03,410 Saya telah mengidentifikasi benar. 345 00:15:03,410 --> 00:15:05,150 Berikan aku melangkah lima. 346 00:15:05,150 --> 00:15:07,880 Dan secara teknis, kita benar-benar bisa menelepon 347 00:15:07,880 --> 00:15:09,510 UNTUK SETIAP hal - 348 00:15:09,510 --> 00:15:11,450 Anda mungkin harus menomori semua baris jika 349 00:15:11,450 --> 00:15:12,190 kita akan melakukan hal ini. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [Tak terdengar] 351 00:15:14,006 --> 00:15:14,610 DAVID Malan: [Tak terdengar]? 352 00:15:14,610 --> 00:15:16,070 Oke, baik-baik saja, baik-baik saja, kita akan melakukannya dengan cara Anda. 353 00:15:16,070 --> 00:15:19,590 Baiklah, jadi langkah kelima, bagaimana kita melakukan kaus kaki yang tepat? 354 00:15:19,590 --> 00:15:22,310 Bagaimana kita lanjutkan selanjutnya, di sini? 355 00:15:22,310 --> 00:15:22,730 Ya? 356 00:15:22,730 --> 00:15:24,300 HADIRIN: Angkat kaki kanan. 357 00:15:24,300 --> 00:15:27,100 DAVID Malan: Angkat kaki kanan, Oke. 358 00:15:27,100 --> 00:15:29,330 Langkah enam? 359 00:15:29,330 --> 00:15:30,728 Cepat. 360 00:15:30,728 --> 00:15:31,202 Ya. 361 00:15:31,202 --> 00:15:33,100 HADIRIN: Cari ujung terbuka dari kaus kaki. 362 00:15:33,100 --> 00:15:34,440 DAVID Malan: Oke, menemukan ujung terbuka dari kaus kaki. 363 00:15:34,440 --> 00:15:34,840 Jadi baik. 364 00:15:34,840 --> 00:15:37,180 Jadi di sini, jujur, naluri sangat umum hanya akan menjadi 365 00:15:37,180 --> 00:15:39,880 memakai kaus kaki yang tepat, tapi itu juga cukup ambigu. 366 00:15:39,880 --> 00:15:42,750 Kecuali komputer atau manusia tahu persis apa artinya, 367 00:15:42,750 --> 00:15:45,160 itu tidak akan melaksanakan itu, jadi di sini, aku sudah 368 00:15:45,160 --> 00:15:46,520 menemukan pembukaan saham. 369 00:15:46,520 --> 00:15:48,222 Langkah tujuh? 370 00:15:48,222 --> 00:15:49,700 HADIRIN: Sentuh jari-jari kaki Anda. 371 00:15:49,700 --> 00:15:51,070 DAVID Malan: jari kaki Sentuh. 372 00:15:51,070 --> 00:15:53,546 Oke, jadi sekarang kita pergi - 373 00:15:53,546 --> 00:15:56,480 Baiklah, aku akan mengambil beberapa kebebasan di sini. 374 00:15:56,480 --> 00:15:57,110 Terima kasih. 375 00:15:57,110 --> 00:15:59,210 Langkah delapan? 376 00:15:59,210 --> 00:16:00,060 Masukan kaus kaki. 377 00:16:00,060 --> 00:16:02,060 Oke, jadi sekarang aku, pikir kami cukup dekat untuk memilah-take 378 00:16:02,060 --> 00:16:03,480 satu ini di rumah. 379 00:16:03,480 --> 00:16:05,980 Baiklah, jadi ini naik. 380 00:16:05,980 --> 00:16:07,950 Saya akan mengambil beberapa kebebasan dengan apa artinya, sebenarnya. 381 00:16:07,950 --> 00:16:08,920 Masukan kaus kaki pada. 382 00:16:08,920 --> 00:16:10,853 Baiklah, sekarang langkah sembilan? 383 00:16:10,853 --> 00:16:11,740 HADIRIN: Taruh kaki bawah. 384 00:16:11,740 --> 00:16:12,510 DAVID Malan: Terima kasih. 385 00:16:12,510 --> 00:16:15,610 Langkah sembilan, meletakkan kaki ke bawah, dan sekarang, kita dapat mengulangi. 386 00:16:15,610 --> 00:16:19,540 Jadi mungkin, kita sekarang dapat masuk ke langkah 10 dan berkata mengidentifikasi 387 00:16:19,540 --> 00:16:21,960 meninggalkan kaus kaki, tapi itu mungkin sudah dilakukan. 388 00:16:21,960 --> 00:16:24,100 >> Dan begitu kemudian, saya dapat semacam ulangi langkah-langkah. 389 00:16:24,100 --> 00:16:25,260 Tapi ini semacam menimbulkan pertanyaan. 390 00:16:25,260 --> 00:16:28,100 Sebelumnya, terakhir kali kami ingin mengulang sesuatu, kita 391 00:16:28,100 --> 00:16:30,730 melakukannya iteratif, lagi dan lagi, FOR 392 00:16:30,730 --> 00:16:32,660 SETIAP lingkaran sehingga untuk berbicara. 393 00:16:32,660 --> 00:16:36,420 Apakah masuk akal untuk menggunakan loop untuk menangani keduanya 394 00:16:36,420 --> 00:16:38,470 kiri dan kaus kaki yang tepat? 395 00:16:38,470 --> 00:16:40,460 Karena rasanya seperti operasi ini cukup banyak 396 00:16:40,460 --> 00:16:43,090 identik kecuali untuk fakta bahwa seseorang mulai di sini dan satu 397 00:16:43,090 --> 00:16:44,850 dimulai di sini? 398 00:16:44,850 --> 00:16:47,400 Apakah kita loop, atau kita terus langkah-langkah menulis 399 00:16:47,400 --> 00:16:48,745 10 dan 11 dan 12? 400 00:16:48,745 --> 00:16:50,540 HADIRIN: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID Malan: Oke, jadi loop. 402 00:16:52,240 --> 00:16:54,730 Aku benar-benar mungkin mengatakan hanya terus berjalan. 403 00:16:54,730 --> 00:16:55,720 Lalu mengapa ini terjadi? 404 00:16:55,720 --> 00:16:57,940 Nah, ini sebenarnya yang pertama dari kami non-jelas 405 00:16:57,940 --> 00:17:01,210 desain keputusan, dan pada kenyataannya, salah satu metrik dengan mana 406 00:17:01,210 --> 00:17:03,990 kita akan mulai mengevaluasi, untuk diri kita sendiri dan untuk Anda, 407 00:17:03,990 --> 00:17:06,780 kualitas program adalah seberapa dirancang dengan baik itu. 408 00:17:06,780 --> 00:17:09,619 Apakah Anda melakukan jumlah minimal pekerjaan yang diperlukan untuk 409 00:17:09,619 --> 00:17:12,480 mendapatkan pekerjaan yang paling cepat, baik dari segi 410 00:17:12,480 --> 00:17:15,430 Anda waktu atau dalam hal waktu komputer berjalan? 411 00:17:15,430 --> 00:17:17,589 Berapa banyak operasi waktu yang dibutuhkan untuk mengeksekusi? 412 00:17:17,589 --> 00:17:20,180 Jadi bisa dibilang, ini adalah kesempatan untuk loop karena 413 00:17:20,180 --> 00:17:22,829 segera setelah saya mulai copy dan paste, seperti Yusuf efektif 414 00:17:22,829 --> 00:17:25,010 akan mulai melakukan suatu saat, kau jenis membuang-buang Anda 415 00:17:25,010 --> 00:17:27,140 waktu, dan Anda sedang ganda ekspresif. 416 00:17:27,140 --> 00:17:30,260 >> Tetapi pada saat yang sama, ini adalah benar-benar hanya dua khusus 417 00:17:30,260 --> 00:17:31,890 kasus, kiri dan kanan. 418 00:17:31,890 --> 00:17:34,930 Dan sementara sebelumnya, saya mungkin memiliki 10 atau 20 atau lebih kaus kaki di 419 00:17:34,930 --> 00:17:37,960 tumpukan, itu pasti masuk akal untuk tidak memiliki 50 baris 420 00:17:37,960 --> 00:17:40,180 Kode mengatakan cek kaus kaki ini, maka yang berikutnya, 421 00:17:40,180 --> 00:17:41,300 maka yang berikutnya. 422 00:17:41,300 --> 00:17:43,450 Di sini, itu sedikit kurang jelas, dan saya akan diusulkan 423 00:17:43,450 --> 00:17:44,390 bahwa kita bisa jalan baik. 424 00:17:44,390 --> 00:17:46,720 Kita juga bisa memiliki loop yang, meskipun hanya loop 425 00:17:46,720 --> 00:17:50,620 dua kali, atau kita hanya bisa copy dan paste hanya sedikit 426 00:17:50,620 --> 00:17:53,270 di sini untuk mendapatkan pekerjaan yang dilakukan. 427 00:17:53,270 --> 00:17:55,210 Tapi program ini adalah kereta, sehingga untuk berbicara. 428 00:17:55,210 --> 00:17:59,120 Ini mungkin memiliki beberapa kesalahan, kesalahan, atau kasus sudut, sehingga untuk 429 00:17:59,120 --> 00:18:00,860 berbicara, bahwa kita tidak benar-benar mengantisipasi. 430 00:18:00,860 --> 00:18:03,400 Tidak ada yang salah saat ini, tapi apa yang bisa saja salah 431 00:18:03,400 --> 00:18:06,100 ketika menjalankan program ini? 432 00:18:06,100 --> 00:18:07,040 HADIRIN: Anda tidak punya kaus kaki. 433 00:18:07,040 --> 00:18:08,980 >> DAVID Malan: Jadi tidak mungkin ada kaus kaki di sana sama sekali. 434 00:18:08,980 --> 00:18:10,380 Jadi mari kita menganggap bahwa kasus sudut. 435 00:18:10,380 --> 00:18:14,670 Jadi jika kita bisa gulir kembali ke langkah satu, jadi langkah pertama adalah 436 00:18:14,670 --> 00:18:16,540 membungkuk, sehingga check out. 437 00:18:16,540 --> 00:18:21,250 Langkah kedua, mengambil kaus kaki Anda, tapi kemudian menemukan kaus kaki yang cocok, 438 00:18:21,250 --> 00:18:22,420 mengidentifikasi kanan. 439 00:18:22,420 --> 00:18:25,050 Kami semacam membuat sejumlah asumsi, dan ini, 440 00:18:25,050 --> 00:18:27,720 terus terang, mengapa program kadang-kadang crash. 441 00:18:27,720 --> 00:18:30,240 Jika Anda, programmer, telah membuat asumsi-asumsi tertentu, seperti 442 00:18:30,240 --> 00:18:33,000 pasti ada akan menjadi kaus kaki atau pasti ada akan 443 00:18:33,000 --> 00:18:35,310 menjadi memori tersisa di komputer, pasti ada yang terjadi 444 00:18:35,310 --> 00:18:37,420 menjadi disk ruang yang tersisa pada hard drive - 445 00:18:37,420 --> 00:18:39,040 Nah, jika Anda membuat asumsi, dan itu tidak, 446 00:18:39,040 --> 00:18:41,880 pada kenyataannya, kenyataannya, siapa tahu kadang-kadang apa komputer ini 447 00:18:41,880 --> 00:18:42,520 akan lakukan? 448 00:18:42,520 --> 00:18:44,450 Dan kadang-kadang, ketika Anda mendapatkan bola pantai berputar atau 449 00:18:44,450 --> 00:18:47,750 beku Windows atau sejenisnya, itu justru karena beberapa 450 00:18:47,750 --> 00:18:50,980 programmer tidak mengantisipasi apa yang disebut kasus sudut. 451 00:18:50,980 --> 00:18:53,050 Apa lagi yang bisa saja salah dalam program ini? 452 00:18:53,050 --> 00:18:53,330 Ya? 453 00:18:53,330 --> 00:18:55,950 >> HADIRIN: Anda tidak memiliki kaki kanan dan kaki kiri. 454 00:18:55,950 --> 00:18:58,920 DAVID Malan: Oke, mungkin tidak memiliki kedua kaki kanan dan 455 00:18:58,920 --> 00:19:01,940 kaki kiri, sehingga program ini tidak mungkin universal 456 00:19:01,940 --> 00:19:02,590 berlaku. 457 00:19:02,590 --> 00:19:03,658 Lainnya? 458 00:19:03,658 --> 00:19:05,650 HADIRIN: Anda mungkin telah mengambil kaus kaki yatim piatu. 459 00:19:05,650 --> 00:19:07,970 DAVID Malan: Saya mungkin telah mengambil kaus kaki yatim, sehingga 460 00:19:07,970 --> 00:19:11,250 non-pencocokan kaus kaki yang hanya tidak memiliki saudara kandung karena saya sudah 461 00:19:11,250 --> 00:19:13,650 hilang, itu robek, itu di cuci masih, atau sejenisnya. 462 00:19:13,650 --> 00:19:15,550 Sehingga, juga belum benar-benar ditangani. 463 00:19:15,550 --> 00:19:15,790 Ya? 464 00:19:15,790 --> 00:19:17,510 HADIRIN: Anda mungkin sudah kaus kaki. 465 00:19:17,510 --> 00:19:19,050 DAVID Malan: Saya mungkin sudah kaus kaki. 466 00:19:19,050 --> 00:19:20,080 Saya tidak benar-benar memeriksa. 467 00:19:20,080 --> 00:19:23,350 JIKA Anda tidak memiliki kaus kaki, KEMUDIAN melanjutkan untuk melakukan 468 00:19:23,350 --> 00:19:24,330 baris satu dan dua. 469 00:19:24,330 --> 00:19:24,980 Dan itu bisa terjadi. 470 00:19:24,980 --> 00:19:26,880 Anda jatuh tertidur dengan kaus kaki Anda dan sejenisnya, sehingga 471 00:19:26,880 --> 00:19:28,860 itu juga, kasus sudut yang sangat wajar. 472 00:19:28,860 --> 00:19:29,630 Dan mungkin yang lain? 473 00:19:29,630 --> 00:19:31,310 HADIRIN: kaus kaki adalah dalam ke luar. 474 00:19:31,310 --> 00:19:34,000 DAVID Malan: Jadi kaus kaki adalah dalam ke luar, sehingga kita tidak ada kesalahan 475 00:19:34,000 --> 00:19:35,330 memeriksa, singkatnya. 476 00:19:35,330 --> 00:19:38,550 Kami tidak memeriksa apakah keadaan dunia ini seperti yang kita harapkan. 477 00:19:38,550 --> 00:19:41,310 Kami tidak memeriksa apakah kita benar-benar menemukan apa yang kita cari. 478 00:19:41,310 --> 00:19:43,310 >> Dan meskipun ini adalah semacam contoh konyol 479 00:19:43,310 --> 00:19:46,110 melibatkan kaus kaki, pada akhir hari, ini persis 480 00:19:46,110 --> 00:19:48,740 semacam pola pikir Anda harus memiliki saat menulis program, 481 00:19:48,740 --> 00:19:51,740 bahkan dalam Scratch serta C, dalam JavaScript, di PHP, 482 00:19:51,740 --> 00:19:53,920 karena jika tidak, program Anda akan menunjukkan 483 00:19:53,920 --> 00:19:56,980 setara dengan itu bola pantai berputar atau hanya menghasilkan 484 00:19:56,980 --> 00:19:58,210 akurat hasil. 485 00:19:58,210 --> 00:20:00,250 Begitu banyak terima kasih di sini untuk kami juru Joseph. 486 00:20:00,250 --> 00:20:05,060 [Tepuk Tangan] 487 00:20:05,060 --> 00:20:06,850 >> DAVID Malan: Baiklah, jadi apa, di 488 00:20:06,850 --> 00:20:08,230 Bahkan, sebuah program komputer? 489 00:20:08,230 --> 00:20:09,670 Nah, mari kita sekilas pada 490 00:20:09,670 --> 00:20:11,100 perwakilan satu di sini. 491 00:20:11,100 --> 00:20:15,260 Jadi ini adalah program yang ditulis dalam bahasa yang disebut C. C adalah 492 00:20:15,260 --> 00:20:17,830 bahasa baru cukup lama hari ini, tetapi banyak yang dibangun 493 00:20:17,830 --> 00:20:18,460 di atasnya. 494 00:20:18,460 --> 00:20:21,180 Memang, PHP, salah satu web-sentris bahasa kita akan 495 00:20:21,180 --> 00:20:24,050 gunakan menjelang akhir masa itu, sendiri memiliki apa yang disebut 496 00:20:24,050 --> 00:20:27,550 interpreter, sebuah program yang ditulis dalam C, tetapi lebih pada 497 00:20:27,550 --> 00:20:28,690 dalam beberapa minggu dari sekarang. 498 00:20:28,690 --> 00:20:30,840 Tapi program ini, dan ini adalah apa artinya untuk menulis 499 00:20:30,840 --> 00:20:32,880 Program, meskipun salah satu yang sangat sederhana. 500 00:20:32,880 --> 00:20:35,540 Kami memiliki beberapa sintaks yang cukup samar di sini, tapi Anda dapat 501 00:20:35,540 --> 00:20:38,340 mungkin menebak, bahkan jika Anda belum pernah diprogram sebelumnya, apa yang 502 00:20:38,340 --> 00:20:39,750 program ini tidak. 503 00:20:39,750 --> 00:20:43,640 Memang, saya tidak tahu apa printf, tapi mencetak tentu 504 00:20:43,640 --> 00:20:45,700 memunculkan gagasan mencetak sesuatu. 505 00:20:45,700 --> 00:20:48,590 Dan jadi ya, program ini pada akhirnya akan mencetak 506 00:20:48,590 --> 00:20:50,250 kata-kata "Hello, World." 507 00:20:50,250 --> 00:20:53,390 >> Sekarang, apakah Anda memiliki Mac atau PC atau komputer Linux, peluang 508 00:20:53,390 --> 00:20:55,550 yang, setidaknya jika Anda mengunduh beberapa bebas 509 00:20:55,550 --> 00:20:58,000 perangkat lunak yang tersedia, Anda bisa saja menulis program pada 510 00:20:58,000 --> 00:21:00,310 Anda sendiri laptop untuk beberapa waktu sekarang. 511 00:21:00,310 --> 00:21:03,040 Pada Mac OS, misalnya, ada program ini disebut 512 00:21:03,040 --> 00:21:05,340 Terminal yang datang dengan Mac, yang biasanya Anda 513 00:21:05,340 --> 00:21:07,550 Utilities folder, dan umumnya membuka hitam dan 514 00:21:07,550 --> 00:21:09,820 putih atau jendela putih dan hitam di mana Anda memiliki 515 00:21:09,820 --> 00:21:11,410 meminta di mana Anda dapat mengetikkan perintah. 516 00:21:11,410 --> 00:21:13,060 Jadi ini sebenarnya mengingatkan apa komputer 517 00:21:13,060 --> 00:21:15,100 dulu sebelum pengguna grafis 518 00:21:15,100 --> 00:21:16,710 interface, GUI, datang. 519 00:21:16,710 --> 00:21:19,200 Sekarang, di Windows, Anda memiliki mekanisme serupa dalam bentuk 520 00:21:19,200 --> 00:21:20,130 dari prompt perintah. 521 00:21:20,130 --> 00:21:23,430 >> Tapi apa yang akan saya lakukan di sini adalah membuka, katakanlah, 522 00:21:23,430 --> 00:21:26,580 TextEdit lagi, sehingga program yang sama kami gunakan untuk 523 00:21:26,580 --> 00:21:28,870 pseudocode beberapa saat yang lalu, dan aku akan pergi ke depan dan 524 00:21:28,870 --> 00:21:30,080 menulis program pertama saya. 525 00:21:30,080 --> 00:21:34,030 Sertakan stdio.h, apa pun artinya, int main 526 00:21:34,030 --> 00:21:36,880 void, apa pun artinya, dan kemudian di tengah di sini, 527 00:21:36,880 --> 00:21:40,560 printf ("halo, dunia."). Dan kemudian tutup kutipan, 528 00:21:40,560 --> 00:21:42,340 tutup paren, titik koma. 529 00:21:42,340 --> 00:21:44,460 Sekarang aku akan pergi ke depan dan hanya menekan Command-S. Aku akan 530 00:21:44,460 --> 00:21:47,650 untuk pergi ke depan dan menyimpan ini sebagai hello.c, sehingga konvensi di 531 00:21:47,650 --> 00:21:50,530 dunia pemrograman C adalah nama file dot c. 532 00:21:50,530 --> 00:21:52,880 Aku akan hanya dimasukkan ke dalam direktori Home John Harvard, 533 00:21:52,880 --> 00:21:56,370 di sini, klik Save, dan sekarang aku akan pergi ke ini 534 00:21:56,370 --> 00:21:59,110 jendela terminal, yang lagi-lagi adalah prompt ini hitam dan putih 535 00:21:59,110 --> 00:22:00,860 di mana saya bisa menjalankan perintah. 536 00:22:00,860 --> 00:22:04,550 >> Saya dapat menjalankan program dengan mengetikkan nama mereka, bukan oleh 537 00:22:04,550 --> 00:22:06,710 mengklik dua kali ikon dalam arti biasa. 538 00:22:06,710 --> 00:22:10,590 Tapi masalahnya adalah tentang C adalah bahwa bahasa seperti C pertama 539 00:22:10,590 --> 00:22:13,150 datang dalam bentuk ini, sesuatu yang disebut kode sumber. 540 00:22:13,150 --> 00:22:15,400 Sesuatu yang terlihat sedikit seperti bahasa Inggris tapi 541 00:22:15,400 --> 00:22:17,980 pasti kurang seperti bahasa Inggris dari pseudocode Yusuf 542 00:22:17,980 --> 00:22:18,930 saat lalu. 543 00:22:18,930 --> 00:22:20,560 Ini sedikit lebih misterius. 544 00:22:20,560 --> 00:22:22,830 Tampaknya mengikuti beberapa pola atau aturan. 545 00:22:22,830 --> 00:22:25,300 Fakta bahwa saya memiliki kurung kurawal, titik koma, tanda kutip, 546 00:22:25,300 --> 00:22:28,240 kawat gigi sudut, terasa seperti komputer datang dengan ini 547 00:22:28,240 --> 00:22:29,250 semacam bahasa. 548 00:22:29,250 --> 00:22:32,010 Tetapi jika aku pergi, sekarang, ini jendela terminal, saya bisa menjalankan 549 00:22:32,010 --> 00:22:35,250 perintah yang akan mengkonversi kode sumber 550 00:22:35,250 --> 00:22:36,610 sesuatu yang disebut kode obyek. 551 00:22:36,610 --> 00:22:39,690 Itu akan mengkonversi bahasa Inggris-seperti sintaks dengan nol 552 00:22:39,690 --> 00:22:41,760 dan orang-orang, jenis yang sama dari nol dan yang kita 553 00:22:41,760 --> 00:22:42,820 berbicara tentang Rabu. 554 00:22:42,820 --> 00:22:44,810 Sekarang, aku akan menjalankan perintah yang disebut dentang. 555 00:22:44,810 --> 00:22:47,750 Lebih lanjut tentang ini dalam minggu-minggu yang akan datang, tetapi itu adalah program dengan 556 00:22:47,750 --> 00:22:52,330 yang saya dapat mengkonversi hello.c menjadi sejumlah 557 00:22:52,330 --> 00:22:53,640 dari nol dan satu. 558 00:22:53,640 --> 00:22:54,950 >> Sekarang, saya sudah menjalankan perintah ini. 559 00:22:54,950 --> 00:22:57,940 Aku telah lari dentang, dan kemudian aku berkata jalankan sendiri pada file ini 560 00:22:57,940 --> 00:23:00,630 disebut hello.c, yang saya buat beberapa saat yang lalu, dan 561 00:23:00,630 --> 00:23:02,090 sepertinya tidak ada yang terjadi. 562 00:23:02,090 --> 00:23:05,550 Tapi memang, kalau aku menjulurkan sekitar direktori rumah saya, saya akan melihat 563 00:23:05,550 --> 00:23:09,620 bahwa a.out Program bodoh bernama sekarang ada. 564 00:23:09,620 --> 00:23:12,250 Ini hanya nama default untuk program saat menulis di 565 00:23:12,250 --> 00:23:15,140 C. Kita bisa menimpa ini akhirnya, tetapi a.out adalah 566 00:23:15,140 --> 00:23:18,340 nama program saya hanya diubah menjadi nol dan satu. 567 00:23:18,340 --> 00:23:21,490 Dan sekarang bahwa nol itu dan orang-orang, Mac saya, dalam hal ini, atau 568 00:23:21,490 --> 00:23:24,670 PC Windows, dapat memahami bit tersebut, mereka 569 00:23:24,670 --> 00:23:25,410 angka satu dan nol. 570 00:23:25,410 --> 00:23:29,130 Dan jadi ketika saya tekan Enter, saya melihat "halo, dunia!" 571 00:23:29,130 --> 00:23:31,270 >> Tapi itu sedikit buggy. 572 00:23:31,270 --> 00:23:34,110 Saya tidak cukup mengatakan "halo, dunia: udara: -! Jharvard." Air adalah 573 00:23:34,110 --> 00:23:35,020 nama komputer saya. 574 00:23:35,020 --> 00:23:37,730 Jharvard adalah nama akun, jadi apa yang saya jelas 575 00:23:37,730 --> 00:23:41,070 menghilangkan dari program ini? 576 00:23:41,070 --> 00:23:42,480 Beberapa jenis ganti baris. 577 00:23:42,480 --> 00:23:45,150 Saya tidak memukul setara dengan Enter atau carriage return, 578 00:23:45,150 --> 00:23:47,760 dan ini, sekali lagi, bukti fakta bahwa komputer dapat 579 00:23:47,760 --> 00:23:49,800 hanya melakukan apa yang Anda katakan mereka lakukan. 580 00:23:49,800 --> 00:23:52,400 Dan fakta bahwa saya tidak memberitahu komputer memindahkan 581 00:23:52,400 --> 00:23:53,860 kursor ke baris berikutnya - 582 00:23:53,860 --> 00:23:55,200 baik, itu pasti tidak akan hanya melakukannya 583 00:23:55,200 --> 00:23:56,750 terlalu berani bagi saya. 584 00:23:56,750 --> 00:24:00,860 Jadi jika saya kembali ke program saya, dan saya katakan \ n - 585 00:24:00,860 --> 00:24:03,180 Jadi \ n, seperti yang kita akan segera melihat, adalah cara 586 00:24:03,180 --> 00:24:06,910 mewakili hal-hal aneh seperti karakter baris baru, hal-hal 587 00:24:06,910 --> 00:24:08,840 yang seharusnya merupakan hasil dari 588 00:24:08,840 --> 00:24:09,940 menekan tombol Enter. 589 00:24:09,940 --> 00:24:11,730 Tapi untuk saat ini, hanya tahu bahwa menekan tombol Enter akan 590 00:24:11,730 --> 00:24:14,170 hanya membuat kode kita terlihat aneh, sehingga dunia memutuskan, Anda tahu 591 00:24:14,170 --> 00:24:16,580 apa, untuk menjaga hal-hal cantik, untuk tetap pada satu baris, mari kita 592 00:24:16,580 --> 00:24:19,070 hanya mengatakan \ n mewakili baris baru. 593 00:24:19,070 --> 00:24:22,260 Biarkan saya simpan file saya, kembali ke jendela terminal, dan 594 00:24:22,260 --> 00:24:25,290 re-run a.out, Enter. 595 00:24:25,290 --> 00:24:28,374 Masih kereta, tapi mengapa? 596 00:24:28,374 --> 00:24:29,750 >> HADIRIN: [Tak terdengar] 597 00:24:29,750 --> 00:24:31,540 DAVID Malan: Ya, jadi saya perlu mengkompilasi ulang itu. 598 00:24:31,540 --> 00:24:34,610 Jadi untuk mengkompilasi sebuah program hanya berarti mengubahnya dari sumber 599 00:24:34,610 --> 00:24:37,660 kode untuk objek, kode kode sumber untuk angka satu dan nol. 600 00:24:37,660 --> 00:24:40,830 Sekarang, fakta bahwa aku memukul Simpan di TextEdit tidak memiliki 601 00:24:40,830 --> 00:24:43,450 bantalan pada mereka nol dan satu karena saya harus terlebih dahulu 602 00:24:43,450 --> 00:24:48,260 kirim dentang hei, aku sudah berubah mereka baris kode, yang 603 00:24:48,260 --> 00:24:49,040 kode sumber. 604 00:24:49,040 --> 00:24:51,010 Anda perlu untuk menumbuhkan a.out. 605 00:24:51,010 --> 00:24:52,990 Tidak ada yang tampaknya telah terjadi, tetapi dalam komputer, 606 00:24:52,990 --> 00:24:55,820 pada baris perintah, sehingga untuk berbicara, ketika tidak ada yang terjadi, 607 00:24:55,820 --> 00:24:57,510 yang biasanya berarti semuanya baik-baik. 608 00:24:57,510 --> 00:24:59,040 Ketika sesuatu tidak terjadi, itu berarti 609 00:24:59,040 --> 00:25:00,420 Anda kacau, umumnya. 610 00:25:00,420 --> 00:25:04,020 >> Jadi mari kita sekarang pergi ke a.out, dan memang sekarang, aku punya "halo, 611 00:25:04,020 --> 00:25:04,440 dunia. " 612 00:25:04,440 --> 00:25:05,990 Dan sekarang, bagaimana dengan angka satu dan nol? 613 00:25:05,990 --> 00:25:07,520 Dimana, pada kenyataannya, adalah mereka? 614 00:25:07,520 --> 00:25:10,710 Yah, aku tidak bisa benar-benar hanya semacam aduk sekitar sangat 615 00:25:10,710 --> 00:25:11,210 efektif. 616 00:25:11,210 --> 00:25:12,650 Biarkan aku membuka TextEdit. 617 00:25:12,650 --> 00:25:14,060 Berikut a.out. 618 00:25:14,060 --> 00:25:17,390 Biarkan aku pergi ke depan dan membuka, dan ini tampaknya apa yang saya 619 00:25:17,390 --> 00:25:19,080 Program seperti. 620 00:25:19,080 --> 00:25:21,570 Jadi saya sudah dibuka, tidak hello.c, tapi a.out. 621 00:25:21,570 --> 00:25:23,960 Tapi ini sebenarnya bukan apa program saya sebenarnya. 622 00:25:23,960 --> 00:25:26,450 Jelas, ini adalah beberapa jenis karakter abjad. 623 00:25:26,450 --> 00:25:28,670 Saya tidak melihat angka satu dan nol, tapi ini 624 00:25:28,670 --> 00:25:30,780 karena a.out adalah sebuah program. 625 00:25:30,780 --> 00:25:33,540 Nol dan satu - tapi TextEdit, seperti namanya, itu 626 00:25:33,540 --> 00:25:37,130 seperti Notepad pada Windows, hanya editor teks, sehingga 627 00:25:37,130 --> 00:25:39,730 membingungkan semua orang nol dan yang sebagai 628 00:25:39,730 --> 00:25:41,870 meskipun mereka, apa? 629 00:25:41,870 --> 00:25:43,380 ASCII karakter. 630 00:25:43,380 --> 00:25:45,020 >> Jadi ingat pada hari Rabu, kami hanya datang dengan ini 631 00:25:45,020 --> 00:25:48,740 sewenang-wenang pemetaan nomor, atau bit, dengan surat dari 632 00:25:48,740 --> 00:25:51,690 alfabet dan simbol tanda baca dan sejenisnya. 633 00:25:51,690 --> 00:25:54,920 Jadi TextEdit, bahwa itu adalah editor teks yang salah menafsirkan 634 00:25:54,920 --> 00:25:57,270 pola-pola nol dan satu yang seharusnya 635 00:25:57,270 --> 00:25:59,990 pencetakan kata-kata, seperti "halo dunia,." Ini menampilkan mereka 636 00:25:59,990 --> 00:26:02,150 sebagai ASCII, dan itulah sebabnya terlihat sedikit berantakan. 637 00:26:02,150 --> 00:26:04,910 Sekarang, ada beberapa petunjuk dari kebenaran di sini. 638 00:26:04,910 --> 00:26:08,090 Perhatikan jika saya menyoroti, ada tanda-tanda benar-benar "halo, 639 00:26:08,090 --> 00:26:10,810 dunia, "begitu suatu tempat di program yang 640 00:26:10,810 --> 00:26:12,120 kalimat saya tulis. 641 00:26:12,120 --> 00:26:14,610 Tapi mari kita pergi ke depan dan sekarang melihat dengan program yang berbeda. 642 00:26:14,610 --> 00:26:17,420 Ini bukan salah satu yang akan kita gunakan yang sering, tetapi juga dilengkapi dengan 643 00:26:17,420 --> 00:26:19,970 Mac dan akan dalam alat CS50. 644 00:26:19,970 --> 00:26:23,940 Biarkan aku pergi ke depan dan membuka dengan sebuah program yang disebut xxd. 645 00:26:23,940 --> 00:26:26,530 >> Kembali pada hari, sebagian besar program diberi nama cukup samar, 646 00:26:26,530 --> 00:26:28,200 dan jadi tren terus. 647 00:26:28,200 --> 00:26:31,160 Tapi-b berarti meludah program ini sebagai biner. 648 00:26:31,160 --> 00:26:32,330 Jangan menjalankannya. 649 00:26:32,330 --> 00:26:35,770 Menampilkannya kepada saya sebagai nol dan satu, dan ini adalah C 650 00:26:35,770 --> 00:26:37,190 memprogram kita hanya menulis. 651 00:26:37,190 --> 00:26:39,920 Sekarang, saya, sebagai manusia di sini, aku benar-benar tidak tahu apa yang 652 00:26:39,920 --> 00:26:42,230 pola-pola berbagai angka satu dan nol mewakili. 653 00:26:42,230 --> 00:26:45,320 Kembali pada hari, saya, dengan kartu punch saya atau sejenisnya, akan 654 00:26:45,320 --> 00:26:48,080 benar-benar harus mencari apa yang berbagai pola 655 00:26:48,080 --> 00:26:51,560 01111000, benar-benar mewakili. 656 00:26:51,560 --> 00:26:54,390 Atau lebih buruk lagi, saya perlu melakukan meninju atau penciptaan 657 00:26:54,390 --> 00:26:56,130 ini pola nol dan satu. 658 00:26:56,130 --> 00:27:00,410 Tetapi untuk sekarang, mengambil pada iman bahwa CPU, Intel dalam, sehingga 659 00:27:00,410 --> 00:27:03,440 untuk berbicara, dalam semua komputer kita hari ini, tahu 660 00:27:03,440 --> 00:27:05,100 bagaimana menafsirkan angka satu dan nol. 661 00:27:05,100 --> 00:27:07,010 Dan beberapa angka satu dan nol berarti cetak. 662 00:27:07,010 --> 00:27:09,040 Beberapa angka satu dan nol berarti memutar suara. 663 00:27:09,040 --> 00:27:13,630 Beberapa nol dan yang berarti mengambil input pengguna dari keyboard. 664 00:27:13,630 --> 00:27:15,960 Ada berbagai macam pola yang berbeda, tapi kami untungnya, 665 00:27:15,960 --> 00:27:19,680 sebagai manusia, hanya umumnya perlu khawatir tentang pemrograman di 666 00:27:19,680 --> 00:27:21,270 tingkat yang cukup tinggi. 667 00:27:21,270 --> 00:27:24,320 Dan di kelas CS lainnya bisa Anda menggali lebih dalam dan melihat ke bawah 668 00:27:24,320 --> 00:27:26,820 hal-hal seperti yang nol dan satu, atau belum 669 00:27:26,820 --> 00:27:28,000 hal-hal lain masih. 670 00:27:28,000 --> 00:27:29,210 >> Jadi sekarang mari kita mengkonversi. 671 00:27:29,210 --> 00:27:32,550 Mari kita bergerak sangat cepat menjauh dari C dan pindah ke sesuatu yang 672 00:27:32,550 --> 00:27:36,390 sedikit lebih menghibur, sedikit lebih menarik, dalam 673 00:27:36,390 --> 00:27:39,340 kita bisa kembali animasi dan suara dan seperti itu 674 00:27:39,340 --> 00:27:40,940 jelas telah lolos kami dalam hal ini 675 00:27:40,940 --> 00:27:42,480 cukup primitif antarmuka. 676 00:27:42,480 --> 00:27:46,430 Jadi ini program yang sama di C dapat diwakili sekarang ini 677 00:27:46,430 --> 00:27:50,060 bahasa pemrograman disebut Scratch sebagai berikut. 678 00:27:50,060 --> 00:27:54,230 Ini adalah setara dengan program hello world ditulis dalam 679 00:27:54,230 --> 00:27:57,370 ini potongan puzzle gaya bahasa yang disebut Scratch. 680 00:27:57,370 --> 00:28:00,600 Jadi biarkan aku pergi ke depan dan membuka program ini sangat. 681 00:28:00,600 --> 00:28:01,850 Ini lagi disebut Scratch. 682 00:28:01,850 --> 00:28:03,880 Ini tersedia secara bebas, dan ini adalah hal yang sama kita 683 00:28:03,880 --> 00:28:05,120 mulai hari ini. 684 00:28:05,120 --> 00:28:07,790 >> Jadi ini di sini adalah Scratch, dan itu dipecah menjadi beberapa 685 00:28:07,790 --> 00:28:09,700 berbeda potongan. 686 00:28:09,700 --> 00:28:12,690 Di sebelah kanan paling atas, kita memiliki tahap yang disebut, dan 687 00:28:12,690 --> 00:28:13,670 memang, di situlah cookies 688 00:28:13,670 --> 00:28:15,440 dilakukan hanya sedikit lalu. 689 00:28:15,440 --> 00:28:19,660 Dan di atas panggung yang hal yang disebut sprite, karakter, atau 690 00:28:19,660 --> 00:28:21,030 benda, atau entitas. 691 00:28:21,030 --> 00:28:23,320 Ini tidak benar-benar peduli bagaimana Anda berpikir tentang mereka, tetapi mereka 692 00:28:23,320 --> 00:28:26,740 diprogram, hal bergerak, dan dalam kasus ini, ini 693 00:28:26,740 --> 00:28:30,730 program yang mahasiswa menulis memiliki beberapa jahe 694 00:28:30,730 --> 00:28:32,990 cookie, beberapa kue melingkar, sejumlah besar 695 00:28:32,990 --> 00:28:35,430 hati, sejumlah besar kacamata. 696 00:28:38,170 --> 00:28:42,420 Karena itu, ia mampu memprogram masing-masing 697 00:28:42,420 --> 00:28:44,720 individu karakter secara terpisah. 698 00:28:44,720 --> 00:28:46,480 >> Sekarang, apa artinya program karakter ini? 699 00:28:46,480 --> 00:28:49,440 Nah, biarkan aku pergi ke depan dan klik pada cookie tangan kiri 700 00:28:49,440 --> 00:28:51,830 dan gulir ke kiri atas sini. 701 00:28:51,830 --> 00:28:53,670 Di kiri atas layar saya sekarang adalah 702 00:28:53,670 --> 00:28:55,280 disebut skrip daerah. 703 00:28:55,280 --> 00:28:58,790 Ini adalah semacam batu tulis kosong, awalnya, ke mana saya bisa 704 00:28:58,790 --> 00:29:01,540 drag dan drop potongan teka-teki yang, terus terang, lakukan 705 00:29:01,540 --> 00:29:03,020 apa yang mereka katakan. 706 00:29:03,020 --> 00:29:05,820 Di bagian paling atas dari tumpukan potongan puzzle adalah kata 707 00:29:05,820 --> 00:29:09,340 Ketika Bendera Hijau diklik, dan jika Anda tidak melihat sebelumnya, 708 00:29:09,340 --> 00:29:12,300 cara saya memulai lagu itu kue yang mengklik, secara harfiah, 709 00:29:12,300 --> 00:29:13,320 bendera hijau. 710 00:29:13,320 --> 00:29:16,590 Sehingga potongan puzzle di sebelah kiri atas ada artinya ketika 711 00:29:16,590 --> 00:29:19,780 klik manusia bendera hijau, terus melakukan 712 00:29:19,780 --> 00:29:21,110 hal-hal berikut. 713 00:29:21,110 --> 00:29:23,330 >> Sekarang, apa yang mereka kue melanjutkan untuk melakukan? 714 00:29:23,330 --> 00:29:25,810 Aku tidak benar-benar tahu bagaimana menafsirkan ini belum, tetapi 715 00:29:25,810 --> 00:29:29,220 Cookie tampaknya diatur jalurnya ke nol, maka menunggu 716 00:29:29,220 --> 00:29:31,740 tiga detik, kemudian berubah kelompok untuk satu, maka 717 00:29:31,740 --> 00:29:33,590 menunggu detik, kemudian berubah nya 718 00:29:33,590 --> 00:29:35,100 groove kembali ke satu. 719 00:29:35,100 --> 00:29:37,373 Dan maka ini benar-benar terlihat seperti sedikit bug, tidak boleh 720 00:29:37,373 --> 00:29:39,440 harus mengubah jalurnya lagi dan lagi kecuali itu 721 00:29:39,440 --> 00:29:43,380 yang berubah di tempat lain, tapi ini adalah serangkaian langkah apa 722 00:29:43,380 --> 00:29:46,800 mendikte perilaku ini cookie tertentu. 723 00:29:46,800 --> 00:29:49,180 Jadi mari kita sebenarnya gulir kembali dan tidak melihat sesuatu 724 00:29:49,180 --> 00:29:50,430 begitu kompleks namun. 725 00:29:50,430 --> 00:29:52,260 Biarkan aku pergi ke depan dan pergi ke File, New, 726 00:29:52,260 --> 00:29:53,560 dan mendapatkan yang bersih. 727 00:29:53,560 --> 00:29:56,590 >> Jadi sekarang, saya memang memiliki daerah skrip kosong, tahap kosong, 728 00:29:56,590 --> 00:29:59,380 dengan Scratch sprite kami standar, dan di bagian kiri atas 729 00:29:59,380 --> 00:30:01,670 di layar saya yang saya miliki palet dari semua mereka 730 00:30:01,670 --> 00:30:03,400 tersedia puzzle potongan. 731 00:30:03,400 --> 00:30:06,300 Dan kita tidak akan pergi melalui hampir bahwa banyak hal-hal 732 00:30:06,300 --> 00:30:09,470 hari ini karena, sekali lagi, sebagian besar yang cukup jelas, tapi kami akan 733 00:30:09,470 --> 00:30:12,370 mencoba untuk mengkategorikan mereka dan menunjukkan kesamaan 734 00:30:12,370 --> 00:30:15,380 dengan bahasa masa depan yang akan kita menyelam. 735 00:30:15,380 --> 00:30:19,180 Dan di sebelah kiri atas di sini adalah yang pertama Ketika Bendera Hijau Diklik, 736 00:30:19,180 --> 00:30:22,170 jadi biar tarik ini di sini, tampilannya keluar sedikit. 737 00:30:22,170 --> 00:30:25,780 Dan jika saya klik bendera hijau, tidak ada yang benar-benar terjadi karena 738 00:30:25,780 --> 00:30:29,360 Saya belum terpasang logika apapun, pernyataan apapun sehingga untuk berbicara, untuk 739 00:30:29,360 --> 00:30:31,040 bahwa bendera hijau, jadi biar naik ke 740 00:30:31,040 --> 00:30:32,500 kategori di sini. 741 00:30:32,500 --> 00:30:34,840 Aku sedang dalam kategori Kontrol. 742 00:30:34,840 --> 00:30:37,630 Saya bukannya akan pergi ke kategori Looks, dan 743 00:30:37,630 --> 00:30:39,970 ada sejumlah hal di sini yang mengatakan Katakanlah, 744 00:30:39,970 --> 00:30:43,110 Pikirkan, Ubah Warna, Costume Switch. 745 00:30:43,110 --> 00:30:44,860 >> Sehingga Anda dapat melakukan hal-hal konyol dengan kostum dan 746 00:30:44,860 --> 00:30:45,870 suara dan sejenisnya. 747 00:30:45,870 --> 00:30:49,970 Biarkan aku pergi ke depan dan hanya mengatakan Katakanlah, dan sekarang melihat seperti saya tarik 748 00:30:49,970 --> 00:30:52,940 dan jatuhkan sepotong teka-teki, itu akan ingin latch 749 00:30:52,940 --> 00:30:55,010 menjadi bentuk yang sesuai. 750 00:30:55,010 --> 00:30:58,020 Jadi ketika saya pergi ke depan dan melepaskan mouse saya, mereka mengunci 751 00:30:58,020 --> 00:31:01,770 bersama-sama, dan sekarang jika saya pergi ke sini dan klik bendera hijau, 752 00:31:01,770 --> 00:31:05,910 kucing tidak pada kenyataannya menyapa karena itulah apa yang ada dalam 753 00:31:05,910 --> 00:31:06,980 dari kotak putih. 754 00:31:06,980 --> 00:31:08,900 Kita akan segera melihat bahwa ini kotak putih adalah apa yang disebut 755 00:31:08,900 --> 00:31:10,250 argumen, atau parameter. 756 00:31:10,250 --> 00:31:12,560 Ini adalah cara untuk mengubah perilaku, dalam hal ini, 757 00:31:12,560 --> 00:31:15,070 teka-teki sepotong, tetapi jika aku ingin mengatakan dengan tepat apa yang saya katakan 758 00:31:15,070 --> 00:31:18,610 sebelumnya, mengatakan halo, dunia, sekarang saya bisa kembali ke sini, 759 00:31:18,610 --> 00:31:21,990 klik bermain, dan "halo, dunia" adalah apa yang dikatakan. 760 00:31:21,990 --> 00:31:24,340 >> Jadi kita benar-benar pemrograman sekarang. 761 00:31:24,340 --> 00:31:27,540 Ini tidak semua yang menarik dari sebuah program, tapi setidaknya 762 00:31:27,540 --> 00:31:30,140 itu adalah sesuatu yang sedikit lebih menarik daripada yang terlihat, di 763 00:31:30,140 --> 00:31:31,300 pertama sekilas, seperti ini. 764 00:31:31,300 --> 00:31:34,190 Dan kita bisa sangat cepat mendapatkan semua lebih ekspresif 765 00:31:34,190 --> 00:31:36,600 karena dalam Scratch, seperti dalam bahasa lain, ada semua 766 00:31:36,600 --> 00:31:40,010 macam pernyataan, bukan hanya Katakan atau mencetak sesuatu, namun 767 00:31:40,010 --> 00:31:42,650 Anda dapat melakukan hal-hal seperti menunggu, seperti yang kita hanya melihat dengan 768 00:31:42,650 --> 00:31:44,240 cookie, beberapa jumlah detik. 769 00:31:44,240 --> 00:31:46,440 Anda dapat memutar suara di lingkungan Scratch hanya 770 00:31:46,440 --> 00:31:49,050 seperti Anda bisa dalam suara program komputer bermain normal. 771 00:31:49,050 --> 00:31:52,440 Anda dapat memeriksa apa yang disebut ekspresi Boolean. 772 00:31:52,440 --> 00:31:55,630 Jadi sekarang, mari kita mulai untuk menambah toolkit kami beberapa terminologi 773 00:31:55,630 --> 00:31:58,840 yang benar-benar berhubungan dengan contoh bahwa Yusuf dan aku 774 00:31:58,840 --> 00:32:00,080 di sini dengan kaus kaki. 775 00:32:00,080 --> 00:32:03,040 Jadi pernyataan ini hanya pernyataan fakta. 776 00:32:03,040 --> 00:32:04,160 Lakukan ini. 777 00:32:04,160 --> 00:32:07,370 Sebuah direktif untuk sprite, atau saya manusia, untuk melakukan sesuatu. 778 00:32:07,370 --> 00:32:10,420 Sebuah ekspresi Boolean adalah sesuatu yang memiliki nilai, yang 779 00:32:10,420 --> 00:32:14,580 disebut nilai kebenarannya, itu baik nol atau satu, palsu atau 780 00:32:14,580 --> 00:32:17,890 benar, mati atau hidup, tidak atau ya. 781 00:32:17,890 --> 00:32:19,730 Tidak terlalu penting bagaimana Anda berpikir tentang hal ini, tapi itu adalah 782 00:32:19,730 --> 00:32:20,700 biner negara. 783 00:32:20,700 --> 00:32:22,610 Seperti Nate dibahas dalam video Rabu, dua 784 00:32:22,610 --> 00:32:23,570 hal yang berbeda. 785 00:32:23,570 --> 00:32:25,740 >> Jadi dalam Scratch, ekspresi Boolean kebetulan melihat 786 00:32:25,740 --> 00:32:28,910 seperti ini benda biru di sini, dan dalam hal ini, pertanyaan 787 00:32:28,910 --> 00:32:30,960 mark menyiratkan bahwa Anda mengajukan pertanyaan. 788 00:32:30,960 --> 00:32:34,250 Apakah kucing, atau sprite, menyentuh pointer mouse? 789 00:32:34,250 --> 00:32:36,580 Jadi ini hanyalah salah satu contoh dari blok Scratch yang akan 790 00:32:36,580 --> 00:32:39,950 untuk memungkinkan kita untuk memeriksa ya atau tidak, adalah mouse menyentuh 791 00:32:39,950 --> 00:32:40,790 sprite di layar? 792 00:32:40,790 --> 00:32:42,840 Dan ini dapat berguna jika Anda benar-benar ingin melakukan hal-hal 793 00:32:42,840 --> 00:32:43,820 dengan mouse Anda. 794 00:32:43,820 --> 00:32:46,470 Selain ekspresi Boolean, kita memiliki hal-hal 795 00:32:46,470 --> 00:32:49,110 seperti adalah mouse ke bawah, sehingga Anda dapat mendeteksi bahwa jenis 796 00:32:49,110 --> 00:32:50,200 pertanyaan juga. 797 00:32:50,200 --> 00:32:52,590 Kita bisa melakukan matematika jika Anda benar-benar ingin, dan ada 798 00:32:52,590 --> 00:32:55,170 sebenarnya lebih menarik untuk menggunakan ini bukan hanya sekedar murni 799 00:32:55,170 --> 00:32:56,400 aritmatika, seperti yang akan kita lihat. 800 00:32:56,400 --> 00:32:59,690 Pseudo keacakan dan membuat program Anda tampaknya berpikir 801 00:32:59,690 --> 00:33:03,490 atau berperilaku berbeda berdasarkan beberapa nilai acak, 802 00:33:03,490 --> 00:33:06,610 dan kemudian kita memiliki hal-hal seperti ekspresi Boolean seperti AND. 803 00:33:06,610 --> 00:33:08,830 Jadi jika Anda benar-benar ingin memeriksa dua nilai, kita akan lihat di 804 00:33:08,830 --> 00:33:11,110 Gores bahwa kita benar-benar dapat menguji apakah ini 805 00:33:11,110 --> 00:33:13,190 benar dan ini benar. 806 00:33:13,190 --> 00:33:15,300 Misalnya, dalam kasus kaus kaki saya, saya udah bisa di 807 00:33:15,300 --> 00:33:19,045 sangat akhirnya mengajukan pertanyaan jika kaus kaki kiri dan kanan pada kaus kaki 808 00:33:19,045 --> 00:33:20,610 adalah pada, berhenti. 809 00:33:20,610 --> 00:33:22,710 Anda semua dilakukan untuk hari itu, sehingga akan menjadi 810 00:33:22,710 --> 00:33:24,300 peluang untuk itu. 811 00:33:24,300 --> 00:33:27,740 >> Jadi mari kita pergi ke depan dan mencoba untuk potong beberapa bersama-sama 812 00:33:27,740 --> 00:33:31,570 dan pergi ke beberapa contoh lebih 813 00:33:31,570 --> 00:33:32,610 menarik dari satu ini. 814 00:33:32,610 --> 00:33:35,770 Jadi biarkan aku pergi ke depan di sini dan membuka beberapa contoh 815 00:33:35,770 --> 00:33:38,350 yang selalu akan berada di situs kursus ini juga, dan 816 00:33:38,350 --> 00:33:39,870 membuka hello2. 817 00:33:39,870 --> 00:33:42,910 Jadi di sini hello2, kami memiliki program yang melakukan beberapa 818 00:33:42,910 --> 00:33:46,290 hal, tapi tidak melakukannya seefektif mungkin. 819 00:33:46,290 --> 00:33:48,900 Jadi di sini ia mengatakan "halo, dunia" selama satu detik dan kemudian menunggu 820 00:33:48,900 --> 00:33:49,450 untuk kedua. 821 00:33:49,450 --> 00:33:51,720 Dan kemudian melakukannya lagi, dan kemudian melakukannya lagi. 822 00:33:51,720 --> 00:33:55,530 Jadi jika saya mengklik bendera hijau, Scratch mengatakan "Halo, dunia. 823 00:33:55,530 --> 00:33:57,160 Halo, dunia. 824 00:33:57,160 --> 00:34:00,080 Halo, dunia. "Dan ini jelas calon sekarang untuk 825 00:34:00,080 --> 00:34:00,860 perbaikan. 826 00:34:00,860 --> 00:34:03,070 >> Apa perbaikan marjinal, mudah-mudahan, kita bisa 827 00:34:03,070 --> 00:34:07,610 sekarang membuat jika Scratch mendukung konsep? 828 00:34:07,610 --> 00:34:08,310 Beberapa jenis loop. 829 00:34:08,310 --> 00:34:10,960 Beberapa jenis pengulangan, sekarang, akan menyenangkan, jadi biar 830 00:34:10,960 --> 00:34:11,920 sebenarnya coba itu. 831 00:34:11,920 --> 00:34:13,870 Biarkan aku benar-benar pergi dan bergerak ini. 832 00:34:13,870 --> 00:34:16,449 Jadi pemberitahuan dapat melepaskan blok semudah Anda dapat menambah 833 00:34:16,449 --> 00:34:17,420 melampirkannya. 834 00:34:17,420 --> 00:34:20,730 Biarkan aku pergi Entitas, scroll ke bawah sini, dan memang, 835 00:34:20,730 --> 00:34:24,000 ada potongan puzzle ini di sini, Repeat, dan Selamanya dan 836 00:34:24,000 --> 00:34:24,870 Jika selamanya. 837 00:34:24,870 --> 00:34:28,500 Jadi ada beberapa cara untuk mengekspresikan konstruksi perulangan 838 00:34:28,500 --> 00:34:29,340 di Scratch. 839 00:34:29,340 --> 00:34:31,730 Yang saya mungkin ingin di sini bukan karena saya hanya Selamanya 840 00:34:31,730 --> 00:34:34,639 ingin ini terjadi tiga kali, tapi mungkin Ulangi. 841 00:34:34,639 --> 00:34:38,449 Jadi biarkan aku tarik Ulangi di sini, drag dan drop, dan 842 00:34:38,449 --> 00:34:42,530 sekarang bukannya mengatakan "halo, dunia" tiga kali terpisah, 843 00:34:42,530 --> 00:34:44,230 biarkan aku tarik ini potongan puzzle di sini. 844 00:34:44,230 --> 00:34:46,610 Dan meskipun tampaknya tidak cocok, program cerdas 845 00:34:46,610 --> 00:34:48,920 cukup untuk menyadari hal itu akan tumbuh untuk mengisi, sehingga itu adalah 846 00:34:48,920 --> 00:34:51,270 bentuk yang materi dan bukan ukuran mutlak. 847 00:34:51,270 --> 00:34:54,030 Biarkan saya mengubah pengulangan tiga, dan sekarang biarkan aku pergi 848 00:34:54,030 --> 00:34:56,560 depan dan tarik Tunggu Satu Kedua di sana juga. 849 00:34:56,560 --> 00:34:59,220 Ini akan patah juga, dan jadi sekarang aku akan menyeret 850 00:34:59,220 --> 00:35:01,370 orang-orang di sini dan hanya membuangnya karena saya 851 00:35:01,370 --> 00:35:02,710 tidak membutuhkannya lagi. 852 00:35:02,710 --> 00:35:05,920 Biarkan saya zoom out dan klik bendera hijau sekarang, dan kami memiliki 853 00:35:05,920 --> 00:35:09,600 program yang sama, tetapi, seperti yang saya prediksi sebelumnya, baik 854 00:35:09,600 --> 00:35:12,200 dirancang karena Anda bisa membayangkan betapa buruk program ini 855 00:35:12,200 --> 00:35:14,410 akan mendapatkan, tentu estetis, jika Anda harus 856 00:35:14,410 --> 00:35:16,640 mulai menyalin dan paste, copy dan paste, atau 857 00:35:16,640 --> 00:35:20,020 menyeret dan menjatuhkan hal sialan yang sama lagi dan lagi. 858 00:35:20,020 --> 00:35:22,260 >> Sekarang, hanya mengatakan hal-hal di layar, mencetak ke 859 00:35:22,260 --> 00:35:25,350 layar, benar-benar semua tidak yang menarik, jadi mari kita membuka 860 00:35:25,350 --> 00:35:26,580 ketiga varians sini. 861 00:35:26,580 --> 00:35:29,810 Dan sekarang, karena Anda akan melihat, ini dengan cepat akan mendapatkan menjengkelkan - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 DAVID Malan: - tapi itu juga agak lucu. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 DAVID Malan: Oke, jadi lebih baik, dan kita pasti bisa menggunakan 866 00:35:37,460 --> 00:35:41,060 sama transisi chunking ini menjadi sebuah perulangan 867 00:35:41,060 --> 00:35:43,520 struktur, tetapi mari kita membuatnya lebih menarik masih. 868 00:35:43,520 --> 00:35:47,480 >> Biarkan aku pergi ke depan dan membuka varians keempat di sini, di mana saya 869 00:35:47,480 --> 00:35:50,020 mengambil hal-hal satu langkah lebih lanjut. 870 00:35:50,020 --> 00:35:54,450 Jadi menurut ini, meskipun ini adalah konyol pada awalnya 871 00:35:54,450 --> 00:35:58,530 sekilas, apa program ini akan dilakukan? 872 00:35:58,530 --> 00:35:59,790 Ini akan meong sekali. 873 00:35:59,790 --> 00:36:00,160 Kenapa? 874 00:36:00,160 --> 00:36:03,340 Nah, satu, sejauh yang saya tahu, selalu kurang dari dua. 875 00:36:03,340 --> 00:36:04,890 Tidak ada gagasan keacakan sini. 876 00:36:04,890 --> 00:36:07,240 Aku sudah benar-benar keras-kode satu dan dua, tapi ini adalah 877 00:36:07,240 --> 00:36:10,370 Misalnya sekarang benar-benar menggunakan ekspresi Boolean. 878 00:36:10,370 --> 00:36:13,650 Banyak seperti sebagai Yusuf lakukan dalam pseudocode nya, indentasi JIKA 879 00:36:13,650 --> 00:36:17,170 Anda menemukan kaus kaki yang cocok KEMUDIAN melakukan hal berikut, di sini kita memiliki 880 00:36:17,170 --> 00:36:19,750 ekspresi JIKA satu kurang dari dua THEN - 881 00:36:19,750 --> 00:36:21,820 dan bahkan kami bahkan memiliki sedikit lekukan, 882 00:36:21,820 --> 00:36:24,480 mana ungu sedikit menjorok ke kanan - 883 00:36:24,480 --> 00:36:26,600 MAKA Anda akan memutar suara meong. 884 00:36:26,600 --> 00:36:30,060 Sekarang, dalam kasus ini, yang satu selalu kurang dari dua, jadi ini 885 00:36:30,060 --> 00:36:31,970 adalah jenis limbah kondisi. 886 00:36:31,970 --> 00:36:34,890 Tapi kita akan mampu, seperti yang akan kita lihat, untuk plug hal-hal lain menjadi 887 00:36:34,890 --> 00:36:37,420 penampung ini di mana satu dan dua sekarang adalah. 888 00:36:37,420 --> 00:36:41,340 Jadi mari kita sekarang maju ke lima contoh dari beberapa 889 00:36:41,340 --> 00:36:45,850 hellos dan melihat apa program ini akan dapat dilakukan. 890 00:36:45,850 --> 00:36:48,710 >> Jadi sekarang, dalam kalimat bahasa Inggris, bagaimana ini 891 00:36:48,710 --> 00:36:51,460 Program berperilaku? 892 00:36:51,460 --> 00:36:52,950 HADIRIN: mengeong separuh waktu. 893 00:36:52,950 --> 00:36:55,380 DAVID Malan: setengah Meow ini dari waktu, jadi ini adalah cara 894 00:36:55,380 --> 00:36:56,700 menyampaikan ide yang sangat sederhana. 895 00:36:56,700 --> 00:36:59,400 Meskipun kita kebetulan menggunakan beberapa kesenjangan di sini 896 00:36:59,400 --> 00:37:01,860 di beberapa nomor, ini benar-benar hanya programmatical 897 00:37:01,860 --> 00:37:09,490 cara, cara yang tepat, mengatakan jika koin muncul kepala, pergi 898 00:37:09,490 --> 00:37:10,270 depan dan meong. 899 00:37:10,270 --> 00:37:13,540 Atau sebaliknya, jika koin muncul ekor, jangan meong. 900 00:37:13,540 --> 00:37:15,110 Dan dalam hal ini, bagaimana kita menyatakan bahwa? 901 00:37:15,110 --> 00:37:17,950 Kami akan memilih nomor acak dari 1 sampai 10, dan jika itu 902 00:37:17,950 --> 00:37:21,110 Jumlah ini kurang dari 6, pergi ke depan dan mengeong. 903 00:37:21,110 --> 00:37:22,260 Dan bagaimana hal ini bisa di sini? 904 00:37:22,260 --> 00:37:24,620 Baik lagi, perhatikan hanya menyeret dan menjatuhkan dan 905 00:37:24,620 --> 00:37:26,190 hal kait ke tempatnya. 906 00:37:26,190 --> 00:37:28,020 >> Jadi sekarang mari kita lihat apakah keacakan ini bekerja. 907 00:37:28,020 --> 00:37:29,845 Biarkan aku pergi ke depan dan klik bendera hijau. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 DAVID Malan: Oke. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 DAVID Malan: Oke. 912 00:37:35,260 --> 00:37:38,510 Oke, baik, jadi kita punya kepala, kepala, ekor efektif. 913 00:37:38,510 --> 00:37:39,295 Ekor. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 DAVID Malan: Kepala. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 DAVID Malan: Sangat baik. 918 00:37:44,040 --> 00:37:46,220 Itu selalu canggung ketika hanya statistik Anda mendapatkan buruk 919 00:37:46,220 --> 00:37:48,510 dijalankan, dan itu semua kepala, dan program sebenarnya tidak 920 00:37:48,510 --> 00:37:49,230 bekerja seperti yang Anda akan berharap. 921 00:37:49,230 --> 00:37:51,210 Tapi kali ini, itu bekerja, dan tampaknya kita miliki, jika kita lakukan 922 00:37:51,210 --> 00:37:53,830 ini jumlah tak terbatas kali, peluang 50%. 923 00:37:53,830 --> 00:37:56,950 Sekarang lagi, tidak semua yang menarik, hanya membuat kucing 924 00:37:56,950 --> 00:37:59,840 meong, jadi mari kita lihat apakah kita tidak bisa maju ini sedikit lebih jauh 925 00:37:59,840 --> 00:38:01,820 di sini dalam versi enam. 926 00:38:01,820 --> 00:38:05,620 Jadi sekarang, kita memiliki versi yang benar-benar menjengkelkan - 927 00:38:05,620 --> 00:38:08,215 [Mengeong SETIAP DETIK BEBERAPA] 928 00:38:08,215 --> 00:38:10,640 DAVID Malan: - dan ini adalah apa yang dikenal, umum, sebagai 929 00:38:10,640 --> 00:38:11,670 infinite loop. 930 00:38:11,670 --> 00:38:14,190 >> Jadi lingkaran tak terbatas dalam hal ini terasa buruk. 931 00:38:14,190 --> 00:38:16,970 Ini pasti akan mulai terdengar buruk, namun tidak terbatas 932 00:38:16,970 --> 00:38:18,740 loop tidak selalu buruk. 933 00:38:18,740 --> 00:38:20,910 Dapatkah Anda memikirkan konteks program komputer di mana Anda akan 934 00:38:20,910 --> 00:38:22,910 benar-benar ingin infinite loop? 935 00:38:22,910 --> 00:38:23,691 Ya? 936 00:38:23,691 --> 00:38:26,520 HADIRIN: Bila Anda ingin memeriksa kondisi. 937 00:38:26,520 --> 00:38:28,240 DAVID Malan: Oke, bila Anda ingin tetap memeriksa kondisi? 938 00:38:28,240 --> 00:38:29,190 Seperti apa? 939 00:38:29,190 --> 00:38:30,440 HADIRIN: [Tak terdengar] 940 00:38:36,060 --> 00:38:38,170 DAVID Malan: Oke, baik, jadi jika Anda memiliki beberapa program, beberapa 941 00:38:38,170 --> 00:38:40,440 semacam otomatisasi rumah, di mana Anda ingin terus-menerus 942 00:38:40,440 --> 00:38:41,980 Monitor adalah sesuatu yang terjadi. 943 00:38:41,980 --> 00:38:42,850 Apakah lampu? 944 00:38:42,850 --> 00:38:45,020 Apakah lampu karena mungkin Anda memiliki timer, dan 945 00:38:45,020 --> 00:38:47,360 Anda ingin mereka pergi, Anda mungkin perlu melakukan sesuatu 946 00:38:47,360 --> 00:38:48,290 lagi dan lagi. 947 00:38:48,290 --> 00:38:50,540 Dan pada kenyataannya, berbicara tentang timer, ada di antara kalian yang telah 948 00:38:50,540 --> 00:38:53,100 jam pada komputer Anda atau jam tangan digital, yang merupakan 949 00:38:53,100 --> 00:38:54,210 infinite loop. 950 00:38:54,210 --> 00:38:56,980 Hal ini terus memperbarui waktu karena terus-menerus 951 00:38:56,980 --> 00:38:59,750 memeriksa dan memeriksa dan memeriksa memiliki waktu berubah, 952 00:38:59,750 --> 00:39:01,000 dan jika demikian, oh, Tuhan. 953 00:39:03,670 --> 00:39:04,740 Jam yang akhirnya berubah. 954 00:39:04,740 --> 00:39:07,020 Perlu menampilkan bahwa nilai untuk Anda. 955 00:39:07,020 --> 00:39:10,880 Jadi sementara sebagian besar loop tak terbatas waktu adalah kesalahan, 956 00:39:10,880 --> 00:39:13,950 atau setidaknya keputusan desain miskin, kadang-kadang mereka lakukan 957 00:39:13,950 --> 00:39:14,785 memiliki nilai mereka. 958 00:39:14,785 --> 00:39:18,170 >> Nah, mari kita maju lebih jauh di sini untuk hello7. 959 00:39:18,170 --> 00:39:20,410 Jadi sekarang program ini akan mendapatkan sedikit lebih interaktif. 960 00:39:20,410 --> 00:39:23,120 Biarkan aku tampilannya di sini, dan lagi, ini adalah apa yang bagus 961 00:39:23,120 --> 00:39:23,640 tentang Scratch. 962 00:39:23,640 --> 00:39:26,760 Dan kita akan menggunakannya untuk menjadi jelas, Scratch, hanya hari ini dan ke 963 00:39:26,760 --> 00:39:27,780 Masalah pekan depan ditetapkan. 964 00:39:27,780 --> 00:39:31,920 Tetapi pada hari Senin, kita menyelam ke C. Dalam program ini di sini, itu tidak, 965 00:39:31,920 --> 00:39:33,190 selamanya, berikut ini. 966 00:39:33,190 --> 00:39:35,890 JIKA menyentuh pointer mouse - sekarang, siapa yang 967 00:39:35,890 --> 00:39:36,420 konteks di sini? 968 00:39:36,420 --> 00:39:39,670 Nah, dan perhatikan bahwa siapa yang dipilih di sini di bagian bawah 969 00:39:39,670 --> 00:39:43,060 tepat adalah kucing, sprite satu, sehingga skrip ini, ini 970 00:39:43,060 --> 00:39:45,720 Program, berlaku kepadanya secara khusus. 971 00:39:45,720 --> 00:39:48,950 Jadi, jika kucing yang menyentuh pointer mouse, maka akan 972 00:39:48,950 --> 00:39:51,350 untuk memainkan permainan ini dan menunggu dua detik, dan 973 00:39:51,350 --> 00:39:53,030 kemudian ulangi nauseum iklan. 974 00:39:53,030 --> 00:39:55,360 >> Jadi mari kita pergi ke depan dan tekan tombol play. 975 00:39:55,360 --> 00:39:57,580 Tidak ada yang terjadi, tapi jika saya ingin hewan peliharaan 976 00:39:57,580 --> 00:39:59,310 kucing sekarang, aku hanya bisa. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 DAVID Malan: Adorable. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 DAVID Malan: Oke, kurang mengganggu, tetapi juga akan membosankan, 981 00:40:08,750 --> 00:40:11,480 jadi mari kita lanjutkan dan melihat apakah kita tidak dapat menyuntikkan 982 00:40:11,480 --> 00:40:12,460 logika yang lebih sedikit. 983 00:40:12,460 --> 00:40:14,300 Itu contoh tujuh. 984 00:40:14,300 --> 00:40:16,090 >> Di sini, di contoh delapan, kita akan 985 00:40:16,090 --> 00:40:18,670 memperkenalkan kondisi ELSE. 986 00:40:18,670 --> 00:40:21,440 Begitu banyak seperti garpu literal di jalan, di mana Anda dapat pergi 987 00:40:21,440 --> 00:40:24,260 kiri atau Anda dapat pergi ke kanan, suatu kondisi pemrograman 988 00:40:24,260 --> 00:40:28,120 bahasa seperti Scratch, atau seperti yang kita akan melihat C, dapat memungkinkan Anda untuk 989 00:40:28,120 --> 00:40:32,230 masuk dalam satu arah atau lain melalui JIKA LAIN membangun. 990 00:40:32,230 --> 00:40:35,160 Jadi secara harfiah, JIKA menyentuh pointer mouse, ini 991 00:40:35,160 --> 00:40:38,680 akan memainkan beberapa suara, ELSE itu akan memainkan ini lainnya 992 00:40:38,680 --> 00:40:39,800 suara, meong. 993 00:40:39,800 --> 00:40:42,510 Sekarang, jika Anda dapat menyimpulkan dari nama ini suara, Anda dapat 994 00:40:42,510 --> 00:40:45,310 mungkin menebak apa program ini dimaksudkan untuk menyulap 995 00:40:45,310 --> 00:40:46,250 gagasan. 996 00:40:46,250 --> 00:40:48,742 Kucing ini mengeong gembira. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 DAVID Malan: Untungnya, namun tidak 999 00:40:51,410 --> 00:40:52,926 cukup suka disentuh. 1000 00:40:52,926 --> 00:40:54,550 [Mengaum] 1001 00:40:54,550 --> 00:40:57,500 DAVID Malan: Jadi sekarang kita punya kucing yang akan berteriak pada Anda. 1002 00:40:57,500 --> 00:41:00,570 >> Baiklah, baik, salah satu contoh terakhir dengan kucing di sini, dan 1003 00:41:00,570 --> 00:41:02,920 mari kita versi open sembilan dari ini di sini. 1004 00:41:02,920 --> 00:41:06,190 Jadi sekarang, kita memiliki suara yang paling menjengkelkan berikutnya yang aku bisa 1005 00:41:06,190 --> 00:41:11,630 menemukan, jadi kami memiliki walrus atau singa laut di sini siapa yang akan 1006 00:41:11,630 --> 00:41:13,222 lakukan hal berikut. 1007 00:41:13,222 --> 00:41:20,870 [KULIT SEAL] 1008 00:41:20,870 --> 00:41:23,310 DAVID Malan: Oke, jadi ini akan terus sampai Anda mengetahui bagaimana 1009 00:41:23,310 --> 00:41:24,640 Program ini bekerja. 1010 00:41:24,640 --> 00:41:28,560 Jadi, kali ini, hewan ini memiliki dua script, dan apa 1011 00:41:28,560 --> 00:41:31,050 menarik di sini adalah bahwa script akan mengeksekusi 1012 00:41:31,050 --> 00:41:32,260 secara paralel. 1013 00:41:32,260 --> 00:41:35,340 Jadi karena mereka berdua mulai dengan satu bendera hijau diklik, 1014 00:41:35,340 --> 00:41:38,080 itu seperti pergi seperti ini, dan kedua program itu mulai berjalan 1015 00:41:38,080 --> 00:41:41,370 sekali bahkan jika mereka perulangan selamanya. 1016 00:41:41,370 --> 00:41:44,420 Jadi dalam naskah atas, saya memiliki beberapa logika. 1017 00:41:44,420 --> 00:41:49,275 Fitur apa yang yang menyediakan sana? 1018 00:41:49,275 --> 00:41:50,740 [KULIT SEAL] 1019 00:41:50,740 --> 00:41:51,670 HADIRIN: [Tak terdengar] 1020 00:41:51,670 --> 00:41:53,295 DAVID Malan: Jika itu apa? 1021 00:41:53,295 --> 00:41:53,760 [KULIT SEAL] 1022 00:41:53,760 --> 00:41:55,852 HADIRIN: Jika diredam ke nol, itu akan terus bermain dengan 1023 00:41:55,852 --> 00:41:58,410 terdengar. [KULIT SEAL] 1024 00:41:58,410 --> 00:41:58,940 DAVID Malan: Oke, baik. 1025 00:41:58,940 --> 00:42:01,960 Jadi JIKA diredam, apa pun ini, ini hal oranye adalah nol, 1026 00:42:01,960 --> 00:42:05,370 KEMUDIAN memutar suara singa laut dan berpikir "Oh, 1027 00:42:05,370 --> 00:42:06,770 hi, "selama dua detik. 1028 00:42:06,770 --> 00:42:09,380 Sekarang, saya tidak tahu apa yang dimatikan, tapi nol memunculkan 1029 00:42:09,380 --> 00:42:11,230 ide palsu atau off. 1030 00:42:11,230 --> 00:42:14,490 Jadi jika diredam adalah palsu, jadi jika tidak diredam, 1031 00:42:14,490 --> 00:42:15,660 terus bermain suara. 1032 00:42:15,660 --> 00:42:17,350 Baiklah, baik, bagaimana kita menonaktifkan hal ini? 1033 00:42:17,350 --> 00:42:19,310 >> Nah, mari kita lihat script kedua di sana. 1034 00:42:19,310 --> 00:42:22,130 Script kedua mengatakan diredam diatur ke nol. 1035 00:42:22,130 --> 00:42:25,180 Perhatikan itu juga oranye, jadi apa Scratch tidak itu warna 1036 00:42:25,180 --> 00:42:27,400 blok dengan warna yang sama jika semacam itu 1037 00:42:27,400 --> 00:42:28,850 secara logis berhubungan. 1038 00:42:28,850 --> 00:42:32,850 Jadi hanya sebagai top up diredam adalah oranye, sehingga tidak bersuara di sini 1039 00:42:32,850 --> 00:42:34,060 disebutkan dalam blok oranye. 1040 00:42:34,060 --> 00:42:36,170 Tapi ini adalah tugas variabel, jadi seperti di 1041 00:42:36,170 --> 00:42:39,170 aljabar, Anda memiliki x dan y dan z, dalam pemrograman Anda memiliki 1042 00:42:39,170 --> 00:42:41,440 variabel, tapi mereka umumnya - 1043 00:42:41,440 --> 00:42:42,580 mari kita berhenti sejenak dan angka bagaimana 1044 00:42:42,580 --> 00:42:44,280 untuk menghentikan menggonggong ini. 1045 00:42:44,280 --> 00:42:45,480 Bagaimana saya melakukan ini? 1046 00:42:45,480 --> 00:42:46,480 [KULIT SEAL] 1047 00:42:46,480 --> 00:42:47,920 DAVID Malan: Oke. 1048 00:42:47,920 --> 00:42:49,490 Ini berhenti. Oke. 1049 00:42:49,490 --> 00:42:52,230 >> Jadi sama seperti dalam aljabar Anda memiliki variabel x, y, dan z, tetapi dalam 1050 00:42:52,230 --> 00:42:55,260 pemrograman, memiliki variabel seperti x, y, dan z umumnya 1051 00:42:55,260 --> 00:42:57,330 disukai karena mereka sama sekali tidak ekspresif. 1052 00:42:57,330 --> 00:43:00,070 Mereka tidak memiliki makna semantik apapun, sehingga di sebagian besar 1053 00:43:00,070 --> 00:43:02,110 bahasa pemrograman, variabel dapat memiliki penuh 1054 00:43:02,110 --> 00:43:05,270 nama matang atau kata-kata atau frasa, seperti diredam, mengatakan 1055 00:43:05,270 --> 00:43:06,030 apa yang mereka lakukan. 1056 00:43:06,030 --> 00:43:09,380 Jadi script ini kedua juga mendengarkan selamanya, dan katanya 1057 00:43:09,380 --> 00:43:12,100 jika kunci, Space tombol keyboard, adalah 1058 00:43:12,100 --> 00:43:13,370 ditekan, tanda tanya. 1059 00:43:13,370 --> 00:43:16,300 Jadi ada suatu kondisi dengan ekspresi Boolean yang 1060 00:43:16,300 --> 00:43:19,010 akan menjawab pertanyaan baik jujur ​​atau palsu, 1061 00:43:19,010 --> 00:43:22,880 maka saya harus dalamnya JIKA tombol spasi ditekan DAN 1062 00:43:22,880 --> 00:43:28,020 JIKA diredam adalah nol, mengatur diredam satu, ELSE mengatur diredam ke nol. 1063 00:43:28,020 --> 00:43:30,510 Jadi ini garpu lain di jalan, dan perhatikan bagaimana saya sudah 1064 00:43:30,510 --> 00:43:33,500 bersarang dua kondisi IF, adalah cara untuk memeriksa adalah 1065 00:43:33,500 --> 00:43:36,610 Space Bar ditekan karena jika demikian, saya juga ingin pergi ini 1066 00:43:36,610 --> 00:43:38,000 atau dengan cara lain. 1067 00:43:38,000 --> 00:43:40,210 Dan bagaimana cara membalikkan nilai diredam? 1068 00:43:40,210 --> 00:43:41,410 Saya harus memeriksa itu nol? 1069 00:43:41,410 --> 00:43:45,890 Jika demikian, menjadikannya salah satu, yang lain membuatnya nol sampai karena beralih 1070 00:43:45,890 --> 00:43:47,670 nya dua negara. 1071 00:43:47,670 --> 00:43:50,030 >> Baiklah, jadi kita miliki maka beberapa mendasar 1072 00:43:50,030 --> 00:43:50,540 konstruksi. 1073 00:43:50,540 --> 00:43:52,810 Kami memiliki ekspresi Boolean, dan menyadari juga, ini adalah 1074 00:43:52,810 --> 00:43:54,050 tidak semua yang asing. 1075 00:43:54,050 --> 00:43:56,730 Bahkan, di sini adalah screenshot cepat tentu Harvard CS50 1076 00:43:56,730 --> 00:43:59,740 belanja alat, dan setiap situs web di luar sana yang memiliki kotak centang 1077 00:43:59,740 --> 00:44:02,420 dan drop down telah benar-benar, selama ini, telah menggunakan 1078 00:44:02,420 --> 00:44:03,430 Boolean ekspresi. 1079 00:44:03,430 --> 00:44:05,760 Dalam hal ini di sini, jika Anda klik kotak centang di sebelah 1080 00:44:05,760 --> 00:44:08,620 lebih besar dari atau sama dengan 4,5, atau berikutnya yang sama program 1081 00:44:08,620 --> 00:44:11,200 fakultas, Anda menentukan ekspresi Boolean. 1082 00:44:11,200 --> 00:44:14,780 Tunjukkan pada saya kursus yang ekspresi yang benar. 1083 00:44:14,780 --> 00:44:17,080 Atau ke kanan, tidak bertentangan dengan kursus saya 1084 00:44:17,080 --> 00:44:20,440 mengambil, jika yang dicentang, maka ya, Anda ingin memeriksa 1085 00:44:20,440 --> 00:44:22,890 Kondisi itu, lain Anda ingin mengabaikannya. 1086 00:44:22,890 --> 00:44:25,170 Jadi ekspresi Boolean adalah semacam seluruh, tetapi ketika 1087 00:44:25,170 --> 00:44:28,080 kami menempatkan mereka dalam kondisi, baik kondisi IF, IF 1088 00:44:28,080 --> 00:44:30,480 Elses, atau kita bahkan dapat mensimulasikan lebih dalam 1089 00:44:30,480 --> 00:44:32,830 tingkat, JIKA ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 jadi itu semacam negara terner. 1091 00:44:34,430 --> 00:44:36,920 Anda dapat pergi dengan cara ini atau cara ini atau cara ini. 1092 00:44:36,920 --> 00:44:39,680 Kita dapat menjaga hal-hal bersarang untuk pergi ke arah yang berbeda. 1093 00:44:39,680 --> 00:44:41,800 >> Jadi Scratch memiliki loop ini, seperti Selamanya. 1094 00:44:41,800 --> 00:44:44,750 Ini memiliki fitur seperti Ulangi 10, beberapa 1095 00:44:44,750 --> 00:44:46,260 hingga beberapa kali. 1096 00:44:46,260 --> 00:44:49,040 Kami memiliki kemampuan sekarang untuk mengatur variabel, sehingga dalam kasus ini 1097 00:44:49,040 --> 00:44:51,810 Saya sudah menyatakan, misalnya, kaus kaki yang disebut variabel. 1098 00:44:51,810 --> 00:44:54,340 Saya sudah diinisialisasi ke 0, dan itu belum arah lain 1099 00:44:54,340 --> 00:44:56,940 kita bisa mengambil di sini dengan Yusuf, dimana mungkin aku 1100 00:44:56,940 --> 00:45:00,150 hanya melacak berapa banyak kaus kaki saya dan mengakhiri 1101 00:45:00,150 --> 00:45:03,490 program ketika nilai bahwa variabel adalah 2. 1102 00:45:03,490 --> 00:45:05,660 Itu akan menjadi cara lain semacam generalisasi bahwa 1103 00:45:05,660 --> 00:45:08,820 masalah dan melakukan sesuatu lagi dan lagi. 1104 00:45:08,820 --> 00:45:12,080 Nah, mari kita pergi ke depan dan sekarang memperkenalkan beberapa hal baru. 1105 00:45:12,080 --> 00:45:14,100 Jadi bagi anda dengan pengalaman pemrograman sebelumnya akan 1106 00:45:14,100 --> 00:45:17,120 tahu bahwa banyak bahasa memiliki array, atau vektor atau 1107 00:45:17,120 --> 00:45:19,970 daftar, dan memang, Scratch memiliki sesuatu seperti ini, juga. 1108 00:45:19,970 --> 00:45:22,510 Jadi mari kita lihat apakah kita tidak dapat mengambil hal-hal ke tingkat berikutnya di sini. 1109 00:45:22,510 --> 00:45:24,920 Jika saya memiliki kemampuan, saat ini, dengan potongan-potongan teka-teki untuk 1110 00:45:24,920 --> 00:45:29,080 menambahkan sesuatu, seperti kata atau nomor, untuk variabel, saya bisa 1111 00:45:29,080 --> 00:45:30,550 mulai menumpuk hal. 1112 00:45:30,550 --> 00:45:33,630 Dan ini sebenarnya apropos cantik untuk hal-hal seperti game, 1113 00:45:33,630 --> 00:45:35,810 role-playing game di mana kau jenis berkeliling 1114 00:45:35,810 --> 00:45:38,600 beberapa dunia fantasi mengumpulkan hal-hal, mengambil segalanya, 1115 00:45:38,600 --> 00:45:39,900 mendapatkan poin, atau sejenisnya. 1116 00:45:39,900 --> 00:45:42,310 Anda mungkin ingin melacak beberapa jenis persediaan, dan 1117 00:45:42,310 --> 00:45:45,180 memang, itulah salah satu mantan siswa kami di sini lakukan dengan 1118 00:45:45,180 --> 00:45:47,750 sesuatu yang disebut Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Jadi biarkan aku pergi ke depan dan membuka hal ini di sini, dan di 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, kita memiliki dunia ini sampai di atas. 1121 00:45:56,260 --> 00:45:58,820 Jadi biarkan aku pergi ke depan dan klik bendera hijau. 1122 00:45:58,820 --> 00:46:01,040 Perhatikan di sebelah kiri atas adalah beberapa jenis persediaan. 1123 00:46:01,040 --> 00:46:04,110 Itu diimplementasikan dalam Scratch seperti apa yang kita akan menelepon array atau 1124 00:46:04,110 --> 00:46:06,890 daftar, dan sekarang kami memiliki sedikit animasi. 1125 00:46:06,890 --> 00:46:10,440 Jadi sama seperti kita mulai dengan awal kisah cinta cookie, 1126 00:46:10,440 --> 00:46:13,320 dan kemudian kita maju ke kucing dan singa laut, sekarang kita dapat memiliki 1127 00:46:13,320 --> 00:46:15,100 hal-hal yang lebih interaktif. 1128 00:46:15,100 --> 00:46:18,250 Dan orang ini biru kecil, saya bisa mulai bergerak nya 1129 00:46:18,250 --> 00:46:19,500 sedikit rumah di sini. 1130 00:46:19,500 --> 00:46:22,570 Jadi sepertinya dia punya jalan keluar di sini, jadi saya menggunakan 1131 00:46:22,570 --> 00:46:25,260 tombol panah, atas, bawah, kiri kanan. 1132 00:46:25,260 --> 00:46:28,370 Dan sekarang aku di luar, jadi mari yang saya punya di sini. 1133 00:46:28,370 --> 00:46:30,920 Sepertinya jeruk, dan memang, segera setelah saya menyentuh 1134 00:46:30,920 --> 00:46:33,110 oranye, itu akan menjatuhkan ke dalam persediaan saya. 1135 00:46:33,110 --> 00:46:35,640 Jika saya pergi ke sini untuk ceri, sekarang saya memiliki sesuatu 1136 00:46:35,640 --> 00:46:36,760 lain di persediaan saya. 1137 00:46:36,760 --> 00:46:39,100 Dan ini semua bagus dan lucu, tapi berpikir tentang bagaimana, sekarang, ini 1138 00:46:39,100 --> 00:46:39,840 diimplementasikan. 1139 00:46:39,840 --> 00:46:42,490 Nah, kita memiliki gagasan daftar, dan itu tampaknya 1140 00:46:42,490 --> 00:46:45,470 potongan puzzle yang baru saja Anda mengatakan apa yang Anda ingin menambahkan untuk itu, tambahkan 1141 00:46:45,470 --> 00:46:46,950 oranye, tambahkan ceri. 1142 00:46:46,950 --> 00:46:48,540 Sekarang, apa yang orang ini biru kecil lakukan? 1143 00:46:48,540 --> 00:46:49,810 Yah, dia sprite. 1144 00:46:49,810 --> 00:46:52,190 Dan mungkin, jeruk dan ceri - 1145 00:46:52,190 --> 00:46:54,140 mereka sendiri yang terpisah sprite. 1146 00:46:54,140 --> 00:46:56,980 Dan menggunakan kondisi dalam ekspresi Boolean, yang 1147 00:46:56,980 --> 00:47:00,530 siswa mungkin dapat mengekspresikan JIKA pria biru 1148 00:47:00,530 --> 00:47:04,590 ceri menyentuh KEMUDIAN menambahkan ceri kata untuk nya 1149 00:47:04,590 --> 00:47:07,890 persediaan, dan kemudian juga menyembunyikan sprite cherry. 1150 00:47:07,890 --> 00:47:10,600 Jadi di bawah kap mesin, ada mungkin masih merupakan cherry 1151 00:47:10,600 --> 00:47:11,350 sprite di sana. 1152 00:47:11,350 --> 00:47:14,160 Kami baru saja diberitahu itu menjadi efektif terlihat. 1153 00:47:14,160 --> 00:47:16,340 >> Sekarang, jika saya terus berjalan ke sini, kita juga bisa melakukan hal ini 1154 00:47:16,340 --> 00:47:19,150 proksimal hal, di mana saya bisa pergi dan membaca tanda. 1155 00:47:19,150 --> 00:47:23,170 Jadi jika pria biru menyentuh tanda, kita dapat memiliki blok Say 1156 00:47:23,170 --> 00:47:26,455 seperti kucing berbicara kepada kita dalam kata-kata, halo, sebelumnya, "Got 1157 00:47:26,455 --> 00:47:26,880 beberapa buah? 1158 00:47:26,880 --> 00:47:29,290 Bawa ke tempat buah "Baiklah, jadi sekarang, rupanya., 1159 00:47:29,290 --> 00:47:30,550 Saya memiliki arah saya. 1160 00:47:30,550 --> 00:47:33,050 Aku bisa pergi ke sini untuk tempat buah, garis diri 1161 00:47:33,050 --> 00:47:33,740 dengan pintu. 1162 00:47:33,740 --> 00:47:35,390 Sekarang, aku di sini. 1163 00:47:35,390 --> 00:47:38,120 Aku bisa pergi ke orang di meja. 1164 00:47:38,120 --> 00:47:40,330 Dia mendeteksi bahwa aku dekat dengannya, sehingga tidak harus 1165 00:47:40,330 --> 00:47:46,780 cukup identik menyentuh, dan saya telah memenangkan pertandingan. 1166 00:47:46,780 --> 00:47:49,890 Jadi ada yang kita miliki Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Jadi kita bisa melakukan hal-hal bahkan lebih maju daripada ini. 1168 00:47:52,200 --> 00:47:53,200 Kita dapat menambahkan suara. 1169 00:47:53,200 --> 00:47:54,610 Kita dapat menambahkan keacakan semu. 1170 00:47:54,610 --> 00:47:56,260 Kita bisa menambah kompleksitas. 1171 00:47:56,260 --> 00:47:58,490 Biarkan aku pergi ke depan di sini, dan bukannya melakukan hal ini sendiri, 1172 00:47:58,490 --> 00:48:01,240 mari saya tunjukkan salah satu pengiriman lebih canggih 1173 00:48:01,240 --> 00:48:06,640 kami mendapat tahun lalu dari seseorang tertentu bernama Blake. 1174 00:48:06,640 --> 00:48:08,910 Bisakah kita memiliki satu relawan yang nyaman muncul di 1175 00:48:08,910 --> 00:48:12,600 Kamera dan untuk bermain game? 1176 00:48:12,600 --> 00:48:13,450 Bagaimana di sana? 1177 00:48:13,450 --> 00:48:15,380 Ayo up. 1178 00:48:15,380 --> 00:48:19,680 Baiklah, sehingga permainan yang Anda baru saja sadar 1179 00:48:19,680 --> 00:48:20,780 sukarela untuk bermain - 1180 00:48:20,780 --> 00:48:25,910 [Tepuk Tangan] 1181 00:48:25,910 --> 00:48:28,610 DAVID Malan: - adalah sesuatu dari masa lampau yang disebut 1182 00:48:28,610 --> 00:48:30,100 "Frogger." Siapa nama Anda? 1183 00:48:30,100 --> 00:48:30,730 Renda: Renda. 1184 00:48:30,730 --> 00:48:31,050 DAVID Malan: Redna? 1185 00:48:31,050 --> 00:48:32,530 Renda: Ini seperti Brenda dengan b. 1186 00:48:32,530 --> 00:48:33,190 DAVID Malan: Oke, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Senang bertemu Anda. 1189 00:48:34,580 --> 00:48:38,690 >> Jadi di sini di "Frogger," dan jika kita bisa meningkatkan volume hanya 1190 00:48:38,690 --> 00:48:39,780 sedikit, Anda ini sedikit 1191 00:48:39,780 --> 00:48:41,010 katak hijau di bagian bawah. 1192 00:48:41,010 --> 00:48:43,940 Anda dapat menggunakan kiri, kanan, atas dan bawah, dan tujuan Anda adalah untuk 1193 00:48:43,940 --> 00:48:46,510 menyeberang jalan, menyeberangi sungai, dan menyentuh bantalan lily 1194 00:48:46,510 --> 00:48:47,760 di bagian atas. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Satu lagi t - 1197 00:48:54,630 --> 00:48:56,400 redo, oke? 1198 00:48:56,400 --> 00:48:58,890 Mari kita berhenti hit. 1199 00:48:58,890 --> 00:49:00,140 Tidak ada yang melihat bahwa. 1200 00:49:10,470 --> 00:49:12,930 [Tepuk Tangan] 1201 00:49:17,023 --> 00:49:17,850 [Tepuk Tangan] 1202 00:49:17,850 --> 00:49:19,341 DAVID Malan: Ya. 1203 00:49:19,341 --> 00:49:20,832 Sangat baik dilakukan. 1204 00:49:20,832 --> 00:49:22,082 Baik, terima kasih. 1205 00:49:27,300 --> 00:49:29,430 >> Sehingga ada Frogger. Sekarang bahwa Anda tahu apa yang Anda sudah 1206 00:49:29,430 --> 00:49:32,170 mendapatkan dirimu ke, relawan satu lagi untuk berbeda 1207 00:49:32,170 --> 00:49:34,910 Permainan disampaikan oleh siswa lain. 1208 00:49:34,910 --> 00:49:35,560 Anda ingin datang ke atas? 1209 00:49:35,560 --> 00:49:36,576 Siapa nama Anda? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID Malan: Richard. 1212 00:49:37,420 --> 00:49:39,732 Baiklah, Richard, ayolah up. 1213 00:49:39,732 --> 00:49:42,187 [Tepuk Tangan] 1214 00:49:45,140 --> 00:49:47,030 DAVID Malan: Anda memiliki sesuatu yang akan terdengar 1215 00:49:47,030 --> 00:49:54,180 familiar segera, jadi di sini adalah instruksi Anda. 1216 00:49:54,180 --> 00:49:56,580 Jadi suatu saat, beberapa potongan puzzle yang akan menggulir ke atas 1217 00:49:56,580 --> 00:49:58,150 dari layar yang terlihat baik kiri 1218 00:49:58,150 --> 00:49:59,450 atau kanan atas atau bawah. 1219 00:49:59,450 --> 00:50:01,230 Anda akan perlu menekan tombol panah sedemikian rupa 1220 00:50:01,230 --> 00:50:04,540 bahwa sesuai dengan potongan-potongan puzzle berbaris dengan 1221 00:50:04,540 --> 00:50:05,720 penampung di atas. 1222 00:50:05,720 --> 00:50:07,500 Jadi, ketika Anda melihat panah kiri, dan garis-garis dengan kiri 1223 00:50:07,500 --> 00:50:09,260 panah, memukul panah kiri. 1224 00:50:09,260 --> 00:50:10,866 Anda mungkin mulai. 1225 00:50:10,866 --> 00:50:13,674 [MUSIC - "KUAT" Kayne WEST] 1226 00:51:21,222 --> 00:51:23,470 DAVID Malan: Semua bulat, besar kan tepuk tangan untuk Richard. 1227 00:51:23,470 --> 00:51:26,082 [Tepuk Tangan] 1228 00:51:32,426 --> 00:51:33,720 DAVID Malan: Sangat baik dilakukan. 1229 00:51:33,720 --> 00:51:34,110 Terima kasih. 1230 00:51:34,110 --> 00:51:37,104 [Tepuk Tangan] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID Malan: fun dan Jadi, tampaknya, semacam 1232 00:51:44,330 --> 00:51:46,590 mengintimidasi seperti itu mungkin untuk mengimplementasikan sesuatu sebagai 1233 00:51:46,590 --> 00:51:49,550 tampaknya canggih seperti ini, menyadari bahwa siswa 1234 00:51:49,550 --> 00:51:51,450 tidak berangkat dan hanya menulis ini sekaligus. 1235 00:51:51,450 --> 00:51:54,200 Sebaliknya, Anda dapat memecah masalah yang tampaknya kompleks 1236 00:51:54,200 --> 00:51:56,840 karena hal ini menjadi potongan-potongan yang lebih kecil, dan ini juga merupakan 1237 00:51:56,840 --> 00:51:57,560 akan menjadi tema. 1238 00:51:57,560 --> 00:52:00,490 Hal terburuk yang dapat Anda lakukan dalam menulis sebuah program di hampir semua 1239 00:52:00,490 --> 00:52:03,480 bahasa adalah untuk duduk, benar-benar gembira, menulis 1240 00:52:03,480 --> 00:52:07,200 sialan keseluruhan, dan kemudian hanya berharap bahwa ia bekerja dengan 1241 00:52:07,200 --> 00:52:08,510 kali Anda selesai menulis. 1242 00:52:08,510 --> 00:52:10,920 Sebaliknya, proses pemrograman pada umumnya harus 1243 00:52:10,920 --> 00:52:13,440 sangat disengaja, sangat berulang, dimana Anda hanya 1244 00:52:13,440 --> 00:52:16,955 menetapkan langkah-langkah yang sangat kecil untuk dirimu, gigitan-ukuran potongan 1245 00:52:16,955 --> 00:52:20,070 Anda ingin menggigit, dan sehingga Anda memiliki kewarasan ini 1246 00:52:20,070 --> 00:52:21,740 cek, tonggak kecil yang Anda dapat bertemu. 1247 00:52:21,740 --> 00:52:24,170 Dan kemudian Anda membangun di atas mereka untuk menciptakan lebih 1248 00:52:24,170 --> 00:52:25,400 canggih hal masih. 1249 00:52:25,400 --> 00:52:26,820 >> Jadi misalnya, bagaimana kita bisa pergi tentang 1250 00:52:26,820 --> 00:52:28,380 menerapkan permainan seperti ini? 1251 00:52:28,380 --> 00:52:30,160 Nah, terus terang, saya pasti akan mulai dengan hanya 1252 00:52:30,160 --> 00:52:32,260 mendukung salah satu kunci pada suatu waktu. 1253 00:52:32,260 --> 00:52:34,840 Mari kita menerapkan dukungan untuk panah kiri. 1254 00:52:34,840 --> 00:52:37,610 Jadi siswa harus entah bagaimana membuat di Photoshop, atau 1255 00:52:37,610 --> 00:52:40,340 Gores sendiri menggunakan editor grafis kecil, suatu 1256 00:52:40,340 --> 00:52:42,680 Tombol panah yang terlihat seperti yang di kiri atas sana, hanya 1257 00:52:42,680 --> 00:52:43,910 placeholder abu-abu. 1258 00:52:43,910 --> 00:52:46,610 Kemudian siswa harus mencari tahu apa x, y berkoordinasi 1259 00:52:46,610 --> 00:52:48,380 meletakkannya, di mana untuk memasukkannya ke dalam jendela. 1260 00:52:48,380 --> 00:52:50,730 0, 0 adalah di sini, jadi Anda harus mengetahui jumlah 1261 00:52:50,730 --> 00:52:53,690 piksel, atau titik, untuk mengimbangi panah yang dari 1262 00:52:53,690 --> 00:52:54,800 bagian atas layar. 1263 00:52:54,800 --> 00:52:57,040 Dan kemudian setelah itu di tempat, program Anda tidak benar-benar 1264 00:52:57,040 --> 00:53:00,380 melakukan apa pun, sehingga Anda kemudian perlu sprite kedua, untuk 1265 00:53:00,380 --> 00:53:04,470 Misalnya panah hijau yang juga Proses mengarahkan kiri, dan Anda 1266 00:53:04,470 --> 00:53:06,710 maka perlu untuk mulai menulis beberapa script untuk itu. 1267 00:53:06,710 --> 00:53:09,310 >> Dan Anda perhatikan, mungkin, bahwa hal-hal mulai datang pada 1268 00:53:09,310 --> 00:53:11,470 kecepatan yang berbeda, dan warna yang berbeda dalam 1269 00:53:11,470 --> 00:53:13,750 lokasi, dan itu karena siswa menggunakan sedikit 1270 00:53:13,750 --> 00:53:14,990 semu keacakan. 1271 00:53:14,990 --> 00:53:17,440 Dan oleh keacakan semu, saya hanya berarti mengambil nomor 1272 00:53:17,440 --> 00:53:20,230 antara sesuatu dan sesuatu karena Anda dapat 1273 00:53:20,230 --> 00:53:22,890 mulai hal peta, seperti jika nomor tersebut antara satu dan 1274 00:53:22,890 --> 00:53:24,940 lima, baik, mari kita membuat hal yang hijau. 1275 00:53:24,940 --> 00:53:28,290 Jika itu antara 6 dan 10, mari kita membuat potongan puzzle 1276 00:53:28,290 --> 00:53:29,730 merah sebagai gantinya. 1277 00:53:29,730 --> 00:53:31,840 Jadi selama Anda memiliki cara untuk menghasilkan beberapa jenis 1278 00:53:31,840 --> 00:53:34,730 keacakan, Anda kemudian dapat membuat keputusan yang didasarkan pada 1279 00:53:34,730 --> 00:53:35,260 keacakan. 1280 00:53:35,260 --> 00:53:37,490 Dan saya tetap semu mengatakan acak karena ada 1281 00:53:37,490 --> 00:53:38,390 rahasia kecil. 1282 00:53:38,390 --> 00:53:41,130 Komputer tidak bisa datang dengan nomor acak. 1283 00:53:41,130 --> 00:53:42,800 Mereka hanya dapat melakukan apa yang mereka diberitahu karena 1284 00:53:42,800 --> 00:53:44,110 mereka buatan manusia perangkat. 1285 00:53:44,110 --> 00:53:45,880 Mereka tidak bisa hanya menebak nomor seperti kita manusia 1286 00:53:45,880 --> 00:53:46,960 merasa seperti kita bisa. 1287 00:53:46,960 --> 00:53:50,970 Sebuah komputer harus melakukan sesuatu matematika untuk menyulap 1288 00:53:50,970 --> 00:53:53,970 ilusi nomor matematika, kadang-kadang menggunakan 1289 00:53:53,970 --> 00:53:57,420 saat hari waktu sebagai masukan untuk mencari tahu apa yang 1290 00:53:57,420 --> 00:53:59,570 nomor untuk kembali, tetapi lebih pada lain waktu. 1291 00:53:59,570 --> 00:54:02,060 Untuk saat ini, hanya tahu bahwa kita dapat menghasilkan keacakan semu. 1292 00:54:02,060 --> 00:54:04,610 >> Jadi setelah saya memiliki kemampuan untuk panah kiri untuk memulai 1293 00:54:04,610 --> 00:54:07,990 muncul pada waktu yang berbeda dan pada kecepatan yang berbeda, maka 1294 00:54:07,990 --> 00:54:10,230 Aku bisa kembali dan menambahkan beberapa IF kondisi. 1295 00:54:10,230 --> 00:54:14,950 JIKA sprite ini menyentuh yang lain, DAN panah kiri 1296 00:54:14,950 --> 00:54:16,330 tombol telah ditekan - 1297 00:54:16,330 --> 00:54:17,900 sehingga tiga kondisi dalam kasus itu. 1298 00:54:17,900 --> 00:54:20,750 Saya bisa menggunakan DAN blok mungkin, dalam hal ini - 1299 00:54:20,750 --> 00:54:23,210 KEMUDIAN saya ingin pergi ke depan dan kenaikan skor. 1300 00:54:23,210 --> 00:54:25,130 Dan di atas, kita memiliki skor, kami telah mengagumkan, 1301 00:54:25,130 --> 00:54:26,510 Keren, Baik, dan Boo. 1302 00:54:26,510 --> 00:54:29,810 Jadi rupanya ada lima variabel yang mahasiswa ini 1303 00:54:29,810 --> 00:54:32,220 digunakan untuk melacak berbagai metrik tersebut. 1304 00:54:32,220 --> 00:54:34,180 Jadi singkatnya, hasil akhirnya adalah menakjubkan. 1305 00:54:34,180 --> 00:54:37,320 Ini menyenangkan, itu menyenangkan untuk bermain, itu menarik, tapi ini bukan 1306 00:54:37,320 --> 00:54:38,380 dimana siswa mulai. 1307 00:54:38,380 --> 00:54:42,210 Dia mulai pada set jauh lebih kecil dari langkah-langkah. 1308 00:54:42,210 --> 00:54:44,470 >> Jadi apa adalah beberapa blok bangunan lainnya yang bisa kita 1309 00:54:44,470 --> 00:54:45,760 menenun ke dalam program? 1310 00:54:45,760 --> 00:54:48,750 Nah, ada konsep lain dalam kebanyakan bahasa, 1311 00:54:48,750 --> 00:54:50,730 Gores di antara mereka, yang dikenal sebagai benang. 1312 00:54:50,730 --> 00:54:54,660 Jadi komputer dapat benar-benar tidak benar-benar melakukan beberapa hal pada 1313 00:54:54,660 --> 00:54:56,730 waktu, setidaknya tidak biasanya. 1314 00:54:56,730 --> 00:54:59,930 Sebaliknya, komputer umumnya hanya memiliki satu CPU, dan bahkan 1315 00:54:59,930 --> 00:55:02,230 meskipun komputer super cepat dan bisa, karena itu, 1316 00:55:02,230 --> 00:55:04,740 menciptakan ilusi melakukan beberapa hal sekaligus - 1317 00:55:04,740 --> 00:55:06,180 memeriksa email Anda, mendapatkan instan 1318 00:55:06,180 --> 00:55:07,770 pesan, mencetak dokumen - 1319 00:55:07,770 --> 00:55:11,530 benar, komputer hanya melompat dari pencetakan untuk chatting 1320 00:55:11,530 --> 00:55:15,160 untuk mengirim email, kembali dan kembali dan maju mundur begitu cepat sehingga kita 1321 00:55:15,160 --> 00:55:18,170 manusia cerdas lambat hanya tidak menyadari bahwa itu sebenarnya 1322 00:55:18,170 --> 00:55:21,240 menjalankan program-program sedikit pada suatu waktu. 1323 00:55:21,240 --> 00:55:23,960 Sekarang, ini sedikit dari putih berbohong hari ini karena, saat ini, 1324 00:55:23,960 --> 00:55:26,740 banyak komputer kita adalah apa yang disebut multi-core, sehingga Anda 1325 00:55:26,740 --> 00:55:29,760 memiliki satu CPU, tetapi beberapa core, yang merupakan jenis seperti 1326 00:55:29,760 --> 00:55:31,760 memiliki beberapa CPU. 1327 00:55:31,760 --> 00:55:35,020 >> Dan jadi kadang-kadang, komputer benar-benar dapat melakukan beberapa hal 1328 00:55:35,020 --> 00:55:38,500 pada suatu waktu, tetapi umumnya dalam sebuah program, program 1329 00:55:38,500 --> 00:55:40,200 bergantung pada hal-hal yang disebut benang. 1330 00:55:40,200 --> 00:55:43,160 Jadi benang adalah semacam program mini yang dapat 1331 00:55:43,160 --> 00:55:46,540 ada di samping program lain miniatur dan dapat menjalankan 1332 00:55:46,540 --> 00:55:51,250 secara paralel, atau setidaknya dapat berjalan di bawah ilusi bahwa 1333 00:55:51,250 --> 00:55:52,990 mereka berjalan secara bersamaan. 1334 00:55:52,990 --> 00:55:55,060 Jadi Scratch mendukung hal-hal yang disebut benang. 1335 00:55:55,060 --> 00:55:57,580 Anda dapat memiliki beberapa script mengeksekusi sekaligus, sama seperti kita 1336 00:55:57,580 --> 00:56:00,220 lakukan dengan singa laut, dan ini memungkinkan kita untuk benar-benar 1337 00:56:00,220 --> 00:56:03,620 kemudian memiliki interaksi di antara sprite. 1338 00:56:03,620 --> 00:56:09,910 Biarkan aku pergi ke depan di sini dan menarik, katakanlah, benang, dan 1339 00:56:09,910 --> 00:56:11,870 bermain ini sebagai berikut. 1340 00:56:11,870 --> 00:56:13,950 Kami memiliki dua sprite, masing-masing kita akan melihat 1341 00:56:13,950 --> 00:56:15,720 hanya memiliki satu naskah. 1342 00:56:15,720 --> 00:56:18,000 Dan Anda melihat tampaknya ada beberapa kecerdasan dalam 1343 00:56:18,000 --> 00:56:21,335 kucing dalam satu ini karena dia semakin dekat - 1344 00:56:21,335 --> 00:56:21,730 [Mengaum] 1345 00:56:21,730 --> 00:56:24,540 DAVID Malan: - dan lebih dekat dengan burung kecil. 1346 00:56:24,540 --> 00:56:26,570 >> Jadi bagaimana adalah operasi burung? 1347 00:56:26,570 --> 00:56:28,200 Nah, mari kita lihat burung yang pertama. 1348 00:56:28,200 --> 00:56:31,220 Script burung berkata ketika bendera hijau diklik, pergi ke x 1349 00:56:31,220 --> 00:56:34,020 sama dengan negatif 115 dan y sama dengan 150. 1350 00:56:34,020 --> 00:56:37,010 Jadi aku hanya tahu lokasi acak di mana saya ingin 1351 00:56:37,010 --> 00:56:39,580 burung untuk memulai, dan aku hanya menjatuhkan dia di sana secara default. 1352 00:56:39,580 --> 00:56:42,800 Kemudian Selamanya JIKA tidak menyentuh kucing, jadi ini adalah berbeda 1353 00:56:42,800 --> 00:56:45,080 jenis konstruksi perulangan, tetapi ide yang sama, melakukan ini lagi dan 1354 00:56:45,080 --> 00:56:45,780 lagi dan lagi. 1355 00:56:45,780 --> 00:56:49,410 Jadi selama Anda tidak menyentuh kucing, bergerak tiga langkah, dan 1356 00:56:49,410 --> 00:56:51,680 jika Anda berada di mental, tepi, di mana itu semacam 1357 00:56:51,680 --> 00:56:53,320 refleksi dalam arti biliar. 1358 00:56:53,320 --> 00:56:56,140 Jadi itulah bagaimana burung bergerak di sekitar jenis 1359 00:56:56,140 --> 00:56:58,890 tampaknya secara acak, tapi itu hanya karena itu memantul dari 1360 00:56:58,890 --> 00:57:00,170 dinding dalam kasus ini. 1361 00:57:00,170 --> 00:57:03,170 >> Sekarang kucing, sementara itu, adalah jenis kecurangan. 1362 00:57:03,170 --> 00:57:05,520 Kucing, ketika bendera hijau diklik, ya, dimulai pada 1363 00:57:05,520 --> 00:57:07,390 beberapa lokasi, lokasi yang acak - 1364 00:57:07,390 --> 00:57:09,590 setidaknya sebagian sesuai pick 1365 00:57:09,590 --> 00:57:11,430 random hijau blok ada - 1366 00:57:11,430 --> 00:57:14,660 dan kemudian Selamanya JIKA menyentuh burung, memutar suara singa, 1367 00:57:14,660 --> 00:57:15,790 dan kemudian berhenti script. 1368 00:57:15,790 --> 00:57:18,560 Jadi ketika aku berkata menghentikan, atau keluar sebelumnya, ada teka-teki 1369 00:57:18,560 --> 00:57:20,600 bagian dalam Scratch yang hanya akan membunuh program pada saat itu 1370 00:57:20,600 --> 00:57:22,900 titik karena itu agak logis dilakukan. 1371 00:57:22,900 --> 00:57:25,030 Tapi sebaliknya, di sini, perhatikan apa yang akan terjadi. 1372 00:57:25,030 --> 00:57:28,470 Titik terhadap burung dan bergerak satu langkah. 1373 00:57:28,470 --> 00:57:31,390 Jadi ini mengarah ke burung adalah jenis keuntungan kucing 1374 00:57:31,390 --> 00:57:34,640 telah di bahwa itu merpati dalam pada burung bergerak, dan kita bisa 1375 00:57:34,640 --> 00:57:37,370 sekarang membuat program ini semua lebih menarik. 1376 00:57:37,370 --> 00:57:41,520 Alih-alih bergerak satu langkah pada satu waktu per siklus CPU, per 1377 00:57:41,520 --> 00:57:44,280 menyerang tol bel, sehingga untuk berbicara, biarkan aku pergi ke depan dan 1378 00:57:44,280 --> 00:57:47,350 bergerak, katakanlah, lima anak tangga sekaligus sebagai kucing. 1379 00:57:47,350 --> 00:57:51,120 Klik dijalankan, dan sekarang ia benar-benar menemukan dia dengan cepat. 1380 00:57:51,120 --> 00:57:55,620 Jika kita dua kali lipat ini lebih lanjut untuk 10 langkah, itu semacam berjalan 1381 00:57:55,620 --> 00:57:56,370 tepat untuknya. 1382 00:57:56,370 --> 00:57:57,750 Sekarang, kita bisa memberikan burung, 1383 00:57:57,750 --> 00:57:59,540 mungkin, sedikit keuntungan. 1384 00:57:59,540 --> 00:58:02,370 Mari kita pergi ke burung dan mengatakan bukannya bergerak tiga langkah, 1385 00:58:02,370 --> 00:58:07,140 mari kita memindahkan dia 30 langkah. 1386 00:58:07,140 --> 00:58:08,700 Tapi dia masih terjebak pada akhirnya. 1387 00:58:08,700 --> 00:58:10,430 >> Jadi di sini, kita memiliki dua benang. 1388 00:58:10,430 --> 00:58:13,230 Ini dipenjara di Scratch dengan dua script dan dua 1389 00:58:13,230 --> 00:58:16,150 sprite, tetapi ide dalam bahasa lain adalah bahwa Anda dapat 1390 00:58:16,150 --> 00:58:19,220 menulis, pada dasarnya, terlalu banyak program seperti ini dan memiliki 1391 00:58:19,220 --> 00:58:22,950 mereka berjalan benar, atau imaginarily, secara paralel. 1392 00:58:22,950 --> 00:58:25,280 >> Sekarang, ada juga konsep ini dalam pemrograman dikenal sebagai 1393 00:58:25,280 --> 00:58:28,010 peristiwa, dan ini adalah sesuatu yang kita tidak akan melihat di C, 1394 00:58:28,010 --> 00:58:30,500 Bahasa yang dikenal sebagai C. Kami akan melihatnya menjelang akhir semester 1395 00:58:30,500 --> 00:58:33,240 dalam pemrograman web, saat kami memperkenalkan JavaScript dan 1396 00:58:33,240 --> 00:58:36,970 Gagasan halaman web bangunan yang dinamis dan berinteraksi 1397 00:58:36,970 --> 00:58:37,710 dengan pengguna. 1398 00:58:37,710 --> 00:58:40,430 Jadi dalam hal ini, kita memiliki contoh yang sangat sederhana dari dua 1399 00:58:40,430 --> 00:58:43,860 sprite, anak laki-laki dan perempuan, masing-masing memiliki masing-masing 1400 00:58:43,860 --> 00:58:48,040 benang, tapi entah bagaimana kedua saling berkomunikasi dengan cara 1401 00:58:48,040 --> 00:58:49,490 dari sesuatu yang disebut peristiwa. 1402 00:58:49,490 --> 00:58:52,750 Jadi biarkan aku pergi ke depan di sini dan memperbesar pada script anak itu, 1403 00:58:52,750 --> 00:58:54,050 yang terlihat seperti ini. 1404 00:58:54,050 --> 00:58:57,510 Ketika bendera hijau diklik, selamanya lakukan hal berikut. 1405 00:58:57,510 --> 00:59:01,510 Jika Space kunci, atau Space Bar, ditekan, katakanlah 1406 00:59:01,510 --> 00:59:03,900 Marco selama dua detik, itu murni estetika pada 1407 00:59:03,900 --> 00:59:06,860 layar, gelembung bicara sedikit, tapi kemudian disiarkan. 1408 00:59:06,860 --> 00:59:09,240 >> Jadi siaran adalah sepotong Scratch itu 1409 00:59:09,240 --> 00:59:12,050 perwakilan dari kelas fungsi dalam pemrograman 1410 00:59:12,050 --> 00:59:15,080 yang memungkinkan program yang berbeda, benang yang berbeda, 1411 00:59:15,080 --> 00:59:17,120 antar-berkomunikasi, entah bagaimana mengirim 1412 00:59:17,120 --> 00:59:18,520 pesan, satu sama lain. 1413 00:59:18,520 --> 00:59:21,930 Melewati selembar kertas di kelas adalah semacam teknologi rendah 1414 00:59:21,930 --> 00:59:22,700 setara. 1415 00:59:22,700 --> 00:59:24,300 Jadi menyiarkan acara. 1416 00:59:24,300 --> 00:59:26,210 Saya dapat mengirim pesan ini, dan peristiwa kata 1417 00:59:26,210 --> 00:59:27,270 benar-benar sewenang-wenang. 1418 00:59:27,270 --> 00:59:30,000 Scratch kadang-kadang memiliki ini drop down, jadi aku hanya datang 1419 00:59:30,000 --> 00:59:33,230 dengan kata acak seperti acara karena sekarang, apa anak itu tidak 1420 00:59:33,230 --> 00:59:36,600 ketika saya tekan tombol dia menyiarkan acara ini. 1421 00:59:36,600 --> 00:59:39,270 Dan jika saya melihat sekarang di script gadis itu, script nya 1422 00:59:39,270 --> 00:59:42,690 super sederhana karena semua dia perlu lakukan adalah tidak bertindak ketika 1423 00:59:42,690 --> 00:59:44,100 bendera hijau diklik. 1424 00:59:44,100 --> 00:59:47,910 Dia dirancang untuk bertindak ketika dia menerima kutipan, tanda kutip, 1425 00:59:47,910 --> 00:59:51,210 "Event", dan pada saat itu, dia mendengarkan karena untuk 1426 00:59:51,210 --> 00:59:52,960 acara yang disebut lagi dan lagi. 1427 00:59:52,960 --> 00:59:55,790 Segera setelah ia menerima peristiwa itu, dia akan berteriak 1428 00:59:55,790 --> 00:59:57,680 Polo selama dua detik. 1429 00:59:57,680 --> 01:00:01,090 >> Dan sehingga Anda mungkin dapat menyimpulkan dari hal ini persis apa yang 1430 01:00:01,090 --> 01:00:03,190 hasil selanjutnya akan menjadi. 1431 01:00:03,190 --> 01:00:04,910 Biarkan saya klik bendera hijau. 1432 01:00:04,910 --> 01:00:06,610 Tidak ada yang terjadi karena saya perlu melakukan apa? 1433 01:00:06,610 --> 01:00:07,310 HADIRIN: Space Bar. 1434 01:00:07,310 --> 01:00:08,630 DAVID Malan: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Boy mengatakan Marco, gadis kata Polo. 1436 01:00:11,990 --> 01:00:13,670 Tapi itu tidak sulit dikodekan per se. 1437 01:00:13,670 --> 01:00:16,740 Itu antar-komunikasi antara script, jadi sekarang kita 1438 01:00:16,740 --> 01:00:19,240 memiliki kemampuan untuk membuat program bahkan lebih kompleks di mana 1439 01:00:19,240 --> 01:00:22,830 kedua entah bagaimana antar-berkomunikasi. 1440 01:00:22,830 --> 01:00:25,260 >> Jadi dalam apa arah yang bisa kita ambil ini? 1441 01:00:25,260 --> 01:00:28,260 Nah, dalam sejumlah masalah 0, benar-benar, tujuannya adalah untuk 1442 01:00:28,260 --> 01:00:29,830 bersenang-senang dengan Scratch. 1443 01:00:29,830 --> 01:00:32,440 Untuk edisi hacker, Anda malah akan bersenang-senang dengan lebih 1444 01:00:32,440 --> 01:00:35,850 versi canggih dari Scratch disebut BYOB, Membangun 1445 01:00:35,850 --> 01:00:38,040 Anda Pemilik Blok, tetapi gagasan adalah sama. 1446 01:00:38,040 --> 01:00:38,780 Anda akan dapat - 1447 01:00:38,780 --> 01:00:39,710 Ya, itu memang disengaja. 1448 01:00:39,710 --> 01:00:42,450 Itu datang dari Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB adalah edisi hacker versi ini, namun kedua 1450 01:00:45,200 --> 01:00:48,180 demografi, edisi standar dan edisi hacker sama, yang 1451 01:00:48,180 --> 01:00:50,940 Tujuan di tangan untuk minggu yang akan datang adalah benar-benar hanya untuk menyelam di 1452 01:00:50,940 --> 01:00:53,050 mendalam, mendapatkan tangan Anda kotor dengan pemrograman, dan membuat 1453 01:00:53,050 --> 01:00:55,240 sesuatu yang menarik, membuat sesuatu yang interaktif, membuat 1454 01:00:55,240 --> 01:00:58,020 sesuatu yang artistik, membuat sesuatu yang menyenangkan untuk benar-benar 1455 01:00:58,020 --> 01:01:01,020 menunjukkan, sehingga pada akhir minggu, Anda akan memiliki sebuah proyek, 1456 01:01:01,020 --> 01:01:03,770 tidak hanya untuk pertama pset Anda CS50, tetapi Anda akan memiliki 1457 01:01:03,770 --> 01:01:05,620 sedikit sesuatu yang Anda dapat memamerkan di Annenberg untuk 1458 01:01:05,620 --> 01:01:08,830 teman-teman atau bahkan keluarga dengan meng-upload ke situs MIT. 1459 01:01:08,830 --> 01:01:11,760 Dan sebagainya seperti yang saya katakan pada hari Rabu, kami berharap 90% dari kelas, 1460 01:01:11,760 --> 01:01:13,970 secara umum, untuk melakukan edisi standar. 1461 01:01:13,970 --> 01:01:16,660 Sadarilah bahwa ada juga ini outlet untuk anda yang 1462 01:01:16,660 --> 01:01:18,990 dinyatakan mungkin menemukan diri Anda sedikit bosan dengan dasar-dasar 1463 01:01:18,990 --> 01:01:21,650 dan benar-benar ingin menyelam dalam dan menciptakan visi Anda sudah 1464 01:01:21,650 --> 01:01:25,380 miliki dengan latar belakang sebelumnya dalam hal ini lebih ramah 1465 01:01:25,380 --> 01:01:26,240 lingkungan. 1466 01:01:26,240 --> 01:01:29,030 >> Jadi biarkan aku menarik salah satu contoh lain bahwa salah satu mantan kami 1467 01:01:29,030 --> 01:01:33,830 siswa di sini dan memberitahu melakukan sedikit sesuatu melalui lagu. 1468 01:01:33,830 --> 01:01:37,430 Itu sama, karena hal ini memainkan, pikirkan bagaimana Anda pergi tentang 1469 01:01:37,430 --> 01:01:40,520 pelaksanaan program ini menggunakan persis sama ini 1470 01:01:40,520 --> 01:01:44,180 blok bangunan, sedikit keacakan semu, dan 1471 01:01:44,180 --> 01:01:46,010 bit lagu familiar. 1472 01:01:46,010 --> 01:01:47,910 Jika kita bisa meningkatkan volume hanya sedikit? 1473 01:01:47,910 --> 01:01:49,160 [MUSIC - "IT'S MEN HUJAN" THE GIRLS CUACA] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID Malan: Itu saja untuk CS50. 1475 01:03:03,930 --> 01:03:05,860 Kami akan melihat Anda pada hari Senin. 1476 01:03:05,860 --> 01:03:21,152 [Tepuk Tangan]