[MUSIC PLAYING] [Tepuk Tangan] DAVID J. Malan: Ini adalah CS50, Pengenalan Universitas Harvard dengan intelektual perusahaan ilmu komputer dan seni pemrograman. Sekarang jika Anda termasuk orang yang setiap tahun duduk di sini dengan sedikit saraf dalam pikiran Anda, seperti bahwa Anda tidak berpikir Anda berada di sini, Anda berpikir bahwa sebagian besar orang yang duduk di sekitar Anda tahu jauh lebih dari yang Anda, memang lebih nyaman daripada Anda di depan komputer ilmu pengetahuan atau komputer lebih umum, menyadari bahwa 78% dari siswa yang sekarang mengambil CS50 tidak memiliki pengalaman sebelumnya. Memang, ada 100 titik ada pada tampilan, 78 yang hijau solid, yang berarti Anda, jika Anda di antara demografis itu, berada dalam perusahaan yang sangat baik di sini pada keluar. Dan jika Anda bukan salah satu dari 22% dari mahasiswa yang melakukan CS50 memang memiliki pengalaman sebelumnya, baik dalam sekolah tinggi atau program lain, menyadari bahwa Anda, juga, akan ditantang dalam kursus tersebut. Bukan hanya kita memiliki trek yang berbeda bagi siswa kurang nyaman dan lebih nyaman sama dalam bagian, kita juga disebut edisi hacker paling masalah set yang akan menantang para pelajar dengan pengalaman tambahan untuk mengeksplorasi materi yang sama tapi dari yang lebih perspektif canggih. Tapi apa ilmu komputer? Nah, pada akhirnya, apa yang akan materi ketika Anda menjelajahi bidang ini tidak begitu banyak di mana Anda berakhir relatif terhadap teman sekelas Anda, tetapi di mana Anda sendiri berakhir di minggu 12 vs mana Anda mulai di sini di minggu nol. Sekarang komputer science-- baik, mari kita menyebutnya ilmu computation-- di mana perhitungan benar-benar hanya cara mewah untuk mengatakan, mengambil beberapa masukan, memproduksi beberapa output, dan melakukannya dengan menjalankan algoritma, set instruksi untuk memecahkan beberapa masalah pada input tersebut untuk menghasilkan beberapa output atau solusi di mana Anda tertarik. Jadi kita baru saja kesempatan untuk melakukan perjalanan keluar ke California untuk bertemu dengan alumni. Namanya adalah Susan Wojcicki. Dan dia ingin berbicara Anda di sini pada video untuk memberi kesaksian betapa berlaku bahkan hanya rasa komputer ilmu di tingkat dasar dapat. Bahkan jika Anda tidak pergi untuk mengejar ilmu komputer sebagai sebuah bidang, atau bahkan rekayasa, atau STEM lebih umum, Anda akan melihat, pada kenyataannya, bagaimana tertentu Tentu saja sangat mempengaruhi hidupnya. Dan dia baru saja mengambil ketika dia adalah seorang senior di Harvard College. Jika kita bisa meredupkan lampu untuk Susan. SUSAN Wojcicki: Hello, world. Aku Susan Wojcicki. Aku CEO YouTube. Dan aku mengambil CS50 ketika saya masih seorang senior di Harvard pada tahun 1990. Aku benar-benar sejarah dan utama sastra. Dan musim panas junior saya, Saya menyadari bahwa mungkin aku ingin belajar sesuatu tentang komputer. Jadi, saya datang kembali. Aku mengambil CS50. Sulit, tapi itu kebanyakan kelas menakjubkan saya ambil. Ini mengubah cara saya berpikir tentang segala sesuatu. Dan ketika saya lulus dari Harvard pada tahun 1990, saya pergi ke Silicon Valley. Dan aku mendapat pekerjaan. Dan aku telah bekerja di tech sejak itu. DAVID J. Malan: Sekarang apa Susan tidak menyebutkan dalam video ini, bahwa itu benar-benar dalam dirinya Garasi itu Google sendiri didirikan oleh Larry dan Sergey. Sekarang kami juga mengulurkan tangan untuk teman-teman kita di code.org, sebuah organisasi yang selama tahun lalu telah membuat orang khususnya bersemangat tentang ilmu komputer dan pemrograman, khususnya. Tapi perlu dicatat bahwa pemrograman bukan ilmu komputer per se. Ilmu komputer tidak pemrograman. Sebaliknya pemrograman hanya tool-- dengan yang kalian semua akan terlalu baik familiar dengan end-- semester seperti yang dapat Anda terapkan tidak hanya untuk program masa depan di CS tetapi untuk bidang apa pun dari mana Anda datang, di humaniora, ilmu-ilmu sosial, alam ilmu pengetahuan, atau sejenisnya. Memang, memungkinkan beberapa lainnya alumni dan rekan-rekan mereka untuk berbicara dengan penerapan yang bidang yang menanti. BILL GATES: Saya 13 ketika saya pertama punya akses ke komputer. JACK DORSEY: Orang tua saya membeli saya Macintosh pada tahun 1984 ketika saya masih berusia delapan tahun. Mark Zuckerberg: aku di kelas enam. SPEAKER 1: Saya belajar kode di perguruan tinggi. RUCHI SANGHVI: tahun Freshman, pertama semester, Pengenalan Ilmu Komputer. BILL GATES: Aku menulis sebuah program yang memainkan tic-tac-toe. DREW HOUSTON: saya pikir itu awal cukup rendah hati. Saya pikir program pertama Aku menulis bertanya hal-hal seperti, apa warna favorit Anda? Atau berapa umurmu? ELENA SILENOK: Saya pertama kali belajar cara membuat lingkaran hijau dan kotak merah muncul di layar. GABE NEWELL: Pertama kali aku benar-benar memiliki sesuatu yang datang dan berkata, halo, dunia. Dan aku membuat komputer melakukan hal itu. Itu hanya menakjubkan. Mark Zuckerberg: Belajar bagaimana program tidak memulai sebagai ingin belajar semua ilmu komputer atau mencoba untuk menguasai ini disiplin atau sesuatu seperti itu. Itu hanya dimulai karena saya ingin melakukan satu hal sederhana ini. Saya ingin membuat sesuatu yang menyenangkan untuk diri sendiri dan saudara saya. Dan saya menulis program kecil ini. Dan kemudian pada dasarnya hanya menambahkan sedikit untuk itu. Dan kemudian ketika saya membutuhkan untuk mempelajari sesuatu yang baru, Aku mencarinya, baik dalam buku atau di internet, dan kemudian menambahkan sedikit untuk itu. DREW HOUSTON: Ini benar-benar tidak berbeda memainkan alat musik atau sesuatu atau bermain olahraga. DAVID J. Malan: Baiklah. Jadi mari kita sekarang benar-benar menyelam dalam sedikit lebih dalam. Apa input dan output ini bahwa kita bicarakan di sini? Jadi bagaimana sesuatu yang sederhana? Anda mungkin tahu, bahkan jika Anda memiliki tidak ada keakraban dengan ilmu komputer apapun, bahwa komputer entah bagaimana menggunakan dan memahami hanya nol dan satu. Tapi bagaimana bisa yang mungkin diberikan bagaimana desktop banyak hari ini dan laptop sama bisa lakukan? DNA hari, satu-satunya alfabet yang mereka mengerti adalah nol atau satu. Nah, pertimbangkan ini. Kami, manusia, cenderung menggunakan sistem desimal. "Desember" yang berarti 10. Dan itu 10 karena kita memiliki 10 digit, 0 sampai sembilan. Sekarang komputer, sebaliknya, cenderung menggunakan biner. "Bi" berarti dua. Jadi mereka cenderung menggunakan hanya nol dan satu. Tapi ternyata, bahwa bahkan hanya dengan nol dan satu, yang adalah alfabet cukup besar yang dapat digunakan untuk mewakili sebagian besar setiap bagian dari data yang Anda inginkan, apakah itu nomor, apakah itu surat, apakah itu grafis atau video pada layar. Perhatikan, misalnya, bagaimana kita manusia biasanya menafsirkan nomor ini di sini. Ini hanya tiga digit, satu, dua, tiga. Tapi kita tahu nomor ini bawaan sekarang sebagai 123. Tapi kenapa begitu? Nah, jika Anda berpikir kembali untuk mungkin sekolah dasar, Anda mungkin diajarkan untuk memikirkan angka-angka ini sebagai dalam kolom, di mana satu adalah di ratusan tempat, keduanya adalah di tempat puluhan, dan tiga berada di tempat yang. Mengapa yang benar-benar berguna? Nah, berpikir tentang aritmatika super sederhana bahwa kita semua telah lakukan selama bertahun-tahun sekarang. Efektif, jika Anda punya satu di tempat ratusan, Anda melakukan matematika cepat 100 kali 1 ditambah 10 kali 2-- karena keduanya adalah dalam puluhan place-- ditambah 1 kali 3-- karena tiga adalah di tempat yang. Jadi, tentu saja, jika kita sebenarnya kalikan hal ini, apa yang kita benar-benar mewakili dengan satu pattern-- ini dua three-- adalah 100 ditambah 20 ditambah 3, yang, tentu saja, adalah 123. Sekarang biner, dan komputer benar-benar, dasarnya berbicara bahasa yang sama yang kita lakukan. Mereka hanya memiliki alfabet yang lebih kecil. Jadi komputer hanya memiliki angka nol dan orang-orang yang mereka miliki. Jadi sementara kita manusia memiliki dasarnya kekuasaan 10 di setiap places-- ini 10 sampai nol, 10 sampai satu, sepuluh ke dua, memberikan Anda 110 dan 100 masing-masing. Karena komputer hanya memiliki dua nilai mereka dapat memahami, nol dan satu, mereka harus menggunakan nilai yang berbeda di kolom ini, satu, dua, empat. Dan jika kita terus, delapan, 16, 32, 64, dan sebagainya. Tapi pola dan Mentalitas adalah persis sama. Jadi dengan logika ini, siapa pun, bagaimana akan Aku pergi tentang mewakili nomor satu di biner? Jika Anda belum pernah bahkan berpikir tentang ini sebelumnya, apa usus Anda katakan? AUDIENCE: Satu. DAVID J. Malan: Satu. Tepat. Kami hanya perlu satu di Tempat yang karena nol cukup untuk memberi kita tidak empat maupun dua. Jadi, satu kali satu sama dengan satu. Sekarang hal-hal mendapatkan sedikit menarik. Jika saya ingin untuk mewakili dalam biner nomor dua-- tetapi, lagi, bahkan jika Anda belum pernah bahasa lisan ini sebelumnya, bagaimana kita mewakili dalam biner nilai kita manusia kenal sebagai dua? Nol satu nol. Hanya menempatkan satu di kolom yang Anda inginkan. Sekarang itu semakin cantik mudah mungkin sekarang. Jadi jika saya ingin mewakili three-- ada kolom ada tiga dunia. Jadi, sekali lagi, sekarang saya bisa menambahkan nilai-nilai ini bersama-sama dengan menempatkan satu di sini. Jadi 2 kali 1 ditambah 1 kali 1 adalah, tentu saja, 3. Sekarang hal-hal yang menyenangkan sedikit bahwa yang sekarang menjadi nol. Dan untuk mewakili empat, saya mendapatkan ini. Dan jika kita kenaikan perlahan di sini-yang akan menjadi lima. Ini akan menjadi enam. Ini akan menjadi tujuh. Tapi sekarang saya tampaknya memiliki mengalami masalah. Bagaimana saya bisa pergi tentang mewakili eight-- akan menjadi nilai berikutnya. Ya, jadi kita perlu bit baru. Dan, memang, jika Anda sudah mendengar kalimat ini sebelumnya, bit, itu hanya singkatan digit biner, nol atau satu. Dan jadi saya kebetulan mewakili hanya tiga bit tersebut di sini. Tapi kalau aku punya cara menyimpan tidak tiga bit yang berbeda, tetapi empat, pasti aku bisa mewakili delapan, dan sembilan, dan kemudian 10, dan bahkan lebih tinggi dan lebih tinggi. Tapi itu kemudian memanggil dipertanyakan bagaimana kita bisa pergi tentang mewakili ini hal di tempat pertama. Itu salah satu hal untuk menarik mereka di sini pada slide, tapi bagaimana Anda mewakili mereka jika Anda alat mekanis? Apa yang komputer lakukan untuk mewakili input dan output yang fundamental menentukan perhitungan pada akhir hari? Nah, bagaimana dengan sesuatu super sederhana seperti ini? Ini hanya sebuah bola lampu. Dan aku bisa memicu ini bola lampu untuk pergi dengan memutar beberapa listrik dan memungkinkan elektron mengalir melalui, yang mengubah nya negara atau nilainya, sehingga untuk berbicara. Misalnya, ini adalah sebuah lampu meja sekolah tua di sini dengan satu seperti bola lampu di dalamnya. Dan sekarang ini tidak benar-benar melakukan sesuatu yang berguna. Tapi begitu saya pasang ke soket listrik dan kemudian menggunakan switch-- ini atau kita bahkan dapat menyebutnya transistor atau menganggapnya sebagai such-- Saya sekarang bisa mewakili baik nilai ini, di mana bola lampu ini jelas off, atau nilai ini. Nilai ini atau nilai ini. Nilai ini dan sebagainya. Jadi dalam komputer, mungkin, adalah potongan-potongan yang lebih kecil dari perangkat keras, tetapi pada akhir hari hanya memiliki menggunakan listrik-- mungkin menangkap itu-- dan kemudian menyimpan sesuatu atau menjaga sesuatu dari. Tentu saja, hal ini tidak sangat menarik untuk melakukan hanya dengan bola lampu tunggal. Bahkan, seberapa tinggi saya bisa menghitung di biner dengan meja ini lampu di sini? AUDIENCE: Satu. DAVID J. Malan: Satu, kan? Aku butuh lampu meja lainnya jika saya benar-benar ingin menghitung lebih tinggi. Tapi kita bisa melakukan lebih baik dari itu. Karena lampu yang kami telah dimasukkan ke dalam hal-hal ini adalah bola lampu benar-benar pelamun dari tadi akan memungkinkan. Dan mereka benar-benar lampu jaringan. Dan tandan perusahaan membuat hal-hal ini hari ini. Tapi ternyata bahwa ini khususnya dilengkapi dengan fitur dimana Anda dapat mengubah warnanya. Jadi misalnya, jika Anda menghiasi kamar asrama Anda dengan beberapa cahaya ini lampu, tergantung pada suasana hati Anda, tergantung pada siapa yang masuk, tergantung pada cuaca, tergantung pada waktu hari, Anda benar-benar dapat mengubah warna lampu di kamar Anda. Dan itu karena cahaya ini umbi dan lain-lain seperti itu memiliki apa yang disebut API, aplikasi antarmuka pemrograman, yang adalah topik yang Anda akan baik akrab dengan akhir semester. Dan ini hanya suka, cara samar mengatakan, Anda dapat memprogram cahaya ini lampu untuk melakukan penawaran Anda. Anda dapat mengirim pesan seperti Anda, manusia, dapat mengirim pesan ke server web mengatakan, beri aku berita hari ini atau memberi saya email saya. Anda dapat mengirim lebih misterius pesan ke ini bola lampu mengatakan, menghidupkan dan mematikan. Tapi itu tidak semua yang menarik. Anda dapat mengatakan, nyalakan merah, menyalakan hijau, nyalakan biru, semua dengan bola lampu yang sama. Dan Anda bahkan dapat, dengan sedikit lebih savvy, mengatakan, mengubah diri menjadi biru ketika itu hari suram luar, misalnya. Ini sebenarnya bisa menambal ke API cuaca dan mencari tahu apa cuaca, atau waktu hari, atau pemicu seperti lainnya. Jadi, pada kenyataannya, dua Anggota staf CS50 sendiri, Dan Bradley dan Ansel Duff di sini, silakan diperoleh kami sejumlah besar ini bola lampu. Dan mereka membangun CS50 ini pertama lampu pernah biner, di mana kami telah diwakili di sini- dengan ini magnets-- sedikit main-main berbagai penampung kami disinggung hanya sedikit lalu. Jadi cara di sini adalah tempat yang, dua, empat. Dan kita tidak melihat lebih tinggi dari itu. Tapi, tentu saja, mereka kekuasaan dua. Delapan, 16, 32, 64, dan 128. Jadi jika sekarang saya ingin menjadi sedikit lebih menarik daripada menggunakan saklar ini sekolah tua, Saya miliki di sini di iPad ini antarmuka super sederhana Dan bahwa Bradley, mantan siswa dan sekarang mengajar sesama, diprogram menggunakan beberapa HTML dan JavaScript, yang adalah markup dan pemrograman bahasa masing-masing. Dan Anda mungkin dapat see-- bahkan di back-- yang ada plus besar dan minus besar, ditambah satu tombol untuk masing-masing lampu ini. Dan apa ini akan memungkinkan saya untuk lakukan adalah, misalnya, klik plus dan sekarang mewakili, dari Tentu saja, apa nomor? Satu. Dan aku bisa memukul lagi. Dua. Tiga. Empat. Lima. Enam. Tujuh. Dan di sini sekarang kita mendapatkan rollover itu, tapi kami memiliki keempat sedikit saat ini, jadi sekarang kita memiliki delapan. Jadi kita bisa melakukan ini untuk beberapa waktu. Bahkan, sebagai samping, seberapa tinggi kita bisa menghitung? Siapa saja? AUDIENCE: 255. DAVID J. Malan: 255, kan? Jangan khawatir terlalu banyak tentang matematika untuk sekarang, tapi itu angka yang cukup baik. Tapi itu benar-benar tidak terikat hanya berapa banyak potongan informasi, seperti surat, atau grafis bahwa kita bisa mewakili. Tapi tidak peduli untuk saat ini. Aku akan pergi ke depan dan mengubah mereka semua. Dan jika aku bisa, aku ingin meminta sukarelawan, volunteer-- pertama kami oh, hello-- di atas panggung. Menangkap adalah Anda harus nyaman muncul, karena Anda jelas berada di depan semua teman sekelas Anda, serta di internet. Dan biarkan aku melihat sedikit melampaui yang-- bagaimana di sini di kemeja putih? Dan tangan up. Ayo up. Siapa nama Anda? AUDIENCE: Jackie. DAVID J. Malan: Jackie. Jackie, ayolah up. Jadi apa ada juga hal ini iPad adalah sebuah tombol yang disebut Game Mode. Dan Game Mode ini akan memungkinkan saya untuk masukan di muka desimal tertentu nomor, angka we manusia akrab dengan. Dan kemudian Anda akan ditantang di sini untuk menggunakan tombol di satu top-- untuk masing-masing bulbs-- ini untuk benar-benar mengetahui pola lampu yang mewakili jumlah tersebut. Dan aku minta maaf, apa nama Anda lagi? AUDIENCE: Jackie. DAVID J. Malan: Jackie. Baiklah. Senang bertemu Anda. Jadi biarkan aku pergi ke depan dan program bagi dunia untuk melihat nomor 15. Kami akan tetap kecil pada awalnya di sini. Dan aku akan pergi ke Game Mode. Dan aku akan menentukan, memberi kita nomor 15. OK. Dan sekarang dengan semua orang watching-- jika Anda mungkin ingin berdiri dengan cara ini, karena akan berbaris up-- pergi ke depan dan mengaktifkan delapan tombol di bagian atas untuk menghidupkan lampu di atau off sesuai keinginan Anda. AUDIENCE: OK. DAVID J. Malan: Dan tidak ada kecurangan dengan menekan ditambah 15 kali. Oh, kita akan melakukan itu. AUDIENCE: Oh, tunggu. Aku sangat menyesal. DAVID J. Malan: Anda juga dapat mengaktifkan bola lampu secara individual dengan masing-masing tombol ini di atas. AUDIENCE: Oh, OK. Jadi akan seperti-- DAVID J. Malan: OK. Jadi sekarang kita memiliki delapan. Jadi mari kita berhenti sejenak untuk penonton untuk terlibat di sini. Apa nomor adalah Jackie saat ini mewakili? 11. Jadi kita sudah hampir sampai. Dan sangat baik. Jadi kita memiliki pemenang pertama kami. Selamat. Dan kami pikir kami akan memiliki beberapa hadiah yang luar biasa. Jika Anda ingin menjadi salah satu seperti asrama kamar di sini di kampus, Anda dapat sendiri memiliki tugas akhir gunakan sekarang API ini, terima kasih kepada Jackie. Jadi sekarang-- [Tepuk Tangan] -Jika kita bisa, satu lagi seperti di sekitar ini. Oh, sekarang semua orang ingin beberapa bola lampu. Untuk yang disebut edisi hacker, kita akan jalan itu a-- oh, yeah, tanpa komitmen. Saya pikir Anda datang sekarang jika tangan Anda akan turun. Siapa nama Anda? AUDIENCE: Alex. DAVID J. Malan: Alex, datang ke sini. Jadi untuk Alex, kita akan Program di sejumlah sedikit lebih besar. Mungkin dalam rangka. Jumlah 50. AUDIENCE: OK. DAVID J. Malan: Tapi, sebagai Saya said-- dan Anda mungkin ingin berdiri di sini jadi bahwa tombol berbaris Anda akan expect-- tapi aku menyebutnya edisi hacker. Begitu-- keberuntungan! [Tertawa] Anda akan mampu mengubah mereka pergi jika kau-- OK. Sangat baik. Indah. Selamat. [Tepuk Tangan] Saya kira saya harus membayar. Selamat kepada Alex juga. OK. Jadi takeaway utama di sini adalah mudah-mudahan, terus terang, yang simplicity-- yang kesederhanaan dengan yang Anda bisa mendapatkan beberapa cahaya bagus lampu, ternyata di [Tak terdengar]. Tapi mereka mewakili, ide akhirnya, sama dengan yang kita manusia sudah terlalu akrab. Jadi apa yang mungkin berikutnya Langkah dalam perkembangan yang mencoba untuk melakukan sesuatu menarik dengan data dan mewakili input yang tidak hanya angka tetapi mungkin surat atau lebih? Nah, ternyata bahwa dunia komputer, selama bertahun-tahun, hanya mengadopsi sewenang-wenang tapi standar yang konsisten yang memetakan nomor untuk huruf abjad. Misalnya, di sini adalah kutipan dari pemetaan itu. Ini disebut Ascii. A-S-C-I-I. Dan itu hanyalah sebuah tabel yang memetakan letters-- huruf besar dalam hal ini case-- ke angka desimal. Tapi apa implikasinya? Nah, jika Anda benar-benar ingin mewakili sesuatu seperti email atau teks pada halaman web, Anda jelas ingin menunjukkan huruf manusia dari alfabet, bukan angka. Jadi tergantung pada konteks program bahwa pengguna menggunakan, jika web browser atau email client, angka pasti bisa ditafsirkan sebagai huruf. Artinya, pola bit dapat mudah ditafsirkan sebagai huruf. Jadi apa yang bisa kita miliki adalah huruf makhluk A direpresentasikan sebagai 65, B yang direpresentasikan sebagai 66. Jadi jika kita memiliki super kata singkat, seperti hi, apa komputer akan akhirnya toko dalam desimal tapi benar-benar dalam biner, menggunakan beberapa urutan bit, memanfaatkan sedikit listrik dalam beberapa cara, akan menjadi dua angka 72 dan 73. Tapi pola bit yang mewakili nilai-nilai. Jadi ini kemudian adalah bagaimana kita bisa mewakili input dan output kami. Dan cukup untuk mengatakan, kita bisa melakukan representasi yang lebih kompleks akhirnya dengan hal-hal seperti grafis, video, musik, dan lainnya seperti yang akan kita lihat nanti istilah ini. Sehingga hanya daun kemudian algoritma, set ini instruksi dengan yang kita memecahkan masalah yang sebenarnya. Kami lewat di masukan ke algoritma. Dan orang-orang algoritma memproduksi output, output semoga benar dan mudah-mudahan juga, efisien mengumpulkan output. Dengan kata lain, itu adalah satu hal untuk melaksanakan sesuatu dengan benar. Ini hal lain untuk melaksanakan sesuatu dengan baik atau efisien. Misalnya, satu demonstrasi bahwa kita menyukai dalam kursus satu ini. Tapi hal-hal ini semakin semakin sulit ditemukan. Tapi ini memang merupakan sekolah tua buku telepon, yang di dalamnya 1.000 halaman plus nama dan nomor telepon. Dan jika saya ingin mencari seseorang di buku telepon ini, Aku hanya bisa melakukan algoritma yang sangat naif. Aku bisa membuka ke halaman pertama, dan Aku bisa mulai mencari, katakanlah, seseorang bernama Mike Smith. Dan jika dia tidak pada pertama halaman, saya maju ke kedua, dan kemudian ke ketiga, dan kemudian untuk keempat, dan sebagainya, sampai akhirnya aku menemukan Mike Smith. Sekarang adalah algoritma yang benar? AUDIENCE: Ya. DAVID J. Malan: Ya. Jika dia ada di sana, aku akan akhirnya menemukannya. Tapi itu bisa dibilang tidak terlalu efisien, tentu saja tidak cepat, karena, Tuhan, kenapa aku membuang-buang waktu saya flipping melalui semua halaman ini ketika saya bisa tentu melakukan hal ini secara fisik lebih cepat? Nah, optimasi sedikit, sehingga untuk berbicara, mungkin tidak satu halaman pada satu waktu, tapi dua, empat, enam, delapan, 10. Masih benar? AUDIENCE: Tidak DAVID J. Malan: Jadi tidak ada jika saya untuk Misalnya melewatkan Mike Smith. Tapi selama aku kembali pedal satu halaman, kalau aku overshoot dia, mungkin kita bisa memperbaiki apa mungkin hal lain yang dapat gotcha. Tapi lebih baik? Apakah lebih cepat? Maksudku, yeah. Ini benar-benar dua kali lebih cepat jika saya melakukan dua halaman sekaligus. Jadi jika saya awalnya memiliki 1.000 halaman, sekarang saya hanya perlu membalik 500 kali, tidak sepenuhnya 1.000 halaman untuk mendapatkan berpotensi dalam kasus terburuk ke ujung telepon buku, di mana seseorang seperti Mike Smith atau seseorang dengan nama kemudian mungkin sebenarnya. Tapi, tentu saja, kami manusia tentunya tidak akan melakukan itu, tentu tidak pada saat ini dalam hidup kita. Apa itu masuk akal manusia mungkin akan lakukan? AUDIENCE: Pergilah langsung ke The9 S. DAVID J. Malan: Langsung ke S? Bagaimana saya pergi langsung ke S? AUDIENCE: Rip menjadi dua. DAVID J. Malan: Yah, tidak ada tanda. Jadi, ya, jika memang ada label atau tab lengket untuk S, kita harus melompat sana. Tapi itu cukup berbahaya. Jadi yang terbaik yang bisa lakukan adalah kira-kira ke bagian S atau mungkin kira-kira ke tengah. Tapi takeaway kunci sekarang-- dan intuisi bahwa Anda telah mengambil untuk diberikan selama bertahun-tahun probably-- adalah bahwa apa yang Anda sekarang tahu tentang masalah ini? AUDIENCE: [Tak terdengar] DAVID J. Malan: Mike Smith pasti tidak dalam setengah ini masalah karena Smith datang setelah tengah yang kira-kira bagian M, tampaknya. Sehingga Anda mungkin telah melihat di Visitas, kita sekarang dapat benar-benar merobek masalah ini dalam setengah. AUDIENCE: Woo! DAVID J. Malan: Ini semakin mudah. [Tepuk Tangan] Di sana Anda pergi. [Tertawa] Dan sekarang aku fundamental memiliki masalah yang sama, tapi itu benar-benar setengah besar. Aku masih mencari Mike Smith. Dan aku yakin, aku masih bisa mencarinya dengan cara yang sama, membelah masalah dalam setengah lagi, merobek masalah lagi dua, yang kini meninggalkan saya dengan masalah seperempat dari ukuran, dramatis membuang setengah itu pergi, dan ulangi proses ini lagi dan lagi dan lagi, melirik ke bawah pada setiap titik untuk melihat jika Mike Smith adalah pada halaman tersebut. Sekarang jika saya melakukan ini dengan benar, akhirnya aku akan menemukan diriku dengan hanya satu halaman yang Mike Smith adalah jika dia memang dalam buku telepon. Tentu saja, aku bisa tidak pernah memanggil Mike lagi. Tapi intinya di sini adalah bahwa jika kita mulai dengan 1.000 halaman, algoritma pertama saya, membalik halaman, mungkin 1.000 times-- pasti kurang karena nama S, bukan nama Z, tetapi sebagai sebanyak 1.000 halaman yang berpotensi. Algoritma kedua, lebih baik. 500 halaman. Algoritma Ketiga, meskipun, berapa banyak langkah kan ambil untuk membagi halaman 1.000 buku telepon dalam setengah seperti itu? 10, memberi atau mengambil. Jadi hanya dengan membalik-balik yang buku telepon, menyelam dan menaklukkan, sehingga untuk berbicara, 10 kali, saya akan membuat perjalanan turun ke hanya satu halaman. Dan jadi kita bisa menangkap intuisi ini sekarang sedikit grafis jika Anda hanya mempertimbangkan grafik super sederhana ini. Kami berada di sumbu x, atau horizontal axis, adalah ukuran masalah saya, jumlah halaman di buku telepon. Dan ilmuwan komputer umumnya suka menyebutnya ukuran n masalah, di mana n hanya beberapa variabel yang represents-- dalam hal ini case-- jumlah halaman. Vertikal, atau sumbu y, di sini adalah akan menjadi waktu untuk menyelesaikan, mungkin jumlah halaman berubah, mungkin jumlah detik atau menit, apa pun unit Anda ukuran adalah. Jadi garis merah ini merupakan algoritma pertama, karena ada 1-1 hubungan antara jumlah halaman dan jumlah waktu yang dibutuhkan. Jika Verizon menggandakan jumlah halaman di buku telepon tahun depan, berjalan saya time-- yang waktu yang dibutuhkan untuk mengeksekusi bahwa algorithm-- pertama ganda dalam kasus terburuk. Namun algoritma kedua, mana aku membalik dua, membutuhkan sedikit waktu untuk masalah ukuran tertentu. Jadi jika saya memiliki ini banyak pemberitahuan halaman di sini- bahwa garis kuning menunjukkan sedikit waktu untuk menyelesaikan. Dan memang, itu merupakan, kita akan mengatakan, n lebih dari dua. Tapi apa bentuk ketiga dan kurva akhir akan terlihat seperti? Ya, itu memang akan look-- I tidak tahu apa yang Anda akan katakan. Tapi mari kita lihat apa Anda akan mengatakan. AUDIENCE: Seperti itu. DAVID J. Malan: Ini akan terlihat seperti ini, exactly-- slope-- logaritmik dimana Anda memiliki kemiringan penasaran ini. Hal ini tidak lagi garis lurus. Dan apa yang menarik tentang hal itu adalah bahwa meskipun grafik sekarang terputus, Anda bisa memperkirakan di Anda keberatan bahwa jalur hijau tidak akan meningkat di tinggi semua yang banyak Anda melangkah lebih jauh down yang sumbu horisontal. Memang, Verizon, untuk Misalnya, bisa dua kali lipat jumlah halaman di telepon buku antara tahun ini dan tahun depan dari 1.000 menjadi 2000 halaman, tapi bukan masalah besar. Dengan ketiga dan terakhir, ada algoritma intuitif membagi dan menaklukkan. Ini akan membawa saya berapa banyak lagi langkah tahun depan untuk menemukan seseorang seperti Mike Smith? AUDIENCE: Satu. DAVID J. Malan: Hanya ada satu. Dan mereka bisa empat kali lipat, itu akan membawa saya hanya dua langkah lagi dan lain sebagainya. Dan jadi ini adalah bukti betapa beberapa desain yang cermat dan beberapa penghargaan untuk apa masukan Anda dapat melakukan bahkan lebih baik. Sekarang kita menipu sebuah sedikit dalam arti bahwa kita memanfaatkan asumsi. Apa itu asumsi saya tentang buku telepon kami yang memungkinkan saya untuk membagi dan menaklukkan cara intuitif dan masih benar ini? AUDIENCE: [Tak terdengar] DAVID J. Malan: Ya. Jadi diperintahkan. Hal itu menurut abjad oleh perusahaan buku telepon. Jika itu secara acak, yang akan menjadi neraka buku telepon, tapi itu pasti tidak akan meminjamkan dirinya untuk algoritma Aku digunakan, karena Anda tidak akan pernah hanya terjadi di Mike Smith jika Anda terus membagi dalam setengah dengan cara itu secara kebetulan. Jadi mari kita sekarang memformalkan apa jelas intuitif. Jadi sesuatu yang disebut pseudocode adalah di mana kita akan mulai beberapa masalah awal kami. Dan ini adalah cara yang umum untuk menggambarkan algoritma atau program komputer, tidak menggunakan C, atau C ++, atau Java, atau bahasa tertentu, tetapi hanya menggunakan bahasa Inggris, dengan yang setiap manusia mungkin akrab. Dan kita mungkin menulis pseudocode untuk masalah ini sebagai berikut. Langkah satu, mengambil buku telepon. Langkah dua, terbuka untuk tengah buku telepon. Langkah tiga, melihat nama-nama. Langkah empat, jika Smith adalah salah names-- Dan sekarang ini adalah membangun menarik. Ini adalah titik keputusan. Ini adalah persimpangan jalan, jika Anda akan, cabang, sehingga untuk berbicara. Jadi aku akan indent hanya dengan konvensi step-- tidak five-- yaitu katakanlah, aku akan menelepon Mike. Jadi lekukan ini, benar-benar konvensi manusia sewenang-wenang, tapi itu hanya dimaksudkan untuk menyampaikan semantik bahwa jika Smith adalah salah nama, maka saya harus menelepon Mike. Sementara itu pada langkah enam, pemberitahuan bahwa lekukan hilang. Jadi lain adalah garpu lain di jalan, jalan lain aku mungkin perjalanan. Jadi lain jika Smith adalah sebelumnya dalam buku ini, apa Langkah berikutnya mungkin akan berada di sini? AUDIENCE: Anda pergi ke sisi kiri. DAVID J. Malan: Ya, jadi pergi ke kiri setengah dari buku telepon. Membuang bagian kanan jika Smith adalah awal buku ini. Jadi terbuka ke tengah kiri setengah dari buku ini. Dan kemudian langkah delapan, pergi ke baris tiga. Dan ini adalah loop penasaran aku mendorong, rekursi sehingga untuk berbicara. Tapi lebih pada bahwa di masa depan. Saya menggunakan algoritma yang sama saya, pseudocode sama saya, untuk memecahkan masalah yang sama lagi karena satu-satunya hal yang berubah adalah ukuran masalah, tidak tujuan saya, dan bukan orangnya Saya mencari. Jadi saya dapat menggunakan kembali algoritma bahwa saya sudah didefinisikan. Lain jika Smith ini nantinya di book-- Anda mungkin guess-- terbuka ke tengah bagian kanan buku. Dan lagi, pergi ke baris tiga. Else-- apa garis akhir dalam program ini akan menjadi? Jika dia tidak di antara Nama-nama di halaman saya , jika dia tidak awal buku, dan dia tidak lebih dalam buku ini, apa yang saya tahu benar tentang Mike Smith sekarang? AUDIENCE: Dia tidak dalam buku. DAVID J. Malan: Dia tidak dalam buku. Jadi yang terbaik yang bisa saya lakukan hanyalah menyerah dan menghentikan program ini. Baiklah. Jadi pada titik ini, mari kita tur singkat dari beberapa apa yang menanti. Dan pada kenyataannya, aku bergabung di sini oleh sejumlah staf CS50. Jika orang-orang ini semua bisa bergabung dengan saya di sini di atas panggung. [Tepuk Tangan] Pikiran Anda, ini hanya subset dari staf CS50, karena setiap tahun kami memiliki hampir 100 staf anggota dalam peran asisten saja, mengajar rekan-rekan, dan banyak lagi. Ayo up. Jadi mereka akan bergabung dengan kami di sini canggung untuk sesaat saat kita memberi angin puyuh tur apa Anda harus mengharapkan sini dalam kursus. Jadi pertama-tama, kita harus SAT / UNS sebagai pilihan gradasi dalam kursus. Hal ini dimaksudkan sengaja menjadi pilihan dimana jika Anda sedikit gelisah di berada di kursus, dan Anda takut failure-- bahkan jika terus terang kegagalan berarti menyakiti IPK Anda, mendapatkan B dan bukan A-- yang tepat apa, tentu saja untuk gateway Tentu saja seperti CS50 dan lainnya kursus pengantar, opsi penilaian ini dimaksudkan untuk memungkinkan. Saya sepenuh hati mendorong students-- terutama jika pada fence-- untuk memulai Tentu saja SAT / UNS, bahkan tetap SAT / UNS. Tapi Anda pasti bisa beralih ke surat grade oleh kelima Senin istilah. Terus terang, ketika saya kembali adalah mahasiswa baru pada tahun 1995, Saya sendiri bahkan tidak mengambil CS50 karena saya tidak bisa mengumpulkan keberanian untuk benar-benar langkah kaki di kelas. Tampaknya domain terlalu asing bagi saya dan benar-benar hanya bagi teman-teman saya, terus terang, yang telah pemrograman karena mereka enam atau mungkin berusia 10-tahun. Dan itu hanya karena aku mampu mengambil CS50 di hari dalam versi setara SAT / UNS-- lulus / gagal kembali day-- yang yang bahkan saya mengambil 50. Dan entah bagaimana, aku di sini lagi dengan Anda hari ini. Sekarang sementara apa lagi yang Anda harus diingat tentang 50 adalah pendaftaran simultan. Berlawanan dengan rumor yang Anda mungkin telah mendengar, Anda bisa, pada kenyataannya, secara bersamaan mendaftar di CS50 dan kelas lain yang bertemu pada saat yang sama atau tumpang tindih waktu sebagai kuliah CS50 ini di sini. Lihat silabus untuk keterangan pelaksanaan tersebut. Kuliah, sementara itu, bertentangan dengan apa resmi dalam katalog, umumnya hanya akan bertemu untuk hanya satu jam. Pada kesempatan kita dapat menjalankan agak lama. Namun perlu diingat bahwa tujuan dalam kuliah CS50 ini adalah untuk menyediakan Anda dengan gambaran konseptual, mudah-mudahan beberapa demonstrasi, mungkin bahkan beberapa hadiah, dari apa yang menanti untuk minggu yang berikut. Maka dalam kuliah, kita akan menjelajahi topik dan contoh bersama-sama, membawa siswa di atas panggung, dan staf di panggung sesering yang kami bisa, untuk hanya beberapa jam setiap minggu. Bagian, sementara itu, akan yang ditawarkan oleh orang-orang ini di sini-banyak dari mereka mengajar rekan-rekan, beberapa dari mereka akan tentu saja assistants-- terjadi mingguan. Dan apa kunci untuk menjaga diingat adalah kita yang jangan harus-- tidak seperti Pertama Malam, musik kelas ini trek yang berbeda dari bagian untuk siswa yang kurang nyaman, lebih nyaman, dan di antara keduanya. Dan terus terang, Anda tahu apakah Anda kurang nyaman. Dan Anda mungkin tahu jika Anda lebih nyaman. Dan jika Anda tidak benar-benar yakin, Anda menurut definisi suatu tempat di antara. Jadi ketika tiba saatnya untuk bagian dalam seminggu atau lebih, per silabus, kami akan mengajukan pertanyaan itu. Dan Anda dapat memilih sendiri Berbasis pada tingkat kenyamanan Anda sendiri dan bersama students-- bersama hijau dots-- serupa di tingkat kenyamanan Anda. Sementara itu, kita punya masalah set, yang pada akhirnya akan mendefinisikan pengalaman Anda dalam kursus ini. Mereka menawarkan biasanya dalam beberapa edisi. Edisi standar yang kita harapkan paling setiap siswa di kursus untuk mengatasi tetapi juga disebut edisi hacker yang tidak menawarkan bentuk kredit tambahan langsung tapi benar-benar hak membual untuk mengatakan bahwa Anda mencoba dan ditangani edisi hacker saja yang mendekati bahan yang sama tapi dari sudut yang lebih canggih. Apa yang kami tawarkan untuk Edisi standar,, lagi, mayoritas yang super siswa, tidak hanya berjalan-through, yang video yang dipimpin oleh staf program ini yang benar-benar memandu Anda melalui masalah saja dan mungkin desain implementasi. Dan kami juga, setelah Bahkan, menawarkan postmortem, dimana jika Anda bertanya-tanya bagaimana Anda bisa memiliki atau seharusnya diselesaikan beberapa masalah, staf pengajar akan memandu Anda melalui orang-orang di video juga. Sementara itu, apa yang menanti juga adalah lima hari terlambat dan fakta bahwa kita akan turun Anda Masalah terendah mengatur skor. Kita tentu menghargai bahwa dalam pertukaran untuk beban kerja yang 50 mengharapkan Anda, kehidupan mendapat di jalan kadang-kadang, jika tidak lima kali. Dan jadi ini akan menawarkan Anda sedikit fleksibilitas, memperpanjang batas waktu Anda dari, katakanlah, Kamis siang sampai Jumat pada siang hari. Lihat silabus untuk Rincian pelaksanaan daripadanya. Sekarang apa yang sekarang menunggu? Dan itu hanya terjadi saya sekarang hanya berapa lama Saya mengalami kalian berdiri di sini di atas panggung. [Tertawa] DAVID J. Malan: Tapi kita akan sampai ke selesai klimaks sebelum lama. Jadi apa yang menanti dalam hal set masalah? Yah, mungkin teaser dari apa yang kita semua lakukan tahun lalu dengan pendahulu Anda. Dalam masalah pertama set tahun lalu, kami memperkenalkan Scratch, grafis yang bahasa pemrograman yang memungkinkan Anda memprogram harfiah oleh menyeret dan menjatuhkan potongan puzzle, seperti ini, yang mengingatkan pada konstruksi akan melihat hanya satu minggu karenanya, ketika kita beralih untuk lebih tradisional bahasa, yang dikenal sebagai C. Tahun lalu kami melanjutkan masalah set ini, melibatkan untuk kriptografi, mengacak informasi untuk menjaga dari pemerintah atau teman ' mata yang tidak ingin melihatnya. Dikodekan dalam sini adalah pesan yang segera Anda akan dapat mendekripsi atau de-berebut. Breakout adalah masalah yang ditetapkan tahun lalu, dimana Anda menggunakan ini menemukan pemrograman baru keterampilan untuk benar-benar melaksanakan permainan wherein-- Anda mungkin ingat dari childhood-- tujuannya adalah untuk bash batu bata yang di atas layar di sini, dan mengumpulkan banyak skor sepanjang jalan, dan menerapkan algoritma Anda sendiri dengan yang solusi ini pada akhirnya memungkinkan Anda bermain game. Sementara itu, kemudian di semester, kami akan memberikan kamus 143.091 kata dalam bahasa Inggris. Dan Anda akan ditantang untuk menulis sebuah program yang mantra cek, dokumen, berdasarkan memuat banyak kata-kata ke dalam memori seefisien mungkin. Umumnya pitting Anda terhadap teman sekelas Anda jika Anda memilih menjadi sedikit Tantangan di papan pemimpin untuk melihat siapa yang dapat menggunakan paling sedikit detik waktu berjalan, dan jumlah paling sedikit megabyte memori, dan benar-benar fine-tuning program Anda menjadi sangat sumber daya yang efisien tidak hanya waktu. Tahun lalu, juga, kita melihat akhir semester di pemrograman web. Dan memang, kita akan melakukannya lagi ini tahun dengan beberapa set masalah, memperkenalkan Anda ke teknik dan pola pikir yang Anda dapat menerapkan keterampilan pemrograman untuk website, website dinamis, website yang benar-benar memecahkan masalah dan berperilaku berbeda dan tidak hanya statis situs dengan informasi statis. Proyek akhir akhirnya akan menentukan, meskipun, klimaks tentu saja bagi siswa, dimana Anda akan ditantang untuk mengimplementasikan sebagian besar hal-hal menarik kepada Anda, asalkan entah bagaimana mengacu pada pelajaran kursus ini. Dan seperti yang Anda lihat di Video di awal, kita akan menyimpulkan semester dengan CS50 Hackathon, yang jika, asing, akan dimulai pada 07:00 satu malam dan berakhir pada 07:00 pagi berikutnya. Sekitar 09:00, kita akan urutan makan malam pertama. Sekitar 01:00, kita akan urutan makan malam kedua. Dan jika Anda masih berdiri di 5:00, kita akan shuttle bus Anda ke IHOP untuk sarapan. The CS50 adil, sementara itu, adalah suatu peristiwa yang 2.000 ditambah dosen, mahasiswa, dan staf dari seluruh kampus akan datang untuk melihat prestasi Anda dalam perjalanan dan final proyek dan kreasi yang Anda buat pada laptop Anda, desktop, atau lampu bahkan mungkin cahaya. Sementara itu, jam kantor dan struktur dukungan. Dan sekarang itu sudah menjadi waktu yang lebih baik untuk membawa Anda semuanya. Jam kerja akan berlangsung empat malam seminggu untuk beberapa jam setiap malam dengan umumnya 20 sampai 30 dari Staf program ini bertugas sekaligus untuk menyediakan Anda dengan intim satu-on-satu peluang untuk dukungan dengan masalah set kursus ini. Bimbingan juga akan tersedia, terutama bagi siswa kurang comfortable-- atau berani mengatakan sedikitnya comfortable-- untuk siapa jam kantor bukan kebanyakan lingkungan pengasuhan dan tentu saja tidak yang paling bebas stres. Terutama ketika tenggat waktu mendesak, kita secara proaktif akan memasangkan Anda sendiri dengan anggota staf untuk bekerja dengan pada beberapa jadwal rutin sebagai kebutuhan Anda dan jadwal mereka memungkinkan. Dan staf. Izinkan saya untuk memperkenalkan Davon, Rob, dan Gabriel, kepala tahun ini. Jika Anda masing-masing akan ingin say-- [Tepuk Tangan] kata -sebuah. [Tepuk Tangan] Davon di sini adalah Pengelola mata kuliah, yang berarti dalam peran penuh waktu dia membantu dengan eksekusi dan logistik CS50. Davon: Ya, hi, guys. Anda akan melihat banyak bagi saya pada jam-jam kantor. Aku akan mengajar bagian. Dan jika Anda menembak email ke depan, Aku mungkin akan merespons. Jadi saya akan melihat banyak Anda semua semester. Dan selamat datang CS50. DAVID J. Malan: Dan sekarang Gabriel, yang dirinya hanya mahasiswa baru tahun lalu, tapi untuk beberapa tahun memiliki telah beroperasi versinya sendiri CS50 di Brazil, dimana dia download semua content-- kursus ini yang jelas menjadi difilmkan dan ditempatkan online-- sehingga ia bisa menerjemahkannya ke Portugis dan kemudian mengajar lebih dari 100 teman sekelasnya atas Tentu saja dari beberapa tahun, mengajar dalam bahasa aslinya kurikulum kursus ini. GABRIEL: Hello. [Tepuk Tangan] GABRIEL: Hi, aku Gabriel. Aku TF kepala kursus. Dan saya berharap Anda akan menyukai CS50. Ini adalah CS50. DAVID J. Malan: Sekarang untuk Rob. Oh, Anda ingin pengenalan? ROB: Tidak, aku tidak tahu. [Tertawa] DAVID J. Malan: Dan Rob Boden. [Tertawa] ROB: Hi, aku Rob. Ini adalah tahun kelima saya terlibat dengan kursus. Setiap tahun, itu hanya lebih baik dan kelas yang lebih baik, jadi kalian jelas akan menjadi luar biasa. Saya harap Anda semua bersenang-senang dengan itu. Aku akan bersenang-senang dengan itu. Jadi melihat Anda di sekitar. DAVID J. Malan: Dan kali tidak akan mengizinkan Us-- [Tepuk Tangan] Waktu tidak akan mengizinkan kita untuk memperkenalkan semua orang di panggung dan semua rekan-rekan mereka yang berbelanja kelas hari ini. Tapi izinkan saya untuk memperkenalkan Belinda dan CS50 Puzzle Hari, yang menanti ini Sabtu, datang yang adalah yang pertama dari acara skala besar program ini. Yang satu ini khususnya dimaksudkan untuk menempa hal tersebut bahwa ilmu komputer pada akhirnya bukan tentang pemrograman, melainkan tentang pemecahan masalah yang lebih umum. Dan Teka-hari, seperti yang Anda akan lihat, akan membawa Anda dan teman sekelas Anda together-- kami berharap Sabtu ini. BELINDA: OK. Hi, guys. Jadi terima kasih. Jadi sebagai kapten terkenal kami kata, nama saya Belinda. Saya seorang mahasiswa di Quincy House. Aku, sama seperti kalian, mengambil CS50 tahun lalu, benar-benar menyukainya. Aku punya tempat yang lembut untuk kalian di baris ketiga. Dan aku bangga untuk mengatakan, aku sekarang dalam hubungan berkomitmen dengan CS50 [Tak terdengar]. OK. Itu versi lumpuh saya lelucon. Pokoknya, jadi pindah, hanya ingin mengajak kalian semua untuk i-lab, atau HBS gatal-gatal. Kita akan memiliki Teka-teki Hari 12:00-03:00. Dan itu adalah kesempatan besar bagi Anda orang untuk bertemu sesama CS teman Anda, memecahkan beberapa CS non-teka-teki, seperti Kapten disebutkan, dan juga makan beberapa makanan gratis, memperoleh beberapa hadiah menarik, seperti kartu hadiah, $ 75 per orang, dan also-- apa itu? Wii U atau sesuatu? Wii U? Ya. Untuk undian kami. Keren. Jadi aku akan tetap sekitar setelah kelas. Dan jika kalian punya pertanyaan, beritahu saya. DAVID J. Malan: Dan Anda akan melihat, di luar ini tidak ada yang harus dilakukan hari ini. Masalah pertama set akan keluar Jumat. Tapi untuk membawa kami pulang hari ini, saya ingin memperkenalkan Anda untuk secara khusus satu lagi anggota staf, Colton Ogden sini, yang tangannya sekarang dilindungi atas Anda dengan MIDI controller untuk menempa hal lebih lanjut bahwa ilmu komputer, juga, telah diterapkan jauh melampaui teknik dan STEM dan ilmu komputer itu sendiri, memperluas bahkan ke domain seperti musik. Colton memiliki ramah offered-- saya pikir salah satu dari mereka akan memperbaiki fokus. Andrew, jika kita bisa memanggil fokus di sini untuk sesaat. Apa Colton telah melakukan di muka Program perangkat ini, pad ini tombol Anda lihat gambar di sini, sebagai MIDI controller, dimana masing-masing tombol ditransfer ke catatan musik tertentu atau suara, lebih umum rekaman, sehingga dengan bermain pola ini tombol, seperti pola bit, dapat mewakili lainnya konsep tingkat yang lebih tinggi. Apakah dia bisa akhirnya untuk membawa kami pulang di sini hari ini? Tanpa basa-basi lagi, jika kita bisa meredupkan lampu, dan menyalakan layar belakang Colton. AUDIENCE: Woo! DAVID J. Malan: Ini adalah CS50. [MUSIC PLAYING] [Tepuk Tangan] Itu saja untuk CS50. Kita akan melihat Anda Jumat. Beberapa kue menanti Anda di Transept. [MUSIC PLAYING]