[MUSIC PLAYING] [MUSIC PLAYING] DAVID Malan: Baiklah. Ini adalah CS50. [MUSIC BERMAIN Tritonal, Kas Kas,  "Paria"] [MUSIC PLAYING] SPEAKER 1: Aku akan Perancis, dan Anda akan juga. [MUSIC PLAYING] DAVID Malan: ini adalah CS50, Pengenalan Harvard University dengan intelektual perusahaan ilmu komputer dan seni program-- dan untuk pertama kalinya dalam sejarah, Yale University juga. Memang, apakah Anda berada di sini di Cambridge atau di New Haven atau Miami atau St. Louis atau Amsterdam atau di mana saja keliling dunia mengambil CS50, komputer ilmu E50, CS50X, CS50 AP, kita semua adalah satu dan sama. Selamat Datang di CS50. Apa yang kita miliki-- [TEPUK TANGAN] [LAUGHS] [TEPUK TANGAN] Jadi saya membuat kesalahan sendiri beberapa waktu yang lalu ketika saya mulai kuliah. Dan aku kuliah, dan saya memutuskan untuk terus terang, tetap dalam zona kenyamanan saya. Saya akhirnya menyatakan konsentrasi, atau besar, pemerintah. Semut itu sebagian besar fungsi dari saya menjadi cukup akrab dengan pemerintah atau setidaknya sejarah atau aku benar-benar menyukai hukum konstitusional di sekolah tinggi. Dan jadi ketika saya tiba di sini, aku agak dari tertarik ke arah hal-hal dengan yang saya sudah akrab. Kanan? Allah melarang saya lakukan buruk di kelas. Saya pasti ingin tinggal dalam zona kenyamanan saya, dan itu tidak sampai tahun kedua bahwa saya akhirnya bangun keberanian untuk langkah kaki di kelas yang disebut CS50. Dan pada saat itu, apakah saya akhirnya menyadari bahwa, Allahku, PR benar-benar bisa bersenang-senanglah. Memang, saya adalah salah satu dari anak-anak bahwa pada Jumat malam saat P-SETS akan dirilis, saya akan kembali ke kamarku dan menyelam ke P-SETS malam itu. Dan bagi saya, itu adalah tanda bahwa ini adalah bidang bagi saya. Tapi yang lebih penting adalah fakta bahwa saya melakukan bangun saraf ini menjelajahi perairan asing bagi saya dan melampaui zona kenyamanan saya sendiri dan terus terang, saya hanya bisa melakukan itu tahun kedua dengan mengambil kelas ini lulus / gagal. Memang, itu adalah hari terakhir yang Saya akhirnya beralih dan akhirnya menyatakan CS sebagai konsentrasi saya, menempatkan gov pada saat itu di belakang saya. Dan jadi kita tidak menetapkan di Tentu saja ini untuk mengubah semua Anda ke jurusan CS atau konsentrator, tapi bukan untuk memberikan kesempatan mudah-mudahan melampaui dunia dengan yang saat ini Anda familiar dan membawa kembali dari dunia ini keterampilan dan pengetahuan dan cerdas yang dapat Anda terapkan untuk Anda dunia sendiri, apakah itu dalam humaniora, ilmu sosial, ilmu alam, atau di luar. Memang, jika Anda merasa sedikit pemberani tentang berada di ruangan ini apalagi di kelas ini, menyadari bahwa jika sejarah adalah indikasi, 72% dari Anda tidak pernah mengambil kursus CS sebelumnya. Sehingga dengan segala cara tidak terjadi bahwa siswa yang duduk di sebelah kiri atau ke kanan atau di depan atau di belakang Anda tahu lebih jauh tentang CS atau pemrograman khususnya dari Anda. Itu tidak pada kenyataannya kasus ini. Dan memang, banyak struktur dukungan bahwa kita telah didirikan di ini Tentu saja selama bertahun-tahun terakhir telah untuk persis bahwa reason-- untuk memberikan pada jalan yang masih keluar seperti ketat dan hanya setinggi ever-- namun kemiringan yang memungkinkan siswa kurang nyaman dan lebih nyaman sama untuk berhasil terlepas latar belakang nya sebelumnya. Memang, apa yang akhirnya hal di kelas ini tidak begitu banyak di mana Anda berakhir relatif terhadap teman sekelas Anda tetapi di mana Anda di minggu 12 berakhir relatif terhadap diri sendiri di minggu nol, yang di mana kita berada di sini hari ini. Memang dan ini mungkin sangat baik dan mungkin terlihat seperti Yunani untuk banyak dari Anda. Tapi yakinlah, bahwa ini dan banyak lagi akan menjadi benar-benar dalam Anda memahami dalam hanya sedikit waktu. Tapi hari ini, kita fokus pada beberapa dari ide-ide yang lebih tinggi untuk memberikan rasa CS50 dan ilmu komputer dalam arti apa Anda mendaftar untuk. Dan memang, ilmu komputer mungkin suling lebih hanya sebagai thinking-- komputasi berpikir seperti komputer, jika Anda mau. Dan ada begitu banyak hal yang berbeda bahan yang masuk ke dalam, tapi mari kita mengusulkan tiga untuk hari ini. Jika tujuan dari kelas akhirnya tidak untuk mengajarkan Anda pemrograman, tidak untuk mengajarkan Anda C atau PHP atau SQL atau sejumlah kata-kata dan akronim dalam deskripsi saja ini, melainkan untuk mengajarkan Anda untuk memecahkan masalah secara lebih efektif dan berpikir lebih metodis dan lebih algoritme, sehingga untuk berbicara. Mari kita lihat apa sebenarnya ini berarti. Jadi saya akan mengusulkan pemikiran bahwa komputasi bermuara untuk memecahkan masalah. Apa yang Anda butuhkan untuk memecahkan masalah? Anda perlu input-- seperti input ke problem-- yang Anda memerlukan output, yang adalah mudah-mudahan solusi, dan kemudian Anda perlu proses yang untuk mengatasi masalah tersebut, yang kami akan memanggil algorithm-- satu set petunjuk untuk memecahkan beberapa masalah. Tapi pertama-tama, mari kita fokus pada yang pertama dan yang terakhir dari input dan output. Komputer setelah semua, rupanya hanya mengerti nol dan satu. Tapi bagaimana bisa itu mungkin? Bahkan jika Anda tidak terbiasa sama sekali dengan apa yang di bawah kap mesin, Anda mungkin setidaknya mendengar bahwa komputer memahami binary-- hanya nol dan ones-- tapi bagaimana Anda mungkin melakukan sesuatu yang menarik? Nah, salah satu tema kelas akan untuk menjadi ini layering-- mana hari ini, kita akan mengambil sekilas di tingkat terendah rincian, tetapi dengan masing-masing melewati hari, di mana kita lapisan atau abstrak di atas mereka rincian untuk benar-benar menyelesaikan tingkat yang lebih tinggi masalah menarik bagi kami. Jadi di sini adalah apa yang kita sebut binary-- hanya dengan alfabet 0 dan 1. Tapi kita manusia yang sebagian besar akrab dengan desimal. Desember makna 10. Bi berarti dua. Dan di desimal sistem, kita memiliki 10 digit di disposal-- kami Tentu saja, nol sampai sembilan. Jadi jika Anda melihat nomor seperti ini, sebagian besar dari Anda intuitif hanya pegang yang 123. Tidak ada yang benar-benar keras tentang itu. Tapi mengapa 123? Nah, jika Anda berpikir kembali ke school-- kelas atau setidaknya cara saya belajar ini jenis dunia-- Anda mungkin ingat bahwa kita memperlakukan ini hal di kolom, atau tempat-tempat. Jadi kita memiliki tempat yang di sebelah kanan. Puluhan tempat di tengah. Ratusan tempat di sebelah kiri. Dan kemudian bagaimana kita mendapatkan dari pola ini symbols-- 1 2 3-- ke tingkat yang lebih tinggi ini Ide yang kita kenal sebagai 123? Nah, itu hanya beberapa aritmatika sederhana. Kanan? Yang ada dasarnya berarti memberi kita 100 kali 1 ditambah 10 kali 2 ditambah 1 kali 3. Dan tentu saja jika kita melakukan keluar matematika ada, itu 100 ditambah 20 ditambah 3-- atau dikenal sebagai 123. Jadi jika Anda berada di Halaman yang sama sebagai hak yang sekarang dan merasa nyaman dengan disebut-sistem desimal sebagai manusia, itu sebenarnya baik dalam lingkup kenyamanan Anda mempertimbangkan sekarang sistem biner. Ambil liar guess-- ini mewakili, di dunia komputer di binary-- nomor apa? Nol. Tapi kenapa begitu? Nah, ternyata kolom atau tempat di sini-mereka tidak kekuatan 10. 1, 10, 100, 1.000, dan sebagainya. Mereka sebaliknya, cukup hanya, kekuatan dari 2. Jadi, 1, 2, 4, 8, 16, 32, dan seterusnya. Dan sekarang kita tentu bisa 0 di sini hanya karena kita memiliki 4 kali 0 ditambah 2 kali 0 ditambah 1 kali 0, yang tentu saja memberi kita 0. Tapi bagaimana aku pergi tentang mewakili nomor 1? Apa pola nol dan satu untuk mewakili jumlah kita manusia kenal sebagai 1? 001. Dan 2? 010. Dan sekarang pola mulai mengulangi. Sekarang 011. Dan lagi, 0 merangkak, satu 2, satu 1. Jadi 2 ditambah 1. Itu 3. Dan sekarang untuk mewakili 4, kami tidak hanya mengubah bahwa 0 ke 1. Anda semacam harus membawa, sehingga untuk berbicara, dan nomor mulai membalik sekitar hanya seperti di dunia desimal. Jadi ini adalah 4. Ini adalah 5. Ini adalah 6. Ini adalah 7. Dan jadi kami telah dihitung setinggi 7. Sekarang semua kita hanya perlu lebih merupakan bits-- lebih nol dan satu. Dan memang "bit", jika Anda sudah mendengar digit biner term-- ini. Bit adalah tempat yang berasal dari. Dan jika kita ingin mewakili angka yang lebih besar, kita perlu lebih banyak bit. Tapi mari kita pindah dari slide sekarang untuk sesuatu yang sedikit lebih nyata. Misalkan kita ingin benar-benar mewakili hal ini. Nah mari kita lihat sekarang pada demonstrasi sedikit. Jadi ini adalah aplikasi berbasis web bahwa salah satu CS50 sendiri, Michael G, disatukan musim panas ini untuk membantu kami menjelaskan persis ide ini. Dan seseorang seperti untuk usaha di atas panggung di depan semua nya teman sekelas? Tepat di depan. Ayo up. Anda harus nyaman pada kamera dan internet. Oh, di sini. OKE. Kami OK. Baiklah. Ayo up. Siapa namamu? Emily datang ke atas. Jadi ini adalah Emily. Tahun berapa kamu? Freshman. Emily, senang bertemu Anda. David. Baiklah. Jadi di layar di sini, kami memiliki layar sentuh ini yang akan memungkinkan kita untuk benar-benar berinteraksi dengan program ini, dan itu hanya browser. Ini Chrome penuh disaring pada saat ini, tapi itu telah diprogram oleh Michael untuk merespon dengan cara yang memungkinkan kita untuk bermain-main dengan angka biner. Jadi misalnya, di sini kita belum tiga tapi delapan nol bits-- dan orang-orang. Sekarang, kami melihat angka 0. Dan memang, semua delapan nol dalam desimal berarti nol. Jadi itu semua yang yang mengisyaratkan sini. Jadi jika Anda ingin merupakan jumlah 8, apa pola nol dan orang-orang yang Anda inginkan? Anda hanya dapat menekan atas atau bawah atau nomor sendiri. Baiklah. Sehingga tentu saja adalah 8, seperti yang Anda lihat di sana. Dan jika kita ingin jangan 16, apa yang kita lakukan? Yap, hanya menyentuh lagi. 16. Baiklah. Jadi ini semua baik dan bagus, itu masih tingkat yang sangat rendah. Kita perlu cara di dunia nyata untuk Emily untuk benar-benar mewakili hal-hal ini. Dan misalkan kita mengubah ini nol dan satu, yang sangat konseptual, menjadi bola lampu yang sebenarnya. Kanan? Sebuah komputer adalah fisik, mekanik, perangkat listrik. Dan input-- yang setidaknya jika Anda pasang atau biaya itu-- adalah memiliki daya baterai dan elektron mengalir masuk dan keluar. Jadi sekarang, kenapa tidak kita berhenti berpikir tentang bit sebagai nol dan satu, tapi sesuatu yang lebih fisik seperti bola lampu di sini. Dan jika Dan Armendariz bisa bergabung saya untuk hanya moment-- datang pada up-- kita akan mengantri aplikasi. Ayo lebih, Emily. Maaf ini adalah yang paling Demo canggung untuk Anda yang pernah. Ayo ke sini. Kita akan antrian dengan berkat Dan Armendariz, anggota lain dari staf kami, aplikasi yang dikenal sebagai bola biner. Jadi apa yang kita miliki di sini adalah sebuah aplikasi iPad yang memiliki pengguna berikut antarmuka pada layar untuk Emily. Ini hanya punya UI yang sama persis dasarnya itu di sana. Dan jika Anda sekarang ingin mewakili nomor, mengatakan 8, bagaimana Anda akan pergi untuk melakukan memerhatikan ini di sebelah kanan, bola lampu yang kita miliki di sini? Ah-ha. Gaib. Jadi jika kita ingin sekarang mengubah ini menjadi sesuatu yang sedikit lebih menantang, dan mari kita pergi ke depan dan memilih secara acak nomor seperti nomor 50 di sini. Masukan ini. Dan jika Anda sekarang dapat ditantang untuk datang dengan jumlah 50, kita akan memiliki hadiah yang luar biasa untuk Anda. EMILY: OK. Astaga. DAVID Malan: Arithmetic memang sulit di depan ratusan teman sekelas Anda. Tapi 50 telah jawabannya di sini. [TEPUK TANGAN] Dan sekarang, ini dimaksudkan untuk menjadi demonstratif untuk Emily. Jadi, di sini, adalah terang lampu cukup seperti ini, tapi itu sebenarnya strip magnetik kecil. Dan apa yang keren tentang hal ini dan alasan kita menggunakannya dalam CS50 adalah bahwa mereka mendukung sesuatu yang disebut sebuah API-- pemrograman aplikasi interface, yang adalah cara mewah mengatakan bahwa apa yang salah satu staf kami tidak selama musim panas itu membuat aplikasi iPad sini yang berbicara melalui internet dengan bola lampu di sini, yang secara nirkabel terhubung ke perangkat lain. Tapi ini sekarang pilihan untuk proyek-proyek akhir. Dan Emily, jika Anda akan jadi seperti, pada akhir istilah, Anda dapat menghiasi kamar asrama Anda sementara itu dengan orang-orang. Terima kasih kepada Emily juga. [TEPUK TANGAN] Tapi sekarang, mari perhatian kita untuk apa pesan yang mungkin tampak seperti, dan itu sedikit sesuatu seperti ini. Bahkan, ini adalah Contohnya saja sebagai penggoda dari apa yang akan datang dari apa yang disebut permintaan API. Dan apa yang kita miliki di sini hanyalah persis jenis pesan bahwa setelah beberapa minggu waktu di CS50, Anda akan dapat mengirim ke sesuatu yang cukup familiar seperti itu untuk benar-benar mengubahnya dan mematikan. Tapi ini semua baik dan bagus. Kanan? Kami memiliki model mental mudah-mudahan untuk mewakili angka dengan nol dan satu. Dan dari nol dan satu, kita bisa sampai ke angka yang lebih tinggi seperti 50, sebagai Emily hanya melakukan, atau kita dapat bergerak ke atas dari itu. Dan saya menyatakan bahwa kita dapat mewakili hal-hal seperti surat juga. Kanan? Komputer jauh lebih menarik daripada hanya nomor. Dan bagaimana Anda pergi tentang kata-kata yang mewakili pada layar atau email atau esai atau sejenisnya? Nah, ternyata komputer hanya abstrak di atas ini tingkat rendah rincian, dan manusia beberapa waktu lalu, datang dengan sewenang-wenang, tapi konsisten, pemetaan angka untuk letters-- sehingga bahwa setiap kali Anda melihat huruf kapital Sebuah komputer Anda layar, kemungkinan besar apa di bawah tenda adalah pola nol dan satu yang mewakili jumlah, per bagan ini, 65. Dan fisik lebih dalam komputer Anda, jutaan hal yang disebut transistors-- days-- ini yang hanya beralih jika Anda mau, hal yang bisa pergi dan mematikan dan jadi bayangkan. Tidak delapan dari bola lampu besar tapi jutaan ini sedikit cahaya kecil lampu, atau switch atau transistor, yang dapat menghidupkan dan mematikan didasarkan pada bagaimana Anda program mereka. Dan sekarang kita memiliki cara mewakili huruf juga. Bahkan, jika saya harus menggunakan ini pemetaan sini dan mencoba untuk benar-benar mantra sesuatu, kita mungkin terlihat di pola angka desimal sekarang juga. Jadi kita tidak akan bahkan fokus pada biner lagi. Mari kita pertimbangkan ini sebagai angka desimal 72, 73, 33. Tapi apa mungkin ini mewakili? Ada yang punya cukup ingatan fotografis tahu apa yang dibilang pada layar di sini? Ya beberapa. Jadi hi. H-I dan kemudian tanda seru, yang tidak benar-benar di layar. Tapi memang ada pemetaan untuk setiap surat kepada setiap nomor Anda mungkin ingin mengetik pada keyboard Anda. Tapi nomor tidak perlu hanya mewakili huruf. Kanan? Semua dari kita tahu tentang gambar dan foto-foto dan file audio dan file video dan sejenisnya. Jadi jelas kita dapat mewakili hal tingkat yang lebih tinggi masih. Dan jadi apa komputer tidak hanya memilih menafsirkan pola nol yang berbeda berdasarkan konteks. Jika Anda klik dua kali ikon Microsoft Word, Anda melihat kata-kata di layar bukannya warna dan gambar karena kata tahu bahwa ini adalah esai yang Anda sudah benar-benar mengetik. Jika Anda bukan klik dua kali pada JPEG atau GIF atau PNG, membuka dan gambar karena .PNG Atau .docx atau apa pun file ekstensi dan perangkat lunak apa pun Anda menggunakan tahu untuk menafsirkan pola nol dan satu berbeda berdasarkan apa tujuannya dalam hidup adalah. Jadi misalnya, ini urutan yang sama dari nomor mungkin mewakili berapa banyak merah yang Anda inginkan, berapa banyak hijau yang Anda inginkan, dan berapa banyak biru yang Anda inginkan. Dan memang, jika Anda pernah mendengar RGB-- biru hijau sehingga hanya merah. Dan jadi jika saya melihat angka seperti, ini memberi saya 72 merah, memberi saya 73 hijau, dan 33 biru, ini adalah bagaimana komputer menggunakan tiga bytes-- mana byte adalah delapan bit atau 24 bits-- akan mewakili warna yang cukup buruk coklat atau kuning di sini. Dan dalam konteks yang berbeda, bisa mereka persis pola yang sama di nol dan satu berarti sesuatu yang sama sekali berbeda juga. Jadi kita sekarang memiliki cara untuk mewakili nol informasi-- dan orang-orang. Di atas semua itu, kita mendapatkan surat. Di atas semua itu, kita mungkin mendapatkan warna. Dan mari kita asumsikan untuk hari ini bahwa kita bisa mendapatkan audio dan video dan hal-hal jauh lebih canggih dari itu. Tapi sekarang mari kita pertimbangkan bagaimana kita menggunakan mereka input dan menghasilkan orang-orang output sekarang kita memiliki cara untuk mewakili informasi tersebut. Nah, kita membutuhkan sesuatu disebut algoritma. Sekali lagi, satu set instruksi untuk memecahkan beberapa masalah langkah demi step-- dan lebih tepat, lebih baik. Dan jadi contoh dengan yang manusia diakui kurang akrab hari ini, tapi tetap saja masih dengan kami dalam perangkat lunak, adalah proses mencari up seseorang di buku telepon. Sekarang, semakin sedikit orang tahu setiap tahun apa peninggalan ini sebenarnya ada di sini. Tapi kembali pada hari saya, ini adalah buku telepon dengan ribuan halaman dan nomor dan nama orang dari A sampai Z. Dan meskipun kita jenis kecurangan a bit-- ini adalah sebagian besar halaman kuning. Ada juga putih halaman pada saat itu, yang memiliki semua nama-nama itu dan jumlah manusia yang sebenarnya. Dan jika saya ingin melihat seseorang di buku telepon seperti hari ini, tentu saja, Saya cukup ketik dalam beberapa pertama karakter dari namanya, dan telepon saya menemukan informasi tersebut. Tapi proses dimana iPhone atau ponsel Android Anda atau apa pun yang benar-benar menemukan seseorang dalam daftar kontak Anda identik dengan apa yang kita manusia mungkin telah dilakukan selama beberapa waktu. Sekarang saya bisa mengambil ini masalah, jika Anda mau, dan input sini tidak nol dan satu. Mereka pages-- seperti, katakanlah 1.000 halaman. Dan jika saya ingin mencari seseorang seperti Mike Smith dalam buku telepon ini, Aku bisa mulai dari awal dan melihat bahwa aku di bagian A dan kemudian mengubah satu halaman pada waktu, mencari dan mencari seperti yang saya buat untuk B dan C dan D's dan sebagainya untuk Mike Smith. Smith mulai dengan S, aku akan mudah-mudahan akhirnya menemukannya. Apakah algorithm-- ini yang process-- benar? Ya. Itu benar. Aku akan menemukan Mike jika dia di sini, tapi apa peringatan yang mungkin Anda tawarkan. Itu lambat. Kanan? Aku tahu Mike S adalah semacam menuju paruh kedua buku telepon. Kenapa sih aku mulai dari awal dan akan halaman demi halaman demi halaman. Jadi tentu saja, saya bisa flip sekitar dan mulai dari belakang, tapi itu akan mendapatkan saya ada pada tingkat yang sama, jika Anda willl-- halaman setelah halaman demi halaman. Dan itu tidak akan bekerja jika saya ingin untuk mencari orang lain yang Nama datang lebih awal dalam alfabet. Jadi bagaimana jika saya melakukan apa yang saya belajar di sekolah dasar, lagi, melakukan hal-hal tidak oleh orang-orang tapi dengan berpasangan. Jadi 2, 4, 6, 8, 10, 12, dan sebagainya. Apakah itu benar? Tidak. Ini semacam benar. Tetapi beberapa dari Anda yang bergumam tidak, di mana adalah masalah, atau bug, kesalahan sehingga untuk berbicara. Ya. SISWA: Anda mungkin melewatkan atas entri yang tepat. DAVID Malan: Ya. Saya mungkin melewatkan Mike Smith adalah karena saya sudah dua halaman sekaligus dan dia hanya kebetulan terjepit di antara dua halaman. Saya mungkin akan menyadari bahwa Aku ke bagian T tidak memiliki ditemukan Mike Smith belum. Dan apa yang mungkin tetap ada? Nah, jika saya melakukan memukul Ts di buku telepon, Saya mungkin perlu dua kembali satu atau lebih halaman. Jadi itu diperbaiki, tapi itu tidak sesederhana seperti hanya akan dua untuk mempercepat kinerja saya. Tapi apa? Ayolah. Apa yang akan kebanyakan manusia hubungannya dengan jenis buku telepon? Anda diberi buku telepon. Apa yang kamu kerjakan? Apa itu? Pergi ke tengah. Jadi saya mendengar pergi ke tengah, dan saya menemukan diri kira-kira di bagian M, boleh dikatakan. Dan sekarang apa yang ingin saya lakukan? Kerja bagus. Siapa namamu? JAMES: James. DAVID Malan: James, baiklah. Apa yang harus saya lakukan selanjutnya? JAMES: Anda pergi di setengah yang memiliki S. DAVID Malan: Baiklah. Aku akan pergi ke setengah yang memiliki S di dalamnya karena, sekali lagi, Penetapan sini adalah bahwa hal ini diurutkan. Ini adalah cukup berguna 1.000 halaman jika Verizon tidak benar-benar memilah hal-hal ini bagi kita A sampai Z. Jadi jika saya tahu Mike mungkin di paruh kedua buku telepon, Sekarang saya bisa. [LAUGHS] Merobek masalah di setengah. [TEPUK TANGAN] Terima kasih. Merobek masalah di setengah. Itu benar-benar real-- perjuangan itu. Jadi merobek buku telepon di setengah, meninggalkan diriku dengan fundamental masalah yang sama. Tapi tentu saja, setengah besar. Dan jika saya mengikuti James saran lagi, dan aku pergi di sini. Saya katakan, oh sekarang aku di bagian T. Dan tentu saja, saya dapat merobek buku telepon setengah sekali lagi, meninggalkan saya dengan masalah yang sekarang seperempat dari ukuran. Jadi aku pergi dari 1.000 menjadi 500 250 untuk 125 dan sebagainya. Rasanya seperti aku mengambil gigitan besar keluar masalah ini dengan masing-masing iterasi, atau setiap langkah di dalamnya. Dan memang, waktu aku akan menghabiskan menemukan Mike Smith dalam contoh ini begitu banyak kurang karena akhirnya aku akan mengurangi buku roti manis ini turun hanya satu halaman tunggal. Dan jika Mike ada di halaman itu, aku akan pergi ke depan dan memberinya panggilan setelah menemukan dia. Tapi seberapa jauh lebih baik adalah bahwa algorithm-- yang berani mengatakan intuitif algorithm-- daripada yang kita mulai dengan yang kami sangat linear-- kiri ke right-- pada kecepatan 1 atau 2x? Nah, mari kita merencanakan ini. Kami tidak perlu khawatir terlalu banyak tentang matematika atau angka dalam hal ini di sini. Kami hanya melihat plot. Jadi pada x, atau sumbu horisontal, adalah ukuran problem-- yang berapa banyak halaman yang ada. Pada y, atau vertikal axis, adalah berapa banyak waktu itu akan membawa saya untuk menyelesaikannya. Dan mungkin itu berapa banyak Halaman bergantian, berapa detik, bagaimana banyak-- beberapa unit tindakan. Dan saya sudah ditarik garis lurus merah di sini karena jika setiap halaman tambahan dari buku telepon, saya memerlukan untuk membuat satu langkah tambahan. Jadi jika Verizon menambahkan satu Halaman lebih tahun depan, Aku mungkin harus membalik satu halaman lebih untuk menemukan seseorang seperti Mike Smith. Sementara itu, algoritma kedua, yang Aku pergi dengan berpasangan, adalah bentuk yang sama. Ini masih sangat linear, sangat kiri ke tepat, mengambil byte yang sama setiap kali, tapi kemiringan ini sedikit lebih rendah. Misalnya, jika ukuran Masalah yang kira-kira di sini dan saya menggunakan algoritma pertama saya, Aku mungkin berakhir semua jalan di bagian atas yang garis merah. Tapi jika saya bukan menggunakan untuk twosies mendekati, garis kuning menunjukkan karena itu lebih rendah, bahwa itu akan mengambil saya kurang waktu memecahkan. Tapi apa bentuk algorithm-- ketiga lagi, bisa dibilang algoritma yang paling intuitif? Nah, itu terlihat sedikit sesuatu seperti ini. Ini melengkung, atau logaritmik, dalam bentuk. Dan meskipun tidak pernah jenis mendatar, itu asimtotik inci dan dan up tapi sangat lambat dibandingkan segala sesuatu yang lain. Dan apa yang take away? Nah, kita menyebutnya log n. Tapi apa yang benar-benar berarti? Nah jika Verizon dua kali lipat jumlah halaman dalam buku telepon tahun depan dari 1.000 menjadi 2.000. Berapa banyak langkah lebih adalah saya algoritma pertama akan berlangsung? algoritma pertama saya. Mungkin 1.000 langkah lebih. Jika mereka dua kali lipat buku telepon, aku akan harus membolak-balik lain 1.000 halaman untuk menemukan Mike. Tentu saja, jika kedua algoritma, mungkin 500 karena aku akan dua kali lebih cepat. Tetapi jika Verizon ganda nomor halaman antara tahun ini dan berikutnya, dengan ketiga algorithm-- membagi dan menaklukkan bahwa James diusulkan, akan di setengah dan setengah dan half-- berapa banyak langkah lebih akan itu membawa saya tahun depan untuk memiliki buku telepon dari ukuran 2.000? Hanya satu. Karena dengan satu gigitan, saya bisa mengambil, keluar dari masalah itu, setengah dari halaman jauh. Dan jika Anda berpikir tentang hal ini sedikit ayun sekarang-- jika buku telepon tidak memiliki 1.000 atau 2.000 halaman, tapi katakanlah 4 miliar pages-- itu telepon besar book-- bagaimana berkali-kali atau berapa banyak langkah itu akan membawa saya untuk menemukan Mike Smith dalam buku telepon dengan 4 miliar halaman. Anda dapat semacam mulai melakukan matematika. Baiklah. 4 miliar dibagi 2. Jadi itulah 2 miliar dibagi dengan 1. Itu 1 miliar. Kemudian setengah miliar. Kemudian 250-- sehingga Anda dapat melakukan ini lagi dan lagi tapi tidak banyak kali sebelum Anda mendapatkan satu halaman. Dan memang, meskipun telepon Buku adalah 4 miliar halaman panjang atau database yang Anda cari adalah 4 miliar catatan panjang, itu akan membawa Anda memberi atau mengambil 32 langkah hanya untuk menemukan Mike Smith. Dan jika Anda menggandakan buku telepon berikutnya tahun 4000000000-8000000000, 33 langkah, bukan hanya 32. Dan ini merupakan bukti ke salah satu ide bahwa kita mungkin merangkul di komputer ilmu yang lebih umum, yang adalah pemikiran komputasi ini dan mendekati masalah terus terang menggunakan alat dari alat sudah akrab Anda kit-- dunia nyata dengan yang Anda kenal, tetapi memanfaatkan ide-ide untuk benar-benar memecahkan masalah. Tapi kita perlu memformalkan kami solusi untuk masalah ini. Dan biarkan saya memperkenalkan sejenak sesuatu yang kita sebut pseudo. Banyak semester, kita akan menghabiskan menggunakan kode aktual dalam bahasa seperti C dan PHP dan JavaScript dan SQL dan sejenisnya. Tapi untuk saat ini, mari kita lihat saja sesuatu cukup intuitif seperti bahasa Inggris. Saya mungkin menyaring bahwa algoritma dengan yang Saya menemukan Mike menjadi langkah-langkah seperti ini. Mengambil buku telepon Terbuka untuk tengah buku telepon Lihatlah nama ini Jika Mike adalah salah satu nama yang memanggil Mike Lain jika Smith adalah awal buku ini Terbuka ke tengah kiri setengah dari buku Lain pergi ke baris 3 Lain jika Smith adalah nanti dalam buku ini Terbuka untuk tengah kanan setengah dari buku Pergi ke baris tiga Lain Menyerah Dan ada beberapa karakteristik sekarang ini yang patut menunjukkan. Jadi satu, semua baris Aku sudah ditandai dengan warna kuning kita akan mulai menelepon pernyataan atau fungsi atau prosedur. Mereka hanya tindakan dilakukan ini, dan tidak ada semua yang banyak variabilitas untuk itu. Langkah berikutnya di sini meskipun, ini conditions-- jika, lain, lain jika, lain. Dan ini disebut kondisi, atau cabang, dan mereka poin keputusan. Dan mereka memungkinkan kita untuk melakukan sesuatu yang kondisional. Dan pada kenyataannya, mari kita cepat melihat mungkin face-- familiar kami akan memanggilnya Bill-- dan apa kondisi ini, bagaimana mungkin digunakan. BILL GATES: Orang-orang membuat keputusan setiap hari. Misalnya, sebelum Anda pergi ke luar Anda jenis memiliki pernyataan jika yang mengatakan, jika hujan, maka saya perlu untuk mendapatkan jaket. Dan komputer yang menakjubkan setelah Anda memutuskan orang-orang jenis laporan bahwa mereka dipercaya bisa mengeksekusi hal-hal dengan kecepatan luar biasa. Dan program komputer yang benar-benar adalah sedikit dari matematika dan beberapa jika pernyataan di mana keputusan akan dibuat. DAVID Malan: Jadi sekarang mari kita fokus pada lines-- yang berbeda yang saya sudah disorot warna kuning di sini. Dan ternyata ada yang berbeda cara mengekspresikan ide ini. Tapi secara intuitif apa yang kami baris 8 dan 11 bahwa saya telah disorot di sini memberitahu Anda melakukan? Ya, pergi ke baris 3, tapi apa perilaku yang benar-benar merangsang? Ini semacam lingkaran atau siklus, dan Anda dapat jenis melihatnya. Kanan? Jika pada baris 8, Anda kembali ke jalur 3, dan kemudian anda menekan garis 8 lagi, Anda mungkin kembali ke jalur 3, kembali ke jalur 3, kembali ke baris 3. Ada semacam ini siklus atau lingkaran. Dan memang, yang diinduksi dalam line 11 berpotensi juga. Dan ini adalah dasar pemrograman membangun juga. Anda mungkin tidak ingin hanya melakukan sesuatu dengan pernyataan atau melakukan sesuatu kondisional dengan kondisi atau cabang. Anda mungkin ingin melakukan sesuatu siklis dengan satu lingkaran. Dan kita akan memiliki orang lain dengan siapa Anda mungkin familiar-- kami akan memanggilnya Mark-- menjelaskan konsep ini di sini. Mark Zuckerberg: Satu hal yang komputer benar-benar baik di mengulang perintah. Sebagai seseorang, Anda akan mendapatkan benar-benar bosan jika Anda harus melakukan hal yang sama banyak kali berturut-turut, tetapi komputer dapat melakukan hal yang sama jutaan atau bahkan miliaran kali dan tidak bosan dan dapat untuk melakukan yang keluar benar-benar baik. Jadi misalnya, jika saya ingin berharap semua orang di Facebook selamat ulang tahun dengan mengirimkan email, mungkin membawa saya lebih dari abad untuk benar-benar menulis semua email-email kepada semua orang. Tapi hanya dengan beberapa baris kode, saya bisa memiliki sistem mengirim email ke semua orang di Facebook berharap mereka selamat ulang tahun. Jadi itulah yang loop dan mengapa mereka yang berharga dan sesuatu bahwa komputer dapat melakukannya dengan sangat baik. DAVID Malan: Banyak terima kasih kepada teman-teman kita di Code.org bagi mereka dua film. Dan minggu lalu, Anda mungkin memiliki terlihat bahwa Mark Zuckerberg dan Facebook diposting pengumuman ini, yaitu bahwa mereka hanya telah berlalu yang penting tonggak untuk pertama kalinya. 1 miliar orang menggunakan Facebook dalam satu hari, khusus Senin lalu. Satu dari tujuh manusia di Bumi rupanya login ke Facebook. Nah, ini tampaknya kesempatan yang baik untuk melihat kembali di mana Facebook mulai, dan kami pergi melalui CS50 sendiri arsip karena ternyata pada tahun 2005, Mark memberi kuliah tamu di CS50. Anda akan melihat bahwa nilai-nilai produksi tidak cukup belakang yang sama maka dalam hal teknologi tersedia, dan Anda juga akan melihat bahwa kehadiran dari kuliah tamu ini tidak selalu kekesalan kepentingan dari badan mahasiswa, pendahulu Anda, sebanyak itu mungkin memiliki hanya beberapa tahun kemudian. Jadi mari kita lihat di Science Center C. SPEAKER 2: Silakan bergabung dengan saya, dan menyambut. [TEPUK TANGAN] Mark Zuckerberg: Yo. Baiklah. Keren ini adalah pertama kalinya aku pernah harus memegang salah satu dari hal-hal ini. Jadi aku hanya akan melampirkan itu benar-benar cepat. Baiklah. Dapatkah Anda mendengarnya? Apakah ini baik? Apakah ini diperkuat sama sekali? Baiklah. Manis. Jadi, ini adalah seperti salah satu yang pertama kali Aku pernah ke kuliah di Harvard, tapi-- DAVID Malan: Jadi akhirnya Science Pusat melakukan zoom in pada video, tetapi tidak sebelum menangkap ini kutipan mana Markus berbicara, yang ia membahas nya teman sekamar, Dustin, yang ingin mengulurkan tangan dengan ini situs yang disebut Facebook.com dan menyadari bahwa Mark adalah untuk menyebutkan untuk pemrograman languages-- satu yang disebut Perl, satu disebut PHP-- saat ia membahas asal-usul kontribusi Dustin. Mark Zuckerberg: Saya mulai menjalankan situs dan diluncurkan di Harvard pada bulan Februari 2004. Jadi saya kira hampir dua tahun yang lalu. Dan dalam beberapa minggu, Beberapa ribu orang telah mendaftar, dan kami mulai mendapatkan beberapa email dari orang-orang di perguruan tinggi lain meminta bagi kita untuk memulai itu di sekolah mereka. Dan aku mengambil 161 pada saat itu. Jadi saya tidak tahu apakah kalian tahu reputasi tentu saja, tapi itu agak berat. Itu benar-benar menyenangkan saja, tapi itu tidak meninggalkan saya dengan banyak waktu untuk melakukan hal lain dengan Facebook. Jadi teman sekamar saya Dustin, yang saya kira baru saja selesai CS50, seperti, hey. Saya ingin membantu. Saya ingin melakukan ekspansi dan membantu Anda mencari cara untuk melakukan hal-hal tersebut. Jadi aku seperti, itu cukup keren, dude. Tapi Anda tidak benar-benar tahu apa PHP atau sesuatu seperti itu. Jadi akhir pekan itu ia pulang ke rumah, membeli buku Perl for Dummies, kembali dan seperti, baiklah. Aku siap untuk pergi. Aku seperti, dude, situs ditulis PHP tidak Perl, tapi itu keren. Jadi ia mengambil PHP lebih seperti beberapa hari karena saya berjanji bahwa jika Anda memiliki latar belakang yang baik di C, PHP adalah hal yang sangat sederhana untuk mengambil. Dan dia hanya semacam pergi bekerja. Sebelum kita lihat sekarang di mana saja yang terjadi, memungkinkan saya untuk mengundang hanya beberapa staf SC50 yang naik ke panggung. Beberapa dari mereka sedang berbelanja program mereka sendiri. Tetapi jika mereka TF dan CA dan tentu saja kepala yang ada di sini bisa datang ke atas dan bergabung dengan saya untuk hello cepat. Izinkan saya untuk memperkenalkan khususnya, Hanna, Maria, Daven, dan Rob, Tentu saja CS50 ini mengepalai sini di Cambridge. [TEPUK TANGAN] DAVID Malan: Memang, bukti dukungan struktur yang tentu saja memiliki dibangun selama bertahun-tahun terakhir, Staf CS50 nomor tahun ini hampir 100, dan itu di sini, di Cambridge saja. Sementara itu, di New Haven, ada beberapa 40 TF dan CA dan anggota staf di sana untuk menjalankan kursus juga. Izinkan kami untuk memperkenalkan pertama, Rob Bowden. ROB Bowden: Hi. Aku Rob. Ini adalah tahun keenam saya TFing dalam kursus. Jadi, semua jalan kembali saya tahun pertama, saya tidak mengambil CS50. mahasiswa Anda fall-- Anda mungkin akrab bahwa Anda hanya dapat mengambil empat program dan ada begitu banyak program hari ini. Jadi aku seperti, eh. Aku mengambil AP CS tahun senior saya SMA itu mengerikan. Jadi, aku seperti, eh. ilmu komputer bukan untuk saya. Jadi itu atas Tentu saja dari mahasiswa saya jatuh, bahwa saya punya teman di CS50, dan Saya pikir saya menghadiri satu kuliah dengan dia. Ini seperti, oh, ini adalah jenis yang lebih baik dari apa yang saya punya di sekolah tinggi. Dan selama itu tahun, saya punya masalah set saya sendiri di program aku benar-benar mengambil. Tapi saya menemukan bahwa setiap kali saya ingin menunda-nunda pada mereka, Aku akan kembali ke CS50 dan melihat beberapa hal yang. Jadi, ya. Aku keren. Saya penundaan dengan coding. Jadi itu pada akhir kejatuhan bahwa saya menyadari, hey, ilmu komputer cukup keren. Saya akhirnya mengambil CS51. Pada semester berikutnya, Saya akhirnya mengambil CS61. Dan itu semua dari sana, maka saya berakhir menyatakan ilmu komputer, yang saya punya sekali tidak berniat melakukan ketika saya datang ke perguruan tinggi. Dan sekarang aku di sini. Jadi tentu saja adalah apa yang Anda dapatkan dari itu. Kuharap kamu menikmatinya. [TEPUK TANGAN] DAVID Malan: Terima kasih kepada Rob. Dan sekarang Maria, kami kepala saja asisten. MARIA: Hey guys. Nama saya Maria. Saya seorang mahasiswa di Cabot Rumah, berasal dari Bulgaria, dan aku super bersemangat untuk menjadi bagian dari staf tahun ini. Aku mengambil CS50 sebagai mahasiswa baru tahun lalu, dan saya bahkan tidak pernah berpikir tentang CS sebelumnya. Jadi saya benar-benar mencintai kursus, dan saya harap Anda semua menyukainya sebanyak seperti yang saya lakukan. Dan, yeah. Selamat Datang di CS50. DAVID Malan: Terima kasih kepada Maria. [TEPUK TANGAN] Sekarang Hanna, rekan mengajar kepala kita. HANNA: Hi, aku Hanna. Saya seorang senior di Cabot belajar ilmu komputer. Aku mengambil CS50 sebagai mahasiswa baru dan memiliki pernah TFing-- ini akan menjadi tahun ketiga saya. Jadi saya akan dengan senang hati terlibat di CS50 untuk semua empat tahun, dan saya melihat ke depan untuk bekerja dengan Anda semua. DAVID Malan: Terima kasih untuk Hanna. [TEPUK TANGAN] Dan terakhir, Daven, precepter kami. Daven: Hey guys. Aku ajaran di atas di ilmu komputer di sini. Ini akan mengajar tahun keempat saya. Saya juga membantu mengelola kursus. Jadi saya yakin Anda akan melihat saya sekitar, terutama pada jam kantor. Aku selalu di jam kantor. Jadi jika Anda melihat saya berjalan sekitar, pasti datang menyapa. Saya suka bertemu orang. Jika tidak, bersenang-senang, dan saya akan melihat Anda di sekitar. DAVID Malan: Terima kasih untuk Daven juga. Jadi, Anda akan memenuhi semua orang-orang ini tak lama. Tapi tanpa lanjut ado, jika kalian akan ingin melanjutkan kursi Anda dari sebelumnya. Izinkan saya untuk memperkenalkan dari jauh sekarang beberapa teman-teman kita dari New Haven, di kepala kursus ini khususnya yang akan akan mengawasi CS50 there-- Profesor Brian Scassellati, Jason, dan Andi, yang hanya-- sehingga kita tidak menggoda nasib dengan FaceTime atau like-- yang baru saja mengirimkan menit lalu video berikut di mana mereka menyapa dari ruang kuliah di Yale, di mana kuliah sedang streaming sekarang. Jadi teman-teman kita dari Yale. BRIAN SCASSELLATI: Hi, David. Hi, semua orang di Harvard. Kami sangat bersemangat untuk menjadi membawa CS50 ke Yale semester ini. Nama saya Brian Scassellati, tapi semua orang hanya memanggil saya SCAS. Dan aku di sini hari ini untuk memperkenalkan Anda staf CS50. [Bersorak] Dan yang lebih penting, aku di sini untuk memperkenalkan serta semua siswa di Yale yang pada pagi ini telah membuat ini paling populer Tentu saja di Yale siswa CS50. [Bersorak] Jadi kami sangat gembira akan melihat Anda di sini pada hari Jumat dan Sabtu untuk Teka-teki Day dan memiliki kuliah besar. Bye. [TEPUK TANGAN] DAVID Malan: Pada layar di sini adalah nama-nama beberapa dari 140 staf anggota yang menanti Anda di atas Tentu saja dari semester-- beberapa dari mereka di sini di Cambridge, beberapa dari mereka di sini di New Haven. Dan memang Anda akan memiliki kesempatan Sabtu ini, sebagai catatan SCAS, untuk menghadiri CS50 Puzzle Day. Anda mungkin telah melihat potongan-potongan puzzle kecil menyelinap di bawah pintu Anda baru-baru ini. Kami memiliki beberapa tambahan di sini nanti pada saat Anda ada. Jika Anda merakit semua empat puzzle potongan dan menggabungkan kekuatan dengan kamar Anda terdekat di Anda rumah atau asrama, mereka akan merakit menjadi code-- QR atau dua dimensi bar code, yang sekali berkumpul dan dipindai dengan telepon Anda akan membawa Anda beberapa hadiah yang luar biasa or-- saya kira Anda hanya bisa memotret ini sekarang demikian juga. Tapi menemukan potongan-potongan puzzle tetap untuk memenangkan hadiah itu luar biasa. Dan memang salah satu tradisi di SC50-- ah, terlalu lambat. Salah satu tradisi di CS50 adalah untuk melayani kue setelah kuliah pertama. Dan memang, dalam beberapa menit dari sekarang, akan ada kue yang disajikan di luar baik di sini dan New Haven juga. Tapi first-- kita dihiasi mereka sendiri. Tapi first-- dan mudah-mudahan ada akan cukup. Tapi pertama-tama, sekilas. Jadi kuliah memang akan diproduksi sebagian besar di sini di Cambridge. Tapi setiap bulan, kami akan hop ke Yale dengan tim produksi CS50 dan aliran kursus di sebaliknya arah juga jadi untuk membawa dua kampus tersebut benar-benar untuk pertama kalinya dalam sejarah sedekat bersama-sama mungkin sebagai salah satu di kursus yang sama. Dalam hal struktur dukungan yang telah berdiri di sini di Cambridge juga seperti di New Haven, yang bagian. Memang, karena beberapa dari Anda mungkin tahu, kami memiliki trek yang berbeda dalam kursus untuk mereka yang kurang nyaman, lebih nyaman, dan suatu tempat di antara sehingga terlepas dari latar belakang sebelum Anda, dapat Anda akhirnya berhasil dalam kelas. jam kantor sementara itu, adalah kesempatan pada hari Senin dan Selasa dan Kamis malam untuk bekerja baik di sini dan di New Haven pada kursus kami Masalah set dengan puluhan Staf kursus di dekat Anda. Soal set sementara itu, didukung oleh hal-hal yang kita sebut walkthrough, yang berbasis video tutorial yang benar-benar menjawab FAQ dari mana untuk memulai tantangan minggu. Dan postmortem memandu Anda melalui solusi yang mungkin sehingga akhir masalah set juga, Anda tahu persis apa yang Anda bisa lakukan berbeda atau sama sekali sebaliknya. Masalahnya menetapkan sendiri datang dalam dua edisi, edisi standar yang kita harapkan dan mengundang sebagian besar yang class-- sekitar 90% plus untuk do-- dan yang disebut edisi hacker yang setiap halaman terpampang Edisi hacker, hacker Edisi, edisi hacker, sehingga Anda memiliki karma yang jika Anda mau, untuk menyelam ke versi yang lebih canggih masalah set kursus ini bahwa penutup seolah-olah bahan yang sama tetapi dengan pendekatan yang lebih canggih dan dengan latar belakang tambahan kadang-kadang diperkenalkan. Sementara itu, ada sembilan hari akhir yang Anda dapat mengajukan permohonan untuk masalah kursus ini set serta skor terendah, yang kita drop pada akhir istilah. Tapi apa yang menanti? Nah, rasa masalah set di tangan Jumat dan minggu depan di mana kami mencoba-coba hanya beberapa hari dalam sesuatu disebut Scratch, pemrograman grafis bahasa yang dikembangkan oleh teman-teman kita di MIT Media Lab yang memungkinkan Anda program baik untuk pertama kalinya atau di lingkungan yang baru sama sekali menggunakan jenis lingkungan drag dan drop. Dimana potongan puzzle hanya berpaut bersama-sama apakah masuk akal logis untuk melakukannya. Sementara itu di masalah set dua tahun lalu misalnya, Apakah kita memperkenalkan kelas ke dunia kriptografi, seni enkripsi atau berebut informasi. Memang, teks ini di sini jika didekripsi, akan benar-benar membawa Anda ke beberapa menyenangkan tujuan. Dan dalam masalah set, apa yang kita miliki siswa lakukan adalah menerapkan persis mereka jenis things-- algoritma yang, atau set instruksi untuk berebut dan berebut informasi. Dan dalam edisi hacker itu set masalah yang sama, Apakah kita menantang siswa untuk mengambil dienkripsi file dari komputer biasa Sistem dengan banyak nama pengguna dan password terenkripsi dan untuk memecahkan mereka passwords-- sebenarnya mencari tahu apa yang mereka tanpa mengetahui apa-apa apriori tentang orang-password yang sebenarnya. Sementara itu, kita transisi dalam masalah set untuk kemudian melihat dunia grafis. Dan pada kenyataannya, Anda mungkin membayangkan sekarang ini bisa mungkin menjadi cara paling sederhana untuk mewakili gambar hitam dan putih. Sebuah piksel putih, atau persegi, sebagai di atas sana, mungkin diwakili dengan 1 dan kotak hitam mungkin diwakili dengan 0. Dan hanya dengan menggunakan lebih banyak bit seperti kita diusulkan sebelumnya dengan 72 dan 73 dan 33, bisa kami mewakili piksel warna juga. Dan apa yang kita lakukan selama masalah set ini umumnya berjalan-jalan di sekitar kampus dengan kamera digital, mengambil foto orang, tempat, dan hal-hal. Kemudian entah bagaimana setiap semester, kita tampaknya sengaja dihapus atau merusak kartu memori di mana semua foto-foto yang, dan sehingga Anda ditantang untuk kemudian menulis perangkat lunak yang dapat digunakan untuk memulihkan mereka JPEG dari salinan kartu kamera kami. Sementara itu, kita menyerahkan nanti di istilah kamus kata-kata bahasa Inggris yang memiliki 143.000 kata, dan Anda perlu datang dengan cara cerdas memasukkannya ke dalam memori, atau RAM sehingga untuk berbicara, untuk menjawab query dalam bentuk: apakah ini sebuah kata, adalah ini sebuah kata, menerapkan tercepat spell checker yang Anda bisa, bahkan menyematkan diri berpotensi terhadap teman sekelas untuk melihat mana Anda menggunakan sedikitnya jumlah waktu ketika menjalankan kode Anda dan bahkan paling sedikit memori. Kemudian dalam jangka waktu yang Anda benar-benar mengimplementasikan web server Anda sendiri. Jadi bukan hanya sebuah situs web di bahasa yang disebut HTML dan banyak lagi, tapi web server yang benar-benar mendengarkan permintaan di internet dan menanggapi mereka. Dan memang, ini adalah bagaimana kita menjembatani dunia kita C dengan yang Anda akan menjadi akrab minggu depan dan PHP dan HTML dan JavaScript dan CSS dan sejenisnya. Karena salah satu web pertama berdasarkan Proyek kami lakukan nanti di istilah secara historis CS50 Keuangan. Etrade.com gaya sebuah website yang memungkinkan Anda untuk membeli dan menjual saham hampir sementara juga menulis kode untuk berbicara dengan Yahoo Keuangan mendapatkan setengah saham real time mengutip dalam rangka untuk memperbarui portofolio Anda sendiri. Tapi terakhir tentu saja, adalah project-- akhir kesempatan untuk melakukan apa yang paling dari menarik bagi Anda untuk memecahkan masalah di sini atau di luar kepentingan untuk Anda yang entah bagaimana terinspirasi dengan pelajaran di kelas. Dan kelas, seperti yang Anda ketahui, memuncak dalam apa yang disebut CS50 Hackathon dan CS50 Adil dan sejumlah acara budaya lainnya sepanjang semester yang memungkinkan Anda untuk terlibat dengan satu sama lain dan staf saja ini. Misalnya, di Fire and Ice di Sitar tahun ini, juga, pada Jumat sore, kami mengundang beberapa 50 siswa untuk makan siang, siapa pun ingin bergabung dengan kami, diriku sendiri, dan staf, dan teman-teman kita dari industri dan alum untuk chatting tentang kehidupan di dunia nyata dan di luar sambil menikmati makan siang yang baik. Pada Hackathon akan Anda melihat gambar tersebut karena ini, termasuk banyak candy-- dan pada 2014 untuk time-- pertama sayuran. [TEPUK TANGAN] Tapi dengan 05:00, apakah adegan biasanya terlihat sedikit sesuatu seperti ini. Dan kemudian hanya seminggu atau kemudian, adalah CS50 Adil yang beberapa 2000 plus siswa dan staf dan fakultas anggota dari seluruh kampus dan di kampus tahun ini datang untuk melihat dan menyenangkan di prestasi siswa CS50, yang sekarang Anda. Dan memang, sementara tahun ini kita akan mengundang dan busing siapa pun di di Yale yang ingin datang ke Cambridge Sabtu ini untuk CS50 Puzzle Hari, dan kami akan melakukan hal yang sama persis pada bulan Desember untuk CS50 Hackathon sehingga siswa Harvard dan Yale turut sama dalam kedua peristiwa ini. Kami juga akan mengadakan CS50 pameran di Cambridge dan di New Haven tahun ini sehingga siswa di kedua kampus dan staf dan fakultas dapat melihat setiap masing prestasi kampus ini. Dan orang-orang prestasi akan menginduksi memori seperti karena hal ini dan ini dan akhirnya ini, di mana kalian semua keluar kelas mengenakan sedikit sesuatu yang Anda mudah-mudahan senang atau bangga mengatakan bahwa saya mengambil CS50. Tapi sebelum itu dan sebelum kami melayani kue, kami telah membuat together-- berkat CS50 ini tim produksi dan diri tertentu tongkat, satu kesempatan yang kita gunakan hal-hal seperti for-- ketika kita mengirimkannya tidak hanya di sini untuk Cambridge tetapi juga untuk New Haven untuk mengumpulkan beberapa hellos dari Staf saja dan semua orang-orang Anda akan bertemu baik di sini dan di New Haven selama bulan-bulan berikutnya. Izinkan saya untuk memperkenalkan beberapa staf CS50 ini. Mark Zuckerberg: Apakah yang membuatnya pergi? Oh, itu akan. Ini akan. Ooh. Yarr! [MUSIC BERMAIN ANDY GRAMATIKA, "MADU, I'M  BAIK"] MARY: ini adalah Caitlin. Itu Jay, dan aku Mary. SATO: Hi, guys. Aku Sato. MICHAEL G .: Hi. Nama saya Michael, G. DOUG LLOYD: Saya tidak. Tidak. Aku Doug Lloyd. Aku tidak percaya bahwa aku memegang selfie sebuah tongkat sekarang. SPEAKER 4: Hi. SPEAKER 5: Hi. SPEAKER 6: Hello. SPEAKER 7: Hi. SPEAKER 8: Hey. Kami nongkrong di Yale. Kami sangat bersemangat untuk semester ini karena itu pertama kali datang ke Yale. Ini akan menjadi luar biasa! [MUSIC PLAYING] JACOB SCHERBA: Nama saya Jacob Scherba. Saya senang mengajar CS50 karena saya pikir itu membawa ilmu komputer untuk orang dan cara didekati. SPEAKER 9: Aku benar-benar bersemangat untuk mengajar CS50 karena saya mengambil kelas tahun lalu, dan itu salah satu kelas terbaik. SPEAKER 10: Ya. saran saya adalah Anda harus mengambil CS50. JACOB SCHERBA: Saya memilih CS karena Saya pikir itu menyenangkan dan kreatif cara untuk memecahkan masalah dengan cara analitis. SPEAKER 11: Kembali ketika saya masih sedikit mahasiswa dan takut ilmu komputer dan takut melakukan rekayasa dan hal-hal, itu kelas keras pertama saya mengambil, dan itu juga kelas favorit saya pernah. DOUG LLOYD: Ini adalah saya kesembilan tahun CS50 mengajar. Yang membuat saya terdengar begitu lama! Selalu ada sesuatu yang baru. Selalu ada sesuatu yang menarik. Selalu ada tantangan baru yang dihadapi oleh mahasiswa baru, dan itu menyenangkan untuk membantu mereka dan mengalami mereka tantangan dengan mereka dan membantu mereka memecahkan masalah mereka. SPEAKER 12: Ketika saya pertama kali belajar bagaimana melakukan CS, itu seperti belajar kekuatan super. Dan melihat bahwa siswa lainnya dan untuk membantu mereka melalui proses yang adalah salah satu yang paling hal berharga yang pernah saya. SPEAKER 7: Saya memilih CS karena di mulai, saya konsentrator matematika dan saya mengambil CS50 dan jatuh cinta dengan hal itu. Saya juga merasa bahwa dengan CS, saya bisa membangun sesuatu. Dan itu, saya pikir, adalah aspek benar-benar keren. SPEAKER 13: Beberapa saran untuk baru siswa adalah pergi ke kantor jam dan bergaul dengan TF mengagumkan. SPEAKER 14: Mulai P-set Anda awal, pergi ke jam kantor, menjadi frends dengan TF Anda. SPEAKER 15: Ya. Semuanya katanya. SPEAKER 16: Jangan takut untuk meminta bantuan. SPEAKER 17: Ya. SPEAKER 18: Mulai P-set awal. SPEAKER 19: Ini adalah pengalaman sosial yang besar. Membuat banyak teman-teman dengan cara ini. SPEAKER 14: Pergi ke bagian Ini menyenangkan. SPEAKER 11: Maksudku, pergi untuk itu. Ini benar-benar sulit. Anda akan keluar dari itu apa yang Anda masukkan ke dalamnya, tapi itu benar-benar menyenangkan kelas terutama jika Anda bersedia untuk menempatkan waktu ke dalamnya, tapi akan membantu jika Anda menempatkan waktu ke dalamnya. Anda akan mendapatkan lebih banyak dari itu nanti. MIKE: Aku Mike. Camille: Aku Camille. HANYA: Saya Hanya. MATT: Aku Matt. PETER: Saya Peter. PHILLIP: Aku Phillip. PATRICK: Aku Patrick. ROB Bowden: Saya Rob Bowden. BRIAN SCASSELLATI: My Nama SCAS, dan ini-- ALL: --is CS50. SPEAKER 20: Yale. SPEAKER 21: Yale. [TERTAWA] DAVID Malan: Itu saja untuk CS50. Kita akan melihat Anda dari Yale pada Jumat, Teka-teki Hari Sabtu. Kue sekarang disajikan. Ini adalah CS50. [MUSIC PLAYING]