>> [VIDEO PLAYBACK]
>> [CAR DOOR menutup]
>> [CAR ENGINE STARTING]
>> [MUSIC PLAYING]
>> -Moving Kanan sepanjang dalam pencarian kali baik dan kabar baik.
Dengan teman-teman baik Anda tidak bisa kalah.
>> -Ini Bisa menjadi kebiasaan.
>> Mengetuk -Opportunity Mari hanya menjangkau dan meraihnya.
Yeah!
-Together Kita akan menangkap itu.
Kenaikan halangan -Kita akan, bus, atau taksi kuning itu.
-Dammit.
-Kita Bergerak kanan sepanjang.
-Footloose Dan mewah bebas.
-Getting Ada setengah kesenangan.
Ayo berbagi dengan saya.
>> -Kita Bergerak kanan sepanjang.
>> -Kita Akan berbagi beban.
>> -Kami Tidak perlu peta untuk mendapatkan acara ini di jalan.
Hei Fozzy, aku ingin kau berbelok ke kiri jika Anda datang ke sebuah persimpangan jalan.
-Ya, Pak.
Belok kiri di persimpangan jalan.
Belok kiri.
>> -Saya Tidak percaya itu.
>> -Cruising Kanan sepanjang kami menemukan lampu di jalan raya.
>> -dan Cara atau jalan.
>> -Jadi Percaya navigasi saya.
>> Bintang -Movie dengan mobil mencolok dan kehidupan dengan top down.
>> -Kita Menyerbu bukit besar.
>> Yeah, badai yang tepat.
Harus itu turun salju?
>> -Tidak, Saya tidak berpikir begitu.
>> -Moving Kanan sepanjang.
>> -Footloose Dan mewah bebas.
>> -Kau Siap untuk waktu besar.
>> -Apakah Itu siap untuk saya?
>> -Moving Kanan sepanjang.
Bergerak kanan sepanjang.
-Saya Pikir Anda lebih baik menepi.
-Ya, Pak.
>> [END PLAYBACK]
>> [Tepuk Tangan]
>> DAVID J. Malan: Ini adalah CS50.
Dan ini adalah akhir minggu 0, tapi awal dari sebuah persahabatan yang indah.
Kami sangat bersemangat untuk menjadi di sini di Yale University
untuk pertama kalinya dengan kami teman Scaz, dan Jason, dan Andy.
Semua 40 dari CS50 TF ini dan CA di sini di Yale.
Dan kalian semua.
Dan pada kenyataannya, itu mungkin waktu to--
>> [Tepuk Tangan]
>> Jadi, meskipun sebagian besar kuliah memang akan di Cambridge tahun ini,
kenyataannya adalah bahwa dengan desain, dan sangat sengaja di CS50,
Saya pikir kita mendekati titik teknologi, dan pedagogis,
di mana ia dapat menjadi pendidikan yang unggul pengalaman untuk terlibat dengan beberapa
kursus ini materi online.
Memang, reality-- dan jika saya percaya philosophically-- ini adalah bahwa kuliah
bukan terutama cara yang efektif untuk memberikan
informasi yang cukup kompleks.
Tentu lebih dari satu jam ditambah rentang waktu yang panjang.
Dan memang setiap beberapa minutes-- Aku ingat diriku di college--
Anda zona keluar sejenak, Anda kehilangan beberapa topik yang kompleks,
dan kau pergi cukup banyak untuk 45 menit berikutnya.
Dan kenyataannya adalah bahwa apakah Anda berada di sini di New Haven atau Cambridge
atau di luar, kesederhanaan memiliki kemampuan untuk berhenti sejenak dan maju cepat,
mundur, hyperlink ke terkait sumber, transkrip pencarian teks lengkap
dan sejenisnya adalah kesempatan yang Saya berani mengatakan untuk siswa online kami
baik di luar New Haven, menawarkan mereka kesempatan
untuk benar-benar memahami materi konseptual yang kita
memperkenalkan pada kuliah semua lebih baik.
>> Tapi akhirnya di CS50, adalah pengalaman siswa
ditandai begitu, jauh lebih banyak oleh masalah set kursus ini,
atau proyek pemrograman mingguan, yang bagian saja yang dipimpin oleh ajaran
fellows, jam kantor setiap malam dipimpin oleh asisten kursus dan pengajaran
fellows, dan memang seperti Peristiwa seperti CS50 Puzzle
Hari, CS50 itu Hack-a-thon, yang CS50 Adil, makan siang mingguan, dan banyak lagi.
Dan apakah Anda berada di sini di New Haven, atau tuning dari jauh,
hari ini di Cambridge, dan kita akan bertemu lagi segera,
kenyataannya adalah ini satu dan kelas yang sama.
Dan kami sangat bersemangat untuk berada di sini bersama-sama hari ini.
Dan pada akhir semester, apakah di sini atau jauh, baik
mudah-mudahan Anda pakai dengan bangga, dengan senang hati, dan mungkin dengan sedikit lega,
kemeja yang menjadi saksi Anda telah mengambil CS50.
>> Jadi di mana kita meninggalkan off pada hari Rabu?
Kami mengambil melihat berpikir komputasi.
Dan itulah apa yang kita suling ke arah ilmu komputer kepada, setidaknya
saat ini.
Tapi kita suling itu sedikit lebih jauh ke setidaknya tiga komponen elemen.
>> Input, jadi apa adalah masalah yang kita sedang berusaha untuk memecahkan?
Output, apa menjawab kami berharap untuk mendapatkan?
Dan representasi dari sana.
Dan kami tidak akan tinggal di sini di setelah pada biner, atau bahkan ASCII,
dan seperti begitu banyak, tapi suka mengambil untuk diberikan
bahwa kita dapat mewakili informasi ini, karena bagian jauh lebih menarik
masalah tersebut tidak hanya input dan output, tetapi algoritma
yang masuk ke pemecahan masalah tersebut.
>> Dan Anda mungkin ingat dari hari lain yang kita
mengambil cukup tradisional Konsep mencari seseorang
dalam buku telepon yang cukup besar, atau lebih umum digital hari ini,
hanya satu set data yang sangat besar.
Sebuah daftar kontak yang sangat besar, dengan banyak nama diurutkan menurut abjad.
Dan kami menyadari bahwa sementara saya bisa mendekati masalah ini hanya
dengan menggunakan linear Halaman approach-- oleh halaman,
atau bahkan dua di sebuah time-- kami menyadari bahwa algorithm-- lebih intuitif
hanya jenis membagi dan menaklukkan masalah lagi, dan lagi,
dan again-- mengurangi separuh itu dengan masing-masing waktu, memberi kami hasil hijau ini.
Dan itu jauh lebih datar karena menunjukkan
bahwa bahkan sebagai masalah ini akan lebih besar dan lebih besar,
seperti yang terjadi hari ini dengan data set dan reality-- Facebook dan Google
hasil pencarian dan like-- melakukan algoritma kami
melakukan seperti efektif dengan orang-orang yang lebih besar gigitan
seperti yang terjadi bahkan dengan gigitan kecil.
>> Sekarang menimbulkan pertanyaan, apa dapat kita benar-benar memecahkan sama
dengan jenis intuisi?
Ini semacam divisi dan menaklukkan?
Nah, kita bisa melakukan sesuatu seperti hari ini di sini.
Kita bisa mengambil absensi.
Jadi mungkin seperti 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11--
tidak akan semua yang efisien.
Jadi tunggu, sekolah dasar.
2, 4, 6, 8, 10, 12, 14, 16, 18 dan sebagainya.
Tapi kita bisa melakukan sedikit lebih baik?
>> Aku cukup yakin aku tidak bisa melakukan ini sendiri.
Jadi jika Anda akan humor kami untuk hanya sejenak, kami bawa bersama kami
algoritma yang baru saja tiga langkah,
tapi itu require-- jika Anda tidak mind-- kita semua berdiri,
jika Anda akan.
Jadi, dengan kita semua sekarang berdiri, langkah salah satu algoritma ini adalah sebagai berikut.
Berdiri dan menetapkan diri nomor 1.
Jadi pada titik waktu ini, harfiah semua orang di ruangan ini
semoga berpikir untuk diri mereka sendiri, Namun canggung, nomor 1.
>> Sekarang langkah dua dari algoritma ini adalah akan melibatkan berikut.
Langkah kedua, berpasangan dengan seseorang berdiri,
menambahkan nomor Anda bersama-sama, dan mengadopsi sum sebagai nomor baru Anda.
Cek kewarasan cepat.
Apa nomor yang semua orang berpikir sekarang?
>> Jadi 2, kecuali mungkin untuk satu, canggung, orang kesepian.
Jika kita memiliki jumlah ganjil orang di dalam ruangan.
Jadi satu orang mungkin masih nomor 1, itu baik-baik saja.
Tapi langkah ketiga di sini, satu Anda harus duduk.
Yang lain harus kembali ke langkah dua, dan ulangi, jika Anda akan.
>> Jadi jika masih berdiri, Anda harus di antara mereka akan kembali ke langkah dua.
Teruskan.
Beberapa orang masih berdiri.
>> Jadi, jika masih berdiri, berpasangan dengan seseorang.
Baiklah, berkurang ke bawah.
Beberapa orang masih berdiri.
Saya akan membantu jika perlu.
Ingat takeaway kunci di sini, adalah bagaimana jauh lebih cepat ini dari saya menghitung.
>> Jadi mari kita lihat.
Saya bisa membantu.
Jadi apa yang nomor Anda masih memikirkan?
>> AUDIENCE: Aku di 44.
>> DAVID J. Malan: 44, sehingga Anda pergi ke depan dan duduk.
Apa jumlah yang Anda pikirkan?
AUDIENCE: 74.
>> DAVID J. Malan: 74.
Baiklah, pergi ke depan dan duduk.
Siapa lagi masih berdiri?
86.
Dan orang lain masih berdiri?
>> Nomor berapa?
Aku mendengar 67.
Dan kemudian di atas?
32.
Orang lain masih berdiri dan memikirkan nomor?
>> Oh halo.
Maaf.
Segera kembali.
42.
Orang lain?
>> AUDIENCE: 47.
>> DAVID J. Malan: 47.
Apakah orang lain masih berdiri yang belum dihitung?
Jadi jumlah akhir dari orang di sebuah ruangan yang memiliki 497 kursi is-- yang semuanya
adalah filled-- adalah 390.
Jadi ini adalah besar.
>> Kami akan segera membahas gagasan dari bug dalam program komputer.
Tapi kita akan kembali ke yang lama.
Tapi dalam teori, apa yang mungkin terjadi sekarang?
Jadi meskipun ada tiga besar langkah-langkah untuk algoritma ini, masing-masing
hanya jenis satu operasi besar.
Dan ada cyclicity ini untuk itu dalam bahwa jika Anda masih berdiri,
Anda terus pergi dari langkah 3-2, langkah 3-2, langkah 3-2.
>> Tapi apa terus terjadi pada setiap iterasi?
Setiap siklus loop ini?
Apa yang terjadi tempat lain di dalam ruangan?
Tidak hanya hal yang sama, tapi apa yang terjadi pada setengah dari Anda?
Duduk.
Dan jadi ada di kebohongan wawasan ini, seperti contoh buku telepon,
dalam bahwa jika setengah dari Anda duduk setiap kali,
masalah mulai dengan mungkin 400 orang,
kemudian 200 orang, dari 100 orang, kemudian 50 orang, dan sebagainya.
>> Dan jadi kita kurangi di teori untuk hanya satu orang,
memikirkan nilai total semua orang.
Sekarang kenyataannya, beberapa dinamika sosial, dan beberapa kesalahan aritmatika
mungkin berkontribusi terhadap bug utama.
Tapi dalam teori, sementara aku masih menghitung diri,
mengambil beberapa lusin langkah, atau ratusan langkah
untuk menghitung sendiri, untuk menghitung sebuah ruangan penuh 500 atau lebih orang
seharusnya mengambil langkah-langkah yang jauh lebih sedikit, karena Anda hanya dapat membagi 500 dan 1/2
Berkali-kali.
Dan seperti dengan telepon buku contoh hari lain,
Apakah kita memiliki sesuatu logaritmik sehingga untuk berbicara,
dimana jika kita semua beroperasi serempak,
dan mengabaikan kesalahan Selain itu, akan kita
telah mencapai persis semacam waktu berjalan?
>> Sekarang untuk menjadi adil, jenis ditipu, di bahwa saya memanfaatkan sumber daya lain.
Padahal itu hanya salah satu dari saya, Saya memanfaatkan ratusan Anda.
Tapi itu mungkin dikatakan menjadi contoh pemrosesan paralel,
atau keadaan seni yang sangat banyak dalam mode di mana komputer hari ini memiliki
beberapa CPU, atau lebih teknis, lebih beberapa core,
dan benar-benar dapat melakukan beberapa hal sekaligus, seperti Anda
semua yang kita lakukan di sana, secara paralel.
Tapi ingat bahwa apa yang kita juga melakukan pada hari Rabu
itu mencoba untuk menangkap intuisi ini dan merumuskan dalam kode.
Sesuatu seperti pseudo-code.
Dan pada kenyataannya, dan saya harap Anda akan memaafkan, itu seperti 80 derajat di sini.
Jadi aku akan mengambil ini off untuk hanya sedikit.
Apa yang saya pikir kami akan lakukan adalah transisi sekarang ke mana aplikasi
kita lagi melibatkan penonton, tetapi menulis sebuah program dalam bahasa Inggris
seperti sintaks, yang dapat digunakan untuk memecahkan masalah ini di sini.
[VIDEO PLAYBACK]
Selai kacang waktu jelly -itu ini.
Selai kacang waktu jelly.
>> Cara ya!
Cara ya!
Sekarang ada Anda pergi!
Ini dia!
Selai kacang jeli!
>> Selai kacang jeli!
Selai kacang jeli!
Kacang, selai kacang jeli!
Selai kacang jeli!
Selai kacang jeli dengan tongkat baseball.
>> [END PLAYBACK]
DAVID J. Malan: -yang video, tapi itu sedikit adiktif,
jika tidak sedikit mengganggu.
Tetapi untuk melakukan hal ini, saya pikir apa yang kami akan lakukan adalah mencoba untuk menulis sebuah program bersama-sama,
yang kami membutuhkan tiga sukarelawan.
Harus nyaman kamera dan internet.
Sam, datang ke atas.
Ungu shirt, di sini, datang ke atas.
>> Dan dari sini, biarkan aku pergi sedikit lebih jauh kembali.
Crimson dan kemeja biru, datang ke atas.
Sempurna.
Ayo sekarang.
Ayo up, datang ke atas.
>> Dan siapa namamu?
Erica.
David, senang bertemu Anda.
Jika Anda ingin mengambil kursi ini di sini.
Ini adalah Sam.
>> Siapa namamu?
Antonio.
Antonio, senang bertemu Anda.
Erica dan Sam, jika Anda akan ingin memiliki kursi di sini.
Apa yang kita telah datang siap dengan, sebagai orang-orang yang menemukan,
adalah bahan yang dapat digunakan untuk membuat selai kacang dan jelly sandwich.
>> Sekarang ini mungkin sesuatu yang Anda mengambil banyak untuk diberikan.
Tapi kami telah diberikan masing-masing tiga relawan kami
sini-dua relawan dan Sam sini, sebuah roti masing-masing, piring, pisau,
stoples jelly atau selai, dan stoples selai kacang.
Dan tujuan di tangan sekarang adalah akan untuk ketiga
untuk membuat selai kacang dan sandwich yang jeli.
Tapi apa yang kita akan lakukan adalah berharap yang audience-- karena semua Anda
pasti tahu bagaimana melakukan ini begitu baik di reality--
akan memberikan kami langkah demi langkah petunjuk.
Pseudo-kode, jika Anda mau.
>> Jadi saya akan memainkan peran juru tulis di sini.
Dan aku punya sedikit to-do list, dan sehingga Anda masing-masing, satu per satu,
memanggil potensi instruksional, aku akan
menuliskannya, ulangi sesuai kebutuhan.
Dan kemudian kalian akan membuat selai kacang dan jelly sandwich
hanya dengan melakukan apa yang Anda diberitahu.
Jadi pikirkan dirimu sebagai komputer.
>> Anda hanya dapat melakukan apa yang diperintahkan.
Tidak ada asumsi, tidak ada pertanyaan.
Anda hanya perlu melakukannya.
Jadi yang ingin bahaya pertama instruksi untuk membuat sandwich PBJ?
Di balkon di sana.
>> AUDIENCE: Buka kantong roti.
>> DAVID J. Malan: Buka tas roti, jika Anda mau.
Jadi mari kita lihat.
Mari kita iterate, dan sedikit lebih tepat.
>> Cara yang baik untuk memulai sekalipun.
Langkah kedua, orang lain.
Sekarang tidak ada yang mau menjadi sukarelawan.
Langkah dua, di depan.
AUDIENCE: Buka batin tas roti juga.
DAVID J. Malan: Buka tas dalam roti juga.
Besar, kita belajar.
Sedikit lebih tepat.
Mari kita mendapatkan kerja ini.
Ya, di kemeja hijau.
>> AUDIENCE: [tidak terdengar]
DAVID J. Malan: Slices roti.
Lembut menghapus dua potong roti.
Bagus.
Langkah empat, orang lain?
Di sini, ya?
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Tempat roti di piring.
Langkah lima?
Langkah lima, ya?
>> AUDIENCE: [tidak terdengar]
DAVID J. Malan: Di atas of-- oh, tangan.
Tempatkan tangan di atas selai kacang.
Adalah bahwa apa yang aku kepala?
>> AUDIENCE: Ya, dan membuka tutup.
>> DAVID J. Malan: dan- mengatakannya lagi.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Dan menempatkan tutup sebelah selai kacang.
Ringan menempatkan tangan di atas selai kacang,
dan membuka tutup, dan menaruh tutup sebelah selai kacang.
OK, langkah enam.
Langkah enam, orang lain.
Ya?
>> AUDIENCE: [tidak terdengar]
DAVID J. Malan: Katakan lagi.
AUDIENCE: Ulangi langkah lima lagi.
DAVID J. Malan: Dan ulangi langkah lima lagi,
yang akan menciptakan sedikit masalah
jika kita melakukan langkah demi langkah.
Jadi sekarang kita kembali ke langkah lima.
Ringan menempatkan tangan di atas selai kacang dan membuka tutup
dan meletakkan tutup di sebelah selai kacang.
Kemudian pegang selai kacang dan ulangi langkah lima lagi.
>> Jadi kita akan menimpa yang loop tak terbatas, jika Anda mau.
Langkah tujuh, orang lain.
Ya, di belakang.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: top --on lainnya.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Di sisi lain di atas yang lain.
Apakah Anda ingin hanya datang ke sini?
Bagaimana cara menyelesaikan instruksi?
Apa sisa instruksi?
>> AUDIENCE: Mengabaikan bagian itu.
>> DAVID J. Malan: Mengabaikan bagian itu.
Mari kita mulai dari awal.
Langkah tujuh.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Grasp dengan menentang hand-- ini baik.
Ini sebenarnya baik.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Dan jar-- plastik
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Dan twist--
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Selama dua detik.
Hanya membuka jar selai kacang.
Saya harap Anda akan memaafkan.
Jadi mari kita asumsikan kami tiba di sana.
Buka jar selai kacang.
>> [Tepuk Tangan]
>> DAVID J. Malan: Langkah delapan, mari kita pergi.
Langkah delapan, ya, di belakang.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Baik.
Langkah sembilan, ya?
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: --out dari jar selai kacang.
Dan- dan apa?
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Dan meletakkan pisau kembali ke selai kacang.
Langkah sepuluh.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Masukan pisau keluar, dan kemudian menghapus segel.
Bagus.
Dari selai kacang.
Baiklah, langkah 11.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: OK, komputer abu-abu ikuti komputer biru atau merah.
Baik.
>> [Tepuk Tangan]
DAVID J. Malan: Bawa kami pulang.
Beberapa langkah lagi.
Apa berikutnya?
Langkah 12.
Ya?
>> AUDIENCE: Masukan salah satu irisan roti lembut di salah satu tangan Anda.
>> DAVID J. Malan: Salah satu tangan Anda.
Dan kemudian, langkah 13.
Ya?
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: sepotong --on roti.
Baik.
Cukup bagus.
Langkah 14, ya.
>> AUDIENCE: Undo langkah 13.
>> DAVID J. Malan: Undo langkah 13.
Mari kita beralih ke jelly.
Ini program 100- langkah, tapi kami berada di langkah 15.
Ya.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: 7 melalui 13 menggunakan jeli, karena mereka berjalan sangat baik.
Ulangi langkah 7 melalui 13, menggunakan jeli.
Jadi memahami bagian bawah dari jelly jar dengan satu tangan di atas.
Di sisi lain dari top lainnya, mengabaikan bagian itu,
pegang dengan tangan berlawanan, tutup dan tabung plastik
di bagian bawah, dan memutar selama dua detik.
Kemudian buka jar jelly.
Dan terakhir, mari kita coba untuk memberi kita sesuatu yang dapat dimakan.
Langkah 16.
Jadi kenapa tidak kita meninggalkannya di sana.
Terima kasih banyak untuk tiga relawan kami.
[Tepuk Tangan]
>> Kami memiliki CS50 sedikit bola stres untuk Anda.
Itu akan menjadi Sandwich tapi-- jadi apa
adalah titik, di luar memiliki sedikit bersenang-senang dengan algoritma?
Tetapi kenyataannya adalah bahwa bahkan ketika Anda pemrograman komputer,
Anda perlu menjadi super tepat.
Sebagai kompleks atau mengintimidasi sebagai komputer Anda sendiri
mungkin sangat baik menjadi untuk Anda, di Setidaknya ketika sesuatu berjalan salah,
kenyataannya adalah itu cukup bodoh perangkat yang diciptakan oleh kita manusia,
dan hanya dapat melakukan subset dari apa yang kita do-- kadang tentu faster--
tetapi tidak tahu bagaimana untuk membuat asumsi.
Ia tidak tahu bagaimana untuk berada di panjang gelombang yang sama seperti Anda.
>> Ini hanya akan melakukan tepat apa yang Anda katakan itu.
Dan Anda akan memukul, mungkin, seperti yang kita mulai
menulis kode aktual dengan set masalah pertama dan seterusnya,
betapa mudahnya untuk membuat asumsi sebagai manusia,
dan tidak mengantisipasi saya harus menangani hal, atau bahwa kasus sudut,
sehingga untuk berbicara, yang mungkin sangat baik muncul jika misalnya Sam memiliki satu-satunya
jar mudah dipengaruhi jelly, sedangkan orang lain memiliki beberapa stoples kaca sebagai
baik.
Jadi sebelum kita mengubah kami memperhatikan beberapa kode yang sebenarnya,
izinkan saya untuk memperkenalkan Tentu saja ini kepala di sini di Yale.
Teman-teman kita Scaz, Andy, dan Jason untuk datang dan menyapa.
>> [Tepuk Tangan]
>> SCAZ: Kami sudah kehilangan Jason sementara.
Hi lagi, semua orang.
Nama saya Scaz.
Saya telah mengajar di Yale sejak tahun 2001.
Dan ketika saya tidak mengajar, penelitian saya adalah di robotika
dan kecerdasan buatan.
>> Dan pengumuman yang saya miliki saat ini adalah bahwa mulai dalam beberapa minggu,
kita akan membawa beberapa bahan tambahan untuk CS50 berbicara
tentang perangkat lunak intelijen.
Kita akan berbicara tentang bagaimana tempat-tempat seperti Netflix dan Hulu
dapat merekomendasikan film yang Anda mungkin ingin menonton.
Di mana kita akan berbicara tentang bagaimana mobil driver-kurang benar-benar bekerja.
Dan kita akan bisa ke tanah hal-hal ini dalam konsep
bahwa Anda belajar di kelas ini hari ini.
>> Karena semua hal-hal ini dibangun di atas dasar yang sama.
Dan itulah yang ini seri akan mengeksplorasi.
Jadi saya benar-benar melihat maju ke melihat lebih dari Anda
semua, dan Anda akan mendapatkan melihat lebih banyak dari kita semua sangat segera.
Mari saya kemudian memperkenalkan Jason.
>> JASON: Hi semua orang.
Nama saya Jason.
Saya sayangnya pergi ke Harvard sebagai undergrad.
Itu akan mendapatkan memotong dari aliran yang sebenarnya.
>> Dan sekarang aku di sini sebagai dosen di departemen ilmu komputer.
Dan aku membantu menjalankan kursus dengan Scaz, David dan Andy.
>> ANDY: Hey guys.
Namaku Andy.
Saya benar-benar satu-satunya Yale mahasiswa di panggung sekarang.
>> [Tepuk Tangan]
>> Aku di Berkeley College, berasal dari Solon, Ohio.
Dan saya adalah salah satu dari anak-anak di mana, ketika saya datang ke Yale,
Saya benar-benar berpikir bahwa saya tidak akan pernah harus melihat nomor lagi.
Dan kemudian saya menyadari bahwa Anda membutuhkan sains dan QR credits lulus.
Dan mahasiswa musim semi saya, saya mengambil kelas, CS, intro CS kelas di sini
di Yale.
Aku seperti, ini adalah seperti sebenarnya cukup keren.
>> Dan sementara aku benar-benar berakhir menyatakan sebagai urusan global, keterampilan
Saya belajar di CS dan pemrograman begitu berlaku untuk bidang apapun
Anda memilih untuk melakukannya.
Dan staf di sini di Yale, kami sudah begitu bekerja keras
untuk mempersiapkan kalian.
Dan kami berharap dapat melihat semua di bagian dan kantor jam.
Jadi ya.
>> [Tepuk Tangan]
DAVID J. Malan: Terima kasih.
Jadi sebelum kelas dimulai, kami memiliki kesempatan
untuk berjalan di sekitar kampus dengan ponsel dan mengambil
beberapa selfies dalam bentuk video yang benar-benar tur pertama saya kampus Yale di sini.
Dan jadi kami pikir kami akan berbagi kasar potongan persis ini sebagai Scaz dan Andy
dan Jason membawa saya di sekitar kampus.
[VIDEO PLAYBACK]
[Sirene]
-David.
-Selamat Datang Yale.
-Senang melihatmu.
-Senang bertemu Anda.
-Bisa Kita pergi pada tur?
-Biarkan Pergi pada tur.
Tur -Road.
Tanda -Ini telah ada untuk sementara waktu.
-Whah, CS50.
>> -Hurry!
Pergi, pergi, pergi, pergi.
Anda harus [tidak terdengar] Harkness Tower.
>> -Dan Kita melihat bahwa beberapa kali.
>> [Tepuk Tangan]
>> -Lihat Untuk sepeda!
Ahh!
Hi Frank.
>> -Apa Up, guys?
-Apa kabar?
-Senang melihatmu.
-Selamat Datang ke video.
Jangan bertindak terlalu bersemangat.
>> -Aku Mencintai Silliman.
Ahh!
>> -Ini Sudah sekitar tiga jam sejak Jason memiliki es krim dan Nutella.
Jadi kita harus berhenti kembali di Silliman untuk sedikit.
>> -Ini Bahkan tidak [tidak terdengar] namun, hanya fakta
bahwa mereka memilikinya di sini sangat menakjubkan.
Dude, ada Nutella di setiap kali makan.
>> -Ada Tahun lalu juga.
>> Yeah.
>> -tell banyak tentang Yale sejauh ini.
Tapi aku sekarang yang TD di sana.
Dan yang dianggap di luar kampus.
>> -Di Sini kita memiliki arsitektur gothic.
Terkenal di dunia.
Kami memiliki beberapa arsitektur yang lebih gothic.
Dan konstruksi, dan lebih arsitektur gothic.
Hi.
Di sinilah kita memiliki jam kantor Selasa melalui Kamis di Hogwarts,
sebagai [tidak terdengar].
-Baiklah.
Itu saja untuk tur.
Kami berada di Yale University Law School, di mana
kuliah ini adalah untuk mengambil tempat.
Mari kita kepala di.
>> [END PLAYBACK]
>> DAVID J. Malan: Dan yang membawa kita di sini sekarang.
Jadi sejauh ini, kita sudah berfokus pada pseudocode,
yang merupakan sintaks bahasa Inggris-seperti ini.
Tidak memiliki spesifikasi yang ditentukan.
Itu hanya Anda menggunakan beberapa bahasa intuitif jika Anda
ingin menjelaskan apa yang ingin Anda lakukan.
>> Tapi mari kita mulai sekarang untuk transisi kode, karena kebanyakan orang akan mengatakan.
Tapi lebih tepatnya, sesuatu dikenal sebagai kode sumber.
Ini adalah bahasa yang manusia menulis bahwa komputer ultimately--
mungkin setelah beberapa jumlah steps-- akhirnya mengerti
sehingga untuk mengetahui bagaimana melakukan sesuatu.
Bahwa Anda melihat sekilas ini mungkin pada hari Rabu.
>> Ini adalah contoh yang sangat, underwhelming
ketika dijalankan hanya mengatakan "hello world."
Dan itu ditulis dalam bahasa yang disebut C, yang sangat mirip sintaksis
untuk banyak bahasa lain Anda mungkin tidak tahu,
tapi mungkin telah mendengar tentang seperti Java, dan C ++, dan Python, dan Ruby,
dan sejenisnya, dan memang, kami akan menghabiskan banyak semester menggunakan C,
dan kemudian menjelang akhir dari semester, bangunan atas itu,
dan memperkenalkan setiap jumlah bahasa lain.
Di antara mereka PHP, dan JavaScript, bahasa database yang disebut SQL.
Tapi dengan C, apa yang kita akan memiliki pemahaman bottom-up ini
persis bagaimana komputer bekerja, apa yang dapat Anda lakukan dengan mereka,
dan bagaimana Anda dapat memecahkan masalah semua lebih efektif dengan ini
layering yang kita bahas Rabu, dan berdiri
di pundak orang lain.
Tetapi lebih pada untuk datang.
>> Hari ini kita melihat lingkungan sederhana, tapi pada dasarnya identik
lingkungan yang dikenal sebagai Scratch oleh teman-teman kita di MIT Media Lab.
Ini adalah sebuah grafis bahasa pemrograman, Scratch,
dimana Anda dapat menarik dan drop hal-hal yang
terlihat seperti potongan-potongan teka-teki yang hanya interlock jika itu membuat
akal logis atau program untuk melakukannya.
Tapi itu akan memungkinkan kita untuk memiliki percakapan tentang semua
dari program yang sama fundamental bahwa beberapa dari Anda
mungkin sudah tahu, bahwa banyak dari Anda mungkin tidak
tahu apa-apa dari tanpa untuk terjebak terus terang,
dalam intelektual sintaks menarik dari titik koma,
dan kurung, dan mengutip, dan sejenisnya.
Yang semuanya, awal pada, adalah pengalih perhatian
apa yang menarik dan ide-ide benar-benar berguna.
Jadi mari kita cepat melirik lingkungan
di sini, sehingga Anda tahu apa yang menanti.
Dan pada kenyataannya, antara permainan kami bisa bermain adalah beberapa program yang ditulis
oleh mantan siswa CS50 sendiri.
Salah satunya, diriku sendiri, aku akan menjadi satu ini ditulis di sekolah pascasarjana bagi saya.
>> Jika aku bisa mengambil satu relawan yang bersedia untuk bermain
permainan untuk pertama kalinya.
Tentu.
Ayo up.
Siapa namamu?
>> AUDIENCE: Angela.
DAVID J. Malan: Angela, datang ke atas.
Jadi Scratch telah keluar selama beberapa tahun.
Dan ketika saya masih di sekolah pascasarjana, Saya adalah cross terdaftar di MIT,
mengambil profesor Mitchel Resnick Tentu saja pada teknologi pendidikan.
Dan kami antara yang pertama siswa di dunia untuk benar-benar beta
tes Scratch.
Dan proyek saya adalah apa Angela kini telah berbaik hati
untuk bermain disebut oscartime.
>> Jadi aku akan pergi ke depan dan klik ganda ikon di sini.
Ini akan membuka pemrograman lingkungan yang kita akan segera menyelam ke.
Aku akan layar penuh untuk Angela, di sini.
Aku akan memukul hijau bendera hanya dalam beberapa saat.
Dan kemudian seluruh banyak sampah akan jatuh dari langit.
Dan Anda akan menggunakan mouse di sini untuk benar-benar drag dan drop
sampah ke tong sampah Oscar.
Jadi jika Anda ingin pergi ke depan dan klik bendera hijau, permainan akan dimulai.
>> [MUSIC PLAYING]
>> Oh, aku cinta sampah.
Sesuatu yang kotor atau suram atau berdebu.
Apa pun compang-camping atau busuk, atau berkarat.
Ya, aku mencintai sampah.
Jika Anda benar-benar ingin melihat sesuatu sampah, lihat ini.
Saya telah di sini sneaker yang compang-camping dan usang.
Ini semua penuh lubang memegang dan tali yang robek.
Sebuah hadiah dari ibu saya hari aku dilahirkan.
Aku menyukainya karena it's--
DAVID J. Malan: --green hari ini hanya menjadi membuang segala sesuatu di tempat sampah.
Dan jadi apa salah CS50 ini staf did-- sendiri
Jordan, yang Anda mungkin memenuhi today-- memiliki sebenarnya
diperbarui ini untuk masa sekarang ini.
Dan sehingga memungkinkan saya untuk membuka remix bukan untuk Angela.
Dan kami akan bermain ini bukan untuk beberapa saat di mana sekarang Anda
akan harus memutuskan antara apakah membuang sesuatu di tempat sampah,
atau daur ulang atau kompos itu.
Jadi ada sedikit tekanan pada Anda untuk mendapatkan
hak ini di depan Anda 392 untuk 497 teman sekelas di sini di aula,
jika Anda akan.
[VIDEO PLAYBACK]
[MUSIC PLAYING]
Oh aku cinta sampah.
Sesuatu yang kotor atau suram atau berdebu.
Apa pun compang-camping atau busuk atau berkarat.
Ya, aku mencintai sampah.
>> Jika Anda benar-benar ingin melihat sesuatu sampah, lihat ini.
Saya telah di sini sneaker yang compang-camping dan usang.
Ini semua penuh lubang dan tali yang robek.
Sebuah hadiah dari ibu saya hari aku dilahirkan.
Aku menyukainya karena itu sampah.
>> Oh, aku cinta sampah.
Sesuatu yang kotor, atau suram, atau berdebu.
Apa pun compang-camping atau busuk atau berkarat.
Ya, aku mencintai sampah.
Berikut adalah beberapa hal yang lebih busuk.
Saya telah di sini beberapa newspaper--
>> [END PLAYBACK]
DAVID J. Malan: --are sebenarnya kompos.
Tapi terima kasih untuk relawan kami, Angela.
Kami memiliki bola stres untuk Anda di sini juga.
Jadi terima kasih.
>> Jadi satu ini ditulis oleh saya.
Tapi sekarang satu oleh mantan mahasiswa yang sebenarnya yang dilaksanakan ini, yang merupakan sebuah permainan.
Semua dalam bahasa ini disebut Awal, bahwa kita akan segera
mengupas lapisan-lapisan dari.
Tapi jika kita akan like-- bagaimana tentang relawan lain?
Benar.
>> Ayo up.
Siapa namamu?
Sekilas?
Lance.
Lance, datang ke atas.
Senang berjumpa dengan mu.
Ayo cara ini.
Jadi yang satu ini mungkin memiliki tema akrab bagi sebagian dari Anda.
Tapi Anda akan melihat juga bahwa bisa ada interaktivitas,
dimana Anda benar-benar bisa menjadi peran karakter bergerak di sekitar.
Senang berjumpa dengan mu.
David.
>> Saya memberikan, Pikachu.
Instruksi akan sekitar untuk datang pada layar.
Tapi dalam jangka pendek, Anda akan ingin menangkap hal-hal yang lezat,
dan menghindari bom dan hal-hal lain.
Dengan kursor sepenuhnya.
Jadi memukul spasi.
-Pikachu.
DAVID J. Malan: Tangkap hal-hal di sebelah kiri,
tidak menangkap hal-hal yang di sebelah kanan.
>> [MUSIC PLAYING]
>> Jadi satu yang terakhir di sini.
Jika kita bisa memiliki satu lebih relawan di sini.
Kami pikir kami akan menciptakan sesuatu from-- di shirt-- kuning
dari Rabu.
Siapa nama kamu?
Mary, ayolah up Mary.
>> Dan ingat pada hari Rabu kami memperkenalkan gagasan biner, dan lampu biner.
Ini sebenarnya sekarang menjadi pelaksanaan yang antarmuka yang sama
yang kita miliki di iPad dengan cahaya lampu, tapi di sini digital diberikan.
Dan bukannya melakukan stres ball-- senang bertemu Anda, David.
Kami membawa beberapa cahaya lampu dari Cambridge.
>> Jika Anda bisa, klik pada mereka lampu untuk mengubahnya dan mematikan,
datang dengan biner representasi mengatakan 256.
Dan Anda akan melihat di tengah, penghitungan saat ini.
Sehingga satu ada di.
Jadi bit paling kiri pada.
>> MARY: Ya, [tidak terdengar]
>> DAVID J. Malan: Nah, jadi kita harus hanya-- oh.
Jadi ini adalah 128 kolom.
Jadi kita sampai 128.
Kita harus sampai ke 256.
Dan Anda dapat bermain-main di dan off, tidak ada masalah besar.
Atau Anda dapat menekan bahwa 128 kali jika Anda ingin.
>> Baiklah, baik.
24.
Ya, semakin dekat.
Lebih dekat!
Oh, apa masalahnya kemudian?
Jadi apa masalah?
>> Jadi apa yang kita butuhkan untuk memecahkan masalah ini?
Jadi kita perlu sedikit lain.
Dan ini adalah sempurna wajar dalam kenyataannya, kan?
Jika Anda ingin menghitung dari angka 1-2 3 sampai 4 sampai 5, 6, 7, 8, 9
untuk benar-benar dimasukkan ke 10, Anda akan membutuhkan sedikit tambahan.
Jadi mari kita sebenarnya mundur di sini, dan datang
with-- yang jelas dimaksudkan untuk menjadi sebuah set up.
>> Anda tidak dapat melakukan 256 dengan hanya bohlam.
Jadi bagaimana hanya jumlah 50?
Nomor 50.
Sangat baik.
Sebuah tepuk tangan meriah Mary dan miliknya juga.
Terima kasih.
>> Jadi ini topic-- disengaja sebagai was-- yang benar-benar akan kambuh.
Nilai terbesar yang dapat Anda mewakili dengan delapan bit, atau satu byte,
memang 256.
Tapi tidak jika Anda mulai menghitung dari 0, seperti yang kita
tampaknya tetap melakukan dengan memiliki semua orang bit off.
Tapi sekarang mari kita menyelam ke dalam mendasari pelaksanaan lingkungan ini,
dan menggoda selain beberapa gagasan ini.
>> Jadi suatu saat kita akan melihat Beberapa dasar-dasar pemrograman yang berbeda.
Yang pertama kita sebut pernyataan.
Semacam kata kerja, jika Anda mau.
Tindakan.
Hal-hal yang harus dilakukan.
>> Dan suatu saat Anda akan melihat blok yang terlihat seperti ini.
Mengatakan "Halo dunia," misalnya.
Atau menunggu satu detik.
Atau bermain meow suara.
Dan memang lingkungan di yang kita akan melakukan ini
disebut Scratch.
>> Dan jika saya menarik Scratch tanpa preloading kode aktual,
mari kita cepat melihat ini antarmuka pengguna, sehingga untuk berbicara.
Kontrol yang kita berinteraksi.
Di atas kiri di sini dari layar, di bawah menu,
kita memiliki panggung, sehingga untuk berbicara.
Jadi Scratch adalah apa yang akan kita sebut Sprite.
Ini karakter.
>> Dan dia dapat dikontrol oleh menulis program terhadap dirinya.
Dan dia akan bisa bergerak naik dan turun dan kiri dan kanan dalam lingkungan ini,
bukan hanya dengan memindahkan mouse, tapi pemrograman.
Saya bisa katakan padanya berjalan, berjalan kiri, atas, bawah atau sejenisnya.
Dan saya dapat memperkenalkan lainnya sprite atau karakter juga.
>> Memang, di bawah sini adalah di mana Anda akan melihat daftar sprite.
Pada saat ini, saya hanya memiliki satu, tapi aku bisa menciptakan lebih banyak,
dan mereka akan muncul tepat di bawah sana.
Jadi jika Anda mundur sejenak, seperti Oscartime-- misalnya, Oscar,
di sebelah kiri, tempat sampah bisa, adalah sprite.
Dan hal di tengah, daur ulang bin, adalah sprite lain.
Dan kompos sampah adalah sprite lain.
Dan setiap bagian dari sampah atau daur ulang
yang jatuh dari langit juga sprite, yang masing-masing
diprogram secara individual.
>> Bagaimana Anda program?
Nah, di sini di sebelah kanan sisi adalah daerah skrip.
Dan ini adalah di mana kita bisa drag dan drop potongan puzzle.
Dalam seminggu, itu akan menjadi di mana kita ekuivalen menulis kode
dengan lebih dari keyboard, tapi untuk hari ini akan menyeret dan menjatuhkan
potongan puzzle, yang palet yang bisa semua
ditemukan di sini tepat di tengah.
Memang, di tengah di sini ada seluruh banyak
kategori puzzle potongan atau blok.
Salah satu yang terkait dengan gerakan, melihat, suara, pena akan naik dan turun,
data, peristiwa mengontrol.
Tidak yakin belum apa semua ini berarti,
tetapi Anda akan melihat bahwa mereka telah telah baik dikategorikan.
Dan untuk menulis sebuah program di Scratch, mari kita melakukan hal itu.
>> Aku akan memulai di bawah Acara, dan tarik satu ini di sini.
Ketika bendera hijau diklik.
Sekarang mengapa satu itu?
Nah ingat bahwa relawan kami datang, pertama hal yang saya
atau mereka adalah klik hijau yang bendera di sudut kanan atas.
Dan itu hanya berarti memulai program.
>> Jadi, ketika peristiwa itu terjadi, apa yang ingin saya lakukan?
Aku akan pergi di bawah Looks, dan aku akan melakukan "menyapa."
Dan aku akan mengubah ini dan mengatakan sesuatu seperti "halo Yale."
Dan sekarang aku akan tampilannya keluar, klik bendera hijau,
dan voila, saya telah menulis sebuah program.
Ini tidak semua yang menarik dulu, tapi ini
adalah persis di mana setiap penulis mereka mulai,
baik dengan Pikachu, dan lampu biner, dan oscartime,
dan begitu banyak lagi contoh.
>> Anda mulai super sederhana, dan maka Anda mulai untuk lapisan,
dan menambahkan fitur dan fungsionalitas.
Jadi apa yang lapisan-lapisan ini akan terdiri dari?
Nah, di luar pernyataan, kita akan juga memiliki hal-hal yang sedikit lebih fancily
disebut Boolean Ekspresi, setelah seseorang bernama Bool.
Dan ekspresi Boolean hanyalah sebuah ekspresi itu benar atau salah,
ya atau tidak, 1 atau 0.
>> Setiap kutub yang berlawanan seperti itu.
Ini bisa benar atau tidak.
Tapi kita juga akan melihat orang-orang yang mungkin terlihat seperti ini.
Jadi misalnya, adalah mouse ke bawah?
Mereka semacam pertanyaan, jika Anda mau.
>> Mouse baik ke bawah, benar atau tidak, palsu.
1 atau 0, jika Anda mau, cenderung pemetaan.
Yang benar adalah 1, palsu adalah 0.
Nah bagaimana dengan kurang dari ini?
Atau lebih, apakah ini kurang dari ini?
Itu pertanyaan macam.
>> Dan jika Anda menempatkan dua nomor di sana, baik x
akan menjadi kurang dari y atau sama dengan y, atau lebih besar dari y,
tapi blok ini kita akan melihat, hanya akan menjawab pertanyaan,
apakah ini kurang dari itu?
Kami juga mungkin akan melihat sesuatu seperti ini.
Mouse pointer menyentuh.
Jadi dalam Scratch, Anda dapat meminta pertanyaannya, adalah Sprite
menyentuh pointer mouse?
Dengan kata lain, adalah kursor melayang atas topi, atau setara?
>> Kami akan melihat hal-hal anding bersama-sama.
Anda dapat mengajukan dua pertanyaan, dan pastikan bahwa keduanya
memberikan jawaban ya atau benar sebelum membuat keputusan untuk melakukan sesuatu.
Tapi kemudian bagaimana Anda membuat keputusan?
Nah, kita memiliki kondisi ini.
>> Dan kami melihat ini di kami contoh buku telepon.
Melihat ke kiri atau tepat untuk Mike Smith.
Dan dalam kondisi ini, Anda melakukan sesuatu yang berpotensi,
jika ekspresi Boolean benar.
>> Dan memang, melihat bentuk sekarang.
Ada placeholder ini sekarang pada overhead di mana kita dapat fit--
jika saya mundur satu slide-- bentuk itu.
Ini tidak cukup ukuran yang sama.
Dan memang, Anda akan melihat bahwa Scratch mengubah ukuran hal dinamis
untuk menyesuaikan potongan puzzle, tetapi bentuknya apa yang penting.
Hal ini tampak seperti itu, dan memang itu
kira-kira bentuk yang sama yang harus cocok di sana.
Dan jika kita ingin melakukan sesuatu cara ini atau cara itu, jika atau yang lain,
kita memiliki teka-teki ini sepotong di Scratch juga.
>> Sekarang anggaplah Anda ingin dilakukan jika, lain jika, atau yang lain.
Dengan kata lain, sebuah tiga arah persimpangan jalan.
Nah apa yang dapat Anda lakukan hanya dengan melirik ini?
Saya dapat mengambil potongan puzzle ini, dan itu tampaknya tidak cocok,
tapi sekali lagi, Scratch akan untuk kembali ukuran baik bagi kita.
Aku bisa mulai untuk lapisan hal ini bersama-sama.
>> Jadi sekarang aku punya tiga arah garpu jika hal ini benar, melakukan hal ini.
Lain jika hal lainnya ini benar, pergi dengan cara ini, yang lain pergi dengan cara lain ini.
Dan di The Muppet Movie, yang persimpangan jalan, sehingga untuk berbicara,
antara Yale atau Stanford, adalah hal itu, hanya dua kondisi.
Baik pergi dengan cara ini, yang lain pergi ke arah sana.
>> Nah, loop juga ada dalam pemrograman.
Dan kami telah digunakan sudah ini di kelas dan dalam kode pseudo,
dan pasti pada mereka Program Scratch selamanya.
Scratch memiliki potongan puzzle ini yang hanya akan membiarkan Anda melakukan sesuatu selamanya.
Dan kadang-kadang Anda ingin untuk melakukan sesuatu selamanya.
Ini tidak selalu bug, itu karena Anda ingin sebuah jam terus,
atau permainan untuk terus bermain.
Atau Anda dapat menentukan jumlah terbatas langkah, seperti berulang ini blok di sini,
yang akan mengulangi sesuatu 10 kali.
Kita dapat mengatur variabel, kita akan segera melihat.
Dan dengan variabel, mirip dalam roh aljabar, seperti x, y atau, atau z.
Ini sesuatu simbolis yang dapat menyimpan beberapa nilai, beberapa bagian dari informasi,
Anda mungkin ingin ingat untuk nanti.
>> Contoh terbaik dari ini mungkin permainan di mana Anda memiliki skor,
seperti di Pikachu.
Berapa banyak potongan kue dan yang lainnya apakah Anda menangkap?
Nah, yang mungkin variabel disebut skor yang dimulai pada 0.
Dan kemudian setiap kali kami menangkap sepotong kue atau permen, atau sejenisnya,
itu akan bertambah.
Ini akan ditambahkan ke satu per satu.
Dan toko sehingga variabel sepotong informasi seperti itu.
Lalu ada array, dan kami akan datang kembali ke ini dalam satu atau dua minggu waktu,
tapi array adalah jenis seperti persediaan atau tas, di dalam
dari mana Anda dapat menempatkan hal-hal virtual.
Hal ini memungkinkan Anda untuk menyimpan lebih banyak dari satu potong informasi.
Dan yang mungkin berguna jika dalam permainan, Anda
semacam berjalan di sekitar mengambil hal-hal.
Dan mungkin Anda ingin menyimpan semua potongan-potongan kue
sekitar, dan tidak hanya makan mereka satu demi satu.
Dan kemudian ada pelamun membangun kita akan
datang ke disebut fungsi atau prosedur.
Dan meskipun kita akan lebih cepat di sini, kami akan
melihat bahwa ini adalah sangat solusi alami untuk masalah
bahwa kita akan bertemu.
Sebagai program kami mulai semakin besar kita akan
mulai melihat pola dalam kode yang kita sedang menulis,
potongan puzzle kami menyeret dan menjatuhkan.
Dan segera setelah Anda melihat diri Anda melakukan sesuatu lagi dan lagi, atau lebih buruk lagi
menyalin dan pemrograman paste kode yang telah Anda tulis,
itu mungkin sebuah kesempatan untuk faktor luar
apa pun yang Anda tetap menyalin dan paste, dan memasukkannya
di sesuatu yang disebut "fungsi."
Tetapi lebih pada orang-orang di banyak lebih rinci sebelum lama.
>> Dan kemudian ada fitur bahkan lebih bagus.
Bagi Anda yang lebih nyaman, atau mengambil APCS atau setara,
Scratch sebenarnya mendukung hal seperti benang dan acara dan banyak lagi.
Jadi menyadari bahwa ia memiliki langit-langit yang cukup tinggi,
meskipun itu juga sangat luas diakses orang
yang tidak pernah diprogram sebelumnya.
Jadi memang, mari kita lihat pada satu atau dua program sederhana.
>> Kita sudah melihat bagaimana kami mungkin menyapa dengan Scratch.
Biarkan aku pergi ke depan dan membuka sedikit program yang lebih menarik
yang saya tulis di muka.
Dan yang satu ini disebut Pet Cat.
Semua program ini akan tersedia di website CS50 ini.
Memang, sudah ada.
>> Sehingga Anda dapat men-download mereka, dan bermain dengan mereka,
dan dengan Soal Set 0, yang juga di website saja yang,
Anda dianjurkan untuk berjalan melalui ini.
Dan terlebih lagi, kita memiliki jumlah berjalan-melalui video
online di mana saya dan Tim CS50 ini benar-benar berjalan
melalui masing-masing contoh di banyak kecepatan yang lebih lambat, yang di forward sangat cepat,
atau kecepatan rewindable, sehingga Anda dapat berjalan melalui ini di waktu luang Anda.
Jadi, inilah Scratch di sebelah kiri.
Berikut program di kanan bahwa saya sudah pra-dibuat.
Jadi biarkan aku memperbesar ini.
Dan bisa seseorang dalam bahasa Inggris, mengetahui apa yang Anda tahu, hanya dari sekarang sebagai
untuk cara kerja Scratch, semacam mengatakan dalam frase bahasa Inggris atau kalimat,
apa program ini ternyata lakukan?
>> Ya, di kemeja oranye.
>> AUDIENCE: [tidak terdengar]
>> DAVID J. Malan: Ya, jika Anda kursor pada Scratch kucing,
memainkan suara mengeong.
Tapi perhatikan bagaimana kita mengekspresikan itu.
Ada tampaknya lingkaran di sana, selamanya.
Dan kemudian ada kondisi, jika ekspresi.
Dan kolektif, apa yang berarti?
Ini berarti program ini hanya selalu berjalan,
dan itu hanya selalu menunggu dan menonton dan mendengarkan
bagi saya untuk menggerakkan mouse saya selama kucing.
>> Karena setiap kali saya melakukan itu, sebagai Anda usulkan, itu akan melakukan hal ini.
Mari saya mulai program.
Tidak ada yang tampaknya terjadi, tapi perhatikan bagaimana
itu disorot sekarang di garis kuning.
Itu hanya berarti itu berjalan.
Dan karena ada selamanya lingkaran, itu masih berjalan.
>> Jadi biarkan aku memindahkan kursor saya selama Scratch. [MEOW] [MEOW] Dan jika aku memindahkannya off,
[MEOW] sekarang berhenti, tapi program ini masih berjalan. [MEOW] Dan begitu, menggemaskan.
[MEOW] Jadi mari kita membuka sedikit lebih maju
Misalnya disebut Jangan Pet Cat.
>> Dan sekarang mari kita lihat apa terjadi di sini. [MEOW] mengeong.
Jadi itu sedikit di auto pilot, jika Anda mau.
--pet kucing.
Kenapa ya.
[Roar] [MEOW] Jadi bagaimana melakukan pekerjaan ini?
Nah, Anda bisa semacam alasan melalui itu intuitif, mungkin.
>> Tapi mari kita lihat kode aktual.
Jadi sekali lagi, ketika bendera hijau diklik, melakukan ini selamanya.
Apa yang Anda ingin lakukan selamanya?
Nah, jika mouse menyentuh pointer, kemudian bermain
suara yang tampaknya disebut Singa 5, yang dalam proyek ini, yang lain
bermain meow suara, dan kemudian menunggu dua detik, sehingga
bahwa itu tidak mengeong terus-menerus.
Bahkan, Anda dapat dengan cepat mulai untuk mengganggu diri sendiri dan teman sekamar Anda.
>> Mari kita menghapus blok ini.
Dan perhatikan apa yang baik tentang Scratch.
Hal hanya jenis hambatan dan drop dan interlock.
Jadi sekali lagi, itu tumbuh mengisi apa yang Anda inginkan.
Tapi jika saya menghapus ini, dan kemudian hit bermain, [KOMPUTER blip SUARA]
>> --Itu yang jenis tersandung itu sendiri, karena itu benar-benar
melakukan apa yang saya katakan.
Itu mengatakan selamanya memainkan suara ini, tapi Aku tidak memberikan kesempatan untuk menyelesaikan.
Dan sehingga akan menjadi bug.
Dan itu sebabnya kami punya Hal ini di sini sekarang.
Jadi mari kita benar-benar mulai dari scratch-- semacam pun sedikit intended--
di mana kita sekarang memiliki langkah kucing.
>> Jadi aku akan melakukan hal ini dengan cepat.
Aku akan memperbesar sini, hanya untuk mendapatkan saya mulai pada Acara.
Dan bendera hijau diklik.
Dan ada cara lain untuk memulai script.
Kami akan tetap sederhana di sini.
>> Dan sekarang aku akan pergi depan dan pergi di bawah kontrol.
Dan lagi, jika Anda lupa di mana hal-hal yang, cukup klik sekitar,
dan akhirnya Anda menemukan mereka lagi.
Jadi saya ingin selamanya melakukan apa?
Saya ingin menggunakan blok gerak yang saya tahu ada, bergerak 10 langkah.
>> Jadi mari kita lihat apa yang terjadi di sini jika saya bermain game ini.
Untungnya itu tidak pergi terlalu jauh.
Aku masih jenis menangkapnya ekornya dan menariknya kembali.
Tapi program masih berjalan, jadi dia agak melawan saya.
Tapi itu akan menjadi baik jika saya kondisional memperbaikinya dalam kode.
>> Karena ini adalah not-- sebenarnya ini adalah benar-benar
bukan permainan menyenangkan bagi orang dari segala usia.
Jadi mari kita coba untuk memperbaikinya dengan memiliki beberapa jenis kondisi.
Jadi aku akan pergi di bawah Kontrol, dan kemudian jika.
Saya suka ide ini.
Jadi setelah pindah 10 langkah, if-- biarkan aku merasakan keberadaan saya.
Aku akan pergi di bawah Sensing, dan kemudian terlihat aku bisa pergi di sini.
baris ke pertandingan bentuk.
>> Ukuran tidak, tapi itu akan tumbuh untuk mengisi.
Dan sekarang ini adalah menu kecil.
Dan sekarang tikus pointer-- saya tidak ingin mouse, saya ingin tepi.
Jadi Scratch cukup pintar untuk mengetahui ketika sprite menyentuh tepi.
Apa yang saya ingin dia benar-benar melakukannya?
>> Biarkan aku pergi ke depan dan mengubah gerak.
Kamu tahu apa?
Aku akan memiliki dia berbalik.
Jadi pada 15 derajat tidak benar-benar akan membantu saya.
Aku ingin dia berbalik dan pergi ke arah lain.
>> Jadi mari kita lihat apa yang terjadi di sini, jika aku memukul Mainkan.
OK, agak bodoh mencari, tetapi itu melakukan apa yang saya katakan.
Dan itu berputar seluruh sprite.
Sekarang ternyata saya bisa memperbaiki ini.
Dan aku tidak tahu bagaimana untuk memperbaiki hal ini pada awalnya.
Aku agak harus futz sekitar dan melihat cara terbaik untuk melakukan hal ini.
Tetapi jika aku pergi to-- mari kita lihat, gerakan.
Oh, saya menemukan ini.
Sebenarnya, Set Rotasi Style.
Kiri, kanan, atau tidak memutar, atau di sekitar.
Dan ternyata itulah yang saya inginkan.
Dan aku akan menempatkan ini tidak saya lingkaran, karena saya tidak perlu mengatur
gaya rotasi beberapa kali.
Aku akan meletakkannya di bagian paling atas dari program ini sehingga akan set sekali,
dan kemudian ingat.
Dan sekarang saya akan mencoba ini lagi.
Mari saya menghentikan program.
>> Dan sekarang tetap bug itu.
Jadi aku iterasi meningkatkan atas ini.
Program ini mendapatkan sedikit lebih kompleks dan lebih besar,
tapi aku mengambil langkah kecil sehingga untuk berbicara, dan gigitan kecil keluar dari masalah
untuk mendapatkan lebih baik dan lebih baik.
Tapi ini juga, adalah jenis lumpuh.
>> Kamu tahu apa?
Akan meminta seseorang dengan benar-benar baik, suara menakutkan seperti untuk datang?
Seseorang dengan suara.
Uh, yeah.
Ayo up.
Dalam kemeja hijau.
>> Jadi ternyata ada beberapa menyenangkan lainnya hal, estetika dan suara sama.
Berikut meong itu.
Saya klik pada tab Sounds.
[MEOW] Ada meong itu. [MEONG MEONG] [MEOW] --actually rekor sesuatu
kita sendiri di sini.
>> Jadi mari kita melakukan hal itu.
Alih-alih menggunakan suara kucing ini, mari kita pergi ke depan di sini, dan siapa namamu?
Nick, senang bertemu Anda.
Ini David.
Jadi dalam beberapa saat, aku akan untuk menekan tombol Record.
Dan jika Anda bisa hanya berteriak ke laptop,
"Aduh," seolah-olah Anda hanya berjalan ke dinding,
yang akan lebih dihargai.
1, 2.
>> NICK: Aduh!
DAVID J. Malan: Awesome.
Dan sekarang dapat melakukan editing kecil di sini.
Akan menyingkirkan bagian yang tenang.
Dan saya pikir itu bagus.
Terima kasih banyak.
>> NICK: Kesenangan.
DAVID J. Malan: Saya baru hanya menamainya "Aduh,"
tapi sekarang aku akan kembali ke script saya.
Dan pemberitahuan memang ada suara di sini.
Dan aku akan pergi ke depan dan memainkan Aduh suara,
dan aku akan melakukannya jika itu menyentuh bagian tepinya.
Dan kemudian aku akan memilikinya berbalik.
Jadi mari kita lihat apa yang terjadi di sini.
Mari kita pergi layar penuh.
[VIDEO PLAYBACK]
-Ouch!
Ouch!
>> [END PLAYBACK]
>> DAVID J. Malan: Jadi Anda menyadari bahwa kita mendapatkan sedikit keberuntungan.
Aku akan memiliki dia pindah seperti 100 langkah pada satu waktu.
Pengaruh yang sekarang akan untuk be-- [KOMPUTER glitch SUARA] Jadi
dengan alasan.
Jadi kesempatan untuk memperbaiki yang lebih lanjut jika kita benar-benar ingin.
>> Jadi sekarang mari kita memperkenalkan konsep lain.
Untuk membiarkan saya pergi ke salah satu yang disebut Menghitung Domba dan penggunaan sesuatu
disebut variabel.
Ini adalah domba kecil yang manis, dan Saya mengubah kostum sehingga untuk berbicara.
Jadi meskipun default adalah kucing, Anda dapat meng-upload, Anda dapat menggambar,
Anda dapat melakukan sejumlah karakter pada sprite Anda.
Berikut adalah program yang akan melakukan apa yang dalam bahasa Inggris?
>> Berdasarkan lagi hanya pada apa yang Anda tahu sekarang.
Apa program ini lakukan?
Ya, itu akan menghitung.
Satu nomor pada suatu waktu.
Kami memiliki rupanya memiliki set ini counter.
>> Saya tidak tahu apa itu, tapi mungkin itu variabel.
Ini hanya sebuah wadah, x atau y.
Tapi counter kata lebih deskriptif dari x matematika atau y.
Jadi kita bisa menggunakan kata-kata bahasa Inggris untuk hal-hal.
Selamanya, hanya berarti terus melakukan hal ini.
>> Katakanlah counter.
Sekarang mana ini berasal?
Nah, ternyata bahwa counter variabel.
Jadi itu hanya teka-teki lain sepotong saya buat sebelumnya.
Dan meskipun terjadi tidak menjadi bentuk yang sama di sini,
biasanya Anda akan mengatakan sesuatu seperti halo di sini.
>> Anda juga dapat menyeret variabel sehingga itulah yang ini bisa dikatakan.
Lalu aku menunggu kedua, saya mengubah counter per satu,
incrementing dengan menambahkan satu.
Sehingga efek bersih adalah penghitungan ini domba menggemaskan.
Meskipun dia menghitung sendiri.
Sekarang sangat cepat akan mendapatkan membosankan
karena dia akan melakukan hal ini benar-benar selamanya,
tapi itulah apa yang desain program mengatur.
Mari kita sekarang coba contoh lain yang memanfaatkan variabel.
Satu ini disebut Hi Hi Hi, yang tidak mendapatkan menjengkelkan cepat.
Sekarang satu ini memiliki dua script.
Dan lagi, kami mengambil langkah-langkah bayi.
>> Kami mulai dengan sesuatu yang super kecil, yang ditambahkan ke dalamnya, ditambahkan ke dalamnya.
Sekarang saya ingin melakukan sesuatu bahkan lebih dinamis,
jadi saya ingin mendengarkan dua hal yang berbeda pada satu waktu.
Jadi di sebelah kiri, ketika bendera hijau diklik,
Saya menetapkan variabel yang saya tulis di muka disebut Mute.
Dan saya sewenang-wenang set ke 0.
Jadi Scratch tidak memiliki benar dan palsu, tetapi memiliki 0 dan 1.
>> Jadi saya bisa perkiraan bahwa ide yang sama.
Dan kemudian selamanya, jika bar ruang ditekan, kemudian mengatur variabel dengan 0.
Atau menyesal.
Jika Ruang ditekan, dan jika diredam, variabel, adalah 0,
kemudian mengatur diredam ke 1, lain mengatur diredam dengan 0.
Hal ini tampaknya semacam seperti kita hanya melakukan dan melepas pekerjaan.
>> Tapi apa efeknya?
Setiap kali aku memukul spasi, apa yang terjadi pada variabel saya
disebut diredam, secara logis?
Semacam akan membalik.
Ini perubahan dari 0 ke 1, atau 1-0.
Jadi butuh beberapa blok untuk mengungkapkan itu, tapi semua
Saya lakukan adalah Toggling keadaan variabel ini untuk 0 atau 1, atau 0 atau 1
setiap kali aku memukul spasi.
Sekarang di sini, apa yang ini lakukan?
Selamanya, jika diredam adalah 0, jadi jika diredam adalah palsu.
Jadi jika tidak diredam, adalah semantik ada, bermain singa laut suara,
dan berpikir Hi Hi Hi untuk dua detik, tunggu dua detik.
Jadi perhatikan sekarang ini skrip secara efektif
akan berjalan secara paralel sehingga satu bisa mendengarkan untuk satu tindakan, yang lain
untuk membuat keputusan berdasarkan tindakan itu.
Dan ia bisa melakukan ini selamanya.
>> [SEA LION BARKING]
>> Ini akan melakukan ini selamanya dan [SEA LION BARKING] karena saya baru saja dilakukan.
Dan sekarang masih berjalan tapi aku "diredam" permainan.
[SEA LION BARKING] Dan itu semua orang ini tidak sekarang juga.
>> Mari kita buka contoh lain di sini.
Biarkan aku pergi ke Acara, dan sekarang ini menggemaskan juga.
Tapi perhatikan itu memiliki dua sprite.
Jadi tidak hanya dua skrip dengan satu sprite, tapi dua sprite.
Dan jika saya klik pada pria biru seperti yang saya sudah punya, saya melihat dia sebagai salah satu program yang
di sini yang benar-benar hanya mengatakan ini, ketika saya menerima sebuah acara,
mengatakan "Polo" selama dua detik.
>> Jadi, jika Anda pernah bermain di kolam renang, permainan Marco Polo,
jika script pria jeruk indikasi, rupanya
setiap kali aku memukul spasi, apa orang oranye akan lakukan?
Dia akan mengatakan "Marco."
Dan maka ini adalah blok baru.
Kami sudah tidak melihat ini sebelumnya, tapi menyiarkan acara.
Dan aku bisa menyebutnya acara apa pun yang kita inginkan.
>> Kami akan kembali ke ini mungkin sebelum lama.
Tapi penyiaran acara adalah cara untuk satu sprite
untuk berbicara dengan yang lain oleh dasarnya lewat pesan.
Ini bukan pesan yang Anda lihat.
Ini bukan sesuatu yang visual.
Ini semacam pesan komputer bahwa orang lain mendengarkan.
Karena memang, pria biru, recall tidak memiliki ketika bendera hijau diklik.
>> Dia malah memiliki, ketika saya menerima sebuah acara.
Ketika ia akan diserahkan catatan ini di kelas, sehingga untuk berbicara, ia harus mengatakan "Polo."
Dan efek bersih adalah bahwa ketika saya memukul bendera hijau, tidak ada yang terjadi.
Tapi ketika saya menekan space bar, katanya "Marco," ia menjawab dengan "Polo."
Tapi satu-satunya sprite aku berinteraksi dengan adalah satu jeruk.
Jadi ini adalah cara semacam lewat pesan antara sprite
dan setelah mereka berkomunikasi dengan satu sama lain.
>> Sekarang mari kita lihat yang terakhir satu di sini disebut Threads.
Dan melihat ini dengan bermain itu.
Jadi ini adalah dua sprite.
Burung itu adalah jenis terbang di sekitar.
Dia terpental.
Tidak ada "Aduh," tapi ide yang sama.
>> Tapi kucing tampaknya cukup cerdas.
Apa yang kucing ternyata lakukan?
Dan menunggu untuk itu.
Apa yang kucing ternyata lakukan?
Ini bukan hanya memantul.
>> Dia mengikuti burung.
Dan begitu rupanya, di situ ada jalan dengan kombinasi blok di sini-
dan mari kita lihat kucing sangat cepat.
Selamanya, jika menyentuh burung, kemudian bermain suara singa 4, apa pun itu.
Kami mendengar sekali.
Jika tidak, menunjuk ke arah burung, dan bergerak satu langkah.
Sekarang fakta bahwa itu salah satu Langkah adalah apa yang memberi burung
sedikit keuntungan awalnya, tetapi jika kita bukannya
membuat 10 ini, misalnya, sehingga bahwa setiap iterasi dari loop dia
bergerak 10 langkah waktu.
Jadi lebih banyak ruang.
Mari kita lihat apa yang terjadi kemudian.
[LION Roar] Tidak semua yang jauh lebih baik.
Jadi sekarang mari kita coba untuk meningkatkan setelah ini sedikit iteratif,
dan kembali ke yang Gagasan fungsi.
>> Dan memang salah satu dasar takeaways dari desain kelas.
Tidak hanya menulis program yang bekerja dan yang benar, tapi baik
dirancang.
Dan desain jauh lebih subjektif, dan Anda akan mendapatkan lebih baik dari waktu ke waktu.
Tapi mari kita mengambil beberapa langkah kecil menuju dimulai dengan program yang bekerja,
benar-benar, tapi itu tidak sangat baik.
Ini tidak ditulis dengan sangat baik.
>> Jadi, inilah program yang melakukan hal ini.
Batuk, batuk, batuk.
Apa program terlihat seperti?
Terlihat benar bagi saya.
Itu mengatakan sofa untuk kedua, maka menunggu.
>> Lalu ia berkata lagi, maka itu menunggu.
Lalu ia berkata lagi, maka itu menunggu.
Dan kemudian program secara implisit berakhir, karena tidak ada lingkaran.
Tapi mengapa ini program yang ditulis dengan buruk?
Bahkan jika Anda tidak pernah diprogram sebelumnya?
Seperti, apa yang menggosok cara yang salah, mungkin di sini?
Ya?
>> AUDIENCE: [tidak terdengar]
DAVID J. Malan: Tepat.
Anda mengulangi sendiri lagi dan lagi.
Dan secara harfiah, saya disalin dan disisipkan dua dari blok-blok lagi dan lagi.
Dan itulah jenis kewarasan memeriksa bahwa Anda harus membuat.
Tunggu sebentar.
Haruskah saya benar-benar melakukan ini?
Jadi apa ini apa solusi yang jelas mungkin?
Memiliki semacam lingkaran.
Dan saya tidak cukup ingat apa potongan puzzle adalah,
tetapi jika aku melihat iterasi berikutnya di sini,
memang, tidak ada hanya selamanya lingkaran,
ada beberapa mengulangi beberapa kali.
Dan jadi aku ditentukan tiga.
Dan sekarang perhatikan bagaimana jauh lebih ketat, bagaimana jauh lebih ringkas program ini.
Dan dalam arti, bagaimana jauh lebih dipertahankan.
Jika saya ingin mengubah kata dari batuk untuk sesuatu yang lain,
seperti Achoo, seperti dia bersin.
Lalu aku mengubahnya dalam satu Tempat, dan bukan tiga.
Jadi ini sudah terasa seperti desain sedikit lebih baik.
Biarkan saya batuk bukan terbuka 2, contoh ketiga kami.
>> Perhatikan sebagai ilmuwan komputer, Aku mulai menghitung pada 0, biasanya.
Sekarang ini tampak menakutkan kecil di pertama, tetapi efeknya adalah sama.
Batuk, batuk, batuk.
Tapi apa yang tampaknya menjadi fundamental baru di bagian atas program?
Aku telah menghapus katakanlah itu.
>> Aku telah menghapus menunggu.
Dan apa yang harus saya terpasang bukan?
Sebuah fungsi.
Sebuah blok batuk.
Maksudku, terus terang, saya sepertinya jenis idiot jika saya tidak hanya
mulai dengan blok yang ternyata disebut
"batuk," jika itu yang saya ingin dia lakukan.
Tapi itu tidak ada dalam Scratch.
Sebaliknya saya pergi ke salah satu di palet disebut Blok Lebih sini,
dan saya tarik hal besar ungu ini di sini yang memungkinkan saya mendefinisikan fungsi.
Ini pada dasarnya memungkinkan saya membuat puzzle sendiri
bagian yang bisa disebut apa-apa saya ingin, yang dapat melakukan apapun yang saya inginkan,
tetapi memberikan nama.
Ini memberi saya baru, ungu potongan puzzle yang sekarang melakukan apa yang saya katakan untuk dilakukan.
Jadi ini sepotong ungu disini sesuai dengan yang satu ini di sini.
>> Dan apa fungsinya?
Ia mengatakan batuk untuk kedua, dan kemudian menunggu.
Dan sekarang aku sudah semacam dibuat saya sendiri potongan puzzle kustom,
sehingga berperilaku persis dengan cara yang sama.
Jadi saya bisa terus melakukan hal ini.
Dan memang, ada akan menjadi lebih dan lebih banyak kesempatan untuk modularisasi,
dan untuk layering, kompleksitas di atas satu sama lain.
Tapi ide dasar ini, memang dalam masalah kata 0.
Apa yang Anda akan ditantang untuk lakukan adalah
untuk men-download Scratch, atau hanya menggunakannya di web, dan hanya bersenang-senang dengan itu.
Kami akan memberikan satu set persyaratan, memiliki suara,
dan beberapa jumlah potongan puzzle.
Tetapi Anda akan melakukan persis ini.
Dan Anda akan menyadari bahwa Anda akan ingin mengambil beberapa langkah kecil pada awalnya,
sampai program Anda mendapatkan lebih dan lebih kompleks.
Tapi mengingat ini adalah Cara terbaik yang saya bisa melakukan ini?
Dapatkah saya menghindari naluri ini mungkin, untuk copy dan paste?
>> Tapi sebelum Masalah Set 0, dan sebelum kita menunda,
pikir kami akan mengambil satu lebih relawan jika kita bisa,
untuk program akhir itulah mungkin yang paling
pas sekali, mengingat tempat hari ini.
Ayo turun.
Ya.
Iya nih.
Siapa namamu?
Uh oh.
Tidak apa-apa.
Keduanya turun.
Dan aku sudah akan menangani hal ini entah bagaimana dalam sepuluh detik berikutnya.
Jadi datang di bawah.
Ayo turun.
>> Biarkan aku datang ke sini.
Ayolah.
Baiklah.
Mari kita lihat di sini.
Jadi melihat sangat cepat di sini, jika Anda ingin datang ke atas.
>> Kami akan melakukan dua putaran ini.
Dan siapa namamu?
>> SABRINA: Sabrina.
>> DAVID J. Malan: Sabrina dan?
>> Ying GEE: Ying Gee.
>> DAVID J. Malan: Ying Gee.
Senang bertemu Anda berdua.
David.
Jadi contoh terakhir kami di sini adalah disebut Permainan Hardest Ivy.
Dan mengapa tidak memiliki kami Anda lakukan Level 1, dan Anda Level 2.
>> Dan kita akan melihat seberapa jauh di luar itu kita benar-benar pergi.
Ditulis oleh mahasiswa tahun lalu, remix oleh saya
sehingga hal ini akan lebih baik di New Haven.
Dan saya memberikan permainan yang akan melibatkan memindahkan panah atas dan bawah,
dan mendapatkan Yale ke garis finish.
Di sini kita pergi.
>> [VIDEO PLAYBACK]
>> [MUSIK - NFL ON FOX TEMA LAGU]
[MUSIK - MC HAMMER, "U TIDAK BISA MENYENTUH INI "]
>> -U Tidak bisa menyentuh ini.
U tidak bisa menyentuh ini.
Tidak bisa menyentuh ini.
Saya, saya, saya, musik saya memukul saya begitu keras, membuat saya katakan, oh, Tuanku.
Terima kasih untuk memberkati saya dengan keberatan untuk sajak dan dua kaki sensasi.
>> Itu bagus ketika Anda tahu Anda turun.
Sebuah obat bius homeboy yang super dari Oaktown.
Dan aku dikenal seperti ini dan mengalahkan eh, Anda tidak dapat menyentuh.
Saya bilang Homeboy U tidak bisa menyentuh ini.
Ya, itulah cara kita hidup dan Anda tahu U tidak bisa menyentuh ini.
>> Terlihat di mata saya, man.
U tidak bisa menyentuh ini.
Yo, biarkan aku bust lirik funky.
U tidak bisa menyentuh ini.
Tendangan baru yang segar dan celana.
>> Anda mendapatkannya seperti itu dan Anda tahu bahwa Anda ingin menari.
Jadi pindah dari tempat duduk Anda dan mendapatkan lalat gadis dan menangkap beat ini.
Sementara itu bergulir terus di pompa sedikit bit dan biarkan mereka tahu apa yang terjadi.
Seperti itu.
>> Dingin pada misi sehingga menarik di punggung.
Biarkan mereka tahu bahwa Anda terlalu banyak dan ini adalah langkah eh Anda tidak dapat menyentuh.
Yo, aku bilang U tidak bisa menyentuh ini.
Mengapa Anda berdiri di sana pria?
U tidak bisa menyentuh ini.
>> Yo, terdengar di sekolah bel itu, pengisap.
U tidak bisa menyentuh ini.
Beri aku sebuah lagu, irama membuat mereka keringat itulah yang saya memberi mereka sekarang.
Mereka tahu ketika Anda berbicara tentang Hammer yang Anda berbicara tentang acara itu hyped.
Dan penyanyi ketat adalah berkeringat sehingga melewati mereka mic.
>> Atau tape untuk mempelajari apa yang itu akan mengambil dan sekarang
dia akan membakar grafik.
Legit baik kerja keras atau Anda mungkin juga berhenti.
Karena Anda tahu U tidak bisa menyentuh ini.
U tidak bisa menyentuh ini.
Memecahnya.
Berhenti.
Waktu palu.
Pergi dengan aliran di spin jika Anda tidak dapat pindah ke ini
maka Anda mungkin sudah mati.
Jadi gelombang tangan Anda di udara [tidak terdengar]
>> Ini adalah untuk tarian pemenang untuk ini dan Anda akan mendapatkan lebih tipis.
Pindahkan geser pantat Anda hanya untuk menit mari kita semua melakukan benjolan.
Ya.
U tidak bisa menyentuh ini.
>> U tidak bisa menyentuh ini.
Anda lebih baik mendapatkan hyped anak U tidak bisa menyentuh ini.
Ring back sekolah bel di.
Memecahnya.
Berhenti.
Waktu palu
>> DAVID J. Malan: Itu saja untuk CS50!
Terima kasih banyak untuk bergabung dengan kami!
Melihat Anda di luar.
>> [END PLAYBACK]
[VIDEO PLAYBACK]
[MUSIK - "Seinfeld" THEME LAGU]
Hei David.
-Hei, David.
Bagaimana kabarmu?
>> Pekerjaan -Bagus, hari ini.
-Jadi Apakah Anda berpikir tentang apa yang Anda akan lakukan untuk lelucon keluar?
-Tidak, Saya punya apa-apa.
-Apa If-- bagaimana jika ini adalah keluar lelucon?
-seperti, Membongkar gerobak?
-Uh huh.
Anda tahu, ini tentang apa-apa.
>> -Jadi Suka, tidak ada cerita, tidak ada konflik, tidak ada resolusi.
Saya tidak mengerti.
Tentang apa itu?
>> -Tidak Ada.
>> -Jadi Kita memiliki keluar lelucon tentang apa-apa, dan kita tidak memiliki aktor.
Siapa yang akan berada di ini?
>> -Tidak tidak tidak.
Maksudku, aku akan berada di dalamnya.
>> -Anda Akan berada di dalamnya?
Yeah!
Orang-orang selalu mengatakan saya saya karakter.
>> -Nah, Maksudku, itu benar.
Tapi siapa lagi yang akan di dalamnya?
Hal ini tidak bisa hanya menjadi Anda.
>> -Anda Akan di dalamnya, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug,
David, semua orang.
>> -Jadi Itu tentang apa-apa, dan semua orang yang ada di dalamnya?
>> Tidak ada -Absolutely.
>> -Ini konyol.