[MUZIK Bermain] [MUZIK Bermain] DAVID MALAN: Baiklah. Ini adalah CS50. [MUZIK DITAYANGKAN Tritonal, Tunai Tunai,  "Untouchable"] [MUZIK Bermain] SPEAKER 1: saya akan France, dan anda akan juga. [MUZIK Bermain] DAVID MALAN: Ini adalah CS50, Pengenalan Universiti Harvard kepada intelektual perusahaan sains komputer dan kesenian program-- dan buat kali pertama dalam sejarah, Universiti Yale juga. Malah, sama ada anda berada di sini di Cambridge atau di New Haven atau Miami atau St Louis atau Amsterdam atau di mana seluruh dunia mengambil CS50, komputer sains E50, CS50X, CS50 AP, kita semua adalah satu dan sama. Selamat datang ke CS50. Apa yang kita ada-- [Tepuk tangan] [Ketawa] [Tepuk tangan] Maka aku membuat kesilapan sendiri beberapa masa lalu apabila saya bermula kolej. Dan saya mendapat ke kolej, dan saya memutuskan untuk terus-terang, melekat dalam zon selesa saya. Akhirnya, saya mengisytiharkan kepekatan, atau yang utama, kerajaan. Ant yang kebanyakannya fungsi saya yang cukup biasa dengan kerajaan atau sekurang-kurangnya sejarah atau saya benar-benar suka undang-undang perlembagaan di sekolah tinggi. Dan apabila saya sampai di sini, saya jenis daripada tertarik ke arah perkara yang yang aku sudah biasa. Betul? Allah melarang saya berbuat buruk di dalam kelas. Saya pasti mahu tinggal dalam zon selesa saya, dan ia tidak sehingga tahun kedua kerana akhirnya bangun saraf untuk melangkah kaki di dalam kelas yang dipanggil CS50. Dan pada ketika itu, adakah saya akhirnya menyedari itu, Allahku, kerja rumah boleh sebenarnya menyeronokkan. Malah, saya adalah salah seorang dari orang-orang kanak-kanak bahawa pada hari Jumaat malam apabila P-SETS akan dibebaskan, saya akan kembali ke bilik dan menyelam saya ke dalam malam P-SETS. Dan bagi saya, itu adalah tanda bahawa ini adalah medan untuk saya. Tetapi apa yang lebih penting ialah Hakikat bahawa saya tidak mendapat sehingga saraf ini untuk menerokai perairan yang tidak dikenali kepada saya dan mendapatkan di luar zon selesa saya sendiri dan terus-terang, saya hanya mampu untuk berbuat demikian tahun kedua dengan mengambil kelas ini lulus / gagal. Sesungguhnya, ia adalah hari yang terakhir yang Saya akhirnya beralih dan akhirnya diisytiharkan CS sebagai tumpuan saya, meletakkan gov pada ketika itu di belakang saya. Dan sebagainya kita tidak menyatakan dalam kursus ini untuk menjadikan anda semua ke dalam jurusan CS atau concentrators, tetapi agak untuk memberikan anda peluang untuk mudah-mudahan melampaui dunia dengan mana anda berada kini biasa dan membawa kembali dari dunia ini kemahiran dan pengetahuan dan celik bahawa anda boleh memohon untuk anda dunia sendiri, sama ada itu dalam bidang kemanusiaan, sains sosial, sains semula jadi, atau lebih. Malah, jika anda berada rasa sedikit berani tentang menjadi di dalam bilik ini apatah lagi dalam kelas ini, sedar bahawa jika sejarah adalah petunjuk, 72% daripada anda tidak pernah mengambil kursus CS sebelum ini. Jadi ia adalah dengan cara semua tidak berlaku bahawa pelajar yang duduk ke kiri atau ke kanan atau di hadapan atau belakang anda mengetahui lebih lanjut mengenai CS atau pengaturcaraan khususnya daripada anda. Bukan itu sebenarnya kes itu. Dan sesungguhnya, banyak struktur sokongan bahawa kami telah ditubuhkan pada ini Sudah tentu lebih banyak tahun yang lalu telah untuk betul-betul yang reason-- untuk memberi di jalan yang masih keluar seperti yang ketat dan hanya setinggi ever-- tetapi cerun yang membolehkan pelajar kurang selesa dan lebih selesa sama untuk berjaya tanpa mengira latar belakang sebelum mereka. Sesungguhnya, apa yang akhirnya perkara-perkara di dalam kelas ini tidak begitu banyak di mana anda berakhir berbanding dengan rakan-rakan anda tetapi di mana anda pada minggu 12 berakhir berbanding dengan diri dalam minggu sifar, iaitu di mana kami berada di sini hari ini. Sesungguhnya dan ini boleh dengan baik dan mungkin tidak kelihatan seperti Greek kepada ramai daripada anda. Tetapi yakinlah, yang ini dan banyak lagi akan menjadi sepenuhnya dalam anda memahami hanya dalam sedikit masa. Tetapi hari ini, kita memberi tumpuan kepada beberapa daripada idea-idea tahap yang lebih tinggi untuk memberikan anda rasa sains CS50 dan komputer dalam rasa apa anda mendaftar untuk. Dan sesungguhnya, sains komputer mungkin suling lebih hanya sebagai thinking-- pengiraan berfikir seperti komputer, jika anda akan. Dan terdapat begitu banyak perkara yang berbeza bahan-bahan yang masuk ke dalam itu, tetapi mari kita mencadangkan hanya tiga hari ini. Jika matlamat kelas akhirnya tidak mengajar anda pengaturcaraan, tidak untuk mengajar anda C atau PHP atau SQL atau apa-apa bilangan perkataan dan akronim dalam penerangan kursus ini, tetapi untuk mengajar anda untuk menyelesaikan masalah dengan lebih berkesan dan untuk berfikir dengan lebih teratur dan lebih algorithmically, jadi untuk bercakap. Mari kita lihat apa sebenarnya yang dimaksudkan ini. Jadi saya akan mencadangkan pemikiran yang computationally bisul untuk menyelesaikan masalah. Apa yang anda perlukan untuk menyelesaikan masalah? Anda perlu input-- seperti input kepada problem-- yang anda memerlukan output, yang adalah diharapkan penyelesaian, dan kemudian anda perlu suatu proses di untuk menyelesaikan masalah, yang kami akan panggil algorithm-- satu set arahan untuk menyelesaikan beberapa masalah. Tetapi pertama, mari kita fokus pada hari pertama dan yang terakhir ini input dan output. Komputer selepas semua, nampaknya hanya memahami sifar dan satu. Tetapi bagaimana yang mungkin? Malah jika anda tidak biasa di semua dengan apa yang di bawah hood, anda mungkin sekurang-kurangnya mendengar bahawa komputer memahami binary-- hanya sifar dan ones-- tetapi bagaimana boleh anda mungkin berbuat apa-apa yang menarik? Nah, salah satu tema kelas akan menjadi ini layering-- di mana hari ini, kita akan mengambil satu renungan pada tahap yang paling rendah butiran, tetapi dengan setiap lulus hari, di mana kita lapisan atau abstrak di atas butir-butir untuk benar-benar menyelesaikan tahap yang lebih tinggi masalah menarik kepada kami. Jadi di sini adalah apa yang mungkin kita panggil binary-- dengan hanya abjad 0 dan 1. Tetapi kita manusia adalah kebanyakannya biasa dengan perpuluhan. Disember makna 10. Bi bermaksud dua. Dan sebagainya dalam perpuluhan sistem, kami mempunyai 10 digit di disposal-- kami Sudah tentu, sifar melalui sembilan. Jadi, jika anda melihat sebilangan seperti ini, kebanyakan kamu intuitif hanya memahami bahawa adalah 123. Tidak ada yang benar-benar keras tentang itu. Tetapi mengapa ia 123? Nah, jika anda berfikir kembali kepada school-- gred atau sekurang-kurangnya cara saya belajar ini jenis world-- anda mungkin ingat bahawa kita ini dirawat perkara dalam ruangan, atau tempat. Oleh itu, kita mempunyai tempat orang-orang yang di sebelah kanan. Puluhan tempat di tengah-tengah. Beratus-ratus meletakkan di sebelah kiri. Dan kemudian bagaimana kita mendapatkan dari corak ini symbols-- 1 2 3-- ke tahap yang lebih tinggi ini idea yang kita kenali sebagai 123? Nah, ia hanya beberapa aritmetik mudah. Betul? Yang terdapat pada dasarnya bermakna memberikan kita 100 kali 1 ditambah 10 kali 2 plus 1 kali 3. Dan sudah tentu jika kita keluar matematik sana, ia adalah 100 ditambah 20 plus 3-- atau dikenali sebagai 123. Jadi, jika anda berada di halaman yang sama yang hak itu sekarang dan selesa dengan apa yang dipanggil sistem perpuluhan sebagai manusia, ia sebenarnya baik dalam skop anda keselesaan untuk mempertimbangkan sekarang sistem binari. Ambil liar yang guess-- ini mewakili, dalam dunia komputer dalam binary-- apa nombor? Zero. Tetapi mengapa itu? Nah, ternyata bahawa lajur atau tempat-tempat sini-- mereka tidak kuasa 10. 1, 10, 100, 1000, dan sebagainya. Mereka sebaliknya, agak semata-mata, kuasa 2. Jadi, 1, 2, 4, 8, 16, 32, dan sebagainya. Dan sekarang kami sudah tentu dapat 0 di sini semata-mata kerana kita mempunyai 4 kali 0 tambah 2 kali 0 tambah 1 kali 0, yang sudah tentu memberikan kita 0. Tetapi bagaimana saya boleh pergi tentang mewakili nombor 1? Apakah corak sifar dan orang-orang yang mewakili bilangan kita manusia dikenali sebagai 1? 001. Dan 2? 010. Dan kini corak mula ulangan. Kini sudah tiba 011. Dan sekali lagi, 0 merangkak, satu 2, salah 1. Jadi 2 plus 1. Itulah 3. Dan sekarang untuk mewakili 4, kita tidak hanya mengubahnya 0 kepada 1. Anda jenis mempunyai untuk menjalankan, jadi untuk bercakap, dan nombor-nombor mula Melibas sekitar hanya seperti di dunia perpuluhan. Jadi ini adalah 4. Ini adalah 5. Ini adalah 6. Ini adalah 7. Dan jadi kami telah dikira setinggi 7. Sekarang kita hanya perlu lebih merupakan bits-- lebih sifar dan seseorang. Dan sesungguhnya "bit", jika anda telah mendengar digit perduaan term-- ini. Bit adalah di mana yang datang dari. Dan jadi jika kita mahu untuk mewakili nombor yang lebih besar, kita memerlukan lebih banyak bit. Tetapi mari kita beralih daripada slaid sekarang kepada sesuatu yang lebih nyata. Katakan kita mahu sebenarnya mewakili perkara ini. Nah mari kita lihat sekarang pada demonstrasi kecil. Jadi ini adalah satu aplikasi berasaskan web bahawa salah satu CS50 sendiri, Michael G, meletakkan bersama-sama pada musim panas ini untuk membantu kita menjelaskan sebenarnya idea ini. Dan akan seseorang seperti meneroka ke pentas di hadapan semua rakan-rakan beliau? Di sana di depan. Naiklah. Anda perlu selesa pada kamera dan internet. Oh, di sini. OKEY. Kami OK. Baiklah. Naiklah. Apa nama anda? Emily datang ke atas. Jadi ini adalah Emily. Apa tahun anda? Bayat. Emily, baik untuk bertemu dengan kamu. David. Baiklah. Jadi pada skrin di sini, kita mempunyai skrin sentuh ini yang akan membolehkan kita untuk sebenarnya berinteraksi dengan program ini, dan ia hanya pelayar. Ia Chrome penuh ditayangkan pada masa ini, tetapi ia telah diprogramkan oleh Michael ke bertindak balas dalam cara yang membolehkan kita bermain-main dengan angka binari. Jadi untuk contoh, di sini kita tidak mempunyai tiga tetapi lapan sifar bits-- dan satu. Buat masa ini, kami melihat bilangan 0. Dan sesungguhnya, semua lapan sifar dalam perpuluhan bermakna sifar. Jadi itu sahaja itulah sedang membayangkan di sini. Jadi, jika anda mahu mewakili bilangan 8, apa yang corak sifar dan orang-orang yang anda mahu? Anda hanya boleh mengetik atas atau ke bawah atau nombor yang diri mereka sendiri. Baiklah. Supaya sudah tentu adalah 8, seperti yang anda lihat di sana. Dan jika kita mahu yang 16, apa yang kita lakukan? Ya, hanya menyentuh sekali lagi. 16. Baiklah. Jadi ini adalah semua baik dan baik, ia masih tahap yang sangat rendah. Kita memerlukan cara dalam dunia sebenar untuk Emily sebenarnya mewakili perkara-perkara ini. Dan supaya menganggap bahawa kita beralih ini sifar dan satu, yang sangat konsep, ke dalam mentol lampu yang sebenar. Betul? Komputer merupakan fizikal, mekanikal, peranti elektrik. Dan input-- sekurang-kurangnya jika anda palam dalam atau caj it-- adalah untuk mempunyai kuasa bateri dan elektron yang mengalir di dalam dan keluar. Maka sekarang, mengapa tidak kita berhenti berfikir mengenai bit sebagai sifar dan satu, tetapi sesuatu yang lebih fizikal seperti mentol lampu di sini. Dan jika Dan Armendariz boleh menyertai saya hanya untuk moment-- datang pada up-- kita akan beratur permohonan. Datang pada lebih, Emily. Maaf ini adalah yang paling demo janggal untuk anda selama-lamanya. Mari sini. Kami akan beratur dengan berkat Dan Armendariz, seorang lagi ahli kakitangan kami, permohonan dikenali sebagai mentol binari. Jadi apa yang kita ada di sini adalah sebuah aplikasi iPad yang mempunyai pengguna berikut antara muka pada skrin untuk Emily. Ia hanya mendapat UI yang tepat yang sama pada dasarnya itulah di sana. Dan jika anda kini mahu mewakili nombor, katakan 8, bagaimana anda akan pergi tentang melakukan perasan ini di sebelah kanan, mentol lampu yang kita ada di sini? Ah-ha. Ajaib. Jadi, jika kita mahu sekarang menjadikan ini ke sesuatu yang lebih mencabar, dan mari kita pergi ke hadapan dan memilih secara rawak nombor seperti nombor 50 di sini. Input ini. Dan jika anda kini boleh dicabar untuk datang dengan nombor 50, kita akan mempunyai hadiah yang hebat untuk anda. EMILY: OK. Oh Tuhanku. DAVID MALAN: Aritmetik memang keras di hadapan ratusan rakan sekelas anda. Tetapi 50 telah jawapan di sini. [Tepuk tangan] Dan sehingga kini, ini bertujuan untuk menjadi demonstrative untuk Emily. Jadi, di sini, beberapa cahaya mentol yang seperti ini, tetapi ia sebenarnya jalur magnet sedikit. Dan apa yang sejuk kira-kira ini dan sebab kita menggunakannya dalam CS50 adalah bahawa mereka menyokong sesuatu yang dinamakan yang API-- yang pengaturcaraan penggunaan antara muka, yang hanya cara yang mewah untuk mengatakan bahawa apa yang salah seorang daripada kakitangan kami adakah sepanjang musim panas telah mewujudkan permohonan iPad sini yang bercakap melalui internet kepada mentol lampu di sini, yang secara wayarles disambungkan ke peranti lain. Tetapi ini sekarang adalah satu pilihan untuk projek-projek akhir. Dan sebagainya Emily, jika anda pasti jadi seperti, pada akhir tempoh itu, anda boleh menghiasi bilik asrama anda dalam masa yang sama dengan orang-orang. Terima kasih kepada Emily juga. [Tepuk tangan] Tetapi sekarang, mari kita mengubah perhatian kita kepada apa yang mesej yang mungkin kelihatan seperti, dan ia adalah sesuatu yang kecil seperti ini. Malah, ini adalah satu contoh seperti teaser daripada apa yang akan datang daripada apa yang dipanggil permintaan API. Dan supaya apa yang kami ada di sini adalah semata-mata betul-betul jenis mesej bahawa selepas beberapa minggu masa dalam CS50, anda akan dapat menghantar kepada sesuatu yang agak biasa seperti yang untuk benar-benar menghidupkan dan mematikan. Tetapi ini adalah semua baik dan baik. Betul? Kami mempunyai model mental diharapkan untuk mewakili nombor dengan sifar dan seseorang. Dan dari sifar dan satu, kita boleh mendapatkan nombor yang lebih tinggi seperti 50, sebagai Emily hanya melakukan, atau kita boleh bergerak ke atas itu. Dan saya mendakwa bahawa kita boleh mewakili perkara seperti surat juga. Betul? Komputer adalah jauh lebih menarik daripada hanya nombor. Dan jadi bagaimana anda pergi tentang perkataan yang mewakili pada skrin atau e-mel atau esei atau sebagainya? Nah, ternyata bahawa komputer hanya abstrak di atas tahap ini rendah butiran, dan manusia sedikit masa lalu, datang sehingga dengan sewenang-wenangnya, tetapi yang konsisten, pemetaan nombor untuk letters-- supaya yang bila-bila masa yang anda lihat huruf besar A pada komputer anda skrin, kemungkinan apa yang di bawah hood adalah corak sifar dan satu yang mewakili nombor, setiap carta ini, 65. Dan banyak lagi secara fizikal dalam komputer anda, berjuta-juta perkara yang dipanggil transistors-- days-- ini yang hanya beralih jika anda akan, perkara yang boleh pergi dalam dan di luar dan sebagainya bayangkan. Bukan lapan ini mentol lampu besar tetapi berjuta-juta ini cahaya sedikit kecil mentol, atau suis atau transistor, yang boleh menghidupkan dan mematikan berdasarkan bagaimana anda program mereka. Dan sekarang kita mempunyai cara mewakili huruf juga. Malah, jika saya menggunakan ini pemetaan sini dan cuba untuk benar-benar mengeja sesuatu, kita mungkin kelihatan pada corak ini digit perpuluhan sekarang. Oleh itu, kita tidak akan walaupun memberi tumpuan kepada binari lagi. Mari kita hanya mempertimbangkan ini sebagai nombor perpuluhan 72, 73, 33. Tetapi apa yang ini wakili? Sesiapa yang mempunyai cukup memori fotografi untuk mengetahui apa yang dieja pada skrin di sini? Yeah beberapa. Jadi hi. H-I dan kemudian tanda seru, yang tidak sebenarnya pada skrin. Tetapi memang ada pemetaan yang untuk setiap surat kepada setiap nombor yang anda mungkin mahu menaip pada papan kekunci anda. Tetapi nombor tidak perlu mewakili hanya huruf. Betul? Semua kita tahu tentang imej dan gambar-gambar dan fail audio dan fail video dan sebagainya. Jadi jelas kita boleh mewakili perkara tahap lebih tinggi masih. Dan supaya apa yang komputer tidak adalah hanya memilih untuk mentafsir corak yang sifar berbeza berdasarkan konteks. Jika anda klik dua kali yang ikon Microsoft Word, anda melihat perkataan pada skrin bukannya warna dan gambar kerana perkataan tahu bahawa ini adalah satu esei yang anda telah sebenarnya ditaip. Sebaliknya, jika anda klik dua kali pada JPEG atau GIF atau PNG, ia membuka dan imej kerana PNG atau .docx atau apa sahaja fail lanjutan dan walau apa jua perisian anda menggunakan tahu untuk mentafsir corak sifar dan orang-orang yang berbeza berdasarkan apa tujuan dalam hidup ini. Jadi misalnya, ini urutan sama nombor mungkin mewakili berapa banyak merah adakah anda mahu, berapa banyak hijau yang anda mahu, dan berapa banyak yang biru yang anda mahu. Dan sesungguhnya, jika anda pernah mendengar RGB-- biru hijau jadi hanya merah. Dan jadi jika saya melihat nombor seperti, ini memberi saya 72 merah, memberi saya 73 hijau, dan 33 biru, ini adalah bagaimana komputer menggunakan tiga bytes-- mana bait adalah lapan bit atau 24 bits-- akan mewakili bayangan cukup jahat coklat atau kuning di sini. Dan dalam konteks yang berbeza, boleh mereka corak tepat sama pada sifar dan satu bermaksud sesuatu yang sama sekali yang berbeza juga. Oleh itu, kita kini mempunyai satu cara untuk mewakili sifar information-- dan satu. Selain itu, kita akan mendapat surat. Selain itu, kita boleh mendapatkan warna. Dan mari kita andaikan untuk hari ini bahawa kita boleh mendapatkan audio dan video dan perkara-perkara banyak lagi canggih daripada itu. Tetapi sekarang mari kita mempertimbangkan bagaimana kita menggunakan orang-orang input dan menghasilkan orang-orang output sekarang bahawa kita mempunyai satu cara untuk mewakili maklumat tersebut. Well, kita memerlukan sesuatu dipanggil algoritma. Sekali lagi, satu set arahan untuk menyelesaikan beberapa masalah langkah demi step-- dan lebih tepat, lebih baik. Dan sebagainya contoh yang mana manusia adalah hari diakui kurang biasa ini, tetapi tetap masih dengan kami dalam perisian, adalah proses mencari sehingga seseorang dalam buku telefon. Sekarang, orang yang lebih sedikit dan lebih sedikit mengenali antara satu sama tahun apa relik ini sebenarnya ada di sini. Tetapi kembali pada hari saya, ini adalah sebuah buku telefon dengan beribu-ribu muka surat dan nombor dan nama-nama rakyat dari A hingga Z. Dan walaupun kita jenis menipu yang bit-- ini adalah kebanyakannya halaman kuning. Terdapat juga putih halaman pada satu masa, yang mempunyai semua nama-nama dan bilangan manusia yang sebenar. Dan jika saya mahu melihat seseorang di sebuah buku telefon seperti hari ini, sudah tentu, Saya hanya menaip pertama beberapa Watak-watak dalam namanya, dan telefon bimbit saya mendapati maklumat tersebut. Tetapi proses di mana telefon iPhone atau Android anda atau apa sahaja yang benar-benar mencari tempat seseorang dalam senarai kenalan anda adalah sama dengan apa yang kita manusia mungkin telah dilakukan untuk beberapa ketika. Sekarang saya boleh mengambil ini masalah, jika anda akan, dan input di sini tidak sifar dan satu. Mereka pages-- seperti, katakan 1000 muka surat. Dan jika saya mahu melihat ke atas seseorang suka Mike Smith dalam buku telefon ini, Saya boleh bermula pada awal dan melihat bahawa saya dalam seksyen A dan kemudian menghidupkan satu halaman pada satu masa, mencari dan mencari seperti yang saya buat kepada B dan C dan D's dan sebagainya untuk Mike Smith. Smith bermula dengan S yang, saya akan mudah-mudahan akhirnya mencari beliau. Adakah algorithm-- ini yang process-- betul? Yeah. Itu betul. Saya akan mencari Mike jika dia di sini, tetapi apa yang kaveat yang mungkin anda tawarkan. Ia perlahan. Betul? Saya tahu Mike S adalah jenis arah separuh kedua buku telefon. Kenapa sih aku bermula pada awal dan halaman akan oleh halaman demi halaman. Jadi, sudah tentu, saya boleh flip sekeliling dan mula dari belakang, tetapi yang akan mendapatkan saya ada pada kadar yang sama, jika anda willl-- halaman selepas halaman selepas halaman. Dan ia tidak akan berjaya jika saya mahu untuk mencari orang lain yang nama datang awal abjad. Jadi apa jika saya melakukan apa yang saya belajar di sekolah rendah, sekali lagi, melakukan perkara yang tidak oleh orang-orang tetapi dengan berdua-dua. Jadi 2, 4, 6, 8, 10, 12, dan sebagainya. Adakah itu betul? No. Ia adalah jenis yang betul. Tetapi sebahagian dari kamu yang merungut tidak, mana adalah masalah, atau pepijat, kesilapan yang boleh dikatakan. Yeah. PELAJAR: Anda mungkin skip lebih masuk yang tepat. DAVID MALAN: Ya. Saya mungkin melangkau lebih Mike Smith ialah kerana saya telah mengambil dua halaman pada satu masa dan dia hanya berlaku untuk menjadi diapit di antara kedua-dua muka surat. Saya mungkin menyedari bahawa Saya ke bahagian T tidak mempunyai mendapati Mike Smith lagi. Dan supaya apa yang mungkin tetap ada? Nah, jika saya lakukan melanda Ts di dalam buku telefon, Saya mungkin perlu menggandakan menyokong satu atau lebih halaman. Jadi ia dipecahkan, tetapi ia tidak cukup semudah kerana hanya akan sebanyak dua hingga mempercepatkan prestasi saya. Tapi apa? Datang pada. Apa yang adalah apa yang kebanyakan manusia akan kaitan dengan jenis ini buku telefon? Anda diberi buku telefon. Apa yang kamu buat? Apa itu? Pergi ke tengah-tengah. Jadi saya mendengar pergi ke tengah-tengah, dan saya mendapati diri saya secara kasar dalam seksyen M, boleh dikatakan. Dan sekarang apa yang saya mahu lakukan? Syabas. Apa nama anda? JAMES: James. DAVID MALAN: James, baiklah. Apa yang saya lakukan seterusnya? JAMES: Anda pergi dalam separuh yang mempunyai S. DAVID MALAN: Baiklah. Saya akan pergi ke babak yang mempunyai S di dalamnya kerana, sekali lagi, penetapan di sini adalah bahawa perkara ini disusun. Ia adalah agak tidak berguna 1000 muka surat jika Verizon tidak sebenarnya menyusun perkara-perkara ini untuk kita A hingga Z. Jadi, jika saya tahu Mike mungkin dalam separuh kedua buku telefon, Saya boleh sekarang. [Ketawa] Lusuh masalah ini pada separuh. [Tepuk tangan] Terima kasih. Lusuh masalah ini pada separuh. Yang sebenarnya real-- perjuangan itu. Jadi lusuh buku telefon pada separuh, meninggalkan diri saya dengan asasnya masalah yang sama. Tetapi sudah tentu, separuh saiz. Dan jika saya mengikuti James nasihat lagi, dan saya pergi di sini. Saya katakan, oh sekarang saya dalam seksyen T. Dan sebagainya sudah tentu, saya boleh lusuh buku telefon pada separuh masa lebih, meninggalkan saya dengan masalah itu kini satu perempat daripada saiz. Jadi saya telah pergi dari 1000 kepada 500 250 ke 125 dan sebagainya. Rasanya seperti saya mengambil gigitan yang lebih besar daripada masalah ini dengan setiap lelaran, atau setiap langkah di dalamnya. Dan sesungguhnya, masa yang saya akan menghabiskan mencari Mike Smith dalam contoh ini begitu banyak kurang kerana akhirnya saya akan meraut buku roti manis ini turun kepada hanya satu halaman tunggal. Dan jika Mike adalah pada halaman itu, saya akan pergi ke hadapan dan memberikan kepadanya panggilan mempunyai mendapati beliau. Tetapi berapa banyak lebih baik adalah bahawa algorithm-- yang berani mengatakan intuitif algorithm-- daripada yang kita bermula dengan yang kami sangat linear-- kiri ke right-- pada kadar 1 atau 2x? Nah, mari kita merancang ini. Kami tidak perlu bimbang terlalu banyak tentang matematik atau nombor dalam kes ini di sini. Kami hanya melihat plot. Sehingga pada x, atau paksi mendatar, adalah saiz problem-- yang berapa banyak halaman yang berada di sana. On y, atau menegak paksi, adalah berapa banyak masa adakah ia akan membawa saya untuk menyelesaikannya. Dan mungkin itulah bagaimana banyak giliran halaman, berapa saat, bagaimana many-- beberapa unit langkah-langkah. Dan saya telah disediakan satu garis lurus merah di sini kerana jika setiap muka surat tambahan buku telefon, saya memerlukan untuk membuat satu langkah tambahan. Jadi, jika Verizon menambah satu lebih halaman tahun depan, Saya mungkin perlu flip satu halaman lebih untuk mencari seseorang seperti Mike Smith. Sementara itu, algoritma kedua, yang Saya pergi dengan berdua-dua, adalah bentuk yang sama. Ia masih sangat linear, sangat kiri ke betul, mengambil bytes sama setiap kali, tetapi kecerunan adalah sedikit lebih rendah. Sebagai contoh, jika saiz masalah ini adalah kira-kira di sini dan saya menggunakan algoritma pertama saya, Saya mungkin berakhir sepanjang jalan di bahagian atas garis merah. Tetapi jika saya sebaliknya menggunakan untuk twosies mendekati, garis kuning mencadangkan kerana ia adalah lebih rendah, bahawa ia akan mengambil saya kurang masa yang menyelesaikan. Tetapi apa yang bentuk yang algorithm-- ketiga sekali lagi, boleh dikatakan algoritma yang paling intuitif? Nah, ia kelihatan sedikit sesuatu seperti ini. Ia melengkung, atau logaritma, dalam bentuk. Dan walaupun ia tidak pernah jenis mendatar keluar, ia berasimptot inci dan naik dan naik tetapi sangat perlahan-lahan berbanding segala-galanya. Dan apa yang yang mengambil? Well, kita panggil ia log n. Tetapi apakah yang sebenarnya bermakna? Baik jika Verizon dua kali ganda bilangan muka surat di dalam buku telefon tahun depan daripada 1,000 kepada 2,000. Berapa banyak lagi langkah-langkah adalah saya algoritma pertama akan mengambil? algoritma pertama saya. Mungkin 1000 langkah lagi. Jika mereka dua kali ganda buku telefon, saya akan untuk mempunyai untuk flip melalui satu lagi 1000 halaman untuk mencari Mike. Sudah tentu, jika kedua algoritma, mungkin 500 kerana saya akan dua kali lebih cepat. Tetapi jika Verizon beregu jumlah halaman antara tahun ini dan seterusnya, dengan ketiga saya algorithm-- jurang dan menakluk bahawa James dicadangkan, akan pada separuh dan separuh dan half-- berapa banyak lagi langkah-langkah yang akan ia membawa saya tahun depan untuk mempunyai buku telefon daripada saiz 2000? Hanya satu. Kerana dengan satu gigitan, saya boleh mengambil, daripada masalah itu, separuh daripada muka surat jauh. Dan jika anda berfikir tentang ini sedikit crazily sekarang-- jika buku telefon tidak mempunyai 1000 atau 2000 halaman, tetapi katakan 4 bilion pages-- ia merupakan telefon besar book-- bagaimana banyak kali atau berapa banyak langkah adakah ia akan membawa saya untuk mencari Mike Smith di dalam buku telefon dengan 4 bilion laman. Anda boleh semacam mula melakukan matematik. Baiklah. 4 bilion dibahagikan dengan 2. Jadi itulah 2 bilion dibahagikan dengan 1. Itulah 1 bilion. Kemudian setengah bilion. Kemudian 250-- supaya anda boleh melakukan ini lagi dan lagi tetapi tidak bahawa banyak kali sebelum ini anda sampai ke satu halaman. Dan sesungguhnya, walaupun telefon buku adalah 4 bilion muka surat yang panjang atau pangkalan data yang anda sedang mencari adalah 4 bilion rekod lama, ia akan membawa anda memberikan atau mengambil 32 langkah sahaja untuk mencari Mike Smith. Dan jika anda menggandakan buku telefon seterusnya tahun dari 4 bilion untuk 8 bilion, 33 langkah-langkah bukan hanya 32. Dan ini adalah bukti kepada salah satu daripada idea-idea bahawa kita mungkin memeluk dalam komputer sains secara umum, yang adalah pemikiran pengiraan ini dan menghampiri masalah terus-terang menggunakan alat-alat dari alat sudah biasa anda kit-- dunia sebenar anda dengan yang anda biasa, tetapi memanfaatkan idea-idea untuk benar-benar menyelesaikan masalah. Tetapi kita perlu untuk merasmikan kami penyelesaian kepada masalah-masalah ini. Dan jadi biarlah saya memperkenalkan seketika sesuatu yang kita mungkin panggilan kod pseudo. Kebanyakan semester, kami akan dapat berbelanja dengan kod sebenar dalam bahasa-bahasa seperti C dan PHP dan JavaScript dan SQL dan sebagainya. Tetapi untuk sekarang, mari kita hanya melihat pada sesuatu yang agak intuitif seperti bahasa Inggeris. Saya mungkin menyuling yang algoritma dengan yang Saya mendapati Mike kepada langkah-langkah seperti ini. Mengambil buku telefon Terbuka kepada pertengahan buku telefon Lihatlah ini nama Jika Mike adalah antara yang nama panggil Mike Lain jika Smith lebih awal dalam buku ini Terbuka kepada pertengahan separuh kiri buku Yang lain pergi untuk beratur 3 Lain jika Smith yang kemudian dalam buku ini Terbuka kepada tengah-tengah separuh betul buku ini Pergi untuk beratur tiga yang lain melepaskan Dan ada beberapa ciri-ciri sekarang ini yang bernilai menunjukkan. Jadi satu, semua garis Saya telah ditonjolkan dalam kuning kita akan mula memanggil kenyataan atau fungsi atau prosedur. Mereka hanya tindakan melakukan ini, dan tidak ada semua yang banyak kebolehubahan kepadanya. Langkah seterusnya di sini walaupun, adalah ini syarat-syarat-- jika, lain, lain jika, lain. Inilah yang dikenali sebagai syarat, atau cawangan, dan mereka mata keputusan. Dan mereka membolehkan kita untuk melakukan sesuatu yang bersyarat. Dan sebenarnya, mari kita cepat melihat mungkin satu face-- biasa kami akan memanggilnya Bill-- dan apa syarat-syarat ini, bagaimana mungkin digunakan. BILL GATES: Orang membuat keputusan setiap hari. Sebagai contoh, sebelum anda pergi ke luar anda jenis mempunyai kenyataan jika yang mengatakan, jika hari hujan, maka saya perlu untuk mendapatkan jaket saya. Dan komputer yang luar biasa sebaik sahaja anda menentukan orang-orang jenis penyata bahawa mereka pasti boleh melaksanakan perkara-perkara pada kelajuan luar biasa. Dan supaya satu program komputer benar-benar adalah sedikit matematik dan beberapa jika kenyataan di mana keputusan mendapat dibuat. DAVID MALAN: Jadi sekarang mari kita fokus pada lines-- beberapa berbeza yang saya telah menekankan kuning di sini. Dan ternyata ada yang berbeza cara untuk menyatakan idea ini. Tetapi intuitif apa baris kami 8 dan 11 bahawa saya telah ditonjolkan di sini memberitahu anda yang perlu dilakukan? Ya, pergi untuk beratur 3, tetapi apa yang tingkah laku adalah yang benar-benar mendorong? Ia adalah beberapa jenis gelung atau kitaran, dan anda jenis boleh melihatnya. Betul? Jika pada baris 8, anda kembali ke garisan 3, dan kemudian anda memukul talian 8 lagi, anda mungkin kembali ke garisan 3, kembali ke garisan 3, belakang untuk beratur 3. Ada semacam ini kitaran atau gelung. Dan sesungguhnya, itu disebabkan dalam line 11 berpotensi juga. Dan ini adalah asas pengaturcaraan membina juga. Anda mungkin tidak mahu hanya melakukan sesuatu dengan kenyataan atau melakukan sesuatu yang bersyarat dengan syarat atau cawangan. Anda mungkin mahu melakukan sesuatu cyclically dengan gelung. Dan kita akan mempunyai orang lain dengan siapa anda mungkin familiar-- kami akan memanggilnya Mark-- menjelaskan konsep ini di sini. Mark Zuckerberg: Satu Perkara komputer adalah benar-benar baik adalah mengulangi arahan. Sebagai orang, anda akan mendapat benar-benar bosan jika anda terpaksa melakukan perkara yang sama banyak kali berturut-turut, tetapi komputer boleh melakukan perkara yang sama berjuta-juta atau berbilion-bilion kali dan tidak bosan dan dapat untuk menjalankan yang keluar dengan sangat baik. Jadi, sebagai contoh, jika saya ingin mengucapkan di Facebook selamat ulang tahun dengan menghantar e-mel mereka, ia mungkin mengambil masa saya lebih daripada yang abad untuk benar-benar menulis semua orang-orang e-mel kepada semua orang. Tetapi dengan hanya beberapa baris kod, saya boleh mempunyai sistem yang menghantar e-mel kepada semua orang di Facebook yang ingin mereka selamat hari jadi. Jadi itulah yang gelung dan mengapa mereka berharga dan sesuatu bahawa komputer boleh lakukan dengan baik. DAVID MALAN: Terima kasih kepada rakan-rakan kami di Code.org untuk kedua-dua filem. Dan hanya minggu lepas, anda mungkin mempunyai dilihat bahawa Mark Zuckerberg dan Facebook mencatatkan pengumuman ini, iaitu bahawa mereka hanya telah berlalu yang penting pencapaian buat kali pertama. 1 bilion orang menggunakan Facebook dalam hari, khususnya Isnin lepas. Satu dalam tujuh manusia di Bumi nampaknya log masuk ke dalam Facebook. Well, ini seolah-olah peluang yang baik untuk melihat kembali di mana Facebook bermula, dan kami telah melalui CS50 sendiri arkib kerana ia ternyata pada tahun 2005, Mark telah menyampaikan ceramah tetamu di CS50. Anda akan melihat bahawa nilai-nilai pengeluaran tidak cukup belakang yang sama maka dari segi teknologi ada, dan anda juga akan melihat bahawa kehadiran kuliah tumpangan ini tidak semestinya menarik minat yang badan pelajar itu, kamu yang terdahulu, seperti mana yang mungkin mempunyai hanya beberapa tahun kemudian. Jadi mari kita lihat di Pusat Sains C. SPEAKER 2: Sila menyertai saya, dan selamat datang. [Tepuk tangan] Mark Zuckerberg: Yo. Baiklah. Cool ini adalah kali pertama saya telah pernah terpaksa tahan salah satu daripada perkara-perkara ini. Jadi, saya hanya akan melampirkan ia benar-benar cepat. Baiklah. Bolehkah anda mendengarnya? Adakah ini baik? Adakah ini dikuatkan di semua? Baiklah. Sweet. Jadi, ini adalah seperti salah satu daripada kali pertama Saya telah ke kuliah di Harvard, but-- DAVID MALAN: Jadi akhirnya Sains Pusat melakukan zum masuk pada video, tetapi tidak sebelum menangkap ini petikan di mana Mark bercakap, yang dia membincang beliau rakan sebilik, Dustin, yang mahu untuk menghulurkan bantuan dengan ini laman web dipanggil Facebook.com dan menyedari bahawa Mark adalah kira-kira untuk menyebut kepada pengaturcaraan languages-- satu dipanggil Perl, satu dipanggil PHP-- sebagai beliau membincangkan asal-usul sumbangan Dustin ini. Mark Zuckerberg: Saya mula berjalan tapak dan melancarkan ia pada Harvard pada Februari 2004. Jadi saya rasa hampir dua tahun yang lalu sekarang. Dan dalam beberapa minggu, Beberapa ribu orang telah mendaftar, dan kami mula mendapat beberapa e-mel daripada orang di kolej-kolej lain meminta bagi kita untuk melancarkannya di sekolah-sekolah mereka. Dan saya telah mengambil 161 pada masa itu. Jadi, saya tidak tahu jika anda semua tahu reputasi kursus yang, tetapi ia adalah jenis berat. Ia adalah satu kursus yang benar-benar menyeronokkan, tetapi ia tidak meninggalkan saya dengan banyak masa berbuat apa-apa dengan Facebook. Jadi rakan sebilik saya Dustin, yang saya rasa baru sahaja selesai CS50, adalah seperti, hey. Saya ingin membantu. Saya mahu melakukan pengembangan dan membantu anda memikirkan bagaimana untuk melakukan barangan. Jadi saya adalah seperti, itu cukup sejuk, dude. Tetapi anda tidak tahu apa-apa PHP atau apa-apa seperti itu. Jadi hujung minggu itu ia pergi, membeli buku Perl untuk patung, pulang dan adalah seperti, hak semua. Saya sudah bersedia untuk pergi. Saya seperti, dude, laman web ini ditulis dalam PHP tidak Perl, tetapi itu sejuk. Jadi dia mengambil PHP lebih seperti beberapa hari kerana saya berjanji bahawa jika anda mempunyai latar belakang yang baik dalam C, PHP adalah satu perkara yang sangat mudah untuk mengambil. Dan dia hanya jenis pergi ke kerja. Sebelum kita melihat dengan sekarang di di mana kursus itu akan pergi, membenarkan saya untuk menjemput hanya beberapa kakitangan SC50 ini sehingga ke peringkat. Sesetengah daripada mereka membeli-belah kursus mereka sendiri. Tetapi jika TFS dan CA dan kursus kepala yang berada di sini boleh datang pada sehingga dan menyertai saya untuk hello cepat. Izinkan saya untuk memperkenalkan khususnya, Hanna, Maria, Daven, dan Rob, kursus CS50 mengetuai di sini di Cambridge. [Tepuk tangan] DAVID MALAN: Sesungguhnya bukti kepada struktur sokongan bahawa kursus yang mempunyai dibina di atas banyak tahun yang lalu, kakitangan CS50 nombor tahun ini hampir 100, dan itu di sini di Cambridge sahaja. Sementara itu, di New Haven, ada beberapa 40 TFS dan CA dan kakitangan di sana untuk mengendalikan kursus tersebut juga. Membolehkan kita untuk memperkenalkan pertama, Rob Bowden. ROB BOWDEN: Hi. Saya Rob. Ini adalah tahun keenam saya TFing dalam perjalanan. Jadi, semua jalan kembali pada saya tahun pertamanya, saya tidak mengambil CS50. bayat anda fall-- anda mungkin biasa bahawa anda hanya boleh mengambil empat kursus dan terdapat banyak kursus hari ini. Jadi saya seperti, eh. Saya mengambil AP CS tahun kanan saya sekolah tinggi ia mengerikan. Jadi, saya seperti, eh. sains komputer bukan untuk saya. Oleh itu, maka ia berada di atas perjalanan bayat saya jatuh, bahawa saya mempunyai seorang kawan di CS50, dan Saya rasa saya menghadiri satu kuliah dengan dia. Ia seperti, oh, ini adalah jenis yang lebih baik daripada apa yang telah saya di sekolah tinggi. Dan sepanjang yang tahun, saya mempunyai set masalah saya sendiri dalam kursus saya sebenarnya mengambil. Tetapi saya mendapati bahawa setiap kali saya mahu berlengah-lengah kepada orang-orang, Saya akan kembali ke CS50 dan lihat beberapa barangan itu. Jadi, ya. Saya bergaya. Saya procrastination dengan pengkodan. Oleh itu, maka ia adalah pada akhir kejatuhan yang saya sedar, hey, sains komputer adalah agak sejuk. Saya akhirnya mengambil CS51. Pada semester yang akan datang, Saya akhirnya mengambil CS61. Dan semuanya dari sana, kemudian saya akhirnya mengisytiharkan sains komputer, yang saya terpaksa sama sekali tidak berniat untuk melakukan apabila saya datang ke kolej. Dan kini saya di sini. Jadi kursus ini adalah apa yang anda buat itu. Saya berharap anda menikmati. [Tepuk tangan] DAVID MALAN: Terima kasih kepada Rob. Dan kini Maria, kami menuju pembantu tentu. MARIA: Hey guys. Nama saya Maria. Saya adalah seorang penuntut tahun Cabot House, yang datang dari Bulgaria, dan saya super teruja untuk menjadi sebahagian daripada kakitangan pada tahun ini. Saya mengambil CS50 sebagai bayat tahun lepas, dan saya tidak pernah berfikir tentang CS terlebih dahulu. Jadi saya benar-benar suka kursus ini, dan saya berharap anda semua suka seberapa banyak yang saya lakukan. Dan, yeah. Selamat datang ke CS50. DAVID MALAN: Terima kasih kepada Maria. [Tepuk tangan] Sekarang Hanna, rakan-rakan kepala pengajaran kami. HANNA: Hi, Saya Hanna. Saya adalah seorang senior di Cabot pengajian sains komputer. Saya mengambil CS50 sebagai bayat dan mempunyai telah TFing-- ini akan menjadi tahun ketiga saya. Jadi saya akan gembira terlibat dalam CS50 untuk semua empat tahun, dan saya tidak sabar untuk bekerja dengan anda semua. DAVID MALAN: Terima kasih kepada Hanna. [Tepuk tangan] Dan akhir sekali, Daven, precepter kami. Daven: Hey guys. Saya ajaran yang lebih dalam sains komputer di sini. Ini akan menjadi pengajaran tahun keempat saya. Saya juga membantu menguruskan kursus. Jadi saya pasti anda akan melihat saya, terutama pada waktu pejabat. Saya sentiasa pada waktu pejabat. Jadi, jika anda melihat saya berjalan sekitar, pasti datang mengatakan hi. Saya suka bertemu orang. Jika tidak, bersenang-senang, dan saya akan melihat anda sekitar. DAVID MALAN: Terima kasih kepada Daven juga. Jadi, anda akan memenuhi semua orang ini tidak lama lagi. Tetapi tanpa lagi ado, jika anda semua akan menyambung semula kerusi anda dari awal. Izinkan saya untuk memperkenalkan dari jauh sekarang beberapa rakan-rakan kami dari New Haven, dalam kepala kursus ini tertentu yang akan dapat mengawasi CS50 there-- Profesor Brian Scassellati, Jason, dan Andi, yang just-- supaya kita tidak menggoda nasib dengan mana-mana FaceTime atau like-- yang baru sahaja menghantar kami minit lalu video berikut di mana mereka bertanya khabar dari dewan kuliah di Yale, di mana kuliah sedang distrim sekarang. Jadi rakan-rakan kami dari Yale. BRIAN SCASSELLATI: Hi, David. Hi, semua orang di Harvard. Kami amat teruja untuk membawa CS50 ke Yale semester ini. Nama saya Brian Scassellati, tetapi semua orang hanya memanggil saya SCAS. Dan saya di sini hari ini untuk memperkenalkan kepada anda kakitangan CS50. [Bersorak] Dan yang lebih penting, saya di sini untuk memperkenalkan serta semua pelajar di Yale yang pada pagi ini telah membuat ini yang paling popular kursus di Yale pelajar CS50. [Bersorak] Jadi kami sangat teruja yang akan melihat anda di sini pada hari Jumaat dan pada hari Sabtu untuk Teka-teki Hari dan mempunyai kuliah yang besar. Selamat tinggal. [Tepuk tangan] DAVID MALAN: Pada skrin di sini adalah nama-nama beberapa daripada 140 kakitangan ahli yang menanti anda dalam tempoh perjalanan yang semester-- sebahagian daripada mereka di sini di Cambridge, beberapa daripada mereka di sini di New Haven. Dan sesungguhnya anda akan mempunyai peluang Sabtu ini, sebagai nota SCAS, untuk menghadiri CS50 Puzzle Day. Anda mungkin telah melihat kepingan teka-teki sedikit susut di bawah pintu anda baru-baru ini. Kami mempunyai beberapa tambahan di sini kemudian apabila anda wujud. Jika anda memasang semua empat teka-teki keping dan bergabung tenaga dengan bilik anda berdekatan dalam anda rumah atau asrama, mereka akan memasang ke dalam code-- QR atau dua kod bar dimensi, yang sekali dipasang dan diimbas dengan telefon anda akan membawa anda untuk beberapa hadiah hebat or-- saya rasa anda hanya boleh mengambil gambar ini sekarang juga. Tetapi mencari sesiapa kepingan teka-teki tetap untuk memenangi hadiah yang hebat. Dan sesungguhnya salah satu tradisi dalam SC50-- ah, terlalu perlahan. Salah satu tradisi dalam CS50 adalah untuk menghidangkan kek selepas kuliah pertama. Dan maka sesungguhnya, dalam beberapa minit dari sekarang, akan ada kek dihidangkan di luar di sini dan di New Haven juga. Tetapi first-- kita dihiasi mereka diri kita sendiri. Tetapi first-- dan diharapkan akan ada cukup. Tetapi pertama, melihat cepat. Jadi kuliah memang akan menjadi kebanyakannya dihasilkan di sini di Cambridge. Tetapi setiap bulan, kami akan melompat ke Yale dengan pasukan produksi CS50 dan aliran kursus dalam sebaliknya arah dan juga supaya untuk membawa kedua-dua kampus benar-benar buat kali pertama dalam sejarah sebagai rapat yang mungkin satu dalam kursus yang sama. Dari segi struktur sokongan itulah telah berdiri di sini di Cambridge dan juga seperti di New Haven, adalah bahagian. Malah, sebagai sebahagian daripada anda boleh tahu, kami mempunyai trek yang berbeza dalam perjalanan untuk mereka yang kurang selesa, lebih selesa, dan suatu tempat di antara supaya tanpa mengira latar belakang sebelum anda, boleh anda akhirnya berjaya dalam kelas. Waktu pejabat sementara itu, adalah peluang pada hari Isnin dan Selasa dan petang Khamis untuk bekerja kedua-dua di sini dan di New Haven di padang kita set masalah dengan berpuluh-puluh kakitangan kursus berhampiran anda. Masalah menetapkan sementara itu, adalah disokong oleh perkara-perkara yang kita panggil walkthroughs, yang berdasarkan video tutorial yang benar-benar menjawab FAQ di mana untuk memulakan cabaran seminggu. Dan postmortems berjalan anda melalui penyelesaian yang mungkin supaya akhir set masalah juga, anda tahu apa yang anda boleh dilakukan berbeza atau sama sekali sebaliknya. Masalahnya menetapkan sendiri datang dalam dua edisi, edisi standard yang kita harapkan dan menjemput kebanyakan class-- beberapa 90% ditambah do-- dan edisi penggodam yang dipanggil di mana setiap halaman adalah terpampang edisi penggodam, penggodam edisi, edisi penggodam, supaya anda mempunyai karma yang jika anda akan, untuk menyelam ke dalam versi yang lebih maju set masalah tentu perlindungan yang kononnya bahan yang sama tetapi dengan pendekatan yang lebih canggih dan dengan latar belakang tambahan kadang-kadang diperkenalkan. Sementara itu, ada sembilan hari lewat yang anda boleh memohon untuk masalah tentu menetapkan serta skor yang paling rendah, mana kita jatuh pada akhir terma. Tetapi apa yang menanti? Nah, rasa masalah ini menetapkan di tangan pada Jumaat dan minggu depan di mana kita cuba-cuba hanya untuk beberapa hari dalam sesuatu dipanggil Scratch, pengaturcaraan grafik bahasa yang dibangunkan oleh rakan-rakan kami di Media Lab MIT yang membolehkan anda untuk program sama ada untuk kali pertama atau dalam persekitaran yang baru sama sekali menggunakan persekitaran jenis drag dan drop. Mana kepingan teka-teki hanya berpaut bersama-sama jika ia masuk akal logik untuk berbuat demikian. Sementara itu dalam masalah menetapkan dua tahun lepas misalnya, adakah kita memperkenalkan kelas ke dunia kriptografi, seni menyulitkan atau berebut maklumat. Sesungguhnya, teks ini di sini jika dibuka, akan benar-benar membawa anda ke beberapa destinasi yang menyeronokkan. Dan dalam masalah yang ditetapkan, apa yang kita mempunyai pelajar lakukan adalah melaksanakan tepat mereka jenis things-- algoritma, atau set arahan untuk berebut dan bergegas maklumat. Dan dalam edisi penggodam itu set masalah yang sama, adakah kita mencabar pelajar untuk mengambil fail disulitkan dari komputer biasa sistem dengan banyak nama pengguna dan kata laluan disulitkan dan untuk memecahkan mereka passwords-- sebenarnya memikirkan apa yang mereka tanpa mengetahui apa-apa keutamaan mengenai mereka kata laluan yang sebenar. Sementara itu, kita peralihan dalam masalah ini menetapkan untuk kemudian melihat dunia grafik. Dan sebenarnya, anda mungkin bayangkan kini bahawa ini boleh mungkin menjadi cara yang paling mudah untuk mewakili imej hitam dan putih. A pixel putih, atau persegi, pada bahagian atas di sana, mungkin diwakili dengan 1 dan persegi hitam mungkin diwakili dengan 0. Dan hanya dengan menggunakan lebih bit seperti kita dicadangkan lebih awal dengan 72 dan 73 dan 33, boleh kita mewakili piksel warna juga. Dan apa yang kita lakukan semasa set masalah ini adalah umumnya berjalan-jalan sekitar kampus dengan kamera digital, mengambil gambar orang, tempat dan benda. Kemudian entah bagaimana setiap semester, kita seolah-olah sengaja dipadam atau merosakkan kad ingatan di mana semua orang-orang gambar adalah, dan supaya anda dicabar untuk kemudian menulis perisian yang boleh digunakan untuk mendapatkan semula mereka JPEG dari salinan kad kamera kita. Sementara itu, kita menyerahkan engkau di kemudian istilah kamus perkataan Inggeris yang mempunyai 143,000 kata-kata, dan anda perlu datang dengan cara yang pintar memuatkan mereka ke dalam ingatan, atau RAM jadi untuk bercakap, untuk menjawab pertanyaan dalam bentuk: adalah perkataan ini, adakah ini satu perkataan, melaksanakan paling cepat penyemak ejaan yang anda boleh, walaupun menyematkan diri berpotensi terhadap rakan sekelas untuk melihat siapakah di antara kamu menggunakan jumlah-kurangnya masa apabila menjalankan kod dan juga anda sekurang-kurangnya jumlah ingatan. Kemudian dalam tempoh yang anda sebenarnya melaksanakan pelayan web anda sendiri. Jadi bukan hanya sebuah website dalam bahasa dipanggil HTML dan banyak lagi, tetapi pelayan web yang benar-benar mendengar permintaan di internet dan bertindak balas kepada mereka. Dan sesungguhnya, ini adalah bagaimana kita merapatkan dunia kita C dengan yang anda akan menjadi biasa minggu depan dan PHP dan HTML dan JavaScript dan CSS dan sebagainya. Kerana salah satu web yang pertama berdasarkan projek yang kita lakukan kemudian dalam jangka adalah sejarah CS50 Kewangan. Etrade.com gaya laman web yang membolehkan anda untuk membeli dan menjual saham hampir sementara juga menulis kod untuk bercakap dengan Yahoo Kewangan mendapat separuh saham masa nyata memetik untuk mengemaskini portfolio anda sendiri. Tetapi akhir sekali sudah tentu, adalah project-- akhir peluang untuk melakukan sebahagian daripada apa-apa menarik minat anda untuk menyelesaikan masalah di sini atau di luar menarik minat anda bahawa entah bagaimana diilhamkan dengan pengalaman yang dipelajari di dalam kelas. Dan kelas, seperti yang anda tahu, memuncak dalam apa yang dipanggil CS50 Hackathon dan CS50 Adil dan apa-apa bilangan acara kebudayaan lain sepanjang semester yang membolehkan anda untuk melibatkan diri antara satu sama lain dan kakitangan kursus ini. Sebagai contoh, di Bomba dan Ais dalam Sitar tahun ini, baik, pada petang Jumaat, kami menjemput kira-kira 50 pelajar untuk makan tengah hari, sesiapa ingin menyertai kami, diri saya sendiri, dan kakitangan, dan rakan-rakan kami dari industri dan alums untuk berbual mengenai kehidupan dalam dunia sebenar dan di luar sambil menikmati makan tengah hari yang baik. Pada Hackathon akan anda melihat imej tersebut kerana ini, termasuk banyak candy-- dan pada 2014 untuk time-- pertama sayur-sayuran. [Tepuk tangan] Tetapi pada 05:00, adakah tempat kejadian biasanya melihat sesuatu yang kecil seperti ini. Dan kemudian hanya seminggu atau lebih kemudian, adalah Fair CS50 yang beberapa 2000 plus pelajar dan kakitangan dan fakulti ahli dari seluruh kampus dan di seluruh kampus tahun ini datang untuk melihat dan kegembiraan dalam pencapaian pelajar CS50, yang sekarang adalah anda. Dan sesungguhnya, manakala tahun ini kita akan menjemput dan busing sesiapa di di Yale yang ingin datang ke Cambridge Sabtu ini untuk CS50 Puzzle Hari, dan kami akan melakukan perkara yang sama pada bulan Disember untuk CS50 Hackathon supaya pelajar Harvard dan Yale memakannya sama dalam kedua-dua acara. Kami juga akan mengadakan pameran CS50 dalam Cambridge dan di New Haven tahun ini supaya pelajar di kedua-dua kampus dan kakitangan dan fakulti boleh melihat antara satu sama masing-masing pencapaian kampus. Dan orang-orang pencapaian akan mendorong memori seperti kerana ini dan ini dan akhirnya ini, di mana anda semua keluar kelas memakai sedikit sesuatu di mana anda adalah diharapkan gembira atau bangga untuk mengatakan bahawa saya mengambil CS50. Tetapi sebelum itu dan sebelum kita berkhidmat kek, kami telah meletakkan together-- terima kasih kepada CS50 pasukan pengeluaran dan diri tertentu stick, majlis itu satu yang kita gunakan perkara-perkara seperti bagi- apabila kita telah memberikan bukan sahaja di sini untuk Cambridge tetapi juga ke New Haven untuk mengumpul hellos sahaja dari kakitangan kursus ini dan semua orang anda akan bertemu di sini dan di New Haven pada bulan-bulan berikutnya. Izinkan saya untuk memperkenalkan beberapa kakitangan CS50. Mark Zuckerberg: Adakah yang membuat ia pergi? Oh, ia akan. Ia sedang berlangsung. Ooh. Yarr! [MUZIK DITAYANGKAN Andy Grammer, "HONEY, I'M  BAIK"] MARY: Ini adalah Caitlin. Itulah Jay, dan saya Mary. SATO: Hi, guys. Saya Sato. MICHAEL G .: Hi. Nama saya Michael, G. DOUG LLOYD: Saya tidak. No. Saya Doug Lloyd. Saya tidak boleh percaya bahawa saya memegang gambar diri sendiri yang melekat sekarang. SPEAKER 4: Hi. SPEAKER 5: Hi. SPEAKER 6: Hello. SPEAKER 7: Hi. SPEAKER 8: Hey. Kami melepak di Yale. Kami benar-benar teruja untuk semester ini kerana ia adalah pertama kali ia datang ke Yale. Ia akan menjadi hebat! [MUZIK Bermain] JACOB SCHERBA: Nama saya Yakub Scherba. Saya teruja untuk mengajar CS50 kerana saya fikir ia membawa sains komputer untuk orang di dalam dan cara mudah didekati. SPEAKER 9: Saya benar-benar teruja untuk mengajar CS50 kerana saya mengambil kelas tahun lepas, dan ia adalah salah satu kelas yang terbaik. SPEAKER 10: Ya. Nasihat saya adalah anda perlu mengambil CS50. JACOB SCHERBA: Saya memilih CS kerana Saya rasa ia adalah cara yang menyeronokkan dan kreatif untuk menyelesaikan masalah dengan cara yang analitikal. SPEAKER 11: Kembali apabila saya sedikit bayat dan takut sains komputer dan takut untuk berbuat kejuruteraan dan barangan, ia adalah kelas keras pertama saya mengambil, dan ia juga adalah kelas kegemaran saya pernah. DOUG LLOYD: Ini adalah saya tahun kesembilan CS50 pengajaran. Yang membuatkan saya terdengar begitu lama! Selalu ada sesuatu yang baru. Selalu ada sesuatu yang menyeronokkan. Selalu ada cabaran baru yang dihadapi oleh pelajar baru, dan ia menyeronokkan untuk membantu mereka dan pengalaman mereka cabaran dengan mereka dan membantu mereka menyelesaikan masalah mereka. SPEAKER 12: Apabila saya mula-mula belajar bagaimana untuk melakukan CS, ia adalah seperti belajar kuasa super. Dan untuk melihat bahawa dalam pelajar-pelajar lain dan untuk membantu mereka melalui proses yang adalah salah satu yang paling perkara yang bermanfaat yang saya pernah. SPEAKER 7: Saya memilih CS kerana dalam bermula, saya adalah seorang concentrator matematik dan saya mengambil CS50 dan jatuh cinta dengannya. Saya juga merasakan bahawa dengan CS, saya boleh membina sesuatu. Dan itu, saya fikir, adalah aspek benar-benar sejuk. SPEAKER 13: Beberapa nasihat untuk baru pelajar adalah pergi ke waktu pejabat dan bergaul dengan TFS menggerunkan. SPEAKER 14: Mula P-SET anda awal, pergi ke waktu pejabat, menjadi frends dengan TF anda. SPEAKER 15: Ya. Semuanya katanya. SPEAKER 16: Jangan takut untuk meminta bantuan. SPEAKER 17: Ya. SPEAKER 18: Mula P-SET anda awal. SPEAKER 19: Ia adalah satu pengalaman sosial yang besar. Membuat banyak kawan-kawan dengan cara ini. SPEAKER 14: Pergi ke bahagian Ia menyeronokkan. SPEAKER 11: Maksud saya, pergi untuk itu. Ia benar-benar keras. Anda akan mendapatkan daripada itu apa yang anda masukkan ke dalamnya, tetapi ia adalah benar-benar menyeronokkan kelas terutamanya jika anda sanggup meletakkan masa ke dalamnya, tetapi ia membantu jika anda meletakkan masa ke dalamnya. Anda akan mendapat lebih banyak daripada itu di kemudian hari. MIKE: Saya Mike. CAMILLE: Saya Camille. HANYA: Saya Hanya. MATT: Saya Mat. PETER: Saya Peter. PHILLIP: Saya Phillip. PATRICK: Saya Patrick. ROB BOWDEN: Saya Rob Bowden. BRIAN SCASSELLATI: My Nama SCAS dan this-- ALL: --is CS50. SPEAKER 20: At Yale. SPEAKER 21: At Yale. [KETAWA] DAVID MALAN: Itu sahaja untuk CS50. Kami akan melihat anda dari Yale pada Jumaat, Teka-teki Hari Sabtu ini. Cake kini dihidangkan. Ini adalah CS50. [MUZIK Bermain]