[LATAR BELAKANG NOISE] Adakah ia berfungsi? PATRICK REBESCHINI: Kita boleh memulakan. OKEY. Great. Mari kita mulakan. Jadi ia adalah keseronokan terbesar saya untuk mengalu-alukan anda semua di sini hari ini untuk kuliah pertama , baik, Pengenalan Komputeran dan Pengaturcaraan. Juga dikenali sebagai CS50 atau baik, CPSC 100, secara rasmi di sini di Yale. Oleh itu, kita tidak boleh lebih teruja untuk mengalu-alukan anda semua di sini. Nama saya Patrick Rebeschini. Saya pengajar kepala untuk kelas. Saya sedang sini mewakili kumpulan kira-kira 60 orang kakitangan yang akan bekerjasama dengan anda sepanjang semester. Nombor ini adalah hampir 60 daripada kita. Namun di sepanjang luar biasa Tahap komitmen yang kita masukkan ke dalam ini kelas, membuat CS50 kelas di Universiti Yale yang menawarkan tahap yang paling besar sokongan kepada anda semua. Dan kita tidak boleh lebih berbangga dengan menawarkan kelas ini di sini lagi. Malah, seperti yang anda akan mengalami, CS50 adalah lebih daripada kelas. Ia adalah satu komuniti. Dan anda akan menjadi sebahagian tidak lama lagi komuniti ini. Ini adalah tahun kedua Yale menawarkan kelas ini. Kami sedang membina pada yang melampau kejayaan tahun lepas, di mana untuk pertama kali, di sini di universiti ini, pembantu pembelajaran ijazah telah diterima pakai di dalam bilik darjah. Semuanya bermula dengan kelas ini tahun lepas. Jadi seperti yang anda tahu, kelas yang diajar bersama-sama dengan Universiti Harvard. Untuk mengajar kursus ini kita relying-- kita boleh bergantung kepada kepakaran besar David Malan dan pasukan Harvard. pengajaran supaya David telah CS50 untuk baik, 10 tahun sekarang. Dan setiap tahun dia telah menolak sempadan dan meningkatkan pengalaman bilik darjah. Sekali lagi, kita tidak boleh lebih senang untuk meneruskan kerjasama dengan mereka. Malah, salah satu daripada kebanyakan bahagian yang menarik, Saya akan berkata menjalankan kelas ini sekarang, kedua-dua di Harvard dan di sini di Yale, adalah benar-benar luar biasa silang idea-idea, bertujuan untuk meningkatkan pengalaman untuk anda semua pembelajaran. Jadi akibat daripada ini luas kerjasama antara kedua-dua universiti, CS50 dengan bangganya mengumumkan versi baru tahun ini dengan perubahan ketara. David semua akan memberitahu kita tentang mereka sekarang. Jadi please-- makhluk ini berkata, sila sertai saya dan selamat datang untuk memberikan pusingan besar tepukan untuk menyambut Daud dan pasukan Harvard di sini di Yale. [BERTEPUK TANGAN] DAVID MALAN: Terima kasih. Terima kasih. Ini adalah CS50, Harvard University dan pengenalan Yale Universiti kepada intelektual perusahaan sains komputer dan seni pengaturcaraan. Dan apa yang bermakna adalah bahawa kursus ini akhirnya, adalah mengenai penyelesaian masalah. Malah ramai daripada anda mungkin yang keluar dari sekolah tinggi atau telah menghabiskan beberapa tahun yang lalu tertanya-tanya apa yang kawan-kawan kamu lakukan pada tahun lepas atau di kelas lain. Namun, realiti , tidak kira apa yang kita lakukan pada akhir hari di kelas ini, ia akan menjadi kira-kira penyelesaian masalah. Dan oleh itu, mungkin mengambil beberapa keyakinan pada hakikat bahawa 73% daripada pelajar-pelajar yang mengambil kelas ini, kedua-dua di sini di Yale dan juga di Harvard, tidak pernah mengambil kelas CS sebelum ini. Jadi, jika anda duduk di sini di penonton hari ini tertanya-tanya mengapa anda duduk di sini di khalayak hari ini, atau mungkin anda hanya diikuti bersama-sama dengan beberapa rakan-rakan, atau mungkin anda telah menjadi sedikit ingin tahu tentang apa sains komputer dan pengaturcaraan, menyedari bahawa kebanyakan rakan-rakan anda untuk kiri dan di sebelah kanan anda amat dalam demografi yang sama. Dan sesungguhnya, jika dilihat statistik tahun lepas dalam badan pelajar daripada CS50, kedua-dua di sini dan di Harvard, 58% pelajar menggambarkan diri mereka sebagai kurang selesa. 9% adalah lebih selesa. Dan kemudian 33% adalah suatu tempat di antara. Dan tidak ada definisi formal apa baldi ini bermakna. Anda semacam tahu anda kurang selesa jika anda berada. Anda berasa sedikit tidak selesa dengan mungkin berada di dalam kelas. Anda tidak pasti jika komputer kelas sains akhirnya untuk anda, dan menyedari bahawa anda adalah dalam syarikat yang sangat baik. Dan sesungguhnya penggredan, dan penilaian, dan maklum balas, dan semua itu struktur sokongan dalam kelas akhirnya sangat individu. Lebih-lebih lagi daripada kebanyakan mana-mana kelas lain dengan reka bentuk. Dan sesungguhnya, apa yang akhirnya perkara-perkara di dalam kelas ini tidak begitu banyak di mana anda berakhir sehingga relatif kepada orang lain, tetapi di mana anda, pada minggu 11 atau terakhir, dan relatif kepada diri anda dalam minggu 0 di sini pertama kami. Jadi apa maksudnya? Nah, ini bermakna orang-orang 73% daripada pelajar tahun lepas yang tidak pernah mengambil kelas CS sebelum ini, oleh mula semester mereka telah berkecimpung dalam bahasa yang dipanggil Scratch, yang kita diri kita sendiri akan lihat di sini hari ini. Dan pada akhir daripada semester yang telah mereka pergi melalui keseluruhan senarai ini cabaran. Bermula dengan bahasa dipanggil c. Melaksanakan, apa yang pada pandangan pertama, pergi menjadi sedikit cabaran untuk sesetengah orang, tetapi agak memuaskan sebaik sahaja anda mendapatkan Super Mario melantun atas dan ke bawah piramid dilaksanakan, walaupun, dengan hanya sesuatu yang dinamakan seni ASCII. Melaksanakan year-- lepas apa pelajar tahun lepas kemudian adakah selepas itu telah melaksanakan mereka cipher Caesar sendiri dan cipher Vigenere. Jadi algoritma penyulitan yang anda boleh maklumat perebutan dan kemudian menguraikan maklumat untuk menghantar mesej rahsia. Permainan 15. Jika anda masih ingat dari zaman kanak-kanak atau beberapa memihak kepada parti, bahawa permainan plastik kecil di mana anda bergerak nombor atas, bawah, kiri dan kanan cuba untuk mendapatkan mereka dalam perintah, sebenarnya melaksanakan permainan yang dan menyelesaikan logik yang diperlukan di sana. Dan kemudian kita menceburkan diri dalam bidang forensik tahun lepas. Jadi pada pertengahan semester, pelajar yang tidak pernah digunakan keyboard mereka untuk tujuan ini sebelum ini, telah menulis perisian pulih, jadi untuk bercakap, JPEG atau gambar kalau kita ada sengaja dipadamkan daripada digital kad memori dari kamera. Pulih mesej rahsia dari dalam imej bitmap, dan lain-lain apa-apa jenis grafik juga. Kemudian kami bergerak untuk memberi seluruh kelas kamus. Hanya fail teks benar-benar besar dengan 150,000 kata-kata bahasa Inggeris. Dan semua orang telah dicabar entah bagaimana membaca, boleh dikatakan, perkataan-perkataan ke dalam ingatan. Ke dalam ingatan komputer. Dan kemudian menjawab soalan borang, adakah ini satu perkataan? Adakah ini satu perkataan? Adakah ini satu perkataan? Benar-benar hanya melaksanakan penyemak ejaan. Dan kemudian mencabar setiap lain dengan Lembaga- besar papan pemimpin untuk melihat siapa yang boleh menggunakan sekurang-kurangnya jumlah ingatan, dalam jumlah-kurangnya masa untuk sebenarnya semak ejaan dokumen yang besar. Kami beralih dari kemudian kepada melaksanakan pelayan web yang sendiri. Jadi tidak membuat halaman web dalam bahasa seperti HTML dan CSS, jika anda sudah biasa. Tetapi sebenarnya melaksanakan pelayan yang mendengar di internet untuk permintaan dari pelayar dan kemudian bertindak balas kepada permintaan tersebut. Kemudian melaksanakan sendiri e-perdagangan seperti laman web, di mana pelajar boleh membeli dan menjual saham. Lukisan dalam masa hampir sebenar harga saham daripada Yahoo Kewangan. Dan membenarkan pelajar untuk melihat bagaimana portfolio mereka berkembang. Dan kemudian akhirnya mash sehingga Google News dan Google Peta di mana pelajar dengan istilah dengan terma akhir mempunyai keupayaan untuk klik, dan bulat, dan carian pada peta Google. Dan kemudian melihat semua artikel berita yang adalah proksimal dengan kawasan-kawasan tertentu. Jadi benar-benar pergi dari sifar hingga 60. Dan di sepanjang jalan yang mempunyai apa yang kita ada tahun lepas dipanggil, penambahan penggodam. Yang meningkatkan tahap lagi bagi anda yang baik mungkin mempunyai yang baik jumlah pengalaman berada di bahawa 9% lebih selesa. Jadi sedar bahawa ada siling yang sangat tinggi walaupun dalam mereka cabaran untuk pelajar yang datang dari latar belakang yang berbeza. Kerana pada akhir hari, kami akhirnya memberi tumpuan cukup hanya mengenai perkara ini. Tetapi apakah ini bermakna, penyelesaian masalah? Jadi mari kita mencadangkan supaya kita menyuling ia seperti ini. Jadi penyelesaian masalah adalah benar-benar hanya jenis ini gambar. Jadi anda telah mendapat input kepada beberapa masalah, sesuatu yang anda benar-benar ingin menyelesaikan. Matlamatnya adalah untuk mendapatkan output, penyelesaian kepada masalah itu. Dan kemudian di tengah-tengah adalah apa yang kita akan memanggil kotak hitam. Anda tidak semestinya tahu atau peduli apa yang di dalam bahawa kotak hitam. Apa yang anda tahu adalah bahawa apabila anda makan input ke dalamnya, anda mudah-mudahan mendapatkan output atau penyelesaian daripadanya. Dan manakala hari ini kita akan melihat kedua-dua di input dan output, kita akan jangka panjang, dan lebih perjalanan keseluruhan semester, memberi tumpuan kepada apa yang di dalam kotak itu. Dan di dalamnya akan berbohong sesuatu yang dipanggil algoritma. Langkah demi langkah untuk sebenarnya menyelesaikan beberapa masalah. Tetapi apa yang adalah contoh beberapa input? Jadi mungkin satu perkara yang mudah di mula setiap tahun persekolahan, seseorang mungkin mahu mengambil kehadiran. Oleh itu, kita mungkin melakukan satu, dua, tiga, empat, lima, enam, dan bagaimana saya akan menjaga mengesan maklumat tersebut. Saya mungkin pergi satu, dua, tiga, empat, lima, enam. Dan hanya menggunakan jenis digit tunggal. Atau saya sebenarnya boleh merakam ini tempoh lebih lama. Dan bagaimana saya mewakili semua manusia di dalam bilik ini? Well, saya boleh melakukan sesuatu seperti, OK. Saya melihat satu orang. Baiklah. Saya melihat orang lain, orang ketiga, dan sebagainya. Tetapi tiada siapa yang diambil kira orang seperti ini. Jadi secara literal, kebanyakan kita jika kita walaupun akan membawa apa-apa pun, mungkin akan pergi satu dua tiga empat, mungkin mendapatkan yang mewah sedikit, lima, enam, tujuh, lapan, sembilan, sepuluh dan sebagainya. Dan itu sebenarnya adalah sistem dipanggil unari. Uno, seperti uno membayangkan satu, di mana anda hanya mempunyai satu huruf abjad. Anda baru sahaja mendapat tanda hash ini. Dan saya, untuk kecekapan, hanya menarik ini tanda hash, akhirnya garisan lurus. Tetapi saya boleh telah menarik mereka sebagai angka kayu kecil. Di mana untuk mewakili satu orang, satu input, Saya hanya menarik kayu angka atau tanda hash. Tetapi ini tidak semua yang ekspresif. Jika semua yang saya ada adalah hash ini tanda, biarlah angka kayu sahaja, bagaimana saya boleh mewakili sesuatu seperti bilangan 15? Atau 15 orang di dalam bilik? Saya mungkin perlu melakukan sesuatu seperti 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Ia hanya tidak skala sangat baik. Sebagai input mendapatkan yang besar, kami memerlukan sistem yang lebih baik daripada ini. Dan ternyata bahawa sistem yang menggunakan komputer tidak semua yang berbeza dari apa yang anda dan saya tahu. Malah, kebanyakan orang di dalam bilik ini, walaupun anda adalah di kalangan mereka yang kurang selesa, tidak semestinya tahu bagaimana Mac atau PC anda benar-benar berkesan, anda mungkin sekurang-kurangnya mendengar, yang di bawah hood adalah 0 dan 1. Apa yang dipanggil sistem binari. Sungguh, komputer mempunyai lebih daripada hanya tanda hash dalam perbendaharaan kata mereka, tetapi tidak sebanyak satu perbendaharaan kata seperti kita manusia. Sesungguhnya, kita manusia tidak menggunakan binari. Bi bermaksud 2, 0 dan 1. Tetapi perpuluhan, deca bermakna 10, 0 hingga 9. Oleh itu, kita mempunyai lebih banyak ekspresif keupayaan dalam dunia manusia normal. Tetapi saya berpendapat bahawa sistem ini, binari dan perpuluhan, dan segala-galanya di antara dan di luar, adalah sebenarnya semua cukup akrab. Sebagai contoh, pertimbangkan contoh ini di sini, 123. Jadi ini benar-benar, sudah tentu, bilangan yang kita kenali sebagai 123. Tetapi apa yang saya hanya menarik adalah ini corak simbol, glyphs jadi untuk bercakap. Jenis bentuk pada papan dalam kapur. Tetapi mengapa kita serta-merta dan intuitif memahami ini sebagai 123? Nah, jika anda adalah seperti saya di sekolah rendah, anda mungkin mengetahui bahawa ini adalah ruang 1s, ini adalah ruangan 10-an itu, ini adalah ruangan 100-an itu. Dan mengapa yang berguna kepada anda? Nah, ia adalah aritmetik mudah anda kini lakukan untuk mendapatkan dari satu corak simbol kepada sebilangan kita memahami secara intuitif. Adakah apa, 100 kali 1, dan kemudian 10 kali 2, dan 1 kali 3, yang sudah tentu hanya 100, dan ini adalah 20, dan ini adalah tiga. Dan jadi jika kita menambah mereka together-- ah. Jadi di sinilah terletaknya jenis penaakulan sebalik mengapa set simbol bermaksud sesuatu yang nyata dan angka. Well, komputer melakukan perkara yang sama, tetapi mereka hanya boleh mengira setinggi satu. Manakala saya dapat mengira setinggi tiga. Dan sebenarnya, jika saya terus saya boleh mencecah sehingga sembilan dalam sistem ini. Komputer hanya mempunyai sifar dan orang-orang yang dalam abjad mereka. Jadi apa maksudnya? Nah, ia hanya bermaksud bahawa jika komputer mahu untuk mewakili, berkata bilangan 0, mungkin menggunakan tiga characters-- tiga huruf abjad boleh dikatakan, itulah bagaimana komputer mewakili 0. Jadi tidak semua yang menakutkan setakat ini. Ia betul-betul apa yang kita manusia akan lakukan. Dan sebenarnya, sebahagian besar daripada kita akan hanya mengabaikan sifar terkemuka anyway. Komputer, jika ia mahu untuk menyimpan nombor 1, ternyata akan melakukan ini. Dan komputer untuk menyimpan nombor 2 tidak akan melakukan sistem unari, yang saya katakan sebelum ini. Ia sebenarnya akan melakukan ini. Dan ini mungkin di mana corak bermula untuk menjadi kurang jelas bagi kebanyakan orang. Itulah 2, ini adalah 3. Agak menghairankan, ini kini 4. Dan kini ia benar-benar tidak seolah-olah menjadi mungkin samar, tetapi ia tidak jika kita menganggap apa binari benar-benar bermakna. Ini bermakna anda mempunyai dua huruf abjad anda. Jadi dua Aksara yang mungkin bagi setiap pemegang tempat. Jadi yang benar-benar bermakna kita akan untuk memerlukan tempat yang 1s, atau tempat 2s, tempat 4s dan kemudian 8, dan 16, 32, dan 64. Dan apakah perbezaan di sana? Seperti ini adalah 1, 2, 4, 8, 16, 32, 64. Dan sebelum kita mempunyai 110, 100,000, 10,000. Apakah persamaan di sana? Dan apa corak? Yeah. PELAJAR: Kuasa 2 bukannya kuasa 10. DAVID MALAN: Ya. Kuasa 2 bukannya kuasa 10. Dan jadi jika saya mahu menyimpan pergi, 8, 16 dan supaya forth-- tetapi kini jika anda mempunyai jenis ini daripada petunjuk, kini sistem binari sebenarnya cukup mudah. Mengapa corak ini 0 ini dalam dunia komputer 0? Dengan baik kerana ia adalah 4 kali 0, 2 kali 0, 1 kali 0 dan anda mendapat 0. Mengapa ini nombor 1? Sebab yang sama, tetapi sekarang kita mempunyai 1 dalam ruang 1. Mengapa ini 2? Kami mempunyai 1 dalam ruang 2s. Dan bagaimana pula saya mewakili berkata, nombor 7 dalam binari? Katakanlah kuat. PELAJAR: Tiga 1s. DAVID MALAN: Tiga 1s. Jadi 1, 1, 1 kerana kita hanya perlu 4 plus 2 plus 1 memberikan saya 7. Baiklah. Jadi dari sana bagaimana kita mewakili 8 dengan 3 ruang letak? Yeah. PELAJAR: 1, 0, 0, 0. DAVID MALAN: Ya 1, 0, 0, 0. Namun mungkin, saya jenis daripada segi teknikal perlu untuk menambah pemegang tempat lain kepada lembaga. Jika saya mahu untuk dimuatkan bahawa saya memang perlu melakukan sesuatu seperti ini. Jadi saya benar-benar perlu gunakan sekarang lajur 8s, dan itulah denda. Tetapi perkara yang ingin tahu dalam pengkomputeran adalah yang yang akan kos kita sesuatu. Anda memerlukan lebih banyak RAM dalam komputer anda sekarang. Anda perlu lebih banyak memori kerana anda memerlukan sesuatu fizikal untuk menyimpan yang sedikit tambahan, jadi untuk bercakap. digit binari. Dan sesungguhnya semua itu berlaku di sini, seperti sistem perpuluhan, jika kita terus menambah nombor naik dan naik dan ke atas, kita pergi ke 5-6 ke 7-8 ia seperti membawa 1, secara literal. Dan kemudian segala-galanya kembali ke sifar. Tetapi bagaimana kita sebenarnya mewakili perkara-perkara ini secara fizikal dalam komputer? Nah, pada akhir hari, satu-satunya input fizikal pergi ke komputer saya di sini ialah kord kuasa ini, jadi elektrik atau elektron dari dinding. Dan jadi bagaimana saya dapat daripada sesuatu fizikal seperti itu untuk benar-benar mewakili idea seperti ini sebaliknya. Well, apa yang boleh kita lakukan? Kita boleh menganggap bahawa, semua hak, mungkin jika elektrik mengalir Saya boleh menyimpannya dan berpegang kepadanya. Dan jika saya memegang kepada beberapa elektrik, yang hanya akan sewenang-wenangnya mewakili 1. Dan jika saya tarik palamnya dan tiada apa-apa di sana, anda tahu bahawa hanya akan sewenang-wenangnya mewakili 0. Jadi, jika sesuatu di sana, 1. Jika apa-apa di sana, 0. Atau anda boleh membuat ini sedikit lebih visual. Berikut adalah 0. Ada apa-apa yang sedang menarik pada kira-kira belakang telefon saya. Tetapi jika saya membenarkan sedikit sedikit elektrik mengalir, walaupun ia adalah sedikit cerah di sini, lampu suluh saya pergi. Jadi, saya menyimpan cas dan ergo, telefon ini kini mewakili 1. Jadi 0 1. Jadi dengan 1 iPhone berapa tinggi saya boleh menghitung dengan menggunakan jenis ini pendekatan? Saya bermaksud untuk 1. Ia bukan semua yang menarik. Jadi apa lagi yang boleh kita lakukan? Nah mari kita lihat, sesiapa sahaja di mereka telefon sekarang bahawa saya boleh pinjam? Sesiapa sahaja yang mempunyai telefon dengan lampu suluh terbina dalam? Boleh saya pinjam? Saya tidak memerlukannya dibuka. Baiklah. Terima kasih. Biar saya meminjam ini. Baiklah. Jadi jika saya sekarang tatal ke atas dan di sini, apa yang saya mewakili sekarang? Yeah. Jadi ia adalah tiga kerana ini adalah dalam ruang 1s, ini adalah dalam ruang 2s. Jadi 1 tambah 2 ialah 3. Dan kemudian jika kita cuba untuk mendapatkan benar-benar creative-- oh, terima kasih. Sangat pencegahan. Baiklah. Saya kini mempunyai tiga iPhone. Baiklah. Dan sekarang this-- saya tidak akan melakukan apa-apa lagi daripada ini. Apa yang saya mewakili sekarang? Hanya tujuh pasang. Tetapi saya perlu secara fizikal memori yang lebih dalam kes ini. Tetapi itu sahaja ia. Anda boleh memikirkan apa yang berlaku pada-- terima atasmu di dalam telefon anda kerana hanya menjadi suis itulah sedang dihidupkan dan di luar. Dan jika anda pernah mendengar perkataan transistor. Atau jika anda pernah mendengar pemasaran bercakap Intel di dalam, yang yang bercakap kepada jenis perkakasan yang berada di dalam komputer anda. Intel membuat CPU, unit pemprosesan pusat, yang seperti otak di dalam komputer anda. Dan CPU ini dan apa yang mereka dihubungkan untuk mempunyai banyak dan banyak suis kecil. Berjuta-juta, berbilion suis yang boleh sama ada hidup atau mati. Jadi komputer, bersyukur, seperti Mac dan PC kita, boleh bergantung cara lebih tinggi daripada 7 atau 8 kerana mereka mempunyai cara yang lebih daripada tiga atau empat bit. Cara yang lebih daripada bersamaan tiga lampu suluh yang kita hanya mempunyai. Tetapi sekarang ini mula mendapat agak tidak menarik dengan cepat. Jika saya kini mahu sebenarnya dapat untuk melakukan sesuatu yang lebih menarik, Saya mahu dapat untuk melompat untuk sesuatu seperti ini. Jadi ASCII, ia tidak benar-benar berguna akronim, tetapi Kod Standard American untuk Saling Tukar Maklumat. Ia hanya bermakna, beberapa tahun lalu kita manusia membuat keputusan, anda tahu apa, kita mahu dapat melakukan lebih dengan komputer daripada sekadar nombor. Kami tidak mahu mereka hanya menjadi kalkulator mahal, kami ingin dapat melakukan perkara-perkara seperti pemprosesan perkataan, walaupun sangat semata-mata. Kemudian kita mempunyai e-mel dan lain-lain media tersebut. Dan supaya dunia memutuskan beberapa tahun lalu mengikut sistem ASCII ini, awak tahu tak? Dalam sesuatu program bila-bila masa anda melihat sama dengan bilangan 65, seperti corak bit. Dan kita boleh melakukan matematik di sini di atas kapal. Corak bit yang mewakili 65. Jangan memikirkan ia sebagai 65 dalam perpuluhan. Fikirkan ia sebagai sewenang-wenangnya, tetapi di peringkat global, secara konsisten sebagai ibu negara A. Dan kemudian dunia membuat keputusan, anda tahu apa? Mari kita mengambil satu lagi corak bit. Dan jika kita pernah melihat nombor 66, mari kita menganggap bahawa itu adalah modal B. Cepat ke H dan saya, jika anda melihat 72 atau 73, yang harus menjadi H dan I, masing-masing. Dan sebagainya selagi seluruh dunia bersetuju atas ini. Supaya apabila anda menerima e-mel, atau anda akan mendapat fail pada kayu USB, atau sesuatu seperti bahawa- apabila anda melihat bahawa corak bit, anda tahu bahawa ia harus ini surat atau beberapa surat yang lain. Tetapi ia adalah konteks tertentu, betul. Program e-mel mungkin mentafsir perkara-perkara ini sebagai watak-watak, tetapi kalkulator grafik atau kalkulator mungkin mewakili atau mentafsir perkara-perkara ini, sudah tentu, kerana huruf. Maka dengan itu berkata, kajian sedikit cepat. Ini adalah mungkin watak tiga e-mel yang telah dihantar kepada saya. Di bawah hood itu semua dalam 0 dan 1s, Tetapi kita tidak peduli. Kami akan mula abstrak di atas 0 dan 1s untuk huruf. Dan jika saya melihat corak 0 dan 1s bahawa benar-benar mewakili 72, tanda-tanda, tanda-tanda, 73, dan kemudian 33, apa yang mesej? PELAJAR: [didengar] DAVID MALAN: Jadi, jika anda berfikir kembali hanya masa yang lalu, HI adalah mesej yang saya cuba untuk berkomunikasi di sini kerana H adalah 72, Saya kini berusia 73 tahun dan kini 33-- anda tidak akan semestinya tahu ini lebih awal, tetapi ternyata jika anda benar-benar melihat lebih banyak carta dan sistem manusia yang dipersetujui tahun lalu, ia hanya tanda seru. Dan sesungguhnya, terdapat satu corak simbol dan nombor untuk setiap watak bahawa anda mungkin mempunyai pada keyboard anda. Baiklah. Mari kita abstrak lagi. Jika kita tidak mahu hanya mempunyai perkara seperti nombor dan huruf, kita benar-benar mahu melaksanakan grafik. Nah, jika anda telah pernah mendengar singkatan RGB. Ia adalah jenis bertarikh sekarang, tetapi ia masih jenis sana. RGB merah, hijau, biru. Dan ia hanya sistem untuk mengatakan, anda tahu apa, mari kita menggunakan tiga set bit. Satu set 8 bit, satu lagi set 8 bit, dan satu lagi set 8 bit. Dan mari kita menggunakan bit-bit untuk menyimpan berapa banyak kita merah mahu pada skrin kita, berapa banyak hijau kita mahu pada skrin kita, dan berapa banyak yang biru kita mahu pada skrin kami. Dan ini hanya bermakna bahawa jika anda mempunyai satu jumlah yang besar lot-- untuk merah, itu bererti memberi saya banyak merah. Jika anda mempunyai satu jumlah yang besar untuk hijau, memberi saya banyak hijau. Dan jika anda mempunyai hanya sedikit biru atau sebilangan kecil seperti 33, memberi saya sedikit biru. Dan jika anda berlaku untuk menggabungkan tiga magnitud, jadi untuk bercakap, anda this-- anda hampir tidak boleh lihat di projektor di sini, tetapi ini keruh bayangan kuning atau coklat. Tetapi ini adalah untuk mengatakan, menggunakan yang corak 8 plus plus plus 8 8-- telah mentaati 24 bit adalah bagaimana komputer akan menyimpan bahawa bayangan kuning dalam satu kecil dot piksel pada skrin. Oleh itu, kita telah pergi dari 0 dan 1s kepada perpuluhan nombor untuk huruf abjad. Atau lebih menarik, titik berwarna. Nah, apa sudah tentu kemudian datang yang akan datang? Well, apa yang imej yang anda melihat di Facebook atau dalam e-mel? Atau sebagainya? Apakah definisi teknikal imej? Yeah. Apakah yang dimaksudkan dengan imej terdiri daripada jika anda kelihatan benar-benar dekat di skrin anda? Yeah. Ia hanya sejumlah besar piksel. Malah, jika anda mengambil anda komputer riba mungkin di kemudian hari, dan kelihatan benar-benar rapat di it-- bergantung bagaimana mahal laptop adalah dan berapa tinggi kualiti skrin adalah, anda sangat baik mungkin melihat semua titik-titik kecil pada skrin. Dan orang-orang titik atau piksel, yang bermakna ada 24 bit mewakili setiap piksel dalam yang gambar yang anda lihat di Facebook, atau bahawa anda hanya mengambil pada iPhone anda baru-baru ini. Dan sebagainya itulah bagaimana kita mendapatkan kepada perkara-perkara seperti grafik. Well, apa yang video? video adalah hanya satu set grafik terbang dengan skrin sekali lagi dan lagi dan lagi. Dan sebagainya video benar-benar, hanya corak bit mewakili grid, baris dan lajur titik, terbang dengan imej skrin, selepas imej, selepas imej, juga dikenali sebagai Gambar bergerak. Jadi itu sahaja untuk input dan output. Semua yang kita ada sekarang adalah andaian itu, anda tahu apa, jika kita mahu komputer untuk mewakili maklumat, kita mempunyai sistem untuk melakukannya. Kami boleh melakukannya dengan 0 dan 1s pada akhir hari. Tetapi kita boleh abstrak, jadi untuk bercakap, di atas itu bagi mewakili lebih perkara yang menarik. Dan di sini di di dalam CS50, dan dalam sains komputer lebih umum, kita kini berdiri di atas bahu semua orang-orang yang datang sebelum kita yang membuat kesimpulan bahawa keluar. Dan kini hanya menganggap bahawa komputer boleh mewakili input dan output. Tetapi sekarang mari kita sebenarnya melakukan sesuatu dengan mereka. Jadi algoritma adalah hanya satu set arahan, langkah demi langkah, untuk menyelesaikan beberapa masalah. Dan apa yang mungkin satu masalah itu menjadi. Jadi ini adalah sekolah lama teknologi, buku telefon. Dan di dalam buku telefon adalah sekumpulan keseluruhan nama-nama dan nombor. Dan nama-nama secara umumnya disusun mengikut abjad. Jadi, jika saya mahu mencari seseorang dalam buku telefon ini seperti Mike Smith, apa yang manusia biasa akan lakukan? Nah, anda hanya boleh membuka ia naik, melihat halaman pertama. Saya tidak nampak Mike Smith. Buka halaman kedua, Saya tidak nampak Mike Smith. Dan hanya terus pergi dan pergi. Adakah langkah ini dengan pendekatan langkah betul? Yeah. Ia adalah jenis bodoh, betul. Ia tidak cekap, betul. Kerana ia akan mengambil selama-lamanya untuk sampai ke Mike, tetapi ia adalah betul. Kerana jika Mike di sini Sesungguhnya aku mencari dia. Jadi apa yang sedikit lebih orang yang munasabah akan lakukan? Mereka mungkin masih membuka ke hadapan, dan mungkin terbang melalui buku telefon dua halaman pada satu masa. Dua, empat, enam, lapan. Saya tidak boleh sebenarnya fizikal melakukannya dengan baik. Tetapi dalam teori, ini harus dua kali lebih cepat, dua muka surat pada satu masa. Adalah algoritma ini betul? PELAJAR: [didengar] DAVID MALAN: Tidak semestinya. Baik. Mengapa kaveat itu? PELAJAR: Kerana dia boleh berada di satu halaman yang anda ponteng. DAVID MALAN: Ya. Jadi, walaupun saya mendapat lebih dekat dan lebih dekat. Bagaimana jika dia hanya tidak sengaja, dengan tidak baik nasib, diapit di antara dua muka surat bahawa saya terbang di atas? Oleh itu, kita memerlukan satu penyelesaian untuk ini. Kami benar-benar perlu kemudian berkata, tunggu satu minit, mungkin jika kita pergi terlalu jauh, mungkin jika kita melanda bahagian T, untuk T datang selepas Smith, maka kita perlu sekurang-kurangnya dua kali ganda sejak sekurang-kurangnya satu halaman. Jadi dipecahkan, tetapi ada isu bersyarat sana. Jadi ia adalah dua kali lebih pantas, tetapi anda mungkin perlu menggandakan kembali hanya sedikit. Tetapi tiada siapa di dalam biliknya, walaupun anda tidak benar-benar menggunakan buku telefon lagi, akan bermula pada awal. Apa yang awak akan lakukan mencari Mike Smith? Anda akan pergi secara kasar kepada S. Atau jika anda tidak benar-benar mempunyai lembaran menipu yang di atas kertas, anda akan pergi sekurang-kurangnya secara kasar ke tengah. Dan sudah tentu tidak hadapan buku ini. Anda akan melihat ke bawah. Dan matematik anda mungkin akan lihat bahagian M, yang adalah lebih kurang di tengah-tengah. Dan kemudian anda akan sedar, apa yang benar? Mana Mike? PELAJAR: [didengar] DAVID MALAN: Ya. Jadi dia lebih di sebelah ini. Dan supaya apa yang boleh anda lakukan? Well, kedua-dua kiasan dan harfiah anda boleh lusuh masalah ini pada separuh masa? Dan kemudian tahu bahawa anda boleh membuang setengah masalah ini yang jauh. Dan sekarang kita ditinggalkan dengan asasnya masalah yang sama, tetapi ia separuh besar. Dan sekarang apa yang yang set arahan? Apa yang algoritma untuk mencari Mike Smith? Ia adalah perkara yang sama. Sekarang ini berlaku untuk menjadi M bahagian dan ini adalah bahagian Z, tetapi asas formula masih sama. Pergi secara kasar ke tengah, melihat ke bawah, oh, darn ia. Sekarang saya dalam seksyen T, Saya telah pergi terlalu jauh. Tetapi di sini juga boleh anda memohon logik yang sama. separuh Throw masalah jauh dan kini kami ditinggalkan dengan satu masalah itu satu perempat daripada saiz. Dan kita boleh mengulangi, dan kita boleh ulangi, dan kita boleh ulangi sehingga secara teori terdapat hanya satu halaman yang ditinggalkan pada yang Mike salah seorang itu atau tidak. Jadi apa yang begitu kuat tentang idea ini? Maksud saya selepas semua, ia agak intuitif. Tiada siapa yang akan bermula pada permulaan buku telefon dan flip 1000 halaman untuk mencari Mike Smith. Setiap orang di dalam bilik ini akan lakukan kira-kira yang jenis algoritma kecuali terkoyak. Dan jadi mengapa kita berbuat demikian? Well, mempertimbangkan kecekapan. Pertimbangkan berapa banyak yang lebih baik ini algoritma adalah dengan memecahkannya ke dalam bahagian-bahagian komponen. Jadi apa yang saya mula-mula lakukan? Saya mengambil buku telefon. Dan seorang saintis komputer, dan seorang programmer, lebih umum ternyata, akan untuk memulakan mengira segala-galanya pada 0. Mengapa? Nah, ia adalah sedikit pelik bahawa kita manusia mengira, secara amnya, bermula dari satu. Kerana apa nombor yang paling kecil kita dapat mewakili berdasarkan walaupun pada lama matematik sekolah rendah kita? Well, ia adalah 0, sama ada ia adalah dalam perpuluhan atau binari. Dan supaya anda akan lihat di dunia pengkomputeran dan pengaturcaraan, secara khusus, kita mula mengira segala-galanya daripada 0. Jadi saya mengambil buku telefon langkah 0. Saya akan membuka kepada pertengahan buku telefon. Dan itulah sesungguhnya yang ungkapan apa yang saya lakukan. Dan kemudian langkah dua ini ialah melihat kepada nama-nama. Langkah tiga adalah sedikit berbeza dari segi konsep. Saya bertanya kepada diri sendiri soalan yang. Jika Smith adalah antara nama-nama, Saya akan membuat keputusan. Jika dia antara nama-nama, kemudian saya akan memanggil Mike. Dan saya akan membuat keputusan berdasarkan sekeping maklumat. Walau bagaimanapun, jika tidak, jika Smith ialah awal dalam buku ini ke kiri, Saya akan membuka ke tengah separuh kiri buku ini. Dan kemudian di sini adalah kepandaian, Saya akan kembali ke langkah dua. Saya akan menyusun daripada berdiri di atas bahu saya sendiri dan hanya mengulangi kerja lepas saya lakukan. Tetapi kerja yang saya telah meninggalkan kurang, dan kurang, dan kurang. Tetapi ia masih pergi ke tempat kerja. Tetapi jika Mike, sebaliknya, yang kemudian dalam buku ini ke kanan, Saya akan membuka ke tengah separuh yang betul buku ini, kemudian kembali ke langkah dua. Tetapi ada sebenarnya senario keempat. Mike sama ada di sini, atau di sini, atau di sini, or-- PELAJAR: Tidak ada. DAVID MALAN: Tidak ada. Dan sesungguhnya, jika kami tidak menjangkakan senario keempat dan terakhir ini program kami mungkin buggy atau boleh dipercayai sama sekali dalam beberapa cara. Yang lain, berhenti dalam kes yang kami tidak mendapati Mike sama sekali. Dan sesungguhnya, jika anda pernah perasan gantung komputer anda, atau satu perkataan yang tiba-tiba atau yang lain program hanya berhenti tidak disangka-sangka, dan kadang-kadang ralat kepadamu mesej literal itu. Program ini berhenti tiba-tiba. Ia boleh untuk apa-apa sebab. Tetapi kadang-kadang ia sesuatu yang mudah seperti ini. Pengaturcara manusia yang menulis perisian yang tidak sedar bahawa, oh, ada mendatangkan sesuatu perkara yang benar-benar boleh berlaku. Dan jika anda tidak menulis kod untuk menangkap bahawa senario keempat, ia memang tidak dijangka kadang-kadang apa yang komputer sebenarnya mungkin lakukan. Sekarang mari kita memanggil seorang Beberapa perkara-perkara ini. Jadi dalam kuning di sini, saya mempunyai terma diketengahkan bahawa selepas ini kami hanya akan memanggil fungsi. Fungsi dalam dunia program adalah sama seperti tindakan, kenyataan tindakan. Jadi mengambil, terbuka kepada, melihat di, panggilan, terbuka, terbuka, berhenti. Itulah fungsi, prosedur, tindakan, apa-apa bilangan sinonim akan bekerja juga. Sekarang apakah perkara-perkara ini kini dalam kuning? Jika lagi, jika yang lain, jika lain, ini adalah apa yang kita akan memanggil keadaan dalam pengaturcaraan, atau cawangan, keputusan mata, jika anda akan. Tetapi bagaimana anda tahu yang garpu di jalan raya untuk mengambil, jadi untuk bercakap? Kita perlu menyerlahkan syarat-syarat ke kanan sana, yang ini yes, no soalan. Soalan-soalan ini palsu benar. Smith antara nama-nama? Smith sebelum ini dalam buku? Smith kemudian dalam buku? Ini adalah soalan untuk yang ada ya atau tidak, atau setara benar, atau palsu, atau setara, satu atau sifar jawapan. Dan sementara itu ada hanya satu bahagian lepas. Ini di sini mempunyai apa jenis kesan? Sama ada atau tidak anda program sebelum ini, bagaimana akan anda menggambarkan apa langkah tujuh dan 10 lakukan? Apa yang awak kata? PELAJAR: Satu langkah rekursi. DAVID MALAN: Satu langkah rekursi. Ya, pada asasnya. Ia teknikal lelaran di sini jika anda biasa. Tetapi kita akan kembali kepada itu. Tetapi ia melakukan sesuatu dengan jelas. Sekali lagi, ia mendorong seorang kitaran, gelung, betul. Anda benar-benar akan belakang untuk beberapa langkah awal. Dan sebagainya sesungguhnya, ini akan melaksanakan beberapa jenis kitaran. Tetapi anda tidak akan mendapat terperangkap dalam ini tanpa henti, betul. Kerana jika anda sentiasa memeriksa adalah Mike sini, atau ke kiri, atau tidak di sini, akhirnya dia tidak akan berada di sana. Dan anda hanya boleh berhenti sama sekali seperti yang baris terakhir. Jadi itu sahaja untuk perbendaharaan kata. Dan ini adalah apa yang kita lakukan umumnya panggil kod pseudo. Ia bukan satu bahasa yang sebenar. Ia hanya sangat rapi Inggeris, tetapi ia berkomunikasi titik. Tidak ada struktur formal di sini. Anda hanya menggunakan ia beberapa kata-kata, tetapi kata-kata yang jelas yang anda boleh untuk berkomunikasi idea anda. Sekarang bagaimana baik adalah algoritma yang dan berapa banyak yang lebih baik kan? Nah, kita tidak perlu masuk ke dalam khusus nombor atau apa-apa macam itu. Tetapi kita boleh melihat bentuk penyelesaian ini. Jadi, jika kita hanya membuat beberapa plot xy di sini pada paksi mengufuk di sini. Mari kita memanggil saiz masalah. Dan seorang saintis komputer akan biasanya menggunakan n sebagai pembolehubah di sini. Jadi n halaman, atau n orang di dalam bilik, atau apa sahaja yang anda cuba untuk mengira. Dan kemudian pada paksi tegak di kiri, yang akan menjadi masa untuk menyelesaikan. Jadi berapa banyak saat melakukannya mengambil saya untuk mencari Mike Smith? Atau berapa banyak langkah-langkah yang diperlukan? Berapakah bilangan lilitan halaman yang diperlukan? Jadi itulah berapa banyak ia kos saya dalam masa untuk menyelesaikan masalah. Dan kita mungkin menarik pertama algoritma cerun, jika anda akan, sebagai hanya garis lurus ini dengan warna merah. Dan saya akan memanggilnya n. Mengapa n? Mengapa ia hanya satu ini untuk satu hubungan? Nah, jika Verizon atau apa sahaja syarikat telefon menambah satu halaman lebih kepada buku telefon tahun depan, yang mungkin menolak Mike satu lagi langkah lebih dekat ke akhir, bergantung di mana halaman yang. Dan jadi kesannya mungkin hanya adalah untuk menambah satu lagi kedua. Atau satu lagi halaman seterusnya. A 12:59 nisbah. Sebaliknya, algoritma kedua. Berapa banyak yang lebih cepat adalah bahawa intuitif? Di mana saya pergi dua halaman pada satu masa? Yeah. PELAJAR: [didengar] DAVID MALAN: Ya. Jadi ia akan menjadi dua kali lebih cepat. Dan kita akan menarik bahawa di sini bergantung kepada skala. Ia masih lagi dalam garisan lurus, tetapi lebih rendah daripada garis merah. Kerana bagi beberapa nombor halaman, jika ia mengambil anda ini banyak langkah-langkah dengan algoritma pertama, ia akan membawa anda separuh seberapa banyak langkah-langkah dengan yang kedua. Dan sebagainya garis kuning menerangkan algoritma kedua hanya akan menjadi di bawahnya. Tetapi apa yang benar-benar kuat adalah untuk berfikir tentang ketiga dan terakhir, dan menakjubkan paling intuitif algoritma, yang mempunyai bentuk ini. Secara teknikal kita panggil ini keluk logaritma. Log asas 2 n dalam kes ini. Tetapi itu tidak benar-benar perkara. Apa yang penting sebenarnya adalah asasnya bentuk yang berbeza yang begitu ramai. Dan anda boleh mempertimbangkan betapa lebih pendek baris ini benar-benar adalah dalam jangka masa panjang. Ia sentiasa meningkat. Ia tidak tegang dengan sempurna. Tetapi ia tumbuh pernah jadi lebih perlahan kerana masalah itu menjadi lebih besar dan lebih besar. Dan anda boleh berfikir ini way-- jika Verizon tidak hanya menambah satu halaman tahun depan tetapi beregu jumlah halaman di dalam buku telefon, algoritma pertama mungkin mengambil dua kali ganda lebih banyak langkah. Jika ia 1000 laman ini tahun, 2000 muka surat tahun depan, Mike mungkin menjadi yang jauh lebih jauh. Jadi ia adalah 1000 langkah-langkah tambahan untuk mencari beliau. Algoritma kedua mungkin hanya 500 lebih langkah-langkah untuk mencari dia kerana sekali lagi, Saya terbang melaluinya dua pada satu masa. Tetapi bagaimana pula dengan algoritma ketiga? Jika Verizon beregu saiz buku telefon tahun depan daripada 1000 hingga 2000 halaman, berapa banyak lagi langkah-langkah adalah algoritma ketiga saya akan mengambil? Ya, ia adalah hanya satu. Dan itu idea yang berkuasa. Anda boleh mengambil 1000 halaman santapan keluar dari masalah yang sekaligus. Dan kini jika anda menganggap senario bodoh, tetapi ia jenis bercakap kepada kuasa jenis ini intuition-- jika buku telefon mempunyai, seperti, empat bilion halaman, terasa seperti masalah yang besar. Dan sesungguhnya, ia mungkin membawa saya empat bilion halaman bertukar untuk mencari Mike Smith dalam yang kes dengan algoritma yang pertama. Tetapi berapa banyak langkah-langkah yang akan ia mengambil dalam algoritma ketiga untuk mencari Mike antara empat bilion helai kertas? Jadi empat bilion engkau mengoyakkan pada separuh. Anda mendapat dua bilion. Kemudian satu bilion, maka 500 juta, 250 juta, 125 million-- tetapi ia berasa seperti ini adalah akan mengambil sedikit masa. Saya mungkin perlu 32 jari untuk mengira sehingga tinggi itu. Tetapi ia memang sebagai beberapa sebagai 32 air mata halaman. Anda boleh pergi dari empat bilion kepada satu halaman pemisah bilangan asal muka surat dalam separuh 32 kali sehingga anda ditinggalkan dengan hanya itu halaman. Kini, sudah tentu, saya menipu di sini. Ia bukan bahawa kita hanya menjadi semacam bodoh sepenuhnya dengan dua yang pertama algoritma. Saya sedang menipu dalam erti kata lain, atau benar-benar saya memanfaatkan andaian. Apa yang benar tentang buku telefon dalam bentuk asalnya yang dibenarkan saya juga menggunakan algoritma ketiga? Yeah? PENONTON: Ia abjad. DAVID MALAN: Ia abjad, bukan? Jika ia adalah hanya dalam rawak perintah, ini adalah satu pembaziran masa, seluruh perbualan ini. Saya perlu melihat setiap halaman jika ia dalam susunan rawak untuk mencari Mike Smith sebelum saya boleh membuat kesimpulan dia ada atau tidak. Dan supaya kita sudut telah mengurangkan ialah saya mempunyai diandaikan bahawa orang lain di kes ini melakukan kerja-kerja untuk saya. Dan sebagainya yang akhirnya jemputan soalan, baik, tunggu satu minit. Bagaimana anda menyusun 1000 muka surat nama dan nombor? Itulah sebenarnya yang lain masalah, sesuatu kita akan kembali pada masa akan datang. Tetapi apabila anda berfikir tentang laman web seperti Facebook dan Google untuk Gmail dan perkara-perkara seperti Google indeks carian sendiri, apabila anda mempunyai berjuta-juta atau berbilion-bilion bahagian data yang disimpan pada hari ini, searching-- dan apatah lagi menyusun mereka problems-- akhirnya satu cabaran kepada dirinya. Dan sesungguhnya, ini maka salah satu daripada cabaran-cabaran bahawa kita akan melihat. Jadi sekarang mari kita mengambil masa dan kita lihat pada CS50 sendiri dan memberikan anda rasa apa yang di kedai semester ini. Malah, jika anda tidak mempunyai sudah, jangan kita lihat pada URL ini. Dan seperti Patrick dirujuk untuk, tahun ini kita membuat pelaburan yang besar semua yang lebih untuk menyokong kursus ini struktur segi TA dan CA, waktu pejabat, bahagian ketersediaan, dan bahan-bahan digital dalam talian, juga. Malah, dari segi kursus ini kuliah, kami di sini hari ini. Dan harapan ini tahun secara rasmi kursus ini sedang menghadiri ke hari ini, kursus ini kuliah lepas, dan kursus kira-kira di pertengahan semester dengan setiap kuliah di antara disediakan secara amnya pada petang Jumaat dalam talian, kedua-dua untuk pelajar Yale dan pelajar Harvard pada tahun ini. Malah, salah satu daripada perubahan asas adalah yang kita pakai di Harvard paradigma yang sangat banyak seperti yang kami lakukan di sini lalu tahun dan kini tahun ini, supaya sama, kita masih filem yang paling kuliah kursus ini di Cambridge tetapi menjadikannya tersedia awal daripada kita pada masa lalu supaya orang-orang yang atasmu, jika anda mahu, contohnya, bermula awal ke atas bahan pada hujung minggu pertama agak daripada hujung minggu kedua, anda akan mempunyai akses kepada jenis bahan, boleh dicari, terbenam, hyperlinkable kepada sumber-sumber yang berkaitan semua yang lebih awal. Dari segi topik, untuk memberikan rasa trajectory-- kursus ini dan beberapa ini mungkin jargon untuk sekarang, tetapi tidak lama, yakinlah. Kami akan bermula hari ini, akhirnya, dengan melihat satu program bahasa dipanggil Scratch. Kami akan beralih selepas itu minggu depan untuk sesuatu yang dinamakan C dan kemudian melihat bangunan yang lain blok untuk menyelesaikan masalah, perkara yang dipanggil tatasusunan dan algoritma, bagaimana kita menggunakan memori memberi kelebihan kepada kami dan kelemahan, dan perkara seperti struktur data, dan kemudian ke arah penghujung daripada kelas melihat pembelajaran mesin dan melihat satu lagi bahasa dipanggil Python, bagaimana web berfungsi, bagaimana internet lebih amnya berfungsi, protokol seperti HTTP, bahasa untuk pangkalan data seperti SQL, JavaScript untuk web, dan akhirnya mengikat semua orang-orang bersama-sama. Dan maka sesungguhnya, pada berakhir hari, anda tidak akan belajar dalam Scratch kelas ini atau C atau Python atau SQL atau JavaScript. Anda akan sebaliknya lebih umum belajar sains komputer dan asas-asas daripadanya, dan anda akan belajar bagaimana untuk program di mana-mana nombor ini bahasa di sepanjang jalan. Jadi memang, salah satu matlamat kursus ini pada akhirnya adalah untuk mengambil kira semua kursus ini roda latihan oleh mereka minggu-minggu terakhir supaya selepas ini, anda boleh kembali ke fields-- anda sendiri sama ada yang telah atau bukan sains komputer atau kejuruteraan, dalam semula jadi sains, seni, kemanusiaan, atau beyond-- dan membawa beberapa ini idea kursus dan bidang ini idea dan praktikal kemahiran untuk domain anda sendiri dalam usaha untuk menyelesaikan masalah itu. Apa yang kita akan lakukan di sini Sementara itu dalam kebanyakan Khamis selepas hari ini adalah dengan ketua-ketua perjalanan terkemuka apa yang kita akan memanggil walkthroughs set masalah tentu. Jadi, setiap minggu apabila kita telah masalah ditetapkan, kami akan berjalan melalui di lokasi yang seperti ini cabaran kursus ini, menawarkan anda beberapa tips dan helah dan teknik reka bentuk. Tetapi jika anda tidak mampu untuk membuat mereka sendiri, sedar mereka sama sumber akan tertanam oleh salah satu kursus yang pembantu guru dalam masalah yang menetapkan diri mereka sendiri, juga. Masalahnya menetapkan tahun ini, tidak seperti tahun lepas, berdasarkan maklum balas, masih akan dikeluarkan pada hari Jumaat. Tetapi bukannya kerana berikutnya Jumaat, dengan itu memberikan anda hanya tujuh hari, secara berkesan adalah kerana 10 hari kemudian. Dan sesungguhnya, ini akan bermakna bahawa mereka akan bertindih dengan hujung minggu. Tetapi kita berharap tahun ini terutama ini akan membolehkan pelajar lebih baik menampung surut dan aliran dalam jadual mereka, sama ada akademik atau ko-kurikulum atau olahraga atau separuh penggal musim. Anda boleh memuat depan beban atau back-beban minggu anda memberi tumpuan kepada CS50 berdasarkan pada beban kursus sebenar minggu anda sendiri. Masalahnya menetapkan diri mereka akan meliputi pelbagai bahasa, walaupun kita akan memberi tumpuan kebanyakannya awal pada C sebelum kita memberi tumpuan selepas itu pada yang lebih tinggi peringkat, lebih banyak bahasa web-centric. Dan kemudian beberapa soalan lazim sini-- anda perlu mengambil kelas seperti CS50 sebagai tahun pertama? Jadi sama sekali. Dan sesungguhnya, ia bukan semestinya sesuatu anda perlu menangguhkan sehingga anda telah memotong gigi anda pada lain-lain jenis kelas. Tetapi sebaliknya, mempertimbangkan bahawa bagi kebanyakan pelajar, termasuk diri saya kembali pada hari itu, ini adalah satu bidang yang sangat dikenali, terutamanya jika anda tidak pernah mengambil CSA AP atau sesuatu seperti itu di sekolah tinggi. Tetapi sedar bahawa sejak awal, sama ada kursus ini atau beberapa kursus lain pengenalan, sesungguhnya kini adalah masa yang terbaik, Saya fikir, untuk mencari beberapa laluan baru atau minat akademik yang baru, juga. Dan kemudian mengambil dengan courses-- lain jadi salah satu perbezaan utama di sini berbanding Harvard ialah kita hanya mengambil empat kursus setiap semester di Harvard atas sebab tertentu. Dan anda semua benar-benar menarik mengeluarkan sedikit 36 ​​kursus dalam jumlah sepanjang empat tahun anda, yang bermaksud umumnya empat atau lima kelas. Dan saya rasa ia agak adil untuk mengatakan dan menafikan CS50, dengan reka bentuk, adalah mungkin bukan jenis kelas yang anda perlu biasanya mengambil dengan empat yang lain kursus untuk sejumlah lima kerana psets adalah oleh mereka bentuk agak intensif. Malah, saya juga belajar belakang ini dalam sehari. Saya tidak akan menerangkan CS50 dan sains komputer, pengaturcaraan sebagaimana yang banyak sukar kerana ia hanya masa yang lama. Ia bukan jenis perkara di mana selepas makan malam, anda boleh kembali ke asrama anda bilik, duduk, dan mula memberi tumpuan kepada pset berfikir, semua hak, Saya akan bang ini keluar malam ini dan kemudian bergerak ke subjek saya yang akan datang pada hari berikutnya. Kadang-kadang anda hanya melanda dinding. Anda mempunyai bug dalam kod anda. Anda tidak semestinya tahu bagaimana untuk menyelesaikan beberapa masalah. Dan salah satu ciri-ciri utama pengaturcaraan untuk diri sendiri untuk hari ini adalah anda hanya jenis perlu satu langkah ke belakang kadang-kadang, tidur di atasnya atau berfikir di atasnya lebih kursus daripada berjoging atau beberapa aktiviti lain, dan kemudian kembali kepadanya segar. Dan anda hanya perlu ini tingkap masa. Dan sesungguhnya, itulah sebabnya kami telah dipanjangkan jumlah masa disediakan untuk set masalah tahun ini dan juga, setiap URL yang Saya meletakkan awal untuk apa yang baru semester ini, dipotong masalah menetapkan supaya mereka pada dasarnya tidak kurang ketat, dan bawa pulang tidak kurang, tetapi ada banyak perkara kurang hadapan, yang kerja keras banyak kurang yang anda perlukan untuk buat di depan setiap set masalah, seperti yang anda akan lihat, sebelum anda boleh sebenarnya menyelam ke dalam daging itu. Jadi sedar bahawa orang-orang dan lain-lain perubahan adalah di kaki langit untuk lebih menampung pelajar, tetapi akhirnya memastikan yang bawa pulang adalah sesungguhnya setinggi mungkin. Oleh itu, sambil kerja lebih daripada mungkin berada di dalam kelas biasa, kami berharap bahawa pulangan anda dan bawa pulang untuk anda dan kemahiran dan idea-idea yang anda keluar adalah semua lebih menarik akibat. Dan untuk mendapatkan anda there-- dan ini adalah salah satu bawa pulang utama, sebagai Patrick dirujuk earlier-- adalah struktur sokongan kursus ini. Jadi bukan sahaja CS50 mempunyai salah satu daripada kakitangan tentu terbesar di kampus. Ia juga mempunyai salah satu daripada paling sarjana muda. Sesungguhnya, CS50 tahun lepas adalah kelas pertama untuk mempunyai tenaga pengajar sarjana muda. Dan bukti kepada kejayaan yang lakukan sekarang banyak kursus-kursus lain dalam Yale CS mempunyai bahawa, juga. Dan untuk pelajar, khususnya, akan ini TA dan kursus pembantu menjadi menyokong keseluruhan rangkaian sumber sokongan, di antara mereka bahagian atau bacaan, peluang mingguan mengadakan perbincangan lebih intim dan ulasan bahan disasarkan untuk trek yang berbeza, untuk pelajar kurang selesa, lebih selesa, atau di suatu tempat di antara. Ini akan mengikut ketersediaan kuliah oleh beberapa hari setiap minggu pada hari Isnin dan Selasa. Dan kemudian hours-- pejabat satu-satu peluang bantuan daripada CA kursus dan TA akan diadakan pada hari Rabu dan Khamis dan Ahad di pelbagai kali, semua yang akan dipaparkan di laman web kursus ini, lebih daripada tahun lepas, juga. Tetapi apa yang penting untuk CS50, jika tidak diakui agak luar biasa, adalah budaya kursus yang kami telah cuba untuk menanam, kedua-dua di Cambridge selama bertahun-tahun dan kini baru di New Haven. Dan sebenarnya, datang ini Sabtu, jika anda tidak pernah mendengar, adalah Hari CS50 Puzzle, yang mempunyai tiada kaitan dengan sains komputer tetapi sepenuhnya direka untuk menghantar mesej bahawa sains komputer adalah mengenai penyelesaian masalah. Dan sesungguhnya, jika anda ingin menjadi rakan kongsi dengan satu atau dua atau tiga rakan dan membentuk pasukan untuk CS50 Teka-teki Day, kita lihat pada iklan yang berada di jalan keluar. Dan tiga jam pizza dan teka-teki dan hadiah menanti. Dan sesungguhnya, bagi kali pertama tahun ini, ia tidak akan diadakan bersama dengan Harvard. Ia akan berada di sini secara bebas di Yale. Jadi memerhatikan keluar untuk mereka jika anda tidak mempunyai. Kebanyakan setiap hari Jumaat pada semester kita cuba untuk membuat kelas besar berasa kecil dan membawa kira-kira 50 pelajar untuk makan tengah hari dengan kakitangan kursus ini, dengan alumni, rakan-rakan daripada industri untuk bercakap tentang apa yang hidup adalah seperti selepas kelas seperti CS50 dan sepanjang musim panas dan selepas tamat pengajian. Jadi memerhatikan keluar untuk jemputan untuk itu. Untuk pertama kali pernah tahun ini akan kita mengadakan pernah CS50 pengekodan pertama pertandingan, peluang opt-in pilihan pertengahan semester, selepas semua daripada kita mempunyai kira-kira enam atau tujuh minggu pengaturcaraan dalam C di bawah tali pinggang mereka untuk bersaing, jika kamu akan choose-- lagi pada teams-- cuba untuk menyelesaikan banyak cabaran yang anda boleh dalam pengaturcaraan dengan rakan-rakan anda terhadap orang lain. Dan ke arah ekor semester akan kita piagam beberapa bas, sebenarnya menghabiskan masa di Cambridge, jika anda lebih suka untuk menyertai kami, untuk dipanggil CS50 hackathon. Pada 7:00 kita akan bermula. Sekitar 9:00, kami akan mempunyai pizza. Sekitar 1:00, kami akan mempunyai burritos. Dan sesiapa yang masih berjaga pada bas menaiki rumah sekitar 5:00, kami akan berhenti untuk penkek di bredden dalam perjalanan home-- peluang 12 jam untuk melibatkan diri anda dengan rakan-rakan dan kakitangan dalam projek akhir kursus ini, yang merupakan satu peluang pergi baik di luar masalah set kursus dan reka bentuk dan melaksanakan kebanyakan apa-apa yang menarik minat anda, yang akhirnya akan menjadi dipaparkan di sini di Commons. Saksama pernah CS50 pertama kali terakhir tahun, pameran akhir-semester atau sambutan apa yang semua orang dalam kelas yang telah dicapai, terutamanya yang, sekali lagi, yang pergi dari apa-apa untuk sesuatu, dari sifar kepada 60, tidak mempunyai latar belakang terlebih dahulu dan mempamerkan, akhirnya, sesuatu untuk seluruh kampus dan, jika dalam talian, dunia untuk melihat, juga. Sekarang, ini di sini adalah hanya beberapa daripada TA dan CA yang membuat CS50 mungkin. Izinkan saya untuk mengundang mana-mana daripada ahli-ahli kakitangan yang berada di sini untuk tampil di atas pentas, serta ketua-ketua kursus ini, untuk menawarkan beberapa kata-kata inspirasi, juga. ANDI: Hi, guys. Boleh anda semua mendengar saya? Terima kasih kerana menyertai kami di ini indah, petang Khamis hujan. Nama saya Andi. Saya adalah seorang junior di Berkeley. Dan bersama-sama dengan Stelios dan musim panas, kita akan menjadi pengajaran tiga kepala anda pembantu bagi tahun ini yang akan datang. Jadi, saya rasa, mengangkat hands-- berapa ramai daripada anda tidak mempunyai niat untuk menjadi CS utama, dan tidak benar-benar menyelam mendalam ke dalam sains komputer sebagai utama di sini? Awesome. Itulah cemerlang. Jadi saya sebenarnya adalah hal ehwal global dan kognitif sains utama. Saya benar-benar datang kepada Yale dengan niat tidak pernah perlu melihat yang bilangan pernah lagi dalam hidup saya. Apabila saya datang ke Yale, ini adalah sesuatu yang tidak pernah di radar saya. Saya mahu belajar mengenai puisi. Saya mahu belajar mengenai hal Ehwal Antarabangsa. Saya mahu belajar mengenai lukisan cat air. Ya, kami menawarkan kelas lukisan cat air. Tetapi saya tidak pernah benar-benar berminat dalam apa-apa STEM berkaitan. Tetapi kemudian saya yang lebih tua mendapat, semakin saya menyedari bahawa bahawa setiap bidang benar-benar dalam beberapa rasa menggunakan sains komputer, atau jika tidak sains komputer, pengiraan. Malah, bagi saya global hal ehwal projek capstone, kita menggunakan analisis data untuk menganalisis serangan pengganas untuk Boko Haram di Nigeria. Dan sebagainya seperti yang anda lihat, tidak kira apa yang utama anda akhirnya mengejar atau apa kepentingan anda di sini di Yale adalah, pengaturcaraan dan asas-asas apa sahaja kemahiran adalah super berguna. Dan CS50 benar-benar cukup bersedia untuk jenis menghulurkan banyak sumbernya kepada anda, tanpa mengira berapa selesa anda adalah atau bagaimana berminat anda dalam mengejar kelas. Musim panas ini akan bercakap sedikit sedikit tentang apa yang anda semua akan belajar kira-kira setahun ini. SUMMER: Hi, semua. Saya Summer Wu. Saya adalah seorang junior dalam Morse. Dan saya sebenarnya bermula sebagai pelajar CS50 diri saya sendiri. Jadi tiga tahun yang lalu, saya adalah pada tahun jurang. Saya tidak pernah mengambil CS kelas di sekolah tinggi, tetapi saya fikir bahawa dalam masa lapang saya, ia akan menjadi sejuk untuk belajar bagaimana untuk kod. Jadi saya melakukan carian Google cepat, mencari apa yang boleh didapati dalam talian, dan melihat video ini dengan Muppets dan DJ dan laman web sejuk. Saya seperti, saya mahu belajar bagaimana untuk berbuat demikian. Lalu aku mengambil kursus ini, dan saya hanya jatuh cinta dengannya. Tetapi saya masih ingat yang begitu cemburu dengan kanak-kanak yang dapat hadir hackathon itu, menghadiri Hari Puzzle, menghadiri pejabat jam, mendapatkan bantuan daripada TA secara peribadi. Oleh itu, saya tidak pernah membayangkan bahawa saya akan mendapat peluang yang akan di sini yang terlibat dalam kursus yang mula-mula mendapat saya berminat dalam komputer sains dan sebab mengapa Saya adalah seorang sains komputer yang utama hari ini. Jadi saya akan memberi amaran kepada anda, kelas ini akan menghulurkan anda. Ia akan mencabar anda. Tetapi ia juga akan mengajar anda bagaimana untuk melakukan perkara-perkara yang anda tidak pernah bayangkan anda boleh. STELIOS: Hi, semua. Nama saya Stelios. Saya adalah seorang junior di Branford Kolej dan utama CS. Saya juga dari Athens, Greece. Saya tidak sabar untuk memenuhi semua, berbual dengan anda di bahagian, di waktu pejabat, di makan tengah hari Jumaat. Saya benar-benar teruja kerana kami telah berusaha keras ke dalam mewujudkan sokongan yang unik struktur untuk anda semua untuk menjadikan pengalaman anda dengan kursus yang terbaik mungkin. Dan saya berharap bahawa walaupun kebanyakan anda mungkin telah tidak mengambil CS kursus sebelum ini, saya berharap yang CS50 untuk anda adalah apa percikan kepentingan untuk meneruskan hasrat komputer sains pada masa akan datang, kerana ia telah dilakukan dengan begitu ramai orang di masa lalu. Jadi terima kasih kerana menjadi sini, teruja untuk melihat anda. Jason Hirschhorn. JASON Hirschhorn: Hi, semua. Nama saya Jason Hirschhorn. Saya tinggal di Silliman. Dan saya pergi ke Harvard sebagai undergrad yang dan mengambil jurusan dalam kajian sosial dan minored dalam sains komputer. Dan salah satu peranan utama saya di sini adalah untuk menyokong kakitangan yang indah kerana mereka menyokong anda semua. Malah, ini tidak semua daripada mereka. Terdapat 55 mahasiswa dan graduan di sini untuk menyokong anda semua. Dan saya berani mengatakan bahawa salah satu yang terbaik bahagian kursus untuk anda semua semakin untuk bekerja dengan mereka, mengenali mereka, mendapat untuk melihat mereka, kedua-dua dalam CS50 dan di luar CS50 semester ini dan bagi kebanyakan semester akan datang. Jadi mudah-mudahan anda akan mengambil tentu kerana mudah-mudahan anda dapat berinteraksi dengan kakitangan yang indah kita ada di pentas. SPEAKER: Baiklah, biar saya selesai dengan mengatakan ia akan menjadi seronok. DAVID MALAN: Baiklah, terima kasih kepada seluruh pasukan kami. Izinkan saya untuk meredupkan dan membolehkan lebih banyak daripada pasukan kami, kedua-duanya dari Cambridge dan New Haven, untuk bertanya khabar kerana lelaki ini memfailkan off. Dan selepas itu kita akan beralih kepada pertama penglibatan program kami dengan bahasa ini dipanggil Scratch. Jadi terima kasih kepada pasukan. Mari kita meredupkan dan mendengar daripada beberapa yang lain. [BERTEPUK TANGAN] [VIDEO MAIN SEMULA] -The Misi CS50 adalah untuk membuat anda lebih selesa dengan cara yang sama sekali baru pemikiran, pemikiran pengiraan ini. -Ia Dibuat sains komputer menarik, yang adalah sesuatu yang saya tidak benar-benar sedar mungkin sehingga saya mengambil kelas. -Saya Adalah seperti, wah. Saya benar-benar menterjemahkan fikiran saya ke dalam komputer sekarang. Loba jika anda tidak mempunyai apa-apa latar belakang dalam bidang sains komputer atau apa-apa pengalaman, ini sebenarnya kelas untuk anda. -Jadi Saya pasti mahu pelajar-pelajar saya untuk hanya merasa senang sains komputer. Bukan sahaja pengaturcaraan, tetapi berfikir seperti seorang saintis komputer adalah benar-benar apa yang saya mahu cuba untuk mengajar bayat saya. -CS50 Adalah sukar dan bermanfaat. pengalaman -an. -Extravaganza. -Ia Yang membawa kita ke tahap yang seterusnya. [MUZIK Bermain] -The TFS adalah, saya fikir, nadi kursus. -I'm Teruja untuk mempunyai pelajar saya saya membantu mempunyai masa yang aha untuk merealisasikan apa yang mereka benar-benar cuba yang perlu dilakukan, untuk memikirkan bagaimana untuk melakukan pset a. -CS50 Pasti kursus keras. Tetapi seperti yang lain tentu benar-benar di Yale, ia mempunyai apa-apa yang besar, masyarakat memberi sokongan. -Anda Sama sekali tidak melakukan perlu tahu apa-apa mengenai pengekodan dapat untuk mengambil kursus. -Ia Mengagumkan untuk menonton sejauh orang datang dalam satu semester. -Anda Tidak sahaja duduk di bilik anda belajar kod, tetapi ia adalah lebih daripada hanya sebuah kelas. Ia adalah pengalaman. -The Cara terbaik untuk belajar konsep dan untuk memproses mereka adalah dengan mengajar orang lain. -Apa Berpecah telefon? [MUZIK Bermain] -Dan Ini adalah CS50. [MUZIK Bermain] -Ini Adalah CS50. -Got Masalah? Air mata itu pada separuh. [MUZIK Bermain] Buangkan. DAVID MALAN: Baiklah. Jadi mari kita tackle-- dalam sedikit bit, secara kebetulan, ia menjadi tradisi ini untuk sebab-sebab tertentu selama 10 tahun untuk berkhidmat kek di mula dan akhir CS50. Jadi menunggu anda pada akhir hari ini, sebagai tambahan kepada sukatan pelajaran, akan ada beberapa kek juga, dan kakitangan kursus ini untuk bertanya khabar. Tetapi sekarang, mari kita peralihan kepada pertama bahasa kita, di mana kami akan menghabiskan benar-benar hanya seminggu dan satu masalah ditetapkan pada domain ini, Scratch. Dan anda akan mendapati jika anda telah diprogramkan sebelum ini, banyak daripada idea-idea dan kemungkinan yang tidak biasa kepada anda. Tetapi anda akan mendapati bahawa ia menyeronokkan di sepanjang jalan untuk memikirkan bagaimana untuk menterjemahkan beberapa idea-idea yang anda sudah tahu dengan persekitaran tertentu untuk benar-benar menarik perhatian keluarga anda dan rakan-rakan dengan kerja anda, yang boleh pergi ke dalam talian, jika anda supaya memilih, selepas itu. Dan jika anda tidak mempunyai pengalaman sebelum dan di kalangan majoriti pelajar yang kurang selesa, sedar bahawa banyak idea-idea kita hanya diterokai dengan perkara-perkara reality-- seperti buku telefon dan kehadiran dan sebagainya forth-- menterjemahkan agak baik kepada komputer, tetapi tidak jika anda gunakan, pada mulanya, bahasa seperti ini. Jadi ini adalah satu program yang ditulis dalam bahasa yang dikenali sebagai C. Dan kita akan menghabiskan agak sedikit masa dalam C, akhirnya. Tetapi kemungkinan besar, ini akan kelihatan sedikit samar kepada anda pada pandangan pertama. Malah, ada banyak pelik sintaksis, kurungan, kurungan sudut, pendakap kerinting, sebut harga, dan koma bertitik. Dan sesungguhnya, jika anda menyelam ke dalam pengaturcaraan untuk kali pertama melihat dan cuba untuk mewujudkan barangan seperti ini, jujur, anda akan mendapat begitu terperangkap selalu dalam hanya bodoh minutia yang mempunyai apa-apa intelektual yang menarik mengenainya. Tetapi bayangkan jika anda boleh membuat program-- yang sama yang, kerana anda mungkin jenis membuat kesimpulan, mungkin cetakan "Hello, dunia" entah bagaimana atau lain-lain. Kita boleh menyuling idea yang sama ke dalam hanya dua kepingan teka-teki, jika anda akan. Sesungguhnya, Scratch adalah menarik kerana ia adalah bahasa grafik ini. Anda boleh seret dan lepas ini kepingan teka-teki yang hanya berpaut jika ia masuk akal logik untuk berbuat demikian. Dan sebagainya dalam Scratch, tak lama lagi kita akan lihat, ini adalah bagaimana anda akan melaksanakan yang sama program, dengan hanya dua kepingan teka-teki yang cukup banyak melakukan apa yang mereka katakan. Tetapi kita akan melihat dalam hanya seketika bahawa beberapa blok bangunan yang kita menyebut untuk lebih awal dan beberapa lagi adalah semua yang akhirnya akan membentuk beberapa program terawal kami. Kami akan mempunyai perkara-perkara seperti functions-- hanya tindakan yang melakukan sesuatu, seperti bertanya khabar, dunia. Kami akan mempunyai gelung, perkara-perkara yang mendorong kitaran lagi dan lagi, sama seperti kita lakukan sebentar tadi dengan pencarian Mike Smith. Pembolehubah, seperti dalam algebra, jika anda mempunyai x atau y, yang boleh menyimpan nombor. Nah, dalam program, anda boleh sebenarnya menyimpan lebih daripada sekadar nombor. Anda boleh menyimpan perkataan dan ayat dan grafik dan lain-lain masih. ungkapan Boolean, hanya questions-- ya atau tidak, benar atau palsu. Syarat ini, keputusan membuat berdasarkan kepada orang-orang ya / tidak jawapan. Dan perkara-perkara kemudian pelamun seperti pelbagai dan benang dan peristiwa dan apa-apa bilangan lain ciri-ciri, tetapi semua yang peta sangat baik untuk sangat blok mesra seperti ini. Ini akan menjadi fungsi, sekeping teka-teki ungu yang hanya berkata apa namanya is-- dalam kes ini, katakan. Dan kemudian sering, ada kotak putih yang anda boleh masuk ke dalam atau seret beberapa nilai ke dalam. Dan itulah apa yang umumnya dipanggil hujah atau parameter. Ia adalah satu cara untuk mengubah kelakuan lalai daripada teka-teki bahagian atau fungsi sehingga tidak sesuatu adat untuk anda suka berkata, hello, dunia atau hello, Andy atau hello, Jason atau beberapa ayat lain sebagai gantinya. Jika anda ingin mengatakan bahawa lot-- literal forever-- anda boleh mengambil satu lagi sekeping teka-teki yang dipanggil selama-lamanya dan hanya diapit yang dua bersama-sama seperti ini. Dan gelung itu, seperti gambar yang mencadangkan, ertinya hanya bertanya khabar, dunia selama-lamanya, lagi dan lagi dan lagi. Atau, jika anda hanya mahu melakukannya yang nombor terhingga kali, seperti 50 kali, ada akan menjadi teka-teki yang lain keping untuk bahawa- mengulangi 50 kali. Sementara itu, jika anda mahu untuk mempunyai pembolehubah dalam bahasa ini kita kira-kira untuk bermain dengan, anda boleh menggunakan blok oren seperti ini. Dan berubah-ubah ini, saya sewenang-wenangnya dipanggil i untuk integer. Dan saya hanya menetapkan ia sama dengan 0. Dan jadi mungkin i, dalam hal ini case-- ini variable-- mewakili skor seseorang dalam permainan. Anda bermula pada sifar, dan setiap kali anda membuat matlamat atau sesuatu seperti itu, anda akan mendapat satu mata tambahan. Anda boleh bertanya soalan dalam Scratch. Jika kita drag dan drop teka-teki keping dalam masa seperti ini, anda boleh bertanya soalan seperti, baik, adalah i kurang daripada 50? Mungkin anda memerlukan 50 mata untuk menang. Dan sebagainya ini akan menjadi soalan yang ingin bertanya. Atau, lebih umum, anda boleh katakan adalah x kurang daripada y, di mana ada dua pembolehubah yang terlibat? Sekarang, yang satu ini adalah lebih lebih besar pada pandangan pertama, tetapi benar-benar tidak semua yang lebih kompleks. Ini hanyalah kombinasi yang keadaan dan pembolehubah dan ungkapan Boolean untuk meminta tiga questions-- adalah x kurang daripada y? Jika ya, berkata demikian. Katakanlah, x kurang daripada y. Yang lain, jika x lebih besar daripada y, lain x mesti sama dengan y. Dan manakala dengan Mike Smith, terdapat empat senario di sini dalam dunia nombor, x sama ada kurang daripada, lebih besar daripada atau sama dengan. Apa yang perlu kita tiga garpu di jalan raya. Dan kemudian ada pelamun kepingan teka-teki seperti ini untuk perkara-perkara seperti tatasusunan, di mana kita berada akan dapat untuk menyimpan maklumat. Kita akan dapat melihat blok yang membolehkan kami untuk melaksanakan pelbagai benang, ciri lain kami akan digunakan, dan kemudian juga sesuatu yang dinamakan acara. Tetapi sebelum kita sampai ke titik dan mencipta lebih, akhirnya, adat kita sendiri kepingan teka-teki, mari kita sebenarnya membuka program itu sendiri. Jadi ini adalah Scratch. Ia boleh didapati di scratch.mit.edu. Dan anda dialu-alukan untuk bermain sekarang atau kemudian, juga. Ini berlaku untuk menjadi versi luar talian. Bagi orang-orang yang tidak semestinya mempunyai internet yang besar, anda boleh memuat turun perisian yang sama, juga. Dan ada benar-benar hanya tiga komponen kepada perisian ini. Pada bahagian atas sudut kiri skrin adalah jenis peringkat yang Awal, yang secara lalai kelihatan seperti kucing, hidup di dalam. Dia boleh bergerak ke atas, bawah, kiri, dan kanan dan melakukan apa-apa beberapa perkara lain, dan boleh melihat apa-apa bilangan cara berdasarkan pada pakaian yang anda tentukan baginya. Tetapi ini adalah apa yang kita akan memanggil bidadari, sejenis watak. Dan anda boleh mempunyai beberapa watak-watak, kerana kita tidak lama lagi akan melihat. Di tengah-tengah kini semua teka-teki ini keping dan kategori ini atau palet daripadanya. Jadi sekarang, saya klik pada Motion. Dan jadi saya melihat semua daripada usul yang berkaitan dengan kepingan teka-teki atau blok, supaya fungsi yang mempunyai kaitan dengan naik, bawah, kiri atau kanan atau beberapa operasi yang lain. Tetapi jika saya klik pada Nampaknya, anda dapat melihat perkara-perkara seperti blok katakan yang yang kita lihat hanya sebentar tadi. Dan jika saya klik pada Control, anda akan melihat perkara-perkara seperti ulangan dan selama-lamanya dan jika blok yang yang kita lihat sebentar tadi. Dan supaya anda akan mencari bahawa kita hanya akan mencalarkan permukaan beberapa teka-teki keping bersama-sama, tetapi itu semua agak intuitif dan titik dan klik. Sesungguhnya, Scratch direka untuk pelajar yang lebih muda untuk membantu memberikan mereka jalan keluar untuk pemikiran kreatif. Dan lagi hebat, ia batu loncatan yang indah untuk betul-betul idea-idea yang kita akan meneroka dalam C dan Python dan JavaScript, juga. Pada sebelah kanan, akhirnya, di sini adalah ini, kawasan skrip kononnya. Dan ini hanyalah senarai calon yang kosong dengan yang anda mula menulis program. Dan saya akan perkara tersebut. Sekarang, saya kebetulan tahu di mana perkara-perkara yang kerana saya telah melakukan ini beberapa kali. Tetapi saya tahu bahawa di bawah kategori Acara, ada blok sini-- ini apabila bendera hijau diklik. Dan perhatikan jika saya zum keluar dan kembali di sini di atas pentas, kehidupan Scratch dalam ini dunia segi empat tepat kecil, di atas yang merupakan hijau bendera dan berhenti tanda merah. Oleh itu, pergilah dan berhenti, masing-masing. Dan jadi apa yang saya mahu lakukan apabila bendera hijau diklik? Baiklah, biar saya pergi ke yang Kelihatan kategori. Dan biarlah saya pergi ke hadapan dan seret dan lepas ini. Dan perhatikan sebaik sahaja ia mendapat dekat, mereka semacam magnet. Jadi jika saya sekarang mari pergi, ia berdetap bersama-sama bagus dan bersih. Dan saya akan pergi ke hadapan dan mengatakan sesuatu seperti hello, dunia selama dua saat. Biar saya zum keluar dan klik sekarang bendera hijau, dan berkata, hello, dunia. Baiklah. Jadi itu semua baik dan baik. Tidak semua yang menarik. Mari kita membuat ia satu cuter sedikit. Dan saya tahu bahawa dalam terlebih dahulu, Scratch berlaku untuk datang dengan beberapa perkara yang comel seperti ini. Jadi bermain meow bunyi hingga masak. Jadi mari kita buat ini. [MEOW] Aw, itu comel. Dan jika saya klik again-- [MEOW] Dan lagi. [MEOW] Tetapi saya terus perlu menghidupkan kembali Scratch. Tetapi saya boleh melakukan yang lebih baik daripada ini. Kenapa saya tidak hanya seret tiga ini. Dan kini ia adalah tiga kali lebih comel. [Mengiu] OK, sebenarnya, ia sedikit menyeramkan. Oleh itu, kita memerlukan sesuatu di antara di sana. Jika saya pergi ke Control, ia kelihatan seperti ada sebenarnya satu blok tunggu. Dan sebagainya notis jika saya pergi ke atas there-- dan biarlah saya membuat ini lebih besar sedikit. Jika saya berlegar, ia akan untuk snap ke dalam tempat. Jadi tunggu sekejap, tunggu satu saat. Mari kita memukul bendera hijau lagi. [Mengiu] OK, sedikit lebih semula jadi, tetapi tidak begitu cekap. Jadi ini adalah betul jika program saya matlamat telah meow tiga kali. Tetapi ia tidak sangat direka dengan baik. Saya jenis memotong beberapa sudut. Saya mendapat sedikit malas. Apa yang terasa like-- apa yang saya seolah-olah telah dilakukan dengan baik, anda akan berkata? Yeah? Ya, di tengah-tengah. PENONTON: digunakan lebih memori daripada anda diperlukan untuk kerana anda menggunakan begitu banyak garis yang berbeza. DAVID MALAN: Ya, jadi lebih talian. Dan ia tidak semestinya menjadi ingatan, walaupun ia boleh dilihat sebagai cara itu. Tetapi ia definitely-- ada lebihan. Dan saya benar-benar jenis diseret dan jatuh berminat serupa. Dan jika anda jenis extrapolate-- jika ia tidak jelas sini-- dengan baik, bagaimana akan Saya meow 30 kali? Saya akan seret dan lepaskan, seperti, 30 lagi pasangan kepingan teka-teki. Dan sesungguhnya, ada cara yang lebih baik. Dan kita telah melihat cara yang lebih baik. Apa yang intuitif akan menjadi cara yang lebih baik? Ya, hanya menggunakan gelung. Tiada salinan dan tampal. Dan sesungguhnya, bila-bila masa ini semester jika anda mula mencari diri mengheret dan menjatuhkan, atau benar-benar menyalin dan menampal, tabiat berbahaya untuk masuk ke dalam kerana ini hanya tidak begitu dipertahankan. Sebagai contoh, jika saya ingin menukar bunyi untuk sesuatu yang lain, Saya perlu berubah sekarang dalam tiga lokasi bukan hanya satu. Kerana sesungguhnya, jika saya memecahkan away-- ini saya hanya akan bergandingan seperti itu. Biar saya dapatkan blok berulang, dan kemudian klik tiga, menaip tiga, membuang sebahagian dari jauh dengan hanya melepaskan. Dan kemudian menyedarinya tidak kelihatan seperti ia sesuai, tetapi magnet, ia akan bukan sahaja untuk snap di tempat tetapi berkembang untuk memenuhi bentuk. Jadi itulah yang baik. Dan sekarang jika saya klik play. [Mengiu] Sangat bagus. Baiklah. Dan kini ia adalah sangat mudah untuk berubah, juga, kerana saya hanya boleh menukar satu nombor di satu tempat. Tetapi ini juga tidak semua yang menarik itu. Mari kita benar-benar mempunyai Scratch tidak meow, tetapi bergerak. Biar saya pergi ke Motion dan bergerak 10 langkah dalam dengan- whoops, biarlah saya menetapkan ini. Biar saya mempunyai ia bergerak 10 steps-- sebenarnya, jangan kita jangan mengulangi. Biar saya dapatkan blok kawalan, dan lakukan yang berikut selama-lamanya. Forever, bergerak 10 langkah. Dan klik Main. OKEY. Jadi bersyukur, dia berhenti. Jika tidak, anak-anak akan menjadi sangat kecewa apabila mereka semacam kehilangan kucing mereka. Tetapi sekurang-kurangnya saya boleh menyeret dia kembali ke dalam skrin. Tetapi ini tidak semua yang besar permainan atau animasi. Ia akan lebih baik jika mungkin dia bangkit dari tepi. Jadi apa yang kita lakukan? Apa yang membina kita perlu mempunyai Scratch memutuskan untuk bangkit, adakah anda fikir, walaupun anda tidak pernah dilihat Scratch sebelum ini? Ya, di belakang. PENONTON: Anda memerlukan jika blok atau jika-maka. DAVID MALAN: Ya, jadi beberapa jenis jika blok atau jika-maka. Jadi sebenarnya, kita mempunyai salah satu ini di sini. Jadi jika- jadi biarlah saya mendapatkan menghilangkan pergerakan itu. Biar saya zum masuk supaya ia lebih besar. Jadi bagaimana tentang perkara ini. Selama-lamanya, jika Sensing-- kita tidak melihat ini sebelum ini. Saya memerlukan ungkapan Boolean. Dan ternyata jika menyentuh apa? Jika menyentuh tepi, apa yang saya mahu lakukan? Nah, jika saya kembali ke Motion, ternyata, oh, saya boleh pulih. Biar saya tarik ini di sini. Kenapa saya tidak pergi ke depan dan berbalik 180 darjah? Dan sekarang, saya hanya bergerak pada akhir. Saya boleh meletakkan pergerakan di awal atau akhir. Tetapi secara logik, setiap kali saya bergerak, saya mahu untuk memeriksa, saya menyentuh tepi? Adakah saya menyentuh tepi? Adakah saya menyentuh tepi? Supaya secara logik saya pulih jika demikian. Jadi mari kita tekan bermain. OKEY. Jadi ia sedikit buggy, jadi untuk bercakap. Dan pepijat hanya kesilapan dalam program komputer. Tetapi sekurang-kurangnya ia bekerja. Dan sebenarnya, saya boleh pergi di sini. Dan biarlah saya membuat ia tidak 10 langkah di masa, tetapi ini adalah semua animasi. Ini semua kartun atau filem adalah. Biar saya bergerak 20 langkah pada satu masa. Jadi 20 kali lebih banyak perkara-perkara yang berlaku sekali, atau dua kali ganda, dalam kes ini. Dan dia bergerak lebih cepat. Biar saya menukar kepada 30. 100. 1,000. Dan ia akan benar-benar cepat. Dan ini is-- yeah, OK. Jadi sekarang kita hanya main dengannya. OK, jadi kereta. Tetapi kita boleh menyeret dia keluar dari jalan itu di sini. Tetapi kita boleh membuat lebih seronok dengan ini juga. Bagaimana pula this-- dia terbalik. Tetapi ternyata Scratch-- dan ada sebenarnya, Saya mempunyai untuk menolak tuntutan, tidak akademik nilai kepada apa yang saya akan lakukan. Tetapi jika saya membuka mikrofon, mari kita menghalangnya dan melakukan sesuatu seperti ini. Aduh! [KETAWA] Itu adalah comel. Terima kasih. Sekarang, ini adalah apa yang suara saya kelihatan seperti apabila saya menjerit aduh. Saya tidak fikir kita terperangkap ketawa anda. Tidak mengapa. Biar saya simpan ini sebagai "ouch." Mari kita menyimpan ini sebagai "ouch". Dan sekarang kita akan kembali kepada Skrip. Dan sekarang saya need-- mari kita lihat, Sound. Oh, bermain ouch bunyi. Jadi, jika saya menyentuh tepi, biarlah saya ouch bermain pertama, dan kemudian pulih. Dan sekarang mari kita meletakkan dia di tengah-tengah. [BERKATA "OUCH"] Dua kali lebih cepat. OKEY. Tetapi ia adalah benar-benar melakukan apa yang saya katakan. Jadi ia adalah sebenarnya betul, ia adalah hanya sedikit menjengkelkan dengan cepat. Jadi mari kita menambah sesuatu lebih menarik untuk ini. Biar saya sebenarnya membuka salah satu yang saya dibuat terlebih dahulu, tepat dipanggil haiwan peliharaan yang Cat, yang melakukan ini. Berikut adalah skrip di sini. Apakah ini akan lakukan dari segi bahasa Inggeris? Apakah ini direka untuk melakukan? Ya, mari kita pergi some-- yeah? PENONTON: Apabila anda haiwan kucing, ia Meows. DAVID MALAN: Ya, jadi apabila anda haiwan kucing, ia akan meow. Jadi dalam erti kata lain, ada sekarang gelung selama-lamanya masih, digabungkan dengan syarat, digabungkan dengan ungkapan Boolean, digabungkan dengan pasangan fungsi, kesan yang, apabila saya bermain program ini, apa-apa berlaku sehingga saya menggerakkan kursor lebih dekat dan lebih dekat dan lebih dekat dan- [MEOW] Kemudian ia seperti membelai kucing. [MEOW] Hanya sekali anda sebenarnya menggerakkan kursor ke atas beliau. Sekarang, saya juga disebat tidak haiwan kucing, yang melakukan ini sebaliknya. [Mengiu] Jadi dia hanya sentiasa mengiu. [Mengiu] Tetapi jika saya terlalu close-- [Mengiu] [Roar] Jadi bagaimana ini berfungsi? Sekarang saya hanya mempunyai dua hala garpu di jalan raya. Jika menyentuh penunjuk tetikus, kemudian memainkan bunyi singa. Yang lain hanya bermain bunyi meow itu, dan kemudian tunggu tiga saat supaya bahawa ia adalah jenis melakukan sangat tenang. Baiklah. Jadi itulah menggabungkan beberapa lebih banyak idea masih. Mari kita lihat pada contoh ini Saya disebat dipanggil benang. Dan yang satu ini pada asasnya berbeza kerana ia leveraj ciri banyak bahasa pengaturcaraan yang dikenali sebagai benang, keupayaan program untuk harfiah melakukan dua perkara serentak. Sesungguhnya, hari ini jika anda menggunakan Dokumen Google atau Microsoft Word, dan dokumen anda terus-menerus menjadi eja walaupun anda type-- atau anda melanda Command-P atau Control-P dan mencetak sesuatu, ia mencetak semasa anda terus menaip. Program hari ini memang boleh melakukan pelbagai perkara pada satu masa, sama seperti dalam Scratch di sini. Jadi di sini, saya mempunyai dua sprites sekarang, burung dan kucing. Dan jika saya klik pada setiap mereka watak-watak satu demi satu, Saya lihat sekarang burung skrip di sebelah kanan atas. Sekarang saya melihat kucing. ini burung, kucing. Jadi, setiap daripada mereka mempunyai skrip mereka sendiri. Tetapi notis, apa sekeping teka-teki yang kedua-duanya bermula dengan? Apabila bendera hijau diklik. Dan burung, apabila bendera hijau diklik. Oleh itu, apabila saya klik bendera hijau, kedua-dua mereka skrip atau program akan dijalankan secara selari. Dan anda akan melihat bahawa burung adalah hanya tanpa berfikir memantul dari tepi. Kucing itu dengan jelas telah diprogramkan dengan kelebihan strategik. dan- [Roar] Baiklah. Jadi kucing ditangkap burung dalam kes ini. Kenapa begitu? Well, notis pertama kita hanya perlu burung hanya tanpa berfikir akan ke lokasi awal ini, dan kemudian untuk selama-lamanya, jika tidak menyentuh kucing, hanya bergerak. Dan jika anda berada di tepi, melantun. Dan hanya bergerak. Dan jika anda berada di tepi, melantun. Tetapi kucing, sementara itu, mempunyai beberapa logik tambahan yang mengatakan this-- pertama, hanya supaya bahawa ini tidak benar-benar berat sebelah terhadap burung, melihat bahawa saya telah digunakan sekeping teka-teki hijau terdapat yang benar-benar memilih nombor rawak. Satu ciri pelbagai bahasa adalah untuk memberi anda nombor rawak atau pseudorandom. Jadi dalam kes ini, kucing mulanya memilih nombor rawak antara, seperti, 90 darjah dan 180 darjah, pada dasarnya, jadi bahawa ada sedikit perbezaan. Dan kemudian untuk selama-lamanya, jika menyentuh burung, bermain bunyi singa. Jika tidak, hanya menunjukkan ke arah burung. Menunjukkan ke arah burung. Point ke arah burung, yang merupakan sekeping teka-teki kepada dirinya dalam kes ini. Nah, kita boleh melakukan satu perkara lain di sini. Biar saya membuka program acara itu di sini. Dan di sini kita sekali lagi mempunyai dua sprites, yang kelihatan seperti kedua-dua boneka di sini. Dan apa yang menarik di sini ialah ini. Oren lelaki mempunyai ini set kepingan teka-teki di sini. Forever melakukan following-- yang jika bar ruang ditekan, kemudian berkata, Marco, dan kemudian menyiarkan peristiwa. Dan sementara itu, lelaki yang biru di sini mempunyai this-- apabila anda menerima majlis itu, mengatakan Polo. Jadi ternyata dalam Scratch dan dalam bahasa-bahasa lain, ada cara untuk dua program atau dua skrip, dalam kes ini, untuk bergaul supaya apabila saya tekan bar ruang, Ia berkata: Marco. Dan yang lain mendengar bahawa, jadi untuk berkata-kata, dan berkata Polo sebagai tindak balas. Jadi, anda boleh menulis program yang sebenarnya berinteraksi dengan cara ini. Dan jika saya melakukan satu ini sebaliknya, Saya juga boleh menambah pembolehubah, hanya menggunakan satu bidadari dalam kes ini. Yang ini terutamanya menjengkelkan. [SEAL Barking] Sekarang, notis di sebelah kanan kita telah mendapat beberapa logik tambahan di sini. Bagaimana untuk menghentikan meterai ini daripada menyalak? [SEAL Barking] Ia kelihatan seperti di kanan pihak adalah apa yang bermain bunyi. Tetapi ia hanya memainkan berbunyi jika apa yang benar? Jika oren variable-- block-- disenyapkan adalah sifar. Bagaimana saya boleh menukar disenyapkan menjadi 1, bermaksud benar, membuat ini disenyapkan? Rupa-rupanya, skrip lain, saya boleh tekan bar ruang, dan kini dia berhenti. Oleh itu, kita boleh mempunyai pergaulan ini seluruh skrip, serta, dengan hanya berkongsi pembolehubah merentasi kedua-dua seperti ini. Sekarang, ini tidak semua yang menarik. Mari kita pergi ke hadapan dan melakukan ini dan menggabungkan banyak idea-idea ini dengan program ini di sini. Sebelum kita berbuat demikian, walaupun, bagaimana pula seorang sukarelawan? Izinkan saya mengambil tekanan luar saya kerana saya tidak benar-benar bermain permainan ini. Mari kita mempunyai seseorang yang kita tidak pernah melihat sebelum ini. Anda perlu menjadi selesa datang di atas pentas di sini, pada kamera. OK, datang ke atas. Sangat berani. Apa nama anda? IDRIS: Idris. DAVID MALAN: Maaf? IDRIS: Idris. DAVID MALAN: Idris, baik untuk bertemu dengan kamu. Naiklah. Dan sekarang, di telefon bimbit anda sendiri telefon, anda bermain Pokemon GO? IDRIS: No. DAVID MALAN: Betul ke? IDRIS: Ya. DAVID MALAN: OK. Baiklah. Well, baik untuk bertemu dengan kamu. Datang pada lebih. Saya tidak sama ada. Oleh itu, kita akan memikirkan bagaimana untuk bersama-sama bermain ini, yang seseorang sebenarnya pergi dan dilaksanakan dalam Scratch dengan menukar kucing untuk dasarnya watak yang berbeza semua bersama-sama. Dan jika saya skrin penuh ini di sini, kita akan untuk melihat permainan yang berikut bersama-sama. Masih memuatkan, masih memuatkan. Datang pada. Biar saya melakukan ini. Datang pada. Permainan ini adalah begitu besar bahawa ia terhempas. Berdiri. Cuba ini sekali lagi. Datang pada. Baiklah. Di sana kami pergi. OKEY. bendera hijau. Jadi di sini kita pergi. [MUZIK Bermain] Pilih tahap pertengahan di sini. Klik Lelaki biru sana. Baiklah. Dan anda boleh menggunakan anak panah keys-- atas, bawah, kiri, kanan. Sekarang, mari kita mempertimbangkan seperti yang kita lakukan this-- dan kemudian pergi selepas aksara yang terdapat. Yep. Dan sekarang klik dia dengan tetikus. Oh, ya. Bergerak. Di mana anak panah? Di sini anda pergi. Jadi klik di sana. Yeah. Baiklah. Oleh sebab itu, saya diberitahu anda mempunyai bola Poke, bahawa jika klik, ia akan berbuat demikian. Sangat bagus. Dalam berlatih untuk hari ini, saya mendapati versi ini permainan ini sebenarnya tidak terlalu sukar. Jadi, jika anda mahu pergi sekali lagi di sini, berjalan ke Poke bola ini. Dan kemudian pergi mengambil hak. Cuba klik di atasnya. Oh, sebenarnya, itu kedai, nampaknya. OK supaya menutup itu. Tidak pernah dilakukan sebelum ini. Mungkin pergi ke perkara ini di sini. Oh, di sana anda pergi. Tunggu, ada satu di sana. Oh, ada lagi. OKEY. Down. Yeah, klik. OK, itu sangat comel. OK, sangat baik dilakukan. Permainan ini tidak begitu keras. OKEY. Tahniah. Di sini, kita mempunyai CS50 bola tekanan untuk anda. Tetapi dengan menimbangkan untuk seketika apa beberapa bawa pulang berada di sana. Lebih mudah daripada permainan sebenar, nampaknya. Tetapi semua kami telah berlaku di sini adalah watak yang mungkin mempunyai beberapa jenis gelung yang berkaitan dengannya. Ia bukan kucing. Ia adalah watak ini sebaliknya. Dan gelung yang hanya sentiasa berkata, jika anak panah ditekan, jika anak panah ke bawah ditekan, jika anak panah kiri atau kanan ditekan arrow ditekan, bergerak ke atas atau ke bawah atau kiri atau kanan. Atau jika ada satu lagi teka-teki yang terdapat yang mengatakan apabila menyentuh bidadari lain, apabila menyentuh salah satu watak bola Poke, jika menyentuh, perbuatlah begini. Jadi semua idea-idea yang kita ada telah menggunakan setakat ini benar-benar boleh hanya digunakan dalam khusus ini konteks untuk bermain permainan ini, juga. Biar saya pergi ke hadapan dan tarik sehingga satu lain di sini, sebenarnya. Biar saya pergi ke hadapan dan tarik sehingga, katakan, ini. Ini adalah sesuatu yang kita remixed. Yang dibuat oleh salah satu kami pelajar di Cambridge, dan kemudian saya telah melalui dan menukar cukup banyak setiap contoh Harvard ke Yale masa ini. Adakah seseorang suka bersaing dengan Ivies sini dalam pengumpulan lain semua idea-idea ini? Ayuh turun, ya. Apa nama anda? DINA: Dina. DAVID MALAN: Adina? DINA: Dina. DAVID MALAN: Dina, datang ke atas ke bawah. Baiklah, Dina. Jadi permainan ini menjadi lebih sukar dan lebih keras, kerana dalam permainan ini, ada pembolehubah yang digunakan dan juga yang sentiasa mengesan apa tahap anda berada dalam permainan. Begitu baik untuk bertemu dengan kamu. Datang di sini. Dan supaya matlamat di sini adalah untuk menyusun untuk membuat jalan anda melalui mez bahawa pelajar ini dilaksanakan. Dan hanya untuk menyediakan pentas, setiap gambar-gambar ini pada skrin adalah bidadari sendiri, watak sendiri. Jadi ini adalah oleh kucing lalai, tetapi pelajar menukar mereka pelbagai logo Ivies di sini. Dan kemudian anda akan melihat bahawa hanya dengan menggunakan syarat dan gelung dan fungsi dan lebih, anda akan mendapat ini. [MUZIK Bermain] [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Yeah, OK. Ya, teruskan. tahap pertama sangat mudah. Anda baru sahaja mendapat untuk pergi ke sana. Tetapi sekali lagi, mempertimbangkan, ini adalah hanya satu gelung mendengar untuk anak panah keys-- atas, bawah, kiri, kanan. Dan kini satu blok sensing. Sangat bagus. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Sangat bagus. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Sangat bagus. Cukup mudah, Crimson. Baiklah. Levels-- uh-oh. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Dan sekali lagi, dalam ini tiga puncak Harvard, anda hanya perlu logik berkata jika di pinggir, melantun. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] OK, apa yang anda lakukan adalah lebih menarik daripada mengapa. Sangat bagus. Sangat bagus. Uh-oh. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Saya fikir anda perlu mengorbankan diri sendiri. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Pantas! [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Nice. Tidak mengapa. Anda akan mendapatkannya. Ya, ya! Sangat bagus. [Bersorak] [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Nice! [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Mendapat ia. Datang pada! Kedua kepada tahap terakhir. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Baiklah. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Ya. Baik menggunakan pembolehubah di sini. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Ya. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Nice. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Ia OK. Kami mendapat untuk mendapatkan ke akhir. Ada. Oh! [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Mungkin berjalan lewat hari ini, tetapi ia akan menjadi berbaloi. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Awak boleh lakukannya! Yeah! [Bersorak] [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Yang ini benar-benar sukar. [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Kami akan memberikan anda dua lagi nyawa. Boleh awak lakukannya? [MUSIC - MC HAMMER, "U TIDAK TOUCH  INI "] Baiklah. Bagaimana kira-kira satu pusingan besar tepukan tetap. Anda mendapat untuk kedua ke tahap terakhir. Terima kasih. [BERTEPUK TANGAN] Jadi ini adalah hanya untuk mengatakan berapa banyak anda boleh lakukan dengan jenis-jenis perkara. Dan menyedari juga bahawa apabila kepingan teka-teki tidak exist-- dan sesungguhnya, ini akan menjadi satu kuasa dengan masalah pertama set dan beyond-- adalah untuk sebenarnya membuat anda sendiri. Dan ini hanyalah coretan salah satu contoh anda akan dapat untuk bermain dengan talian, di mana jika anda tidak mempunyai dibina ke dalam Scratch sesuatu seperti sekeping teka-teki batuk, anda sebenarnya boleh membuat sendiri. Dan sebagainya semua ini dan banyak lagi menanti. Dan hanya untuk cat akhir gambar sesungguhnya apa yang hadapan di kedai untuk kelas untuk anda, berdasarkan beberapa gambar dari rakan-rakan lalu, membenarkan saya untuk meredupkan satu masa lalu dan menunjukkan kepada anda CS50. [MUZIK Bermain] Baiklah. Itu sahaja untuk CS50. Cake kini dihidangkan. [MUZIK Bermain]