[KEBISINGAN LATAR BELAKANG] Apakah itu bekerja? PATRICK REBESCHINI: Kita bisa memulai. BAIK. Besar. Mari kita mulai. Jadi itu adalah kenikmatan terbesar saya untuk menyambut Anda semua di sini hari ini untuk kuliah pertama dari, baik, Pendahuluan Komputasi dan Pemrograman. Juga dikenal sebagai CS50 atau baik, CPSC 100, secara resmi di sini di Yale. Jadi kita tidak bisa lebih bersemangat untuk menyambut Anda semua di sini. Nama saya Patrick Rebeschini. Aku instruktur kepala untuk kelas. Saya di sini mewakili kelompok dari sekitar 60 anggota staf yang akan bekerja dengan Anda sepanjang semester. Jumlah ini hampir 60 dari kita. Namun sepanjang yang luar biasa tingkat komitmen yang kita masukkan ke dalam ini kelas, membuat CS50 kelas di Yale University yang menawarkan tingkat terbesar dukungan untuk Anda semua. Dan kita tidak bisa lebih bangga menawarkan kelas ini di sini lagi. Bahkan, karena Anda akan segera mengalami, CS50 jauh lebih dari sebuah kelas. Ini adalah komunitas. Dan Anda akan menjadi bagian Segera komunitas ini. Ini adalah tahun kedua yang Yale menawarkan kelas ini. Kami sedang membangun pada ekstrim keberhasilan tahun lalu, di mana untuk pertama kalinya, di sini di universitas ini, asisten pembelajaran sarjana diadopsi di dalam kelas. Semuanya dimulai dengan kelas ini tahun lalu. Jadi seperti yang Anda tahu, kelas diajarkan bersama-sama dengan Harvard University. Mengajar kursus ini kita relying-- kita bisa mengandalkan keahlian besar David Malan dan tim Harvard. Jadi David telah mengajar CS50 untuk baik, 10 tahun sekarang. Dan setiap tahun ia telah mendorong batas dan meningkatkan pengalaman kelas. Sekali lagi, kita tidak bisa lebih senang melanjutkan kerjasama ini dengan mereka. Bahkan, salah satu sebagian menarik, Saya akan mengatakan menjalankan kelas ini sekarang, baik di Harvard dan di sini di Yale, adalah benar-benar luar biasa fertilisasi silang ide, yang bertujuan untuk meningkatkan pengalaman untuk Anda semua belajar. Sehingga hasil dari luas ini kolaborasi antara dua universitas, CS50 bangga mengumumkan versi baru tahun ini dengan perubahan nyata. David semua akan memberitahu kita tentang mereka sekarang. Jadi please-- makhluk ini kata, silakan bergabung dengan saya dan selamat datang untuk memberikan tepuk tangan meriah untuk menyambut David dan Tim Harvard di sini di Yale. [TEPUK TANGAN] DAVID Malan: Terima kasih. Terima kasih. Ini adalah CS50, Harvard University dan pengenalan Yale University dengan intelektual perusahaan ilmu komputer dan seni pemrograman. Dan apa itu artinya bahwa kursus ini akhirnya, adalah tentang pemecahan masalah. Memang banyak dari Anda mungkin telah keluar dari sekolah tinggi atau telah menghabiskan beberapa tahun terakhir tanya apa beberapa teman lakukan tahun lalu atau di kelas-kelas lain. Namun, kenyataannya adalah, tidak peduli apa yang kita lakukan pada akhir hari di kelas ini, itu akan menjadi sekitar pemecahan masalah. Dan dengan demikian, mungkin mengambil beberapa kepastian sebenarnya bahwa 73% dari siswa yang mengambil kelas ini, baik di sini di Yale serta di Harvard, tidak pernah mengambil kelas CS sebelumnya. Jadi jika Anda duduk di sini di penonton hari ini bertanya-tanya mengapa Anda duduk di sini penonton hari ini, atau mungkin Anda hanya diikuti bersama dengan beberapa teman, atau mungkin Anda sudah menjadi sedikit penasaran seperti apa ilmu komputer dan pemrograman, menyadari bahwa sebagian besar teman sekelas Anda untuk kiri dan ke kanan Anda sangat banyak yang demografis yang sama. Dan memang, jika kita melihat statistik tahun lalu dalam tubuh mahasiswa CS50, baik di sini dan di Harvard, 58% dari siswa menggambarkan diri mereka sebagai kurang nyaman. 9% lebih nyaman. Dan kemudian 33% adalah suatu tempat di antara. Dan tidak ada definisi formal apa artinya ember ini. Anda semacam tahu kau kurang nyaman jika Anda. Anda merasa sedikit tidak nyaman dengan mungkin berada di kelas. Anda tidak cukup yakin apakah komputer kelas sains akhirnya untuk Anda, dan menyadari bahwa Anda di perusahaan yang sangat baik. Dan memang grading, dan penilaian, dan umpan balik, dan semua itu struktur dukungan di kelas akhirnya sangat individual. Lebih daripada kebanyakan kelas lainnya dengan desain. Dan memang, yang akhirnya hal di kelas ini tidak begitu banyak di mana Anda berakhir up relatif terhadap orang lain, tetapi di mana Anda, dalam seminggu 11 atau terakhir, dan relatif terhadap diri Anda di minggu 0 sini pertama kami. Jadi apa artinya? Nah, ini berarti mereka 73% dari mahasiswa tahun terakhir yang tidak pernah mengambil kelas CS sebelumnya, dengan mulai dari semester mereka yang berkecimpung dalam bahasa disebut Scratch, yang kita sendiri akan melihat di sini hari ini. Dan pada akhir semester yang telah mereka pergi melalui seluruh daftar ini tantangan. Dimulai dengan bahasa disebut c. Menerapkan, apa pada pandangan pertama, akan menjadi sedikit tantangan bagi beberapa, tapi cukup memuaskan setelah Anda mendapatkan Super Mario memantul atas dan ke bawah piramida diimplementasikan, meskipun, hanya dengan sesuatu yang disebut ASCII art. Menerapkan year-- lalu apa siswa tahun lalu maka tidak setelah yang menerapkan mereka sendiri cipher Caesar dan cipher vigenere. Jadi algoritma enkripsi dengan yang Anda bisa Informasi berebut dan kemudian menguraikan Informasi untuk mengirim pesan rahasia. Permainan 15. Jika Anda ingat dari masa kanak-kanak atau mendukung partai, bahwa permainan plastik kecil di mana Anda bergerak angka atas, bawah, kiri dan kanan mencoba untuk mendapatkan mereka dalam rangka, benar-benar menerapkan permainan yang dan memecahkan logika diperlukan di sana. Dan kemudian kita mencoba-coba forensik tahun lalu. Jadi pada pertengahan semester, siswa yang tidak pernah digunakan keyboard mereka untuk tujuan ini sebelumnya, yang menulis perangkat lunak untuk memulihkan, sehingga untuk berbicara, JPEG atau foto bahwa kita telah sengaja dihapus dari digital kartu memori dari kamera. Memulihkan pesan rahasia dari dalam gambar bitmap, dan jenis seperti lainnya grafis juga. Kami kemudian beralih ke memberikan seluruh kelas kamus. Hanya file teks yang sangat besar dengan 150.000 kata-kata bahasa Inggris. Dan semua orang ditantang entah bagaimana membaca, sehingga untuk berbicara, kata-kata ke dalam memori. Ke dalam memori komputer. Dan kemudian menjawab pertanyaan formulir, apakah ini sebuah kata? Apakah ini sebuah kata? Apakah ini sebuah kata? Benar-benar hanya menerapkan pemeriksa ejaan. Dan kemudian menantang setiap lainnya dengan board-- besar papan pemimpin untuk melihat siapa yang bisa menggunakan paling sedikit memori, dalam jumlah sedikit waktu untuk sebenarnya spell check dokumen besar. Kami beralih dari kemudian ke mengimplementasikan web server yang sendiri. Jadi tidak membuat halaman web dalam bahasa seperti HTML dan CSS, jika Anda terbiasa. Tapi benar-benar menerapkan server yang mendengarkan di internet untuk permintaan dari browser dan kemudian menanggapi permintaan tersebut. Kemudian menerapkan kita sendiri e-trade seperti website, di mana siswa bisa membeli dan menjual saham. Menggambar di hampir real time harga saham dari Yahoo Finance. Dan memungkinkan siswa untuk melihat bagaimana portofolio mereka berkembang. Dan akhirnya mash up dari Google News dan Google Peta dimana siswa dengan istilah dengan istilah akhir memiliki kemampuan untuk klik, dan bulat, dan pencarian pada peta Google. Dan kemudian melihat semua artikel berita yang proksimal ke daerah-daerah tertentu. Jadi benar-benar pergi dari nol sampai 60. Dan sepanjang jalan memiliki apa yang kita miliki tahun lalu disebut, penambahan hacker. Itu meningkatkan bar lanjut bagi anda yang mungkin sangat baik memiliki baik jumlah pengalaman berada di bahwa 9% lebih nyaman. Jadi menyadari bahwa ada langit-langit yang sangat tinggi bahkan dalam mereka tantangan bagi siswa datang dari latar belakang yang berbeda. Karena pada akhir hari, kami akhirnya difokuskan cukup sederhana ini. Tapi apa ini Maksudku, pemecahan masalah? Jadi mari kita mengusulkan bahwa kami menyaring seperti ini. Jadi pemecahan masalah adalah benar-benar hanya jenis ini gambar. Jadi Anda punya masukan untuk beberapa masalah, sesuatu yang Anda benar-benar ingin memecahkan. Tujuannya adalah untuk mendapatkan output, solusi untuk masalah tersebut. Dan kemudian di tengah adalah apa yang akan kita sebut kotak hitam. Anda tidak perlu tahu atau bahkan peduli apa yang di dalam kotak hitam. Semua yang Anda tahu adalah bahwa ketika Anda makan masukan ke dalamnya, mudah-mudahan Anda mendapatkan output atau solusi dari itu. Dan sementara hari ini kita akan melihat baik di input dan output, kami akan jangka panjang, dan selama Tentu saja dari seluruh semester, fokus pada apa yang ada di dalam kotak itu. Dan di dalamnya akan berbohong sesuatu yang disebut algoritma. Petunjuk langkah demi langkah untuk benar-benar memecahkan beberapa masalah. Tapi apa contoh beberapa masukan? Jadi mungkin hal yang sederhana di mulai dari setiap tahun sekolah, seseorang mungkin ingin mengambil hadir. Jadi kita bisa melakukan satu, dua, tiga, empat, lima, enam, dan bagaimana saya akan terus melacak informasi tersebut. Aku mungkin hanya pergi satu, dua, tiga, empat, lima, enam. Dan hanya menggunakan semacam satu digit. Atau aku benar-benar bisa merekam ini istilah sedikit lebih lama. Dan bagaimana saya mewakili semua manusia di ruangan ini? Yah, aku mungkin melakukan sesuatu seperti, OK. Aku melihat satu orang. Baiklah. Saya melihat orang lain, orang ketiga, dan sebagainya. Tapi tidak ada yang penting orang-orang seperti ini. Jadi secara harfiah, kebanyakan dari kita jika kita bahkan akan menggambar apa-apa, mungkin akan pergi satu dua tiga empat, mungkin mendapatkan sedikit mewah, lima, enam, tujuh, delapan, sembilan, sepuluh dan sebagainya. Dan itu benar-benar sistem yang disebut unary. Uno, seperti uno menyiratkan satu, di mana Anda hanya memiliki satu huruf dari alfabet. Anda baru saja tanda pagar ini. Dan saya, untuk efisiensi, hanya menggambar tanda hash ini, akhirnya garis lurus. Tapi aku bisa menarik mereka sebagai tokoh tongkat kecil. Dimana untuk mewakili satu orang, satu input, Saya hanya menggambar tongkat Angka atau tanda pagar. Tapi ini tidak semua yang ekspresif. Jika semua yang saya miliki adalah hash ini tanda, biarkan angka tongkat saja, bagaimana mungkin saya mewakili sesuatu seperti jumlah 15? Atau 15 orang di dalam ruangan? Aku mungkin harus melakukan sesuatu seperti 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Hanya saja tidak skala yang sangat baik. Sebagai masukan dapatkan besar, kami membutuhkan sistem yang lebih baik dari ini. Dan ternyata bahwa Sistem yang menggunakan komputer tidak semua yang berbeda dari apa yang Anda dan saya tahu. Bahkan, kebanyakan orang di ruangan ini, bahkan jika Anda termasuk orang yang kurang nyaman, tidak perlu tahu bagaimana Mac atau PC benar-benar bekerja, Anda mungkin pernah mendengar setidaknya, bahwa di bawah tenda adalah 0 dan 1. disebut sistem biner. Jadi memang, komputer memiliki lebih dari hanya tanda hash dalam kosa kata mereka, tapi tidak sebanyak dari kosakata seperti kita manusia. Memang, kita manusia tidak menggunakan biner. Bi berarti 2, 0 dan 1. Tapi desimal, deca berarti 10, 0 sampai 9. Jadi kita memiliki lebih banyak ekspresif kemampuan di dunia manusia normal kita. Tapi aku berpendapat bahwa sistem ini, biner, dan desimal, dan segala sesuatu di antara dan di luar, yang sebenarnya semua cukup akrab. Misalnya, pertimbangkan contoh ini di sini, 123. Jadi ini benar-benar, tentu saja, nomor yang kita kenal sebagai 123. Tapi semua saya hanya menggambar hanya ini pola simbol, mesin terbang sehingga untuk berbicara. Semacam bentuk di papan kapur. Tapi mengapa kita segera dan intuitif memahami ini sebagai 123? Nah, jika Anda seperti saya di sekolah dasar, Anda mungkin tahu bahwa ini adalah kolom 1s, ini adalah kolom 10s, ini adalah kolom 100s. Dan kenapa begitu berguna? Nah, itu aritmatika sederhana Anda sekarang lakukan untuk mendapatkan dari pola simbol untuk nomor kita memahami secara intuitif. Adalah apa, 100 kali 1, dan kemudian 10 kali 2, dan 1 kali 3, yang tentu saja hanya 100, dan ini adalah 20, dan ini adalah tiga. Dan jika kita menambahkan mereka together-- ah. Jadi di situlah letak semacam penalaran balik mengapa set simbol berarti sesuatu yang nyata dan numerik. Nah, komputer melakukan hal yang sama persis, tapi mereka hanya bisa menghitung setinggi satu. Sedangkan saya bisa menghitung setinggi tiga. Dan pada kenyataannya, jika saya terus saya bisa pergi setinggi sembilan dalam sistem ini. Komputer hanya memiliki angka nol dan orang-orang dalam alfabet mereka. Jadi apa artinya? Yah, itu hanya berarti bahwa jika komputer ingin mewakili, mengatakan angka 0, mungkin menggunakan tiga characters-- tiga huruf abjad sehingga untuk berbicara, itulah bagaimana komputer mewakili 0. Jadi tidak semua yang menakutkan sejauh ini. Ini persis apa yang kita manusia lakukan. Dan pada kenyataannya, kebanyakan dari kita hanya akan mengabaikan nol terkemuka pula. Sebuah komputer, jika ingin untuk menyimpan nomor 1, ternyata akan melakukan hal ini. Dan komputer untuk menyimpan nomor 2 tidak akan melakukan sistem unary, yang saya singgung sebelumnya. Ini benar-benar akan melakukan hal ini. Dan ini mungkin di mana pola dimulai menjadi kurang jelas bagi kebanyakan orang. Itu 2, ini adalah 3. Anehnya, ini sekarang 4. Dan sekarang itu benar-benar tampaknya mungkin samar, tapi tidak jika kita mempertimbangkan apa biner benar-benar berarti. Ini berarti Anda memiliki dua huruf abjad Anda. Jadi dua karakter yang mungkin untuk setiap placeholder. Jadi yang benar-benar berarti kita akan membutuhkan tempat 1s, atau tempat 2s, tempat 4s dan kemudian 8, dan 16, 32, dan 64. Dan apa bedanya di sana? Seperti ini 1, 2, 4, 8, 16, 32, 64. Dan sebelum kami memiliki 110, 100.000, 10.000. Apa kesamaan di sana? Dan apa pola? Ya. SISWA: Powers of 2 bukannya kekuatan 10. DAVID Malan: Ya. Kekuatan dari 2 bukannya kekuatan 10. Dan jadi jika saya ingin tetap akan, 8, 16 dan begitu forth-- tetapi jika Anda memiliki semacam ini dari petunjuk, sekarang sistem biner sebenarnya cukup sederhana. Mengapa pola ini 0 ini di dunia komputer 0? Nah karena itu 4 kali 0, 2 kali 0, 1 kali 0 dan Anda mendapatkan 0. Mengapa ini nomor 1? alasan yang sama, tetapi sekarang kita memiliki 1 dalam 1 kolom. Mengapa ini 2? Kami memiliki 1 di kolom 2s. Dan bagaimana kemudian melakukan saya mewakili mengatakan, angka 7 dalam biner? Mengatakan lebih keras. SISWA: Tiga 1s. DAVID Malan: Tiga 1s. Jadi 1, 1, 1 karena kita hanya perlu 4 ditambah 2 ditambah 1 memberi saya 7. Baiklah. Jadi dari sana bagaimana kita mewakili 8 dengan 3 placeholder? Ya. SISWA: 1, 0, 0, 0. DAVID Malan: Ya 1, 0, 0, 0. Namun mungkin, aku agak dari teknis perlu untuk menambahkan placeholder lain untuk papan. Jika saya ingin cocok dengan saya memang perlu melakukan sesuatu seperti ini. Jadi saya benar-benar perlu menggunakan sekarang kolom 8s, dan itu baik-baik saja. Tetapi hal yang aneh dalam komputasi adalah bahwa itu akan biaya kita sesuatu. Anda membutuhkan lebih banyak RAM di komputer Anda sekarang. Anda membutuhkan lebih banyak memori karena Anda perlu sesuatu fisik untuk menyimpan bahwa bit tambahan, sehingga untuk berbicara. Digit biner. Dan memang semua yang terjadi di sini, seperti sistem desimal, jika kita terus menambahkan nomor naik dan naik dan atas, kita pergi ke 5 sampai 6 untuk 7 sampai 8 itu seperti membawa 1, secara harfiah. Dan kemudian segala sesuatu yang lain kembali ke nol. Tapi bagaimana kita benar-benar mewakili hal-hal ini secara fisik di komputer? Nah, di akhir hari, satu-satunya masukan fisik pergi ke komputer saya di sini adalah kabel listrik ini, sehingga listrik atau elektron dari dinding. Dan bagaimana saya dapatkan dari sesuatu fisik seperti itu untuk benar-benar mewakili ide seperti ini sebagai gantinya. Nah, apa yang bisa kita lakukan? Kita bisa menganggap bahwa, oke, mungkin jika mengalir listrik Aku bisa menyimpannya dan berpegang pada itu. Dan jika saya memegang beberapa listrik, yang hanya akan sewenang-wenang mewakili 1. Dan jika saya tarik steker dan tidak ada di sana, Anda tahu bahwa hanya akan untuk sewenang-wenang mewakili 0. Jadi, jika ada sesuatu yang ada, 1. Jika tidak ada di sana, 0. Atau Anda bisa membuat ini sedikit lebih visual. Berikut adalah 0. Tidak ada yang berlangsung menarik di sekitar bagian belakang ponsel saya. Tapi jika saya membiarkan sedikit bit listrik mengalir, meskipun itu agak cerah di sini, senter saya melanjutkan. Jadi aku menyimpan muatan dan ergo, ponsel ini sekarang merupakan 1. Jadi 0 1. Jadi dengan 1 iPhone seberapa tinggi saya bisa menghitung menggunakan pendekatan semacam ini? Saya bermaksud 1. Ini tidak semua yang menarik. Jadi apa lagi yang bisa kita lakukan? Nah mari kita lihat, adalah siapa pun di mereka telepon sekarang bahwa saya bisa meminjam? Siapapun yang memiliki telepon dengan senter built in? Bolehkah saya pinjam? Aku tidak membutuhkannya dibuka. Baiklah. Terima kasih. Biarkan aku meminjam ini. Baiklah. Jadi jika saya sekarang gulir ke atas dan di sini, apa yang saya mewakili sekarang? Ya. Jadi itu adalah tiga karena ini adalah di kolom 1s, ini adalah di kolom 2s. Jadi 1 ditambah 2 adalah 3. Dan kemudian jika kita mencoba untuk mendapatkan benar-benar creative-- oh, terima kasih. Sangat preemptive. Baiklah. Saya sekarang memiliki tiga iPhone. Baiklah. Dan sekarang ini-- aku tidak akan melakukan lebih jauh dari ini. Apa yang saya mewakili sekarang? Hanya tujuh. Tapi aku butuh fisik lebih banyak memori dalam kasus ini. Tapi itu semua itu. Anda bisa memikirkan apa yang terjadi on-- terima you-- dalam ponsel Anda sebagai hanya menjadi sebuah saklar yang yang diaktifkan dan dinonaktifkan. Dan jika Anda pernah mendengar kata transistor. Atau jika Anda pernah mendengar pemasaran berbicara Intel dalam, yang berbicara dengan jenis hardware yang ada di dalam komputer Anda. Intel membuat CPU, central processing unit, yang seperti otak dalam komputer Anda. Dan CPU ini dan hal yang mereka terhubung memiliki banyak dan banyak switch kecil. Jutaan, milyaran switch yang dapat menjadi on atau off. Jadi komputer, untungnya, seperti Mac dan PC kita, dapat mengandalkan cara lebih tinggi dari 7 atau 8 karena mereka memiliki cara yang lebih dari tiga atau empat bit. Cara yang lebih dari setara dengan tiga senter yang kami baru saja. Tapi sekarang ini mulai mendapatkan cukup menarik cepat. Jika saya sekarang ingin benar-benar dapat untuk melakukan sesuatu yang lebih menarik, Saya ingin bisa melompat untuk sesuatu seperti ini. Jadi ASCII, itu tidak benar-benar berguna akronim, tetapi American Standard Kode Informasi Interchange. Ini hanya berarti, beberapa tahun lalu kita manusia memutuskan, Anda tahu apa yang kita ingin dapat melakukan lebih dengan komputer dari sekedar angka. Kami tidak ingin mereka hanya menjadi kalkulator mahal, kami ingin dapat melakukan hal-hal seperti pengolah kata, meskipun sangat sederhana. Kemudian kami memiliki email dan media lain seperti itu. Dan dunia memutuskan beberapa tahun lalu menurut sistem ASCII ini, kamu tahu apa? Dalam jenis tertentu program setiap kali Anda lihat setara dengan nomor 65, seperti pola bit. Dan kita bisa melakukan matematika di sini di papan. Pola bit yang mewakili 65. Jangan menganggapnya sebagai 65 dalam desimal. Anggap saja sebagai sewenang-wenang, tapi global, secara konsisten sebagai ibukota SEBUAH. Dan kemudian dunia memutuskan, Anda tahu apa? Mari kita pola lain bit. Dan jika kita pernah melihat nomor 66, mari kita berasumsi bahwa itu adalah modal B. Fast forward ke H dan saya, jika Anda melihat 72 atau 73, yang harus menjadi H dan I, masing-masing. Dan jadi selama seluruh dunia setuju atas ini. Sehingga ketika Anda menerima email, atau Anda akan mendapatkan file pada USB stick, atau sesuatu seperti itu-- saat Anda melihat bahwa pola bit, Anda tahu bahwa itu harus ini surat atau surat lainnya. Tapi itu konteks tertentu, benar. Program email mungkin menafsirkan hal ini sebagai karakter, tapi kalkulator grafik atau kalkulator mungkin mewakili atau menafsirkan hal-hal ini, tentu saja, seperti surat-surat. Jadi dengan mengatakan bahwa, sedikit ulasan cepat. Ini mungkin tiga karakter e-mail yang telah dikirim kepada saya. Di bawah tenda itu semua di 0 dan 1, Tapi kami tidak peduli. Kita akan mulai abstrak di atas 0 dan 1 untuk huruf. Dan jika saya melihat pola 0s dan 1s yang benar-benar mewakili 72, hint, hint, 73, dan kemudian 33, apa pesannya? SISWA: [tidak terdengar] DAVID Malan: Jadi jika Anda berpikir kembali beberapa saat yang lalu, HI adalah pesan saya mencoba untuk berkomunikasi di sini karena H adalah 72, Aku adalah 73, dan sekarang 33-- Anda tidak akan tentu tahu ini sebelumnya, tapi ternyata jika Anda benar-benar melihat lebih banyak dari grafik dan sistem bahwa manusia disepakati tahun lalu, itu hanya tanda seru. Dan memang, ada pola simbol dan angka untuk setiap karakter bahwa Anda mungkin memiliki pada keyboard Anda. Baiklah. Mari abstrak lanjut. Jika kita tidak ingin hanya memiliki hal-hal seperti angka dan huruf, kita benar-benar ingin menerapkan grafis. Nah, jika Anda sudah pernah mendengar akronim RGB. Ini jenis tanggal sekarang, tapi itu masih jenis ada. RGB adalah merah, hijau, biru. Dan itu hanya sebuah sistem mengatakan, Anda tahu apa, mari kita gunakan tiga set bit. Satu set 8 bit, satu set dari 8 bit, dan set 8 bit. Dan mari kita gunakan mereka bit untuk menyimpan berapa banyak kita merah inginkan pada layar kami, berapa banyak hijau kita inginkan pada layar kami, dan berapa banyak biru yang kita inginkan di layar kami. Dan ini hanya berarti bahwa jika Anda memiliki lot-- sejumlah besar untuk merah, itu berarti memberi saya banyak merah. Jika Anda memiliki jumlah yang besar untuk hijau, memberi saya banyak hijau. Dan jika Anda memiliki hanya sedikit biru atau sejumlah kecil seperti 33, memberi saya sedikit biru. Dan jika Anda kebetulan untuk menggabungkan tiga besaran, sehingga untuk berbicara, Anda mendapatkan ini-- Anda hampir tidak dapat melihat pada proyektor di sini, tapi ini keruh warna kuning atau coklat. Tapi ini mengatakan, menggunakan bahwa Pola 8 ditambah 8 plus plus 8-- bahwa pola 24 bit adalah bagaimana komputer akan toko yang warna kuning dalam satu kecil dot pixel pada layar. Jadi kita telah pergi dari 0s dan 1s ke desimal angka untuk huruf abjad. Atau lebih menarik, titik-titik berwarna. Nah, apa yang tentu saja kemudian datang berikutnya? Nah, apa gambar yang Anda lihat di Facebook atau mendapatkan dalam email? Atau sejenisnya? Apa definisi teknis dari suatu gambar? Ya. Apa adalah gambar yang terdiri dari jika Anda terlihat benar-benar dekat di layar Anda? Ya. Ini hanya sekelompok seluruh piksel. Bahkan, jika Anda mengambil Anda laptop mungkin nanti, dan terlihat benar-benar erat di itu-- tergantung bagaimana mahal laptop tersebut dan seberapa tinggi kualitas layar, Anda mungkin sangat baik melihat semua titik-titik kecil di layar. Dan titik-titik atau piksel, yang berarti ada 24 bit mewakili setiap pixel dalam foto yang Anda lihat di Facebook, atau bahwa Anda hanya mengambil pada iPhone Anda baru-baru ini. Dan itulah bagaimana kita mendapatkan untuk hal-hal seperti grafis. Nah, apa video? Sebuah video hanya satu set grafis terbang oleh layar lagi dan lagi dan lagi. Dan video benar-benar, hanya pola bit yang mewakili grid, baris dan kolom titik, terbang dengan gambar layar, setelah gambar, setelah gambar, alias Film. Jadi itu saja untuk input dan output. Semua yang kita miliki sekarang adalah asumsi bahwa, Anda tahu apa, jika kita ingin komputer untuk mewakili informasi, kami memiliki sistem untuk melakukannya. Kita bisa melakukannya dengan 0s dan 1s pada akhir hari. Tapi kita bisa abstrak, sehingga untuk berbicara, di atas itu sehingga untuk mewakili lebih hal yang menarik. Dan di sini di dalam CS50, dan di ilmu komputer lebih umum, kita sekarang berdiri di atas bahu dari semua orang yang datang sebelum kita yang mengetahuinya. Dan sekarang hanya berasumsi bahwa komputer dapat mewakili input dan output. Tapi sekarang mari kita benar-benar melakukan sesuatu dengan mereka. Jadi algoritma hanya satu set instruksi, langkah demi langkah, untuk memecahkan beberapa masalah. Dan apa yang mungkin salah satu masalah tersebut menjadi. Jadi ini adalah sekolah tua teknologi, buku telepon. Dan dalam buku telepon adalah sejumlah nama dan nomor. Dan nama-nama umumnya diurutkan berdasarkan abjad. Jadi jika saya ingin menemukan seseorang di buku telepon ini seperti Mike Smith, apa manusia biasa akan lakukan? Nah, Anda hanya bisa membuka itu, melihat halaman pertama. Saya tidak melihat Mike Smith. Beralih ke halaman kedua, Saya tidak melihat Mike Smith. Dan hanya terus dan pergi. Apakah langkah ini demi langkah pendekatan yang benar? Ya. Ini semacam bodoh, benar. Ini tidak efisien, tepat. Karena itu akan mengambil selamanya untuk sampai ke Mike, tapi itu benar. Karena jika Mike di sini Aku memang akan menemukannya. Jadi apa yang sedikit lebih orang yang wajar lakukan? Mereka mungkin masih membuka ke depan, dan mungkin terbang melalui buku telepon dua halaman pada satu waktu. Dua, empat, enam, delapan. Aku tidak bisa benar-benar secara fisik melakukannya dengan sangat baik. Tapi dalam teori, ini harus dua kali lebih cepat, dua halaman sekaligus. Apakah algoritma ini benar? SISWA: [tidak terdengar] DAVID Malan: Belum tentu. Baik. Mengapa peringatan itu? SISWA: Karena dia bisa berada di satu dari halaman yang Anda melompat-lompat. DAVID Malan: Ya. Jadi bahkan jika saya lebih dekat dan lebih dekat. Bagaimana jika dia hanya sengaja, oleh bad keberuntungan, terjepit di antara dua halaman bahwa aku terbang di atas? Jadi kita perlu untuk memperbaiki ini. Kami benar-benar harus kemudian berkata, tunggu sebentar, mungkin jika kita pergi terlalu jauh, mungkin jika kita memukul bagian T, untuk T datang setelah Smith, maka kita harus setidaknya dua kali lipat kembali setidaknya satu halaman. Jadi diperbaiki, tetapi ada masalah bersyarat sana. Jadi itu dua kali lebih cepat, tetapi Anda mungkin harus ganda kembali hanya sedikit. Tapi tidak ada di kamarnya, bahkan jika Anda tidak benar-benar menggunakan buku telepon lagi, akan mulai dari awal. Apa yang akan kamu lakukan mencari Mike Smith? Anda akan pergi kira-kira ke S. Atau jika Anda tidak benar-benar memiliki lembar contekan di atas kertas, Anda akan pergi setidaknya kira-kira ke tengah. Dan tentunya tidak untuk bagian depan buku. Anda akan melihat ke bawah. Dan matematis Anda mungkin akan melihat bagian M, yang kira-kira di tengah. Dan kemudian Anda akan menyadari, apa yang benar? Dimana Mike? SISWA: [tidak terdengar] DAVID Malan: Ya. Jadi dia lebih di sisi ini. Dan apa yang dapat Anda lakukan? Nah, baik secara kiasan dan harfiah Anda dapat merobek masalah dalam setengah sekali? Dan kemudian tahu bahwa Anda dapat membuang ini setengah dari masalah pergi. Dan sekarang kami pergi dengan fundamental masalah yang sama, tapi itu setengah besar. Dan jadi sekarang apa set instruksi? Apa algoritma untuk menemukan Mike Smith? Ini hal yang sama persis. Sekarang ini terjadi menjadi M bagian dan ini adalah bagian Z, tapi fundamental Rumus masih sama. Pergi kira-kira ke tengah, melihat ke bawah, oh, darn it. Sekarang aku di bagian T, Saya sudah terlalu jauh. Tapi di sini juga bisa Anda menerapkan logika yang sama. Lemparan setengah dari masalah pergi dan sekarang kami kiri dengan masalah yang seperempat dari ukuran. Dan kita bisa mengulang, dan kita bisa mengulang, dan kita bisa mengulang sampai teoritis hanya ada satu halaman yang tersisa di yang Mike baik atau tidak. Jadi apa yang begitu kuat tentang ide ini? Maksudku setelah semua, itu cukup intuitif. Tidak ada yang akan mulai di mulai dari buku telepon dan flip 1.000 halaman untuk menemukan Mike Smith. Kebanyakan orang di ruangan ini akan untuk melakukan kira-kira seperti itu algoritma menyimpan untuk merobek tersebut. Dan jadi mengapa kita melakukan itu? Nah, pertimbangkan efisiensi. Simak saja berapa banyak lebih baik ini algoritma adalah dengan memecahnya menjadi beberapa bagian. Jadi apa yang saya pertama kali lakukan? Aku mengambil buku telepon. Dan seorang ilmuwan komputer, dan programmer, lebih umum ternyata, akan mulai menghitung segala sesuatu di 0. Mengapa? Nah, itu sedikit aneh bahwa kita manusia menghitung, umumnya, mulai dari satu. Karena apa jumlah terkecil kita dapat dengan jelas mewakili berdasarkan bahkan pada matematika sekolah dasar lama kita? Nah, itu 0, apakah itu dalam desimal atau biner. Dan Anda akan melihat di dunia komputasi dan pemrograman, khusus, kita mulai menghitung segala sesuatu dari 0. Jadi saya mengangkat telepon buku langkah 0. Aku akan membuka ke tengah buku telepon. Dan itu memang ekspresi apa yang saya lakukan. Dan kemudian langkah kedua adalah melihat nama-nama. Langkah ketiga adalah sedikit berbeda secara konseptual. Saya bertanya pada diri sendiri pertanyaan. Jika Smith adalah salah satu nama, Aku akan membuat keputusan. Jika dia antara nama-nama, maka aku akan menelepon Mike. Dan aku akan membuat keputusan berdasarkan informasi itu. Namun, jika tidak, jika Smith adalah sebelumnya dalam buku ke kiri, Aku akan membuka ke tengah dari kiri setengah dari buku. Dan kemudian inilah kepandaian itu, Aku akan kembali ke langkah dua. Aku akan mengurutkan dari berdiri di atas bahu saya sendiri dan hanya mengulang pekerjaan terakhir saya lakukan. Tapi pekerjaan yang tersisa adalah kurang, dan kurang, dan kurang. Tapi masih akan bekerja. Tetapi jika Mike, sebaliknya, adalah kemudian dalam buku ke kanan, Aku akan membuka ke tengah dari kanan setengah dari buku, kemudian kembali ke langkah dua. Tapi sebenarnya ada skenario keempat. Mike baik di sini, atau di sini, atau di sini, or-- SISWA: Tidak ada. DAVID Malan: Tidak ada. Dan memang, jika kita tidak mengantisipasi Skenario keempat dan terakhir ini program kami mungkin kereta atau cacat dalam beberapa cara. Lain, berhenti dalam kasus yang kami belum menemukan Mike sama sekali. Dan memang, jika Anda pernah melihat gantung komputer Anda, atau semua dari sebuah kata tiba-tiba atau beberapa lainnya Program hanya berhenti tiba-tiba, dan kadang-kadang error engkau Pesan secara harfiah itu. Program ini berhenti tiba-tiba. Hal ini dapat untuk sejumlah alasan. Tapi kadang-kadang sesuatu yang sederhana seperti ini. Programmer manusia yang menulis perangkat lunak yang tidak menyadari bahwa, oh, ada sebagainya hal yang benar-benar bisa terjadi. Dan jika Anda tidak menulis kode untuk menangkap bahwa skenario keempat, memang tak terduga kadang-kadang apa komputer mungkin benar-benar dilakukan. Sekarang mari kita sebut sebuah Beberapa hal-hal ini. Jadi dalam kuning sini, saya memiliki istilah disorot yang selanjutnya kita hanya akan memanggil fungsi. Fungsi di dunia pemrograman seperti tindakan, laporan tindakan. Jadi mengambil, terbuka untuk, terlihat di, panggilan, terbuka, terbuka, berhenti. Itu fungsi, prosedur, tindakan, sejumlah sinonim akan bekerja dengan baik. Sekarang apa hal-hal ini sekarang warna kuning? Jika yang lain, jika lain, jika lain, ini adalah apa kita akan memanggil kondisi dalam pemrograman, atau cabang, keputusan poin, jika Anda mau. Tapi bagaimana Anda tahu mana garpu di jalan untuk mengambil, sehingga untuk berbicara? Kita perlu menyoroti istilah ke kanan ada, yang ini ya, tidak ada pertanyaan. Pertanyaan-pertanyaan benar salah. Smith antara nama-nama? Smith di awal buku? Smith kemudian dalam buku? Ini adalah pertanyaan untuk yang ada ya, atau tidak, atau ekuivalen benar, atau salah, atau ekuivalen, satu atau nol jawaban. Dan sementara ada hanya satu potongan terakhir. Ini di sini memiliki apa efek? Apakah atau tidak Anda program sebelumnya, bagaimana akan Anda menjelaskan apa langkah tujuh dan 10 lakukan? Apa katamu? SISWA: Sebuah langkah rekursif. DAVID Malan: Sebuah langkah rekursif. Ya, pada dasarnya. Secara teknis berulang di sini jika Anda terbiasa. Tapi kita akan kembali ke itu. Tapi itu melakukan sesuatu yang jelas. Sekali lagi, itu menginduksi siklus, lingkaran, kanan. Anda benar-benar akan kembali ke beberapa langkah sebelumnya. Dan memang, ini akan mengimplementasikan beberapa jenis siklus. Tapi Anda tidak akan mendapatkan terjebak dalam ini tanpa henti, benar. Karena jika Anda terus-menerus memeriksa adalah Mike di sini, atau ke kiri, atau tidak di sini, akhirnya dia tidak akan berada di sana. Dan Anda hanya bisa berhenti sama sekali sesuai yang baris terakhir. Jadi itu untuk kosa kata. Dan ini adalah apa yang kita akan umumnya memanggil kode pseudo. Ini bukan bahasa yang sebenarnya. Ini hanya sangat singkat bahasa Inggris, tetapi berkomunikasi titik. Tidak ada struktur formal sini. Anda hanya menggunakan itu beberapa kata-kata, tetapi kata-kata yang jelas yang Anda bisa untuk berkomunikasi ide Anda. Sekarang bagaimana yang baik adalah algoritma yang dan berapa banyak lebih baik itu? Yah, kita tidak perlu masuk ke dalam spesifik dari nomor atau apa pun seperti itu. Tapi kita bisa melihat bentuk dari solusi ini. Jadi jika kita hanya menarik beberapa petak xy di sini pada sumbu horisontal di sini. Mari kita sebut ukuran masalah. Dan seorang ilmuwan komputer akan biasanya menggunakan n sebagai variabel sini. Jadi n halaman, atau n orang di dalam ruangan, atau apa pun yang Anda mencoba untuk menghitung. Dan kemudian pada sumbu vertikal pada kiri, itu akan menjadi waktu untuk menyelesaikan. Jadi berapa banyak detik melakukannya membawa saya untuk menemukan Mike Smith? Atau berapa banyak langkah yang dibutuhkan? Berapa banyak berubah halaman yang dibutuhkan? Jadi itulah berapa biaya saya dalam waktu untuk memecahkan masalah. Dan kami mungkin menarik pertama algoritma kemiringan, jika Anda mau, hanya sebagai garis lurus ini dalam warna merah. Dan saya akan menyebutnya n. Mengapa n? Mengapa hanya satu ini untuk satu hubungan? Nah, jika Verizon atau apapun perusahaan telepon menambahkan satu halaman lagi untuk buku telepon tahun depan, yang mungkin mendorong Mike satu Langkah lebih dekat ke akhir, tergantung di mana halaman itu. Dan efeknya mungkin hanya dengan menambahkan satu detik lebih. Atau satu halaman gilirannya. Satu untuk satu rasio. Sebaliknya, algoritma kedua. Berapa cepat adalah bahwa secara intuitif? Di mana aku pergi dua halaman pada satu waktu? Ya. SISWA: [tidak terdengar] DAVID Malan: Ya. Jadi itu akan menjadi dua kali lebih cepat. Dan kami akan menarik bahwa di sini tergantung pada skala. Ini masih merupakan garis lurus, tetapi lebih rendah dari garis merah. Karena untuk beberapa nomor halaman, jika dibutuhkan Anda ini banyak langkah dengan algoritma pertama, itu akan membawa Anda setengah karena banyak langkah dengan kedua. Dan garis kuning menggambarkan algoritma kedua hanya akan berada di bawah itu. Tapi apa benar-benar kuat adalah untuk berpikir tentang ketiga dan terakhir, dan luar biasa paling intuitif algoritma, yang memiliki bentuk ini. Secara teknis kita sebut ini kurva logaritmik. Log basis 2 dari n dalam kasus ini. Tapi itu tidak terlalu penting. Yang penting benar-benar adalah fundamental bentuk yang berbeda yang telah. Dan Anda dapat mempertimbangkan betapa jauh lebih pendek baris ini benar-benar adalah dalam jangka panjang. Itu terus meningkat. Itu tidak merata dengan sempurna. Tapi itu tumbuh pernah jadi jauh lebih lambat sebagai masalah akan lebih besar dan lebih besar. Dan Anda bisa memikirkan itu ini way-- jika Verizon tidak hanya menambahkan satu halaman tahun depan, tetapi ganda jumlah halaman dalam buku telepon, algoritma pertama mungkin mengambil dua kali lebih banyak langkah. Jika itu 1.000 halaman ini tahun, 2.000 halaman tahun depan, Mike mungkin bahwa jauh lebih jauh. Jadi 1.000 langkah tambahan untuk menemukannya. Algoritma kedua mungkin hanya 500 lebih langkah-langkah untuk menemukan dia karena sekali lagi, Aku terbang melalui itu dua sekaligus. Tapi bagaimana algoritma ketiga? Jika Verizon menggandakan ukuran buku telepon tahun depan dari 1.000 ke 2.000 halaman, berapa banyak langkah lebih adalah algoritma ketiga saya akan mengambil? Ya, itu hanya satu. Dan itu ide yang kuat. Anda dapat mengambil 1.000 halaman gigitan keluar dari masalah yang sekaligus. Dan jika Anda mempertimbangkan skenario konyol, tapi itu semacam berbicara kepada kekuatan semacam ini intuition-- jika buku telepon memiliki, seperti, empat miliar halaman, terasa seperti masalah yang sangat besar. Dan memang, itu mungkin membawa saya empat miliar halaman ternyata untuk menemukan Mike Smith dalam kasus dengan algoritma pertama. Tapi berapa banyak langkah kan mengambil dalam algoritma ketiga untuk menemukan Mike antara empat miliar lembar kertas? Jadi empat miliar merobek setengah. Anda mendapatkan dua miliar. Kemudian satu miliar, maka 500 juta, 250 juta, 125 million-- tetapi terasa seperti ini akan memakan waktu cukup lama. Saya mungkin perlu 32 jari untuk menghitung tinggi itu. Tapi itu memang sebagai sedikitnya 32 air mata halaman. Anda dapat pergi dari empat miliar untuk satu halaman pemisah jumlah asli halaman dalam setengah 32 kali sampai kau pergi dengan Hanya saja halaman. Sekarang, tentu saja, aku curang di sini. Ini bukan berarti bahwa kita hanya menjadi semacam bodoh sekali dengan dua yang pertama algoritma. Saya kecurangan dalam arti, atau benar-benar aku memanfaatkan asumsi. Apa yang benar tentang buku telepon dalam bentuk aslinya yang memungkinkan saya bahkan menggunakan algoritma ketiga? Ya? AUDIENCE: Itu menurut abjad. DAVID Malan: Itu abjad, bukan? Kalau hanya di acak order, ini adalah pemborosan waktu, seluruh percakapan ini. Saya harus melihat setiap Halaman jika itu secara acak untuk menemukan Mike Smith sebelum saya dapat menyimpulkan dia ada atau tidak. Dan sudut kami telah dipotong adalah bahwa saya memiliki diasumsikan bahwa orang lain di hal ini melakukan pekerjaan untuk saya. Dan sehingga akhirnya mengundang pertanyaan, baik, tunggu sebentar. Bagaimana Anda menyortir 1.000 halaman nama dan nomor? Itu benar-benar berbeda masalah, sesuatu kami akan kembali di masa depan. Tetapi ketika Anda berpikir tentang website seperti Facebook dan Google untuk Gmail dan hal-hal seperti Google indeks pencarian sendiri, ketika Anda memiliki jutaan atau miliaran potongan data yang disimpan hari ini, searching-- dan belum lagi menyortir mereka problems-- pada akhirnya merupakan tantangan tersendiri. Dan memang, ini maka adalah hanya salah satu tantangan bahwa kita akan melihat. Jadi sekarang mari kita sejenak dan lihatlah CS50 sendiri dan memberikan rasa apa yang ada di toko semester ini. Memang, jika Anda belum melakukannya, jangan lihat URL ini. Dan seperti Patrick disinggung untuk, tahun ini kita membuat investasi yang signifikan semua lebih mendukung program ini Struktur dalam hal TA dan CA, jam kantor, ketersediaan bagian, dan bahan digital online, juga. Memang, dalam hal kursus ini kuliah, kami di sini hari ini. Dan harapan ini tahun resmi tentu saja yang hadir untuk hari ini, tentu saja ini kuliah terakhir, dan tentu saja kira-kira di tengah-tengah semester dengan setiap ceramah di antara tersedia umumnya pada hari Jumat sore online, baik untuk mahasiswa Yale dan mahasiswa Harvard tahun ini. Memang, salah satu Perubahan mendasar adalah bahwa kita mengadopsi di Harvard paradigma yang sangat banyak seperti yang kami lakukan di sini terakhir tahun dan sekarang tahun ini, sehingga sama, kita masih syuting paling kuliah kursus di Cambridge tapi membuat mereka tersedia sebelumnya daripada yang kita miliki di masa lalu sehingga orang-orang dari you-- jika Anda ingin, misalnya, mendapatkan kepala mulai pada bahan pada akhir pekan pertama agak dari akhir pekan kedua, Anda akan memiliki akses ke jenis-jenis bahan, dicari, embeddable, hyperlinkable ke sumber daya terkait semua sebelumnya. Dalam hal topik, untuk memberikan rasa trajectory-- kursus ini dan beberapa hal ini mungkin jargon untuk sekarang, tapi tidak lama, yakinlah. Kita akan mulai hari ini, akhirnya, dengan melihat satu pemrograman bahasa yang disebut Scratch. Kami akan transisi setelahnya minggu depan untuk sesuatu yang disebut C dan kemudian melihat bangunan lainnya blok untuk memecahkan masalah, hal yang disebut array dan algoritma, bagaimana kita menggunakan memori untuk keuntungan kami dan kelemahan, dan hal-hal seperti struktur data, dan kemudian menuju ujung ekor kelas melihat mesin belajar dan melihat yang lain bahasa disebut Python, bagaimana web bekerja, bagaimana internet semakin umumnya bekerja, protokol seperti HTTP, bahasa untuk database seperti SQL, JavaScript untuk web, dan akhirnya mengikat semua orang bersama-sama. Dan memang, di akhir hari, Anda tidak akan belajar di Scratch kelas ini atau C atau Python atau SQL atau JavaScript. Anda malah akan lebih umum belajar ilmu komputer dan dasar-dasar daripadanya, dan Anda akan belajar bagaimana program di sejumlah ini bahasa di sepanjang jalan. Jadi memang, salah satu tujuan kursus pada akhirnya adalah untuk melepas semua kursus ini roda-roda dengan minggu-minggu akhir sehingga setelah ini, Anda bisa kembali ke fields-- Anda sendiri apakah itu atau tidak ilmu komputer atau rekayasa, di alam ilmu, seni, humaniora, atau beyond-- dan membawa beberapa ini ide saja dan bidang ini ide-ide dan praktis keterampilan untuk domain Anda sendiri dalam rangka memecahkan masalah di dalamnya. Apa yang kita akan lakukan di sini sementara di sebagian Kamis setelah hari ini adalah dengan kepala kursus terkemuka apa yang akan kita sebut walkthrough masalah set kursus ini. Jadi setiap minggu ketika kita telah masalah set, kami akan berjalan melalui di lokasi seperti ini tantangan kursus ini, menawarkan beberapa tips dan trik dan teknik desain. Tapi jika Anda tidak mampu untuk membuat orang-orang secara pribadi, menyadari mereka sama sumber daya akan tertanam oleh salah satu saja yang mengajar asisten dalam masalah set sendiri, juga. Masalahnya set tahun ini, tidak seperti tahun lalu, berdasarkan umpan balik, masih akan dirilis pada hari Jumat. Tapi bukannya karena berikutnya Jumat, sehingga memberikan Anda hanya tujuh hari, efektif akan jatuh tempo 10 hari kemudian. Dan memang, ini akan berarti bahwa mereka akan tumpang tindih dengan akhir pekan. Tapi kami berharap tahun ini terutama ini akan memungkinkan siswa untuk lebih mengakomodasi pasang surut dalam jadwal mereka, apakah itu akademisi atau ekstrakurikuler atau atletik atau musim ujian tengah semester. Anda dapat front load atau back-beban minggu Anda berfokus pada CS50 berdasarkan pada beban saja sebenarnya minggu Anda sendiri. Masalahnya menetapkan sendiri akan mencakup berbagai bahasa, meskipun kami akan fokus terutama awal di C sebelum kita fokus sesudahnya lebih tinggi tingkat, lebih bahasa web-centric. Dan kemudian beberapa FAQ di sini- Anda harus mengambil kelas seperti CS50 sebagai tahun pertama? Jadi benar-benar. Dan memang, itu tidak tentu sesuatu Anda harus menunda sampai Anda telah memotong gigi Anda pada jenis lain kelas. Melainkan, pertimbangkan bahwa bagi banyak siswa, termasuk saya sendiri kembali pada hari, ini adalah bidang yang sangat asing, terutama jika Anda tidak pernah mengambil CSA AP atau sesuatu seperti itu di sekolah tinggi. Tapi menyadari bahwa sejak awal, apakah itu kursus ini atau pengantar saja lain, sekarang memang waktu terbaik, Saya pikir, untuk menemukan beberapa jalan baru atau beberapa kepentingan akademis baru, juga. Dan kemudian mengambil dengan courses-- lainnya sehingga salah satu perbedaan kunci di sini dibandingkan Harvard adalah bahwa kita hanya mengambil empat program per semester di Harvard untuk beberapa alasan. Dan kalian benar-benar menarik off sekitar 36 kursus di total selama empat tahun Anda, yang berarti umumnya empat atau lima kelas. Dan saya pikir itu cukup adil untuk mengatakan dan untuk melepaskan CS50, dengan desain, adalah mungkin bukan jenis kelas bahwa Anda harus biasanya mengambil dengan empat lainnya kursus untuk total lima karena psets yang oleh desain yang cukup intensif. Memang, aku juga belajar ini kembali pada hari. Saya tidak akan menjelaskan CS50 dan ilmu komputer, pemrograman sebagai begitu banyak keras seperti itu hanya memakan waktu. Ini bukan jenis hal di mana setelah makan malam, Anda dapat kembali ke asrama Anda kamar, duduk, dan mulai berfokus pada pset yang berpikir, baiklah, Aku akan bang keluar malam ini dan kemudian bergerak pada subjek berikutnya pada hari berikutnya. Kadang-kadang Anda hanya menabrak dinding. Anda memiliki bug dalam kode Anda. Anda tidak perlu tahu bagaimana memecahkan beberapa masalah. Dan salah satu fitur kunci dari pemrograman untuk diriku sendiri untuk hari ini adalah Anda hanya jenis perlu mengambil langkah mundur kadang-kadang, tidur di atasnya atau berpikir tentang itu selama kursus dari joging atau kegiatan lainnya, dan kemudian kembali ke segar. Dan Anda hanya perlu jendela ini waktu. Dan memang, itulah sebabnya kami telah diperpanjang jumlah waktu tersedia untuk set masalah tahun ini dan juga, per URL yang Saya memasang sebelumnya untuk Apa yang baru semester ini, dipangkas masalah set sehingga mereka secara fundamental tidak kurang ketat, dan takeaways yang tidak kalah, tapi ada banyak hal yang kurang depan, sebuah kerja keras jauh lebih sedikit yang perlu Anda lakukan di depan setiap masalah set, Anda akan melihat, sebelum Anda dapat benar-benar menyelam ke dalam daging itu. Jadi menyadari bahwa mereka dan lainnya perubahan di cakrawala untuk lebih mengakomodasi siswa, tapi akhirnya memastikan bahwa takeaways yang memang setinggi mungkin. Jadi sementara lebih banyak pekerjaan daripada mungkin dalam kelas yang khas, kami berharap bahwa hasil untuk Anda dan takeaways untuk Anda dan keterampilan dan ide-ide dengan yang Anda keluar adalah semua lebih menarik sebagai hasilnya. Dan untuk mendapatkan Anda there-- dan ini adalah salah satu takeaways kunci, sebagai Patrick disinggung earlier-- adalah struktur dukungan kursus ini. Jadi tidak hanya CS50 memiliki salah satu staf saja terbesar di kampus. Ini juga memiliki salah satu kebanyakan sarjana. Memang, CS50 tahun lalu adalah kelas pertama memiliki staf pengajar sarjana. Dan bukti kesuksesan itu lakukan sekarang banyak program lain dalam Yale CS memiliki itu, juga. Dan bagi siswa, khususnya, akan TA ini dan tentu saja asisten menjadi pendukung keseluruhan jaringan sumber daya dukungan, di antara mereka bagian atau tilawah, peluang mingguan untuk berdiskusi lebih intim dan ulasan tentang materi yang ditargetkan untuk trek yang berbeda, untuk siswa kurang nyaman, lebih nyaman, atau suatu tempat di antara. Ini akan mengikuti ketersediaan ceramah oleh beberapa hari setiap minggu pada hari Senin dan Selasa. Dan kemudian kantor hours-- satu-satu peluang bantuan dari kursus CA dan TA akan pada hari Rabu dan Kamis dan Minggu di beberapa kali, yang semuanya akan diposting di website saja ini, bahkan lebih dari tahun lalu, juga. Tapi apa kunci untuk CS50, jika tidak diakui sedikit tidak biasa, adalah budaya saja yang kita sudah mencoba untuk menumbuhkan, baik di Cambridge selama bertahun-tahun dan sekarang yang paling baru di New Haven. Dan pada kenyataannya, datang ini Sabtu, jika Anda belum pernah mendengar, adalah CS50 Puzzle Day, yang memiliki tidak ada hubungannya dengan ilmu komputer tapi seluruhnya dirancang untuk mengirim pesan bahwa ilmu komputer tentang pemecahan masalah. Dan memang, jika Anda ingin pasangan dengan satu atau dua atau tiga teman dan membentuk tim untuk CS50 Teka-teki Day, kita lihat di iklan yang di jalan keluar. Dan tiga jam dari pizza dan teka-teki dan hadiah menanti. Dan memang, untuk pertama kalinya tahun ini, tidak akan diselenggarakan bersama-sama dengan Harvard. Ini akan berada di sini secara independen di Yale. Sehingga mengawasi keluar untuk mereka jika Anda belum. Kebanyakan setiap hari Jumat di semester kita mencoba untuk membuat kelas besar merasa kecil dan membawa beberapa 50 siswa untuk makan siang dengan staf kursus ini, dengan alumni, teman dari industri untuk berbicara tentang seperti apa hidup ini setelah kelas seperti CS50 dan selama musim panas dan setelah lulus. Sehingga mengawasi keluar untuk undangan itu. Untuk pertama kalinya pernah tahun ini akan kita tahan pertama CS50 coding kontes, opsional opt-in kesempatan mid-semester, setelah kita semua memiliki beberapa enam atau tujuh minggu pemrograman di C di bawah ikat pinggang mereka untuk bersaing, jika Anda akan jadi choose-- lagi pada teams-- mencoba memecahkan banyak tantangan yang Anda bisa dalam pemrograman dengan teman dari Anda terhadap orang lain. Dan menuju ekor semester akan kita charter beberapa bus, benar-benar menghabiskan beberapa waktu di Cambridge, jika Anda lebih ingin bergabung dengan kami, untuk disebut-CS50 hackathon. Pada 19:00 kami akan mulai. Sekitar 9, kita akan memiliki pizza. Sekitar 01:00, kita akan memiliki burrito. Dan ada yang masih terjaga di perjalanan pulang naik bus sekitar 05:00, kami akan menghentikan off untuk pancake di IHOP di jalan home-- kesempatan 12 jam membenamkan diri dengan teman sekelas dan staf dalam tugas akhir kursus ini, yang merupakan kesempatan untuk pergi jauh melampaui Masalah set saja ini dan desain dan melaksanakan sebagian besar sesuatu yang menarik bagi Anda, yang pada akhirnya akan tampil di sini di Commons. Pertama adil yang pernah CS50 terakhir tahun, pameran akhir-semester atau perayaan apa yang semua orang di kelas telah dicapai, terutama yang, sekali lagi, yang pergi dari tidak ada sesuatu, dari nol sampai 60, tidak memiliki latar belakang sebelumnya dan menunjukkan, pada akhirnya, sesuatu untuk seluruh kampus dan, jika online, dunia untuk melihat, juga. Sekarang, ini di sini hanya beberapa dari TA dan CA yang membuat CS50 mungkin. Izinkan saya untuk mengundang dari para anggota staf yang ada di sini untuk datang di atas panggung, serta kepala kursus ini, menawarkan beberapa kata-kata inspirasi, juga. ANDI: Hi, guys. Bisakah kalian mendengarku? Terima kasih untuk bergabung dengan kami dalam hal ini indah, hujan Kamis sore. Nama saya Andi. Aku junior di Berkeley. Dan bersama dengan Stelios dan musim panas, kami akan mengajar tiga kepala Anda asisten untuk tahun yang akan datang ini. Jadi, saya kira, menunjukkan hands-- berapa banyak dari Anda tidak punya niat untuk menjadi seorang CS utama atau benar-benar menyelam dalam-dalam dalam ilmu komputer sebagai utama di sini? Mengagumkan. Itu brilian. Jadi aku benar-benar urusan global dan ilmu kognitif utama. Aku benar-benar datang ke Yale dengan maksud tidak pernah harus melihat pada Jumlah lagi dalam hidup saya. Ketika saya datang ke Yale, ini adalah sesuatu yang tidak pernah di radar saya. Saya ingin belajar tentang puisi. Saya ingin belajar tentang urusan luar negeri. Saya ingin belajar tentang gambar cat air. Ya, kami menawarkan kelas pada gambar cat air. Tapi aku tidak pernah benar-benar tertarik dalam apa pun STEM terkait. Tapi kemudian lebih tua saya punya, semakin saya menyadari bahwa setiap bidang yang benar-benar dalam beberapa rasa mempekerjakan ilmu komputer, atau jika tidak ilmu komputer, komputasi. Bahkan, untuk global saya urusan proyek batu penjuru, kita menggunakan data analisis untuk menganalisis serangan teroris untuk Boko Haram di Nigeria. Dan seperti yang Anda lihat, terlepas apa utama Anda akhirnya mengejar atau apa minat Anda di sini di Yale adalah, pemrograman dan dasar-dasar apa pun keterampilan super berguna. Dan CS50 benar-benar baik dilengkapi untuk jenis meminjamkan banyak sumber daya Anda, terlepas dari bagaimana Anda nyaman atau bagaimana tertarik Anda dalam mengejar kelas. Musim panas akan berbicara sedikit sedikit tentang apa yang kalian akan belajar tentang tahun ini. SUMMER: Hi, semua orang. Aku Musim Panas Wu. Aku junior di Morse. Dan aku benar-benar mulai sebagai mahasiswa CS50 sendiri. Jadi tiga tahun lalu, aku berada di tahun kesenjangan. Aku tidak pernah mengambil CS kelas di sekolah tinggi, tapi saya pikir bahwa dalam waktu luang saya, itu akan keren untuk belajar bagaimana kode. Jadi saya melakukan pencarian Google cepat, mencari apa yang tersedia secara online, dan melihat video ini dengan Muppets dan DJ dan website keren. Aku seperti, saya ingin belajar bagaimana untuk melakukan itu. Jadi saya mengambil kursus, dan saya hanya jatuh cinta dengan hal itu. Tapi aku ingat begitu cemburu pada anak-anak yang bisa menghadiri hackathon ini, menghadiri Puzzle Day, menghadiri kantor jam, mendapatkan bantuan dari TA secara pribadi. Dan jadi saya tidak pernah membayangkan bahwa saya akan mendapatkan kesempatan untuk di sini terlibat dalam kursus yang pertama kali saya tertarik komputer ilmu pengetahuan dan adalah alasan mengapa Saya ilmu komputer besar hari ini. Jadi saya akan memperingatkan Anda, kelas ini akan meregangkan Anda. Ini akan menantang Anda. Tapi itu juga akan mengajarkan cara untuk melakukan hal-hal bahwa Anda tidak pernah membayangkan Anda bisa. Stelios: Hi, semua orang. Nama saya Stelios. Saya seorang junior di Branford Perguruan tinggi dan besar CS. Saya juga dari Athena, Yunani. aku benar benar melihat kedepan untuk memenuhi semua Anda, mengobrol dengan Anda di bagian, di jam kantor, di Jumat siang. Saya sangat bersemangat karena kami telah menempatkan begitu banyak usaha dalam menciptakan dukungan yang unik struktur untuk kalian semua untuk membuat pengalaman Anda dengan kursus yang terbaik mungkin. Dan saya berharap bahwa meskipun sebagian besar Anda mungkin tidak mengambil CS Tentu saja sebelumnya, saya berharap itu CS50 untuk Anda adalah apa yang memicu minat untuk lebih mengejar komputer ilmu di masa depan, seperti yang telah dilakukan dengan begitu banyak orang di masa lalu. Jadi terima kasih untuk menjadi di sini, senang melihat Anda. Jason Hirschhorn. JASON Hirschhorn: Hi, semua orang. Nama saya Jason Hirschhorn. Saya tinggal di Silliman. Dan aku pergi ke Harvard sebagai undergrad dan mengambil jurusan IPS dan juga mempelajari ilmu komputer. Dan salah satu peran utama saya di sini adalah untuk mendukung staf ini indah karena mereka mendukung Anda semua. Bahkan, hal ini tidak semua dari mereka. Ada 55 mahasiswa dan lulusan di sini untuk mendukung Anda semua. Dan aku yakin salah satu yang terbaik bagian saja untuk Anda semua semakin untuk bekerja dengan mereka, mengenal mereka, mendapatkan untuk melihat mereka, baik dalam CS50 dan di luar CS50 semester ini dan bagi banyak semester yang akan datang. Jadi mudah-mudahan Anda akan mengambil Tentu saja karena mudah-mudahan Anda bisa berinteraksi dengan Staf indah kita di atas panggung. SPEAKER: Nah, biarkan aku menyelesaikan dengan mengatakan itu akan menyenangkan. DAVID Malan: Yah, terima kasih kepada tim kami seluruh. Izinkan saya untuk meredupkan lampu dan memungkinkan lagi dari tim kami, baik dari Cambridge dan New Haven, untuk menyapa sebagai orang-orang mengajukan off. Dan setelah itu akan kita transisi ke yang pertama dari keterlibatan program kami dengan bahasa ini disebut Scratch. Jadi terima kasih untuk tim. Mari kita meredupkan lampu dan mendengar dari beberapa orang lain. [TEPUK TANGAN] [VIDEO PEMUTARAN] -The Misi CS50 adalah untuk membuat Anda lebih nyaman dengan cara yang sama sekali baru berpikir, pola pikir komputasi ini. -itu Membuat ilmu komputer menarik, yang adalah sesuatu yang saya tidak benar-benar menyadari mungkin sampai aku mengambil kelas. -I Seperti, whoa. Aku benar-benar menerjemahkan pikiran saya ke dalam komputer sekarang. -bahkan Jika Anda tidak memiliki latar belakang dalam ilmu komputer atau pengalaman, ini sebenarnya adalah kelas untuk Anda. -Jadi Saya pasti ingin siswa saya hanya mendapatkan bersemangat tentang ilmu komputer. Tidak hanya pemrograman, tapi berpikir seperti seorang ilmuwan komputer adalah benar-benar apa yang saya ingin mencoba untuk mengajar mahasiswa saya. -CS50 Sulit dan bermanfaat. -Sebuah pengalaman. -Extravaganza. -Ini Yang membawa kita ke tingkat berikutnya. [MUSIC PLAYING] -The TF adalah, saya pikir, darah kehidupan dari kursus. -Saya Bersemangat untuk memiliki siswa saya, saya membantu memiliki momen aha untuk mewujudkan apa yang mereka benar-benar mencoba yang harus dilakukan, untuk mengetahui bagaimana melakukan pset a. -CS50 Pasti kursus keras. Tapi seperti yang lain Tentu saja benar-benar di Yale, memiliki besar seperti, komunitas yang mendukung. -Anda Benar-benar tidak perlu tahu apa-apa tentang coding untuk bisa untuk mengambil kursus. -itu Menakjubkan untuk menonton seberapa jauh orang datang dalam satu semester. -Anda Tidak sendirian duduk di kamar Anda belajar kode, tapi itu lebih dari sekedar kelas. Itu adalah pengalaman. -Cara terbaik untuk belajar konsep dan untuk memproses mereka adalah dengan mengajarkan orang lain. -Apa Adalah perpecahan telepon? [MUSIC PLAYING] -dan Ini CS50. [MUSIC PLAYING] -Ini Adalah CS50. -Got Masalah? Merobeknya di setengah. [MUSIC PLAYING] Membuangnya. DAVID Malan: Baiklah. Jadi mari kita tackle-- dalam sedikit bit, kebetulan, itu menjadi tradisi ini untuk beberapa alasan selama 10 tahun untuk melayani kue di mulai dan akhir CS50. Jadi menunggu Anda di akhir hari ini, selain silabus, akan ada beberapa kue juga, dan staf saja untuk menyapa. Tapi sekarang, mari kita transisi ke pertama bahasa kita, di mana kami akan menghabiskan benar-benar hanya seminggu dan satu Masalah ditetapkan pada domain ini, Scratch. Dan Anda akan menemukan jika Anda sudah diprogram sebelumnya, banyak dari ide-ide dan kemungkinan yang akrab bagi Anda. Tapi Anda akan menemukan bahwa itu menyenangkan sepanjang jalan untuk mencari tahu persis bagaimana untuk menerjemahkan beberapa ide Anda sudah tahu lingkungan tertentu untuk benar-benar mengesankan keluarga Anda dan teman-teman dengan pekerjaan Anda, yang dapat online, jika Anda memilih demikian, sesudahnya. Dan jika Anda tidak memiliki pengalaman sebelumnya dan antara mayoritas siswa kurang nyaman, menyadari bahwa banyak ide kita hanya dieksplorasi dengan hal-hal reality-- seperti buku telepon dan kehadiran dan forth-- menerjemahkan cukup baik untuk komputer, tapi tidak jika Anda menggunakan, awalnya, bahasa seperti ini. Jadi ini adalah program yang ditulis dalam bahasa disebut C. Dan kita akan menghabiskan cukup sedikit waktu di C, akhirnya. Tapi kemungkinan besar, ini akan terlihat sedikit samar kepada Anda pada pandangan pertama. Bahkan, ada banyak aneh sintaks, kurung, kurung sudut, kurung kurawal, kutipan, dan titik koma. Dan memang, jika Anda menyelam ke pemrograman untuk pertama kalinya melihat dan mencoba untuk membuat hal-hal seperti ini, jujur, Anda mendapatkan begitu terperosok begitu sering hanya bodoh minutia yang tidak ada intelektual yang menarik tentang hal itu. Tapi bayangkan jika Anda bisa membuat program-- sama yang, Anda mungkin jenis menyimpulkan, mungkin cetakan "Halo, dunia" entah bagaimana. Kita bisa menyaring ide yang sama ke hanya dua potongan puzzle, jika Anda mau. Memang, Scratch menarik karena itu bahasa grafis ini. Anda dapat drag dan drop ini potongan teka-teki yang hanya interlock apakah masuk akal logis untuk melakukannya. Dan di Scratch, kita akan segera melihat, ini adalah bagaimana Anda akan menerapkan bahwa sama Program, dengan hanya dua potongan teka-teki yang cukup banyak melakukan apa yang mereka katakan. Tapi kita akan melihat dalam beberapa saat bahwa beberapa dari blok bangunan yang kita singgung untuk awal dan beberapa lagi adalah semua yang akhirnya akan membentuk beberapa program kami yang paling awal. Kita akan memiliki hal-hal seperti functions-- hanya tindakan yang melakukan sesuatu, seperti menyapa, dunia. Kita akan memiliki loop, hal yang menyebabkan siklus lagi dan lagi, sama seperti kita melakukan beberapa saat yang lalu dengan pencarian untuk Mike Smith. Variabel, seperti dalam aljabar, jika Anda memiliki x atau y, yang dapat menyimpan nomor. Nah, dalam program, Anda benar-benar bisa menyimpan lebih dari sekedar angka. Anda dapat menyimpan kata-kata dan kalimat dan grafis dan hal-hal lain masih. ekspresi Boolean, hanya questions-- ya atau tidak, benar atau salah. Kondisi, pengambilan keputusan berdasarkan pada jawaban ya / tidak. Dan hal itu lebih menarik seperti array dan benang dan acara dan sejumlah lainnya fitur, tapi semua yang peta sangat baik untuk sangat blok ramah seperti ini. Ini akan menjadi fungsi, potongan puzzle ungu yang hanya mengatakan apa namanya is-- dalam kasus ini, mengatakan. Dan kemudian sering, ada kotak putih yang Anda dapat mengetik atau tarik beberapa nilai dalam. Dan itulah yang umumnya disebut argumen atau parameter. Ini adalah cara mengubah perilaku default teka-teki sepotong atau fungsi sehingga tidak sesuatu yang khusus untuk Anda seperti mengatakan, halo, dunia atau Halo, Andy atau Halo, Jason atau beberapa kalimat lain sebagai gantinya. Jika Anda ingin mengatakan bahwa lot-- harfiah forever-- Anda dapat mengambil lain potongan puzzle yang disebut selamanya dan hanya terjepit tersebut dua bersama-sama seperti ini. Dan bahwa loop, seperti gambar menunjukkan, berarti hanya menyapa, dunia selamanya, lagi dan lagi dan lagi. Atau, jika Anda hanya ingin melakukan itu jumlah terbatas kali, seperti 50 kali, ada akan menjadi teka-teki lain buah untuk itu-- ulangi 50 kali. Sementara itu, jika Anda ingin memiliki variabel dalam bahasa ini kita sekitar untuk bermain dengan, Anda dapat menggunakan blok oranye seperti ini. Dan variabel ini saya sewenang-wenang disebut i untuk integer. Dan aku hanya mengatur itu sama dengan 0. Dan jadi mungkin saya, dalam hal ini case-- ini variable-- merupakan skor seseorang dalam sebuah permainan. Anda mulai dari nol, dan setiap kali Anda membuat tujuan atau sesuatu seperti itu, Anda mendapatkan satu poin tambahan. Anda dapat mengajukan pertanyaan di Scratch. Jika kita drag dan drop puzzle potongan di saat seperti ini, Anda dapat mengajukan pertanyaan seperti, baik, adalah saya kurang dari 50? Mungkin Anda perlu 50 poin untuk menang. Dan jadi ini akan menjadi pertanyaan Anda akan bertanya. Atau, lebih umum, Anda bisa katakan adalah x kurang dari y, di mana ada dua variabel yang terlibat? Sekarang, yang satu ini banyak lebih besar pada pandangan pertama, tapi benar-benar tidak semua yang lebih kompleks. Ini hanya kombinasi kondisi dan variabel dan ekspresi Boolean untuk bertanya tiga questions-- adalah x kurang dari y? Jika demikian, katakan demikian. Katakanlah, x kurang dari y. Yang lain, jika x lebih besar dari y, lain x harus sama dengan y. Dan sedangkan dengan Mike Smith, ada empat skenario, di sini dalam dunia angka, x adalah baik kurang dari, lebih besar dari, atau sama dengan. Semua yang kita miliki adalah tiga garpu di jalan. Dan kemudian ada yang lebih menarik potongan teka-teki seperti ini untuk hal-hal seperti array, di mana kami akan dapat menyimpan informasi. Kita akan melihat blok yang memungkinkan kita untuk melaksanakan beberapa benang, Fitur lain kita akan menggunakan, dan kemudian juga sesuatu yang disebut peristiwa. Tapi sebelum kita mendapatkan itu titik dan membuat bahkan, akhirnya, kebiasaan kami sendiri potongan puzzle, mari kita benar-benar membuka program itu sendiri. Jadi ini adalah Scratch. Ini tersedia di scratch.mit.edu. Dan Anda dipersilakan untuk bermain sekarang atau nanti, juga. Hal ini terjadi untuk menjadi versi offline. Bagi orang-orang yang tidak tentu memiliki internet besar, Anda dapat men-download software yang sama, juga. Dan ada benar-benar hanya tiga komponen perangkat lunak ini. Di sudut kiri atas layar adalah semacam panggung bahwa Scratch, yang secara default tampak seperti kucing, tinggal di dalam. Dia bisa bergerak ke atas, bawah, kiri, dan kanan dan melakukan sejumlah hal-hal lain, dan dapat melihat sejumlah cara berdasarkan pada kostum yang Anda tetapkan untuk dirinya. Tapi ini adalah apa yang akan kita sebut sprite, semacam karakter. Dan Anda dapat memiliki beberapa karakter, seperti yang kita akan segera melihat. Di tengah sekarang semua teka-teki ini potongan dan kategori atau palet daripadanya. Jadi sekarang, saya mengklik Motion. Dan jadi aku melihat semua gerak-terkait potongan puzzle atau blok, sehingga fungsi yang memiliki hubungannya dengan naik, bawah, kiri, atau kanan atau beberapa operasi lain. Tetapi jika saya mengklik Looks, Anda bisa melihat hal-hal seperti blok katakanlah bahwa kita melihat beberapa saat yang lalu. Dan jika saya klik pada Control, Anda akan melihat hal-hal seperti berulang dan selamanya dan jika blok yang kami melihat beberapa saat yang lalu. Dan Anda akan menemukan bahwa kita hanya akan menggaruk permukaan beberapa teka-teki potongan, tapi itu semua cukup intuitif dan titik dan klik. Memang, Scratch dirancang untuk siswa yang lebih muda untuk membantu memberi mereka outlet untuk berpikir kreatif. Dan belum luar biasa, itu batu loncatan indah untuk persis ide kita akan mengeksplorasi di C dan Python dan JavaScript, demikian juga. Di sisi kanan, akhirnya, di sini adalah ini, yang disebut daerah skrip. Dan ini hanya batu tulis kosong dengan yang Anda mulai menulis sebuah program. Dan aku akan hal itu. Sekarang, saya kebetulan tahu di mana hal-hal yang karena saya sudah melakukan ini beberapa kali. Tapi aku tahu bahwa di bawah kategori Events, ada blok di sini-ini ketika bendera hijau diklik. Dan perhatikan jika saya zoom out dan kembali ke sini di atas panggung, kehidupan awal dalam ini sedikit dunia persegi panjang, atas yang hijau bendera dan tanda berhenti merah. Jadi pergi dan berhenti, masing-masing. Dan jadi apa yang ingin saya lakukan ketika bendera hijau diklik? Nah, biarkan aku pergi ke yang Tampak kategori. Dan biarkan aku pergi ke depan dan drag dan drop ini. Dan perhatikan segera karena mendapat dekat, mereka semacam magnet. Jadi jika sekarang saya pasrah, terkunci bersama-sama bagus dan bersih. Dan aku akan pergi ke depan dan mengatakan sesuatu seperti halo, dunia selama dua detik. Mari saya zoom out dan klik sekarang bendera hijau, dan mengatakan, halo, dunia. Baiklah. Jadi itu semua baik dan bagus. Tidak semua yang menarik. Mari membuatnya menjadi lebih manis sedikit. Dan aku tahu bahwa di muka, Scratch terjadi untuk datang dengan beberapa hal yang lucu seperti ini. Jadi bermain meow suara sampai selesai. Jadi mari kita lakukan ini. [MEONG] Ah, itu menggemaskan. Dan jika saya klik again-- [MEONG] Dan lagi. [MEONG] Tapi aku tetap harus menghidupkan kembali Scratch. Tapi saya bisa lebih baik dari ini. Kenapa tidak aku hanya menyeret tiga ini. Dan sekarang sudah tiga kali menggemaskan. [MENGEONG] OK, sebenarnya, itu sedikit menyeramkan. Jadi kita perlu sesuatu di antara sana. Jika saya pergi ke Control, sepertinya sebenarnya ada blok menunggu. Dan perhatikan jika saya membawa lebih there-- dan biarkan aku membuat ini lebih besar sedikit. Jika saya melayang-layang, itu akan untuk masuk ke tempatnya. Jadi tunggu satu detik, tunggu satu detik. Mari kita memukul bendera hijau lagi. [MENGEONG] OK, sedikit lebih alami, tetapi tidak sangat efisien. Jadi ini benar jika program saya Tujuan itu meow tiga kali. Tapi itu tidak sangat dirancang dengan baik. Aku agak memotong beberapa sudut. Aku punya sedikit malas. Apa yang terasa like-- apa yang harus saya tampaknya telah dilakukan buruk, akan Anda katakan? Ya? Ya, di tengah. AUDIENCE: Digunakan lebih memori dari yang Anda butuhkan untuk karena Anda menggunakan begitu banyak garis yang berbeda. DAVID Malan: Ya, jadi lebih banyak garis. Dan itu tidak harus menjadi memori, meskipun itu bisa dilihat sebagai cara itu. Tapi itu definitely-- ada redundansi. Dan aku benar-benar jenis diseret dan menjatuhkan hal yang sama. Dan jika Anda jenis extrapolate-- jika itu tidak jelas di sini-baik, bagaimana akan Saya meow 30 kali? Saya akan drag dan drop, seperti, 30 pasang lebih dari potongan-potongan puzzle. Dan pasti, ada cara yang lebih baik. Dan kami telah melihat cara yang lebih baik. Apa yang intuitif akan menjadi cara yang lebih baik? Ya, hanya menggunakan satu lingkaran. Tidak ada copy dan paste. Dan memang, kapan ini semester jika Anda mulai menemukan diri Anda menyeret dan menjatuhkan, atau benar-benar menyalin dan paste, kebiasaan berbahaya untuk masuk ke dalam karena ini tidak hanya sangat dipertahankan. Misalnya, jika saya ingin mengubah suara untuk sesuatu yang lain, Saya harus mengubahnya sekarang di tiga lokasi bukan hanya satu. Karena memang, jika saya mematahkan away-- ini aku hanya akan memisahkan seperti itu. Mari saya ambil mengulang blok, dan kemudian klik tiga, ketik tiga, melemparkan beberapa ini pergi dengan hanya melepaskan. Dan kemudian menyadarinya tidak terlihat seperti itu cocok, tapi magnetis, itu akan untuk tidak hanya patah tempat tetapi tumbuh sesuai bentuk. Jadi itu bagus. Dan jika saya klik bermain. [MENGEONG] Sangat bagus. Baiklah. Dan sekarang sangat mudah untuk mengubah, juga, karena saya hanya bisa mengubah satu nomor dalam satu tempat. Tapi ini juga, tidak semua yang menarik. Mari kita benar-benar memiliki Scratch tidak meow, tapi bergerak. Biarkan aku pergi ke Gerak dan bergerak 10 langkah dalam of-- whoops, biarkan aku memperbaiki hal ini. Biarkan aku memilikinya bergerak 10 steps-- sebenarnya, jangan jangan ulangi. Mari saya ambil blok kontrol, dan lakukan hal berikut selamanya. Selamanya, bergerak 10 langkah. Dan klik Play. BAIK. Jadi untungnya, ia berhenti. Jika tidak, anak-anak akan sangat marah ketika mereka semacam kehilangan kucing mereka. Tapi setidaknya aku dapat menyeret dia kembali ke layar. Tapi ini tidak semua yang besar permainan atau animasi. Akan lebih baik jika mungkin ia memantul dari tepi. Jadi apa yang kita lakukan? Apa konstruk yang kita perlu memiliki Scratch memutuskan untuk bangkit, menurut Anda, bahkan jika Anda belum pernah terlihat Scratch sebelumnya? Ya, di belakang. AUDIENCE: Anda perlu jika blok atau jika-maka. DAVID Malan: Yeah, sehingga beberapa jenis jika blok atau jika-maka. Jadi sebenarnya, kita memiliki salah satu dari ini di sini. Jadi if-- jadi biar mendapatkan menyingkirkan gerakan. Biarkan aku memperbesar jadi lebih besar. Jadi bagaimana ini. Selamanya, jika Sensing-- kita sudah tidak melihat ini sebelumnya. Aku butuh ekspresi Boolean. Dan ternyata jika menyentuh apa? Jika menyentuh tepi, apa yang ingin saya lakukan? Nah, jika saya kembali ke Gerak, Ternyata, oh, aku bisa berbalik. Biarkan aku tarik ini di sini. Mengapa saya tidak pergi ke depan dan berbalik 180 derajat? Dan sekarang, saya hanya bergerak di akhir. Saya bisa menempatkan gerakan di awal atau akhir. Tapi secara logis, setiap kali saya pindah, saya ingin memeriksa, saya menyentuh tepi? Apakah saya menyentuh tepi? Apakah saya menyentuh tepi? Sehingga secara logika saya berbalik jika demikian. Jadi mari kita tekan tombol play. BAIK. Jadi itu sedikit kereta, sehingga untuk berbicara. Dan bug hanya kesalahan dalam sebuah program komputer. Tapi setidaknya itu bekerja. Dan pada kenyataannya, saya bisa masuk di sini. Dan biarkan aku membuatnya tidak 10 langkah di waktu, tapi ini semua animasi. Ini semua kartun atau bahkan film adalah. Mari saya bergerak 20 langkah pada satu waktu. Jadi 20 kali lebih banyak hal-hal yang terjadi sekali, atau dua kali lebih banyak, dalam hal ini. Dan dia bergerak lebih cepat. Mari saya mengubah ke 30. 100. 1.000. Dan itu akan benar-benar cepat. Dan ini is-- ya, OK. Jadi sekarang kita hanya bermain-main dengan itu. OK, jadi kereta. Tapi kita bisa menyeretnya keluar dari jalan di sini. Tapi kita bisa membuat lebih menyenangkan dengan ini, juga. Bagaimana ini-- dia terbalik. Tapi ternyata Scratch-- dan ada sebenarnya, Aku harus melepaskan, tidak ada akademis nilai untuk apa yang saya lakukan. Tapi kalau aku membuka mikrofon, mari kita menghentikannya dan melakukan sesuatu seperti ini. Aduh! [TERTAWA] Itu menggemaskan. Terima kasih. Sekarang, ini adalah apa suaraku Sepertinya ketika saya berteriak aduh. Saya tidak berpikir kami menangkap tawa Anda. Itu OK. Mari saya simpan ini sebagai "Aduh." Mari kita simpan ini sebagai "Aduh". Dan sekarang kita akan kembali ke Script. Dan sekarang saya need-- mari kita lihat, Suara. Oh, bermain aduh suara. Jadi jika saya menyentuh tepi, biarkan aku pertama bermain Aduh, dan kemudian berbalik. Dan sekarang mari kita menempatkan dia di tengah. [MENGATAKAN "ADUH"] Dua kali lebih cepat. BAIK. Tapi itu benar-benar melakukan apa yang saya katakan. Jadi itu sebenarnya benar, itu hanya sedikit mengganggu cepat. Jadi mari kita tambahkan sesuatu lebih menarik untuk ini. Mari saya benar-benar membuka salah satu yang saya buat di muka, tepat disebut Pet yang Kucing, yang melakukan hal ini. Berikut script di sini. Apa ini akan lakukan dalam hal bahasa Inggris? Apa ini dirancang untuk melakukan? Ya, mari kita pergi some-- ya? AUDIENCE: Bila Anda pet kucing, mengeong. DAVID Malan: Ya, jadi ketika Anda pet kucing, itu akan meow. Jadi dengan kata lain, sekarang ada loop selamanya diam, dikombinasikan dengan kondisi, dikombinasikan dengan ekspresi Boolean, dikombinasikan dengan pasangan fungsi, efeknya yang, setelah saya bermain program ini, ada terjadi sampai aku memindahkan kursor lebih dekat dan lebih dekat dan lebih dekat dan-- [MEONG] Maka itu seperti membelai kucing. [MEONG] Hanya sekali Anda benar-benar memindahkan kursor di atasnya. Sekarang, saya juga melecut tidak pet kucing, yang melakukan hal ini sebagai gantinya. [MENGEONG] Jadi dia hanya terus mengeong. [MENGEONG] Tapi kalau aku terlalu close-- [MENGEONG] [MENGAUM] Jadi bagaimana ini bekerja? Sekarang aku hanya memiliki dua arah pertigaan jalan. Jika menyentuh pointer mouse, kemudian memutar suara singa. Lain hanya memutar suara meong, dan kemudian menunggu tiga detik sehingga bahwa itu semacam melakukan sangat tenang menunggu. Baiklah. Jadi itu menggabungkan beberapa ide masih. Mari kita lihat contoh ini Aku melecut disebut benang. Dan yang satu ini pada dasarnya berbeda karena leverage fitur dari banyak bahasa pemrograman disebut benang, kemampuan program untuk harfiah melakukan dua hal secara bersamaan. Memang, hari ini jika Anda menggunakan Google Docs atau Microsoft Word, dan dokumen Anda terus-menerus menjadi mantra-diperiksa bahkan saat Anda jenis usaha-- atau Anda tekan Command-P atau Control-P dan sesuatu cetak, itu mencetak sementara Anda terus mengetik. Program hari ini memang bisa melakukan beberapa hal sekaligus, sama seperti di Scratch sini. Jadi di sini, saya punya dua sprite sekarang, burung dan kucing. Dan jika saya klik pada masing-masing karakter-karakter satu per satu, Saya melihat sekarang burung script di kanan atas. Sekarang aku melihat kucing. Burung, kucing. Jadi masing-masing memiliki naskah mereka sendiri. Tapi perhatikan, apa yang potongan puzzle jangan mereka berdua mulai dengan? Ketika bendera hijau diklik. Dan burung, ketika bendera hijau diklik. Jadi ketika saya klik bendera hijau, baik dari orang script atau program akan berjalan secara paralel. Dan Anda akan melihat bahwa burung adalah hanya tanpa berpikir memantul dari tepi. kucing jelas telah diprogram dengan keuntungan strategis. Dan-- [MENGAUM] Baiklah. Jadi kucing menangkap burung dalam kasus ini. Mengapa demikian? Nah, pemberitahuan pertama kami hanya memiliki burung hanya tanpa berpikir akan ke lokasi awal ini, dan kemudian selamanya, jika tidak menyentuh kucing, hanya bergerak. Dan jika Anda berada di tepi, bangkit. Dan hanya bergerak. Dan jika Anda berada di tepi, bangkit. Tapi kucing itu, sementara itu, memiliki beberapa logika tambahan yang mengatakan ini-- pertama, hanya begitu bahwa ini bukan sepenuhnya bias terhadap burung, melihat bahwa aku sudah menggunakan potongan puzzle hijau ada yang benar-benar mengambil nomor acak. Sebuah fitur dari banyak bahasa adalah untuk memberikan Anda nomor acak atau pseudorandom. Jadi dalam hal ini, kucing awalnya memilih nomor acak antara, seperti, 90 derajat dan 180 derajat, pada dasarnya, sehingga bahwa ada sedikit varian. Dan kemudian selamanya, jika menyentuh burung, memutar suara singa. Jika tidak, hanya menunjuk ke arah burung. Mengarah ke burung. Titik menuju burung, yang merupakan potongan puzzle tersendiri dalam hal ini. Nah, kita bisa melakukan satu hal lain di sini. Mari saya membuka program acara di sini. Dan di sini kita lagi memiliki dua sprite, yang terlihat seperti dua boneka ini di sini. Dan apa yang menarik di sini adalah ini. Jeruk pria memiliki ini mengatur potongan puzzle sini. Selamanya melakukan following-- yang jika spasi ditekan, kemudian berkata, Marco, dan kemudian disiarkan sebuah acara. Dan sementara itu, pria biru di sini memiliki ini-- ketika Anda menerima acara, mengatakan Polo. Jadi ternyata di Scratch dan dalam bahasa lain, ada cara untuk dua program atau dua skrip, dalam hal ini, untuk bergaul sehingga ketika saya memukul spasi, katanya Marco. Dan yang lain mendengar itu, sehingga untuk berbicara, dan mengatakan Polo di respon. Sehingga Anda dapat menulis program yang benar-benar berinteraksi dengan cara ini. Dan jika saya melakukan ini sebagai gantinya, Aku bahkan dapat menambahkan variabel, hanya menggunakan satu sprite dalam kasus ini. Yang ini sangat menjengkelkan. [SEAL BARKING] Sekarang, pemberitahuan di sebelah kanan kita punya beberapa logika tambahan di sini. Bagaimana cara menghentikan segel ini dari menggonggong? [SEAL BARKING] Sepertinya di kanan sisi adalah apa yang bermain suara. Tapi itu hanya memainkan terdengar jika apa yang benar? Jika orange variable-- block-- diredam adalah nol. Bagaimana cara mengubah diredam menjadi 1, berarti benar, membuat ini diredam? Rupanya, script lain, saya bisa tekan space bar, dan sekarang ia berhenti. Jadi kita dapat memiliki pergaulan ini di script, juga, dengan hanya berbagi variabel di dua seperti ini. Sekarang, ini tidak semua yang menarik. Mari kita pergi ke depan dan melakukan hal ini dan menggabungkan banyak ide-ide ini dengan program ini sini. Sebelum kita melakukan itu, meskipun, bagaimana sekitar satu relawan? Biarkan aku mengambil tekanan off dari saya karena saya tidak benar-benar memainkan game ini. Mari kita memiliki seseorang yang kita belum pernah melihat sebelumnya. Anda harus nyaman datang di atas panggung di sini, di depan kamera. OK, datang ke atas. Sangat berani. Siapa namamu? IDRIS: Idris. DAVID Malan: Maaf? IDRIS: Idris. DAVID Malan: Idris, senang bertemu Anda. Ayo up. Dan sekarang, di ponsel Anda sendiri telepon, Anda bermain Pokemon GO? IDRIS: No. DAVID Malan: Benarkah? IDRIS: Ya. DAVID Malan: OK. Baiklah. Senang bertemu dengan mu. Ayo sini. Aku tidak baik. Jadi kita akan mencari tahu bersama bagaimana bermain ini, yang seseorang benar-benar pergi dan diimplementasikan dalam Scratch dengan mengubah kucing untuk dasarnya yang berbeda karakter semua bersama-sama. Dan jika saya fullscreen ini di sini, kita akan untuk melihat pertandingan berikut bersama-sama. Masih memuat, masih loading. Ayolah. Biarkan aku melakukan ini. Ayolah. Game ini begitu besar bahwa itu jatuh. Bersiap. Coba ini sekali lagi. Ayolah. Baiklah. Di sana kami pergi. BAIK. bendera hijau. Jadi di sini kita pergi. [MUSIC PLAYING] Pilih tingkat menengah di sini. Klik pria biru di sana. Baiklah. Dan Anda dapat menggunakan panah keys-- atas, bawah, kiri, kanan. Sekarang, mari kita pertimbangkan seperti yang kita lakukan ini-- dan kemudian pergi setelah karakter di sana. Ya. Dan sekarang klik dia dengan mouse. Oh ya. Pindah. Di mana panah? Di sini Anda pergi. Jadi klik di sana. Ya. Baiklah. Jadi sekarang, aku diberitahu Anda memiliki bola Poke, bahwa jika klik, itu akan melakukan itu. Sangat bagus. Dalam berlatih untuk hari ini, saya menemukan versi game sebenarnya tidak terlalu sulit. Jadi jika Anda ingin pergi lagi di sini, berjalan ke bola Poke ini. Dan kemudian pergi mengambil hak. Coba klik pada itu. Oh, sebenarnya, itu toko, rupanya. OK begitu dekat itu. Tidak pernah melakukan itu sebelumnya. Mungkin pergi ke hal ini di sini. Oh, di sana Anda pergi. Tunggu, ada satu di sana. Oh, ada lagi. BAIK. Turun. Ya, klik. OK, itu sangat lucu. OK, sangat baik dilakukan. Game ini tidak terlalu sulit. BAIK. Selamat. Di sini, kita memiliki CS50 stres bola untuk Anda. Tapi mempertimbangkan untuk sesaat apa beberapa takeaways yang ada. Lebih mudah daripada permainan yang sebenarnya, rupanya. Tapi semua kita telah pergi di sini adalah karakter yang mungkin memiliki beberapa jenis loop yang terkait dengan itu. Ini bukan kucing. Itu karakter ini sebagai gantinya. Dan bahwa loop hanya terus mengatakan, jika panah ditekan, jika panah bawah ditekan, jika panah kiri ditekan atau kanan panah ditekan, bergerak ke atas atau bawah atau kiri atau kanan. Atau jika ada potongan puzzle lain di sana yang mengatakan saat menyentuh sprite lain, saat menyentuh salah satu karakter untuk bola Poke, jika menyentuh, kemudian melakukan hal ini. Jadi semua ide kita sudah telah menggunakan sejauh benar-benar hanya dapat diterapkan dalam khusus ini konteks untuk memainkan game ini, juga. Biarkan aku pergi ke depan dan tarik naik satu lain di sini, sebenarnya. Biarkan aku pergi ke depan dan tarik up, katakanlah, ini. Ini adalah sesuatu yang kita remix. Dibuat oleh salah satu dari kami siswa di Cambridge, dan kemudian saya pergi melalui dan berubah cukup banyak setiap contoh Harvard untuk Yale saat ini. Apakah seseorang ingin bersaing dengan Ivies sini akumulasi lain semua ide-ide ini? Ayo turun, ya. Siapa namamu? DINA: Dina. DAVID Malan: Adina? DINA: Dina. DAVID Malan: Dina, datang di bawah. Baiklah, Dina. Jadi game ini semakin sulit dan sulit, karena dalam game ini, ada variabel yang digunakan juga yang terus-menerus melacak apa tingkat Anda berada dalam permainan. Jadi senang bertemu Anda. Datang kemari. Dan tujuan di sini adalah untuk memilah dari membuat jalan Anda melalui labirin bahwa siswa ini dilaksanakan. Dan hanya untuk mengatur panggung, masing-masing dari foto-foto ini di layar adalah sprite sendiri, karakter sendiri. Jadi ini adalah oleh kucing default, namun siswa mengubah mereka untuk berbagai logo Ivies sini. Dan kemudian Anda akan melihat bahwa hanya dengan menggunakan kondisi dan loop dan fungsi dan lebih, Anda mendapatkan ini. [MUSIC PLAYING] [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Ya oke. Ya, terus berjalan. tingkat pertama ini sangat mudah. Anda hanya harus pergi ke sana. Tapi sekali lagi, pertimbangkan, ini hanyalah sebuah lingkaran mendengarkan panah keys-- atas bawah kiri kanan. Dan sekarang blok penginderaan. Sangat bagus. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Sangat bagus. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Sangat bagus. Cukup mudah, Crimson. Baiklah. Levels-- uh-oh. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Dan lagi, di ini tiga puncak Harvard, Anda hanya memiliki logika mengatakan jika di tepi, bounce. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] OK, apa yang Anda lakukan adalah lebih menarik daripada mengapa. Sangat bagus. Sangat bagus. Uh oh. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Saya pikir Anda harus mengorbankan diri sendiri. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Cepat! [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Bagus. Itu OK. Anda akan mendapatkannya. Ya ya! Sangat bagus. [Bersorak] [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Bagus! [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Mengerti. Ayolah! Kedua tingkat terakhir. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Baiklah. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Iya nih. baik penggunaan variabel di sini. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Iya nih. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Bagus. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Tidak apa-apa. Kita harus sampai ke akhir. Sana. Oh! [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Mungkin menjalankan terlambat hari ini, tapi itu akan menjadi sia-sia. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Kamu bisa melakukannya! Ya! [Bersorak] [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Yang satu ini benar-benar sulit. [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Kami akan memberikan dua kehidupan yang lebih. Bisakah kamu melakukannya? [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH  INI"] Baiklah. Bagaimana dengan bulat besar tepuk tangan tetap. Anda sampai ke kedua tingkat terakhir. Terima kasih. [TEPUK TANGAN] Jadi ini hanya untuk mengatakan berapa banyak Anda dapat Anda lakukan dengan hal-hal ini. Dan menyadari juga, bahwa ketika potongan puzzle tidak exist-- dan memang, ini akan menjadi salah satu kekuasaan dengan masalah pertama set dan beyond-- adalah untuk benar-benar membuat Anda sendiri. Dan ini hanya potongan dari salah satu contoh Anda akan dapat bermain dengan online, di mana jika Anda tidak memiliki built ke Scratch sesuatu seperti sepotong batuk puzzle, Anda benar-benar dapat membuatnya sendiri. Dan semua ini dan lebih menanti. Dan hanya untuk melukis akhir gambar memang apa depan di toko untuk kelas untuk Anda, didasarkan pada beberapa gambar dari teman sekelas terakhir, izinkan saya untuk meredupkan lampu untuk terakhir kalinya dan menampilkan CS50. [MUSIC PLAYING] Baiklah. Itu saja untuk CS50. Kue sekarang disajikan. [MUSIC PLAYING]