Jadi itu adalah kenikmatan terbesar saya untuk menyambut Anda semua di sini hari ini
untuk kuliah pertama dari, baik, Pendahuluan
Komputasi dan Pemrograman.
Juga dikenal sebagai CS50 atau baik, CPSC 100, secara resmi di sini di Yale.
>> Jadi kita tidak bisa lebih bersemangat untuk menyambut Anda semua di sini.
Nama saya Patrick Rebeschini.
Aku instruktur kepala untuk kelas.
Saya di sini mewakili kelompok dari sekitar 60 anggota staf
yang akan bekerja dengan Anda sepanjang semester.
Jumlah ini hampir 60 dari kita.
Namun sepanjang yang luar biasa tingkat komitmen
yang kita masukkan ke dalam ini kelas, membuat CS50 kelas
di Yale University yang menawarkan tingkat terbesar dukungan
untuk Anda semua.
Dan kita tidak bisa lebih bangga menawarkan kelas ini di sini lagi.
>> Bahkan, karena Anda akan segera mengalami, CS50 jauh lebih dari sebuah kelas.
Ini adalah komunitas.
Dan Anda akan menjadi bagian Segera komunitas ini.
Ini adalah tahun kedua yang Yale menawarkan kelas ini.
Kami sedang membangun pada ekstrim keberhasilan tahun lalu, di mana
untuk pertama kalinya, di sini di universitas ini,
asisten pembelajaran sarjana diadopsi di dalam kelas.
Semuanya dimulai dengan kelas ini tahun lalu.
>> Jadi seperti yang Anda tahu, kelas diajarkan bersama-sama dengan Harvard University.
Mengajar kursus ini kita relying-- kita bisa
mengandalkan keahlian besar David Malan dan tim Harvard.
Jadi David telah mengajar CS50 untuk baik, 10 tahun sekarang.
Dan setiap tahun ia telah mendorong batas
dan meningkatkan pengalaman kelas.
Sekali lagi, kita tidak bisa lebih senang melanjutkan kerjasama ini dengan mereka.
>> Bahkan, salah satu sebagian menarik,
Saya akan mengatakan menjalankan kelas ini sekarang, baik di Harvard dan di sini di Yale,
adalah benar-benar luar biasa fertilisasi silang
ide, yang bertujuan untuk meningkatkan pengalaman untuk Anda semua belajar.
Sehingga hasil dari luas ini kolaborasi antara dua
universitas, CS50 bangga mengumumkan versi baru tahun ini
dengan perubahan nyata.
David semua akan memberitahu kita tentang mereka sekarang.
Jadi please-- makhluk ini kata, silakan bergabung dengan saya
dan selamat datang untuk memberikan tepuk tangan meriah
untuk menyambut David dan Tim Harvard di sini di Yale.
>> [TEPUK TANGAN]
>> DAVID Malan: Terima kasih.
Terima kasih.
Ini adalah CS50, Harvard University dan pengenalan Yale University
dengan intelektual perusahaan ilmu komputer
dan seni pemrograman.
Dan apa itu artinya bahwa kursus ini akhirnya, adalah tentang pemecahan masalah.
Memang banyak dari Anda mungkin telah keluar dari sekolah tinggi
atau telah menghabiskan beberapa tahun terakhir tanya apa beberapa teman
lakukan tahun lalu atau di kelas-kelas lain.
Namun, kenyataannya adalah, tidak peduli apa yang kita
lakukan pada akhir hari di kelas ini, itu akan menjadi sekitar pemecahan masalah.
>> Dan dengan demikian, mungkin mengambil beberapa kepastian sebenarnya
bahwa 73% dari siswa yang mengambil kelas ini, baik di sini
di Yale serta di Harvard, tidak pernah mengambil kelas CS sebelumnya.
Jadi jika Anda duduk di sini di penonton hari ini bertanya-tanya
mengapa Anda duduk di sini penonton hari ini,
atau mungkin Anda hanya diikuti bersama dengan beberapa teman,
atau mungkin Anda sudah menjadi sedikit penasaran seperti apa
ilmu komputer dan pemrograman, menyadari
bahwa sebagian besar teman sekelas Anda untuk kiri dan ke kanan Anda
sangat banyak yang demografis yang sama.
>> Dan memang, jika kita melihat statistik tahun lalu
dalam tubuh mahasiswa CS50, baik di sini dan di Harvard, 58% dari siswa
menggambarkan diri mereka sebagai kurang nyaman.
9% lebih nyaman.
Dan kemudian 33% adalah suatu tempat di antara.
Dan tidak ada definisi formal apa artinya ember ini.
Anda semacam tahu kau kurang nyaman jika Anda.
Anda merasa sedikit tidak nyaman dengan mungkin berada di kelas.
Anda tidak cukup yakin apakah komputer kelas sains akhirnya untuk Anda,
dan menyadari bahwa Anda di perusahaan yang sangat baik.
Dan memang grading, dan penilaian,
dan umpan balik, dan semua itu struktur dukungan di kelas
akhirnya sangat individual.
Lebih daripada kebanyakan kelas lainnya dengan desain.
Dan memang, yang akhirnya hal di kelas ini tidak
begitu banyak di mana Anda berakhir up relatif terhadap orang lain,
tetapi di mana Anda, dalam seminggu 11 atau terakhir, dan relatif terhadap diri Anda di minggu
0 sini pertama kami.
Jadi apa artinya?
Nah, ini berarti mereka 73% dari mahasiswa tahun terakhir yang tidak pernah mengambil
kelas CS sebelumnya, dengan mulai dari semester mereka
yang berkecimpung dalam bahasa disebut Scratch, yang kita sendiri
akan melihat di sini hari ini.
Dan pada akhir semester yang telah mereka pergi
melalui seluruh daftar ini tantangan.
Dimulai dengan bahasa disebut c.
Menerapkan, apa pada pandangan pertama, akan
menjadi sedikit tantangan bagi beberapa, tapi cukup memuaskan setelah Anda
mendapatkan Super Mario memantul atas dan ke bawah piramida
diimplementasikan, meskipun, hanya dengan sesuatu yang disebut ASCII art.
Menerapkan year-- lalu apa siswa tahun lalu maka
tidak setelah yang menerapkan mereka sendiri cipher Caesar dan cipher vigenere.
Jadi algoritma enkripsi dengan yang Anda bisa
Informasi berebut dan kemudian menguraikan Informasi untuk mengirim pesan rahasia.
Permainan 15.
Jika Anda ingat dari masa kanak-kanak atau mendukung partai,
bahwa permainan plastik kecil di mana Anda bergerak angka atas, bawah, kiri dan kanan
mencoba untuk mendapatkan mereka dalam rangka, benar-benar menerapkan permainan yang
dan memecahkan logika diperlukan di sana.
Dan kemudian kita mencoba-coba forensik tahun lalu.
>> Jadi pada pertengahan semester, siswa yang tidak pernah
digunakan keyboard mereka untuk tujuan ini sebelumnya,
yang menulis perangkat lunak untuk memulihkan, sehingga untuk berbicara,
JPEG atau foto bahwa kita telah sengaja
dihapus dari digital kartu memori dari kamera.
Memulihkan pesan rahasia dari dalam gambar bitmap,
dan jenis seperti lainnya grafis juga.
>> Kami kemudian beralih ke memberikan seluruh kelas kamus.
Hanya file teks yang sangat besar dengan 150.000 kata-kata bahasa Inggris.
Dan semua orang ditantang entah bagaimana membaca, sehingga untuk berbicara,
kata-kata ke dalam memori.
Ke dalam memori komputer.
Dan kemudian menjawab pertanyaan formulir, apakah ini sebuah kata?
Apakah ini sebuah kata?
Benar-benar hanya menerapkan pemeriksa ejaan.
Dan kemudian menantang setiap lainnya dengan board-- besar
papan pemimpin untuk melihat siapa yang bisa menggunakan paling sedikit memori,
dalam jumlah sedikit waktu untuk sebenarnya spell check dokumen besar.
>> Kami beralih dari kemudian ke mengimplementasikan web server yang sendiri.
Jadi tidak membuat halaman web dalam bahasa seperti HTML dan CSS, jika Anda terbiasa.
Tapi benar-benar menerapkan server yang
mendengarkan di internet untuk permintaan dari browser
dan kemudian menanggapi permintaan tersebut.
Kemudian menerapkan kita sendiri e-trade seperti website, di mana
siswa bisa membeli dan menjual saham.
Menggambar di hampir real time harga saham dari Yahoo Finance.
Dan memungkinkan siswa untuk melihat bagaimana portofolio mereka berkembang.
Dan akhirnya mash up dari Google News dan Google
Peta dimana siswa dengan istilah dengan istilah akhir
memiliki kemampuan untuk klik, dan bulat, dan pencarian pada peta Google.
Dan kemudian melihat semua artikel berita yang
proksimal ke daerah-daerah tertentu.
Jadi benar-benar pergi dari nol sampai 60.
>> Dan sepanjang jalan memiliki apa yang kita miliki tahun lalu disebut, penambahan hacker.
Itu meningkatkan bar lanjut bagi anda
yang mungkin sangat baik memiliki baik jumlah pengalaman berada di bahwa 9%
lebih nyaman.
Jadi menyadari bahwa ada langit-langit yang sangat tinggi
bahkan dalam mereka tantangan bagi siswa
datang dari latar belakang yang berbeda.
Karena pada akhir hari, kami akhirnya
difokuskan cukup sederhana ini.
>> Tapi apa ini Maksudku, pemecahan masalah?
Jadi mari kita mengusulkan bahwa kami menyaring seperti ini.
Jadi pemecahan masalah adalah benar-benar hanya jenis ini gambar.
Jadi Anda punya masukan untuk beberapa masalah, sesuatu yang Anda benar-benar ingin memecahkan.
Tujuannya adalah untuk mendapatkan output, solusi untuk masalah tersebut.
Dan kemudian di tengah adalah apa yang akan kita sebut kotak hitam.
Anda tidak perlu tahu atau bahkan peduli apa yang di dalam kotak hitam.
Semua yang Anda tahu adalah bahwa ketika Anda makan masukan ke dalamnya,
mudah-mudahan Anda mendapatkan output atau solusi dari itu.
Dan sementara hari ini kita akan melihat baik di input dan output,
kami akan jangka panjang, dan selama Tentu saja dari seluruh semester,
fokus pada apa yang ada di dalam kotak itu.
>> Dan di dalamnya akan berbohong sesuatu yang disebut algoritma.
Petunjuk langkah demi langkah untuk benar-benar memecahkan beberapa masalah.
Tapi apa contoh beberapa masukan?
Jadi mungkin hal yang sederhana di mulai dari setiap tahun sekolah, seseorang
mungkin ingin mengambil hadir.
Jadi kita bisa melakukan satu, dua, tiga, empat, lima, enam,
dan bagaimana saya akan terus melacak informasi tersebut.
Aku mungkin hanya pergi satu, dua, tiga, empat, lima, enam.
Dan hanya menggunakan semacam satu digit.
>> Atau aku benar-benar bisa merekam ini istilah sedikit lebih lama.
Dan bagaimana saya mewakili semua manusia di ruangan ini?
Yah, aku mungkin melakukan sesuatu seperti, OK.
Aku melihat satu orang.
Baiklah.
Saya melihat orang lain, orang ketiga, dan sebagainya.
Tapi tidak ada yang penting orang-orang seperti ini.
Jadi secara harfiah, kebanyakan dari kita jika kita bahkan akan menggambar apa-apa,
mungkin akan pergi satu dua tiga empat,
mungkin mendapatkan sedikit mewah, lima, enam, tujuh, delapan, sembilan, sepuluh dan sebagainya.
>> Dan itu benar-benar sistem yang disebut unary.
Uno, seperti uno menyiratkan satu, di mana Anda hanya memiliki satu huruf dari alfabet.
Anda baru saja tanda pagar ini.
Dan saya, untuk efisiensi, hanya menggambar tanda hash ini, akhirnya
garis lurus.
Tapi aku bisa menarik mereka sebagai tokoh tongkat kecil.
Dimana untuk mewakili satu orang, satu input,
Saya hanya menggambar tongkat Angka atau tanda pagar.
Tapi ini tidak semua yang ekspresif.
>> Jika semua yang saya miliki adalah hash ini tanda, biarkan angka tongkat saja,
bagaimana mungkin saya mewakili sesuatu seperti jumlah 15?
Atau 15 orang di dalam ruangan?
Aku mungkin harus melakukan sesuatu seperti 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15.
Hanya saja tidak skala yang sangat baik.
Sebagai masukan dapatkan besar, kami membutuhkan sistem yang lebih baik dari ini.
>> Dan ternyata bahwa Sistem yang menggunakan komputer
tidak semua yang berbeda dari apa yang Anda dan saya tahu.
Bahkan, kebanyakan orang di ruangan ini, bahkan jika Anda termasuk orang yang kurang
nyaman, tidak perlu tahu bagaimana Mac atau PC benar-benar bekerja,
Anda mungkin pernah mendengar setidaknya, bahwa di bawah tenda adalah 0 dan 1.
disebut sistem biner.
Jadi memang, komputer memiliki lebih dari hanya tanda hash dalam kosa kata mereka,
tapi tidak sebanyak dari kosakata seperti kita manusia.
>> Memang, kita manusia tidak menggunakan biner.
Bi berarti 2, 0 dan 1.
Tapi desimal, deca berarti 10, 0 sampai 9.
Jadi kita memiliki lebih banyak ekspresif kemampuan di dunia manusia normal kita.
Tapi aku berpendapat bahwa sistem ini, biner, dan desimal, dan segala sesuatu
di antara dan di luar, yang sebenarnya semua cukup akrab.
Misalnya, pertimbangkan contoh ini di sini, 123.
Jadi ini benar-benar, tentu saja, nomor yang kita kenal sebagai 123.
Tapi semua saya hanya menggambar hanya ini pola simbol, mesin terbang sehingga untuk berbicara.
Semacam bentuk di papan kapur.
>> Tapi mengapa kita segera dan intuitif memahami ini sebagai 123?
Nah, jika Anda seperti saya di sekolah dasar,
Anda mungkin tahu bahwa ini adalah kolom 1s, ini adalah kolom 10s,
ini adalah kolom 100s.
Dan kenapa begitu berguna?
Nah, itu aritmatika sederhana Anda sekarang lakukan untuk mendapatkan dari pola simbol
untuk nomor kita memahami secara intuitif.
Adalah apa, 100 kali 1, dan kemudian 10 kali 2, dan 1 kali 3,
yang tentu saja hanya 100, dan ini adalah 20, dan ini adalah tiga.
Dan jika kita menambahkan mereka together-- ah.
Jadi di situlah letak semacam penalaran balik mengapa set simbol
berarti sesuatu yang nyata dan numerik.
>> Nah, komputer melakukan hal yang sama persis, tapi mereka hanya bisa menghitung setinggi satu.
Sedangkan saya bisa menghitung setinggi tiga.
Dan pada kenyataannya, jika saya terus saya bisa pergi setinggi sembilan dalam sistem ini.
Komputer hanya memiliki angka nol dan orang-orang dalam alfabet mereka.
>> Jadi apa artinya?
Yah, itu hanya berarti bahwa jika komputer ingin mewakili, mengatakan angka 0,
mungkin menggunakan tiga characters-- tiga huruf abjad sehingga untuk berbicara,
itulah bagaimana komputer mewakili 0.
Jadi tidak semua yang menakutkan sejauh ini.
Ini persis apa yang kita manusia lakukan.
Dan pada kenyataannya, kebanyakan dari kita hanya akan mengabaikan nol terkemuka pula.
>> Sebuah komputer, jika ingin untuk menyimpan nomor 1,
ternyata akan melakukan hal ini.
Dan komputer untuk menyimpan nomor 2 tidak
akan melakukan sistem unary, yang saya singgung sebelumnya.
Ini benar-benar akan melakukan hal ini.
Dan ini mungkin di mana pola dimulai
menjadi kurang jelas bagi kebanyakan orang.
Itu 2, ini adalah 3.
Anehnya, ini sekarang 4.
Dan sekarang itu benar-benar tampaknya mungkin samar,
tapi tidak jika kita mempertimbangkan apa biner benar-benar berarti.
Ini berarti Anda memiliki dua huruf abjad Anda.
Jadi dua karakter yang mungkin untuk setiap placeholder.
>> Jadi yang benar-benar berarti kita akan membutuhkan tempat 1s, atau tempat 2s,
tempat 4s dan kemudian 8, dan 16, 32, dan 64.
Dan apa bedanya di sana?
Seperti ini 1, 2, 4, 8, 16, 32, 64.
Dan sebelum kami memiliki 110, 100.000, 10.000.
Apa kesamaan di sana?
Dan apa pola?
Ya.
SISWA: Powers of 2 bukannya kekuatan 10.
DAVID Malan: Ya.
Kekuatan dari 2 bukannya kekuatan 10.
Dan jadi jika saya ingin tetap akan, 8, 16 dan begitu forth--
tetapi jika Anda memiliki semacam ini dari petunjuk, sekarang sistem biner
sebenarnya cukup sederhana.
Mengapa pola ini 0 ini di dunia komputer 0?
Nah karena itu 4 kali 0, 2 kali 0, 1 kali 0 dan Anda mendapatkan 0.
>> Mengapa ini nomor 1?
alasan yang sama, tetapi sekarang kita memiliki 1 dalam 1 kolom.
Mengapa ini 2?
Kami memiliki 1 di kolom 2s.
Dan bagaimana kemudian melakukan saya mewakili mengatakan, angka 7 dalam biner?
Mengatakan lebih keras.
>> SISWA: Tiga 1s.
>> DAVID Malan: Tiga 1s.
Jadi 1, 1, 1 karena kita hanya perlu 4 ditambah 2 ditambah 1 memberi saya 7.
Baiklah.
Jadi dari sana bagaimana kita mewakili 8 dengan 3 placeholder?
Ya.
>> SISWA: 1, 0, 0, 0.
>> DAVID Malan: Ya 1, 0, 0, 0.
Namun mungkin, aku agak dari teknis perlu
untuk menambahkan placeholder lain untuk papan.
Jika saya ingin cocok dengan saya memang perlu melakukan sesuatu seperti ini.
Jadi saya benar-benar perlu menggunakan sekarang kolom 8s, dan itu baik-baik saja.
Tetapi hal yang aneh dalam komputasi adalah bahwa itu akan biaya kita sesuatu.
Anda membutuhkan lebih banyak RAM di komputer Anda sekarang.
Anda membutuhkan lebih banyak memori karena Anda perlu sesuatu
fisik untuk menyimpan bahwa bit tambahan, sehingga untuk berbicara.
Digit biner.
Dan memang semua yang terjadi di sini, seperti sistem desimal,
jika kita terus menambahkan nomor naik dan naik dan atas, kita pergi ke 5 sampai 6 untuk 7 sampai 8
itu seperti membawa 1, secara harfiah.
Dan kemudian segala sesuatu yang lain kembali ke nol.
>> Tapi bagaimana kita benar-benar mewakili hal-hal ini secara fisik di komputer?
Nah, di akhir hari, satu-satunya masukan fisik pergi ke komputer saya
di sini adalah kabel listrik ini, sehingga listrik atau elektron dari dinding.
Dan bagaimana saya dapatkan dari sesuatu fisik seperti itu untuk benar-benar
mewakili ide seperti ini sebagai gantinya.
>> Nah, apa yang bisa kita lakukan?
Kita bisa menganggap bahwa, oke, mungkin jika mengalir listrik
Aku bisa menyimpannya dan berpegang pada itu.
Dan jika saya memegang beberapa listrik,
yang hanya akan sewenang-wenang mewakili 1.
Dan jika saya tarik steker dan tidak ada di sana,
Anda tahu bahwa hanya akan untuk sewenang-wenang mewakili 0.
>> Jadi, jika ada sesuatu yang ada, 1.
Jika tidak ada di sana, 0.
Atau Anda bisa membuat ini sedikit lebih visual.
Berikut adalah 0.
Tidak ada yang berlangsung menarik di sekitar bagian belakang ponsel saya.
Tapi jika saya membiarkan sedikit bit listrik mengalir,
meskipun itu agak cerah di sini, senter saya melanjutkan.
Jadi aku menyimpan muatan dan ergo, ponsel ini sekarang merupakan 1.
Jadi 0 1.
>> Jadi dengan 1 iPhone seberapa tinggi saya bisa menghitung menggunakan pendekatan semacam ini?
Saya bermaksud 1.
Ini tidak semua yang menarik.
Jadi apa lagi yang bisa kita lakukan?
Nah mari kita lihat, adalah siapa pun di mereka telepon sekarang bahwa saya bisa meminjam?
Siapapun yang memiliki telepon dengan senter built in?
Bolehkah saya pinjam?
Aku tidak membutuhkannya dibuka.
Baiklah.
Terima kasih.
Biarkan aku meminjam ini.
Baiklah.
Jadi jika saya sekarang gulir ke atas dan di sini, apa yang saya mewakili sekarang?
Ya.
Jadi itu adalah tiga karena ini adalah di kolom 1s, ini adalah di kolom 2s.
Jadi 1 ditambah 2 adalah 3.
Dan kemudian jika kita mencoba untuk mendapatkan benar-benar creative-- oh, terima kasih.
Sangat preemptive.
Baiklah.
Saya sekarang memiliki tiga iPhone.
Baiklah.
>> Dan sekarang ini-- aku tidak akan melakukan lebih jauh dari ini.
Apa yang saya mewakili sekarang?
Hanya tujuh.
Tapi aku butuh fisik lebih banyak memori dalam kasus ini.
Tapi itu semua itu.
Anda bisa memikirkan apa yang terjadi on-- terima you-- dalam ponsel Anda
sebagai hanya menjadi sebuah saklar yang yang diaktifkan dan dinonaktifkan.
>> Dan jika Anda pernah mendengar kata transistor.
Atau jika Anda pernah mendengar pemasaran berbicara Intel dalam,
yang berbicara dengan jenis hardware yang ada di dalam komputer Anda.
Intel membuat CPU, central processing unit,
yang seperti otak dalam komputer Anda.
Dan CPU ini dan hal yang mereka terhubung
memiliki banyak dan banyak switch kecil.
Jutaan, milyaran switch yang dapat menjadi on atau off.
>> Jadi komputer, untungnya, seperti Mac dan PC kita,
dapat mengandalkan cara lebih tinggi dari 7 atau 8 karena mereka memiliki cara yang lebih dari tiga
atau empat bit.
Cara yang lebih dari setara dengan tiga senter yang kami baru saja.
Tapi sekarang ini mulai mendapatkan cukup menarik cepat.
Jika saya sekarang ingin benar-benar dapat untuk melakukan sesuatu yang lebih menarik,
Saya ingin bisa melompat untuk sesuatu seperti ini.
>> Jadi ASCII, itu tidak benar-benar berguna akronim, tetapi American Standard Kode
Informasi Interchange.
Ini hanya berarti, beberapa tahun lalu kita manusia memutuskan,
Anda tahu apa yang kita ingin dapat melakukan lebih dengan komputer dari sekedar angka.
Kami tidak ingin mereka hanya menjadi kalkulator mahal,
kami ingin dapat melakukan hal-hal seperti pengolah kata, meskipun sangat sederhana.
Kemudian kami memiliki email dan media lain seperti itu.
>> Dan dunia memutuskan beberapa tahun lalu menurut sistem ASCII ini,
kamu tahu apa?
Dalam jenis tertentu program setiap kali Anda
lihat setara dengan nomor 65, seperti pola bit.
Dan kita bisa melakukan matematika di sini di papan.
Pola bit yang mewakili 65.
Jangan menganggapnya sebagai 65 dalam desimal.
Anggap saja sebagai sewenang-wenang, tapi global, secara konsisten sebagai ibukota
SEBUAH.
Dan kemudian dunia memutuskan, Anda tahu apa?
Mari kita pola lain bit.
Dan jika kita pernah melihat nomor 66, mari kita
berasumsi bahwa itu adalah modal B. Fast forward ke H
dan saya, jika Anda melihat 72 atau 73, yang harus menjadi H dan I, masing-masing.
Dan jadi selama seluruh dunia setuju atas ini.
Sehingga ketika Anda menerima email, atau Anda akan mendapatkan file pada USB stick,
atau sesuatu seperti itu-- saat Anda melihat bahwa pola bit,
Anda tahu bahwa itu harus ini surat atau surat lainnya.
>> Tapi itu konteks tertentu, benar.
Program email mungkin menafsirkan hal ini sebagai karakter,
tapi kalkulator grafik atau kalkulator mungkin mewakili atau menafsirkan
hal-hal ini, tentu saja, seperti surat-surat.
>> Jadi dengan mengatakan bahwa, sedikit ulasan cepat.
Ini mungkin tiga karakter e-mail yang telah dikirim kepada saya.
Di bawah tenda itu semua di 0 dan 1, Tapi kami tidak peduli.
Kita akan mulai abstrak di atas 0 dan 1 untuk huruf.
Dan jika saya melihat pola 0s dan 1s yang benar-benar mewakili 72, hint, hint, 73,
dan kemudian 33, apa pesannya?
>> SISWA: [tidak terdengar]
DAVID Malan: Jadi jika Anda berpikir kembali beberapa saat yang lalu, HI
adalah pesan saya mencoba untuk berkomunikasi di sini karena H adalah 72,
Aku adalah 73, dan sekarang 33-- Anda tidak akan tentu tahu ini sebelumnya,
tapi ternyata jika Anda benar-benar melihat lebih banyak dari grafik dan sistem
bahwa manusia disepakati tahun lalu, itu hanya tanda seru.
Dan memang, ada pola simbol dan angka untuk setiap karakter
bahwa Anda mungkin memiliki pada keyboard Anda.
>> Baiklah.
Mari abstrak lanjut.
Jika kita tidak ingin hanya memiliki hal-hal seperti angka dan huruf,
kita benar-benar ingin menerapkan grafis.
Nah, jika Anda sudah pernah mendengar akronim RGB.
Ini jenis tanggal sekarang, tapi itu masih jenis ada.
RGB adalah merah, hijau, biru.
Dan itu hanya sebuah sistem mengatakan, Anda tahu apa,
mari kita gunakan tiga set bit.
Satu set 8 bit, satu set dari 8 bit, dan set 8 bit.
Dan mari kita gunakan mereka bit untuk menyimpan berapa banyak kita merah
inginkan pada layar kami, berapa banyak hijau kita inginkan pada layar kami,
dan berapa banyak biru yang kita inginkan di layar kami.
Dan ini hanya berarti bahwa jika Anda memiliki lot-- sejumlah besar untuk merah,
itu berarti memberi saya banyak merah.
Jika Anda memiliki jumlah yang besar untuk hijau, memberi saya banyak hijau.
Dan jika Anda memiliki hanya sedikit biru atau sejumlah kecil seperti 33,
memberi saya sedikit biru.
Dan jika Anda kebetulan untuk menggabungkan tiga besaran, sehingga untuk berbicara,
Anda mendapatkan ini-- Anda hampir tidak dapat melihat pada proyektor di sini, tapi ini keruh
warna kuning atau coklat.
>> Tapi ini mengatakan, menggunakan bahwa Pola 8 ditambah 8 plus plus 8--
bahwa pola 24 bit adalah bagaimana komputer akan
toko yang warna kuning dalam satu kecil dot pixel pada layar.
Jadi kita telah pergi dari 0s dan 1s ke desimal angka untuk huruf abjad.
Atau lebih menarik, titik-titik berwarna.
>> Nah, apa yang tentu saja kemudian datang berikutnya?
Nah, apa gambar yang Anda lihat di Facebook atau mendapatkan dalam email?
Atau sejenisnya?
Apa definisi teknis dari suatu gambar?
Ya.
Apa adalah gambar yang terdiri dari jika Anda terlihat benar-benar dekat di layar Anda?
Ya.
Ini hanya sekelompok seluruh piksel.
Bahkan, jika Anda mengambil Anda laptop mungkin nanti,
dan terlihat benar-benar erat di itu-- tergantung
bagaimana mahal laptop tersebut dan seberapa tinggi kualitas layar,
Anda mungkin sangat baik melihat semua titik-titik kecil di layar.
>> Dan titik-titik atau piksel, yang berarti ada
24 bit mewakili setiap pixel dalam foto yang Anda lihat di Facebook,
atau bahwa Anda hanya mengambil pada iPhone Anda baru-baru ini.
Dan itulah bagaimana kita mendapatkan untuk hal-hal seperti grafis.
Nah, apa video?
Sebuah video hanya satu set grafis terbang oleh layar lagi
dan lagi dan lagi.
Dan video benar-benar, hanya pola bit yang mewakili grid, baris
dan kolom titik, terbang dengan gambar layar,
setelah gambar, setelah gambar, alias
Film.
Jadi itu saja untuk input dan output.
>> Semua yang kita miliki sekarang adalah asumsi bahwa, Anda
tahu apa, jika kita ingin komputer untuk mewakili informasi,
kami memiliki sistem untuk melakukannya.
Kita bisa melakukannya dengan 0s dan 1s pada akhir hari.
Tapi kita bisa abstrak, sehingga untuk berbicara, di atas itu
sehingga untuk mewakili lebih hal yang menarik.
Dan di sini di dalam CS50, dan di ilmu komputer lebih umum,
kita sekarang berdiri di atas bahu dari semua orang yang
datang sebelum kita yang mengetahuinya.
Dan sekarang hanya berasumsi bahwa komputer dapat mewakili input dan output.
>> Tapi sekarang mari kita benar-benar melakukan sesuatu dengan mereka.
Jadi algoritma hanya satu set instruksi, langkah demi langkah,
untuk memecahkan beberapa masalah.
Dan apa yang mungkin salah satu masalah tersebut menjadi.
Jadi ini adalah sekolah tua teknologi, buku telepon.
Dan dalam buku telepon adalah sejumlah nama dan nomor.
Dan nama-nama umumnya diurutkan berdasarkan abjad.
>> Jadi jika saya ingin menemukan seseorang di buku telepon ini seperti Mike Smith,
apa manusia biasa akan lakukan?
Nah, Anda hanya bisa membuka itu, melihat halaman pertama.
Saya tidak melihat Mike Smith.
Beralih ke halaman kedua, Saya tidak melihat Mike Smith.
Dan hanya terus dan pergi.
Apakah langkah ini demi langkah pendekatan yang benar?
Ya.
Ini semacam bodoh, benar.
Ini tidak efisien, tepat.
Karena itu akan mengambil selamanya untuk sampai ke Mike, tapi itu benar.
Karena jika Mike di sini Aku memang akan menemukannya.
>> Jadi apa yang sedikit lebih orang yang wajar lakukan?
Mereka mungkin masih membuka ke depan, dan mungkin terbang melalui buku telepon
dua halaman pada satu waktu.
Dua, empat, enam, delapan.
Aku tidak bisa benar-benar secara fisik melakukannya dengan sangat baik.
Tapi dalam teori, ini harus dua kali lebih cepat, dua halaman sekaligus.
Apakah algoritma ini benar?
>> SISWA: [tidak terdengar]
DAVID Malan: Belum tentu.
Baik.
Mengapa peringatan itu?
>> SISWA: Karena dia bisa berada di satu dari halaman yang Anda melompat-lompat.
DAVID Malan: Ya.
Jadi bahkan jika saya lebih dekat dan lebih dekat.
Bagaimana jika dia hanya sengaja, oleh bad keberuntungan, terjepit di antara dua halaman
bahwa aku terbang di atas?
Jadi kita perlu untuk memperbaiki ini.
Kami benar-benar harus kemudian berkata, tunggu sebentar,
mungkin jika kita pergi terlalu jauh, mungkin jika kita memukul bagian T,
untuk T datang setelah Smith, maka kita harus setidaknya dua kali lipat kembali setidaknya satu halaman.
Jadi diperbaiki, tetapi ada masalah bersyarat sana.
Jadi itu dua kali lebih cepat, tetapi Anda mungkin harus ganda kembali hanya sedikit.
Tapi tidak ada di kamarnya, bahkan jika Anda tidak benar-benar menggunakan buku telepon lagi,
akan mulai dari awal.
Apa yang akan kamu lakukan mencari Mike Smith?
Anda akan pergi kira-kira ke S.
Atau jika Anda tidak benar-benar memiliki lembar contekan di atas kertas,
Anda akan pergi setidaknya kira-kira ke tengah.
Dan tentunya tidak untuk bagian depan buku.
Anda akan melihat ke bawah.
Dan matematis Anda mungkin akan melihat bagian M, yang
kira-kira di tengah.
Dan kemudian Anda akan menyadari, apa yang benar?
Dimana Mike?
>> SISWA: [tidak terdengar]
DAVID Malan: Ya.
Jadi dia lebih di sisi ini.
Dan apa yang dapat Anda lakukan?
Nah, baik secara kiasan dan harfiah Anda dapat merobek masalah dalam setengah sekali?
Dan kemudian tahu bahwa Anda dapat membuang ini setengah dari masalah pergi.
Dan sekarang kami pergi dengan fundamental masalah yang sama, tapi itu setengah besar.
Dan jadi sekarang apa set instruksi?
Apa algoritma untuk menemukan Mike Smith?
Ini hal yang sama persis.
>> Sekarang ini terjadi menjadi M bagian dan ini adalah bagian Z,
tapi fundamental Rumus masih sama.
Pergi kira-kira ke tengah, melihat ke bawah, oh, darn it.
Sekarang aku di bagian T, Saya sudah terlalu jauh.
Tapi di sini juga bisa Anda menerapkan logika yang sama.
Lemparan setengah dari masalah pergi dan sekarang kami
kiri dengan masalah yang seperempat dari ukuran.
Dan kita bisa mengulang, dan kita bisa mengulang, dan kita bisa mengulang sampai teoritis
hanya ada satu halaman yang tersisa di yang Mike baik atau tidak.
>> Jadi apa yang begitu kuat tentang ide ini?
Maksudku setelah semua, itu cukup intuitif.
Tidak ada yang akan mulai di mulai dari buku telepon
dan flip 1.000 halaman untuk menemukan Mike Smith.
Kebanyakan orang di ruangan ini akan untuk melakukan kira-kira seperti itu algoritma
menyimpan untuk merobek tersebut.
>> Dan jadi mengapa kita melakukan itu?
Nah, pertimbangkan efisiensi.
Simak saja berapa banyak lebih baik ini algoritma adalah dengan memecahnya
menjadi beberapa bagian.
Jadi apa yang saya pertama kali lakukan?
Aku mengambil buku telepon.
Dan seorang ilmuwan komputer, dan programmer,
lebih umum ternyata, akan mulai menghitung segala sesuatu di 0.
>> Mengapa?
Nah, itu sedikit aneh bahwa kita manusia menghitung, umumnya,
mulai dari satu.
Karena apa jumlah terkecil kita dapat dengan jelas mewakili berdasarkan
bahkan pada matematika sekolah dasar lama kita?
Nah, itu 0, apakah itu dalam desimal atau biner.
Dan Anda akan melihat di dunia komputasi dan pemrograman,
khusus, kita mulai menghitung segala sesuatu dari 0.
>> Jadi saya mengangkat telepon buku langkah 0.
Aku akan membuka ke tengah buku telepon.
Dan itu memang ekspresi apa yang saya lakukan.
Dan kemudian langkah kedua adalah melihat nama-nama.
Langkah ketiga adalah sedikit berbeda secara konseptual.
Saya bertanya pada diri sendiri pertanyaan.
Jika Smith adalah salah satu nama, Aku akan membuat keputusan.
Jika dia antara nama-nama, maka aku akan menelepon Mike.
Dan aku akan membuat keputusan berdasarkan informasi itu.
>> Namun, jika tidak, jika Smith adalah sebelumnya dalam buku ke kiri,
Aku akan membuka ke tengah dari kiri setengah dari buku.
Dan kemudian inilah kepandaian itu, Aku akan kembali ke langkah dua.
Aku akan mengurutkan dari berdiri di atas bahu saya sendiri
dan hanya mengulang pekerjaan terakhir saya lakukan.
Tapi pekerjaan yang tersisa adalah kurang, dan kurang, dan kurang.
Tapi masih akan bekerja.
Tetapi jika Mike, sebaliknya, adalah kemudian dalam buku ke kanan,
Aku akan membuka ke tengah dari kanan setengah dari buku,
kemudian kembali ke langkah dua.
>> Tapi sebenarnya ada skenario keempat.
Mike baik di sini, atau di sini, atau di sini, or--
>> SISWA: Tidak ada.
DAVID Malan: Tidak ada.
Dan memang, jika kita tidak mengantisipasi Skenario keempat dan terakhir ini
program kami mungkin kereta atau cacat dalam beberapa cara.
Lain, berhenti dalam kasus yang kami belum menemukan Mike sama sekali.
Dan memang, jika Anda pernah melihat gantung komputer Anda, atau semua
dari sebuah kata tiba-tiba atau beberapa lainnya Program hanya berhenti tiba-tiba,
dan kadang-kadang error engkau Pesan secara harfiah itu.
Program ini berhenti tiba-tiba.
Hal ini dapat untuk sejumlah alasan.
Tapi kadang-kadang sesuatu yang sederhana seperti ini.
Programmer manusia yang menulis perangkat lunak yang
tidak menyadari bahwa, oh, ada sebagainya hal yang benar-benar bisa terjadi.
Dan jika Anda tidak menulis kode untuk menangkap bahwa skenario keempat,
memang tak terduga kadang-kadang apa komputer mungkin benar-benar dilakukan.
Sekarang mari kita sebut sebuah Beberapa hal-hal ini.
Jadi dalam kuning sini, saya memiliki istilah disorot
yang selanjutnya kita hanya akan memanggil fungsi.
Fungsi di dunia pemrograman seperti tindakan,
laporan tindakan.
Jadi mengambil, terbuka untuk, terlihat di, panggilan, terbuka, terbuka, berhenti.
Itu fungsi, prosedur, tindakan, sejumlah sinonim
akan bekerja dengan baik.
Sekarang apa hal-hal ini sekarang warna kuning?
Jika yang lain, jika lain, jika lain, ini adalah apa
kita akan memanggil kondisi dalam pemrograman,
atau cabang, keputusan poin, jika Anda mau.
Tapi bagaimana Anda tahu mana garpu di jalan untuk mengambil, sehingga untuk berbicara?
Kita perlu menyoroti istilah ke kanan
ada, yang ini ya, tidak ada pertanyaan.
Pertanyaan-pertanyaan benar salah.
Smith antara nama-nama?
Smith di awal buku?
Smith kemudian dalam buku?
Ini adalah pertanyaan untuk yang ada ya, atau tidak,
atau ekuivalen benar, atau salah, atau ekuivalen, satu atau nol jawaban.
>> Dan sementara ada hanya satu potongan terakhir.
Ini di sini memiliki apa efek?
Apakah atau tidak Anda program sebelumnya, bagaimana akan Anda
menjelaskan apa langkah tujuh dan 10 lakukan?
Apa katamu?
SISWA: Sebuah langkah rekursif.
DAVID Malan: Sebuah langkah rekursif.
Ya, pada dasarnya.
Secara teknis berulang di sini jika Anda terbiasa.
Tapi kita akan kembali ke itu.
Tapi itu melakukan sesuatu yang jelas.
Sekali lagi, itu menginduksi siklus, lingkaran, kanan.
Anda benar-benar akan kembali ke beberapa langkah sebelumnya.
Dan memang, ini akan mengimplementasikan beberapa jenis siklus.
Tapi Anda tidak akan mendapatkan terjebak dalam ini tanpa henti, benar.
Karena jika Anda terus-menerus memeriksa adalah Mike di sini, atau ke kiri, atau tidak di sini,
akhirnya dia tidak akan berada di sana.
Dan Anda hanya bisa berhenti sama sekali sesuai yang baris terakhir.
>> Jadi itu untuk kosa kata.
Dan ini adalah apa yang kita akan umumnya memanggil kode pseudo.
Ini bukan bahasa yang sebenarnya.
Ini hanya sangat singkat bahasa Inggris, tetapi berkomunikasi titik.
Tidak ada struktur formal sini.
Anda hanya menggunakan itu beberapa kata-kata, tetapi kata-kata yang jelas
yang Anda bisa untuk berkomunikasi ide Anda.
>> Sekarang bagaimana yang baik adalah algoritma yang dan berapa banyak lebih baik itu?
Yah, kita tidak perlu masuk ke dalam spesifik dari nomor atau apa pun
seperti itu.
Tapi kita bisa melihat bentuk dari solusi ini.
Jadi jika kita hanya menarik beberapa petak xy di sini pada sumbu horisontal di sini.
Mari kita sebut ukuran masalah.
Dan seorang ilmuwan komputer akan biasanya menggunakan n sebagai variabel sini.
Jadi n halaman, atau n orang di dalam ruangan, atau apa pun yang Anda mencoba untuk menghitung.
>> Dan kemudian pada sumbu vertikal pada kiri, itu akan menjadi waktu untuk menyelesaikan.
Jadi berapa banyak detik melakukannya membawa saya untuk menemukan Mike Smith?
Atau berapa banyak langkah yang dibutuhkan?
Berapa banyak berubah halaman yang dibutuhkan?
Jadi itulah berapa biaya saya dalam waktu untuk memecahkan masalah.
Dan kami mungkin menarik pertama algoritma kemiringan, jika Anda mau,
hanya sebagai garis lurus ini dalam warna merah.
Dan saya akan menyebutnya n.
>> Mengapa n?
Mengapa hanya satu ini untuk satu hubungan?
Nah, jika Verizon atau apapun perusahaan telepon
menambahkan satu halaman lagi untuk buku telepon tahun depan,
yang mungkin mendorong Mike satu Langkah lebih dekat ke akhir,
tergantung di mana halaman itu.
Dan efeknya mungkin hanya dengan menambahkan satu detik lebih.
Atau satu halaman gilirannya.
Satu untuk satu rasio.
>> Sebaliknya, algoritma kedua.
Berapa cepat adalah bahwa secara intuitif?
Di mana aku pergi dua halaman pada satu waktu?
Ya.
>> SISWA: [tidak terdengar]
>> DAVID Malan: Ya.
Jadi itu akan menjadi dua kali lebih cepat.
Dan kami akan menarik bahwa di sini tergantung pada skala.
Ini masih merupakan garis lurus, tetapi lebih rendah dari garis merah.
Karena untuk beberapa nomor halaman, jika dibutuhkan
Anda ini banyak langkah dengan algoritma pertama,
itu akan membawa Anda setengah karena banyak langkah dengan kedua.
Dan garis kuning menggambarkan algoritma kedua
hanya akan berada di bawah itu.
>> Tapi apa benar-benar kuat adalah untuk berpikir tentang ketiga dan terakhir,
dan luar biasa paling intuitif algoritma, yang memiliki bentuk ini.
Secara teknis kita sebut ini kurva logaritmik.
Log basis 2 dari n dalam kasus ini.
Tapi itu tidak terlalu penting.
Yang penting benar-benar adalah fundamental bentuk yang berbeda yang telah.
Dan Anda dapat mempertimbangkan betapa jauh lebih pendek baris ini benar-benar
adalah dalam jangka panjang.
Itu terus meningkat.
Itu tidak merata dengan sempurna.
Tapi itu tumbuh pernah jadi jauh lebih lambat sebagai masalah akan lebih besar dan lebih besar.
Dan Anda bisa memikirkan itu ini way-- jika Verizon tidak hanya
menambahkan satu halaman tahun depan, tetapi ganda jumlah halaman dalam buku telepon,
algoritma pertama mungkin mengambil dua kali lebih banyak langkah.
Jika itu 1.000 halaman ini tahun, 2.000 halaman tahun depan,
Mike mungkin bahwa jauh lebih jauh.
Jadi 1.000 langkah tambahan untuk menemukannya.
Algoritma kedua mungkin hanya 500 lebih
langkah-langkah untuk menemukan dia karena sekali lagi, Aku terbang melalui itu dua sekaligus.
>> Tapi bagaimana algoritma ketiga?
Jika Verizon menggandakan ukuran buku telepon
tahun depan dari 1.000 ke 2.000 halaman, berapa banyak langkah lebih
adalah algoritma ketiga saya akan mengambil?
Ya, itu hanya satu.
Dan itu ide yang kuat.
Anda dapat mengambil 1.000 halaman gigitan keluar dari masalah yang sekaligus.
Dan jika Anda mempertimbangkan skenario konyol,
tapi itu semacam berbicara kepada kekuatan semacam ini intuition--
jika buku telepon memiliki, seperti, empat miliar halaman, terasa seperti masalah yang sangat besar.
Dan memang, itu mungkin membawa saya empat miliar halaman
ternyata untuk menemukan Mike Smith dalam kasus dengan algoritma pertama.
Tapi berapa banyak langkah kan mengambil dalam algoritma ketiga
untuk menemukan Mike antara empat miliar lembar kertas?
Jadi empat miliar merobek setengah.
Anda mendapatkan dua miliar.
Kemudian satu miliar, maka 500 juta, 250 juta, 125 million-- tetapi
terasa seperti ini akan memakan waktu cukup lama.
Saya mungkin perlu 32 jari untuk menghitung tinggi itu.
Tapi itu memang sebagai sedikitnya 32 air mata halaman.
Anda dapat pergi dari empat miliar untuk satu halaman pemisah
jumlah asli halaman dalam setengah 32 kali
sampai kau pergi dengan Hanya saja halaman.
>> Sekarang, tentu saja, aku curang di sini.
Ini bukan berarti bahwa kita hanya menjadi semacam bodoh sekali dengan dua yang pertama
algoritma.
Saya kecurangan dalam arti, atau benar-benar aku memanfaatkan asumsi.
Apa yang benar tentang buku telepon dalam bentuk aslinya yang memungkinkan
saya bahkan menggunakan algoritma ketiga?
Ya?
AUDIENCE: Itu menurut abjad.
DAVID Malan: Itu abjad, bukan?
Kalau hanya di acak order, ini adalah pemborosan
waktu, seluruh percakapan ini.
Saya harus melihat setiap Halaman jika itu secara acak
untuk menemukan Mike Smith sebelum saya dapat menyimpulkan dia ada atau tidak.
Dan sudut kami telah dipotong adalah bahwa saya memiliki
diasumsikan bahwa orang lain di hal ini melakukan pekerjaan untuk saya.
Dan sehingga akhirnya mengundang pertanyaan, baik, tunggu sebentar.
Bagaimana Anda menyortir 1.000 halaman nama dan nomor?
Itu benar-benar berbeda masalah, sesuatu
kami akan kembali di masa depan.
Tetapi ketika Anda berpikir tentang website seperti Facebook dan Google untuk Gmail
dan hal-hal seperti Google indeks pencarian sendiri,
ketika Anda memiliki jutaan atau miliaran potongan data yang disimpan hari ini,
searching-- dan belum lagi menyortir mereka problems--
pada akhirnya merupakan tantangan tersendiri.
Dan memang, ini maka adalah hanya salah satu tantangan
bahwa kita akan melihat.
>> Jadi sekarang mari kita sejenak dan lihatlah CS50
sendiri dan memberikan rasa apa yang ada di toko semester ini.
Memang, jika Anda belum melakukannya, jangan lihat URL ini.
Dan seperti Patrick disinggung untuk, tahun ini kita
membuat investasi yang signifikan semua lebih mendukung program ini
Struktur dalam hal TA dan CA, jam kantor,
ketersediaan bagian, dan bahan digital online, juga.
Memang, dalam hal kursus ini kuliah, kami di sini hari ini.
Dan harapan ini tahun resmi tentu saja
yang hadir untuk hari ini, tentu saja ini kuliah terakhir, dan tentu saja
kira-kira di tengah-tengah semester dengan setiap ceramah di antara
tersedia umumnya pada hari Jumat sore
online, baik untuk mahasiswa Yale dan mahasiswa Harvard tahun ini.
Memang, salah satu Perubahan mendasar adalah
bahwa kita mengadopsi di Harvard paradigma yang sangat banyak
seperti yang kami lakukan di sini terakhir tahun dan sekarang tahun ini,
sehingga sama, kita masih syuting paling kuliah kursus di Cambridge
tapi membuat mereka tersedia sebelumnya daripada yang kita miliki di masa lalu
sehingga orang-orang dari you-- jika Anda ingin, misalnya,
mendapatkan kepala mulai pada bahan pada akhir pekan pertama agak
dari akhir pekan kedua, Anda akan memiliki akses ke jenis-jenis bahan,
dicari, embeddable, hyperlinkable ke sumber daya terkait semua sebelumnya.
Dalam hal topik, untuk memberikan rasa trajectory-- kursus ini
dan beberapa hal ini mungkin jargon untuk sekarang, tapi tidak lama, yakinlah.
Kita akan mulai hari ini, akhirnya, dengan melihat satu pemrograman
bahasa yang disebut Scratch.
Kami akan transisi setelahnya minggu depan untuk sesuatu yang disebut C
dan kemudian melihat bangunan lainnya blok untuk memecahkan masalah,
hal yang disebut array dan algoritma, bagaimana kita menggunakan memori untuk keuntungan kami
dan kelemahan, dan hal-hal seperti struktur data,
dan kemudian menuju ujung ekor kelas melihat mesin belajar
dan melihat yang lain bahasa disebut Python,
bagaimana web bekerja, bagaimana internet semakin umumnya bekerja, protokol seperti HTTP,
bahasa untuk database seperti SQL, JavaScript untuk web,
dan akhirnya mengikat semua orang bersama-sama.
>> Dan memang, di akhir hari, Anda
tidak akan belajar di Scratch kelas ini atau C atau Python atau SQL atau JavaScript.
Anda malah akan lebih umum belajar ilmu komputer dan dasar-dasar
daripadanya, dan Anda akan belajar bagaimana program
di sejumlah ini bahasa di sepanjang jalan.
Jadi memang, salah satu tujuan kursus pada akhirnya
adalah untuk melepas semua kursus ini roda-roda dengan minggu-minggu akhir
sehingga setelah ini, Anda bisa kembali ke fields-- Anda sendiri
apakah itu atau tidak ilmu komputer
atau rekayasa, di alam ilmu, seni, humaniora, atau beyond--
dan membawa beberapa ini ide saja dan bidang ini
ide-ide dan praktis keterampilan untuk domain Anda sendiri
dalam rangka memecahkan masalah di dalamnya.
>> Apa yang kita akan lakukan di sini sementara di sebagian Kamis setelah hari ini
adalah dengan kepala kursus terkemuka apa yang akan kita sebut walkthrough
masalah set kursus ini.
Jadi setiap minggu ketika kita telah masalah set, kami akan
berjalan melalui di lokasi seperti ini tantangan kursus ini,
menawarkan beberapa tips dan trik dan teknik desain.
Tapi jika Anda tidak mampu untuk membuat orang-orang secara pribadi,
menyadari mereka sama sumber daya akan tertanam
oleh salah satu saja yang mengajar asisten
dalam masalah set sendiri, juga.
>> Masalahnya set tahun ini, tidak seperti tahun lalu, berdasarkan umpan balik,
masih akan dirilis pada hari Jumat.
Tapi bukannya karena berikutnya Jumat,
sehingga memberikan Anda hanya tujuh hari, efektif akan jatuh tempo 10 hari kemudian.
Dan memang, ini akan berarti bahwa mereka akan tumpang tindih dengan akhir pekan.
Tapi kami berharap tahun ini terutama ini akan
memungkinkan siswa untuk lebih mengakomodasi pasang surut dalam jadwal mereka,
apakah itu akademisi atau ekstrakurikuler atau atletik
atau musim ujian tengah semester.
Anda dapat front load atau back-beban minggu Anda berfokus pada CS50 berdasarkan
pada beban saja sebenarnya minggu Anda sendiri.
>> Masalahnya menetapkan sendiri akan mencakup berbagai bahasa,
meskipun kami akan fokus terutama awal di C
sebelum kita fokus sesudahnya lebih tinggi tingkat, lebih bahasa web-centric.
Dan kemudian beberapa FAQ di sini- Anda harus mengambil kelas seperti CS50
sebagai tahun pertama?
Jadi benar-benar.
Dan memang, itu tidak tentu sesuatu
Anda harus menunda sampai Anda telah memotong gigi Anda pada jenis lain kelas.
Melainkan, pertimbangkan bahwa bagi banyak siswa,
termasuk saya sendiri kembali pada hari, ini adalah bidang yang sangat asing,
terutama jika Anda tidak pernah mengambil CSA AP
atau sesuatu seperti itu di sekolah tinggi.
Tapi menyadari bahwa sejak awal, apakah itu kursus ini
atau pengantar saja lain, sekarang memang waktu terbaik,
Saya pikir, untuk menemukan beberapa jalan baru atau beberapa kepentingan akademis baru, juga.
Dan kemudian mengambil dengan courses-- lainnya sehingga salah satu perbedaan kunci di sini
dibandingkan Harvard adalah bahwa kita hanya mengambil empat program per semester
di Harvard untuk beberapa alasan.
Dan kalian benar-benar menarik off sekitar 36 kursus di total
selama empat tahun Anda, yang berarti umumnya empat atau lima
kelas.
Dan saya pikir itu cukup adil untuk mengatakan dan untuk melepaskan CS50, dengan desain, adalah
mungkin bukan jenis kelas bahwa Anda harus biasanya
mengambil dengan empat lainnya kursus untuk total lima
karena psets yang oleh desain yang cukup intensif.
Memang, aku juga belajar ini kembali pada hari.
Saya tidak akan menjelaskan CS50 dan ilmu komputer, pemrograman
sebagai begitu banyak keras seperti itu hanya memakan waktu.
Ini bukan jenis hal di mana setelah makan malam, Anda
dapat kembali ke asrama Anda kamar, duduk, dan mulai
berfokus pada pset yang berpikir, baiklah,
Aku akan bang keluar malam ini dan kemudian bergerak
pada subjek berikutnya pada hari berikutnya.
Kadang-kadang Anda hanya menabrak dinding.
Anda memiliki bug dalam kode Anda.
Anda tidak perlu tahu bagaimana memecahkan beberapa masalah.
Dan salah satu fitur kunci dari pemrograman untuk diriku sendiri untuk hari ini
adalah Anda hanya jenis perlu mengambil langkah mundur kadang-kadang, tidur di atasnya
atau berpikir tentang itu selama kursus dari joging atau kegiatan lainnya,
dan kemudian kembali ke segar.
Dan Anda hanya perlu jendela ini waktu.
>> Dan memang, itulah sebabnya kami telah diperpanjang jumlah waktu
tersedia untuk set masalah tahun ini dan juga, per URL yang
Saya memasang sebelumnya untuk Apa yang baru semester ini,
dipangkas masalah set sehingga mereka secara fundamental tidak kurang ketat,
dan takeaways yang tidak kalah, tapi ada banyak hal yang kurang depan,
sebuah kerja keras jauh lebih sedikit yang perlu Anda lakukan di depan setiap masalah set,
Anda akan melihat, sebelum Anda dapat benar-benar menyelam ke dalam daging itu.
Jadi menyadari bahwa mereka dan lainnya perubahan di cakrawala
untuk lebih mengakomodasi siswa, tapi akhirnya memastikan
bahwa takeaways yang memang setinggi mungkin.
Jadi sementara lebih banyak pekerjaan daripada mungkin dalam kelas yang khas,
kami berharap bahwa hasil untuk Anda dan takeaways untuk Anda
dan keterampilan dan ide-ide dengan yang Anda keluar
adalah semua lebih menarik sebagai hasilnya.
Dan untuk mendapatkan Anda there-- dan ini adalah salah satu takeaways kunci,
sebagai Patrick disinggung earlier-- adalah struktur dukungan kursus ini.
Jadi tidak hanya CS50 memiliki salah satu staf saja terbesar di kampus.
Ini juga memiliki salah satu kebanyakan sarjana.
Memang, CS50 tahun lalu adalah kelas pertama
memiliki staf pengajar sarjana.
Dan bukti kesuksesan itu lakukan sekarang banyak program lain dalam Yale CS
memiliki itu, juga.
Dan bagi siswa, khususnya, akan TA ini dan tentu saja asisten
menjadi pendukung keseluruhan jaringan sumber daya dukungan,
di antara mereka bagian atau tilawah, peluang mingguan
untuk berdiskusi lebih intim dan ulasan tentang materi yang ditargetkan
untuk trek yang berbeda, untuk siswa kurang nyaman, lebih nyaman,
atau suatu tempat di antara.
Ini akan mengikuti ketersediaan ceramah oleh beberapa hari setiap minggu
pada hari Senin dan Selasa.
Dan kemudian kantor hours-- satu-satu peluang
bantuan dari kursus CA dan TA akan pada hari Rabu dan Kamis
dan Minggu di beberapa kali, yang semuanya
akan diposting di website saja ini, bahkan lebih dari tahun lalu, juga.
>> Tapi apa kunci untuk CS50, jika tidak diakui sedikit tidak biasa,
adalah budaya saja yang kita sudah mencoba untuk menumbuhkan,
baik di Cambridge selama bertahun-tahun dan sekarang yang paling baru di New Haven.
Dan pada kenyataannya, datang ini Sabtu, jika Anda belum pernah mendengar,
adalah CS50 Puzzle Day, yang memiliki tidak ada hubungannya dengan ilmu komputer
tapi seluruhnya dirancang untuk mengirim pesan bahwa ilmu komputer
tentang pemecahan masalah.
Dan memang, jika Anda ingin pasangan dengan satu atau dua atau tiga teman
dan membentuk tim untuk CS50 Teka-teki Day, kita lihat
di iklan yang di jalan keluar.
Dan tiga jam dari pizza dan teka-teki dan hadiah menanti.
Dan memang, untuk pertama kalinya tahun ini,
tidak akan diselenggarakan bersama-sama dengan Harvard.
Ini akan berada di sini secara independen di Yale.
Sehingga mengawasi keluar untuk mereka jika Anda belum.
Kebanyakan setiap hari Jumat di semester kita mencoba untuk membuat kelas besar
merasa kecil dan membawa beberapa 50 siswa untuk makan siang dengan staf kursus ini,
dengan alumni, teman dari industri untuk berbicara
tentang seperti apa hidup ini setelah kelas seperti CS50 dan selama musim panas
dan setelah lulus.
Sehingga mengawasi keluar untuk undangan itu.
Untuk pertama kalinya pernah tahun ini akan kita
tahan pertama CS50 coding kontes, opsional opt-in kesempatan
mid-semester, setelah kita semua memiliki beberapa enam atau tujuh minggu pemrograman
di C di bawah ikat pinggang mereka untuk bersaing, jika Anda akan jadi choose-- lagi
pada teams-- mencoba memecahkan banyak tantangan
yang Anda bisa dalam pemrograman dengan teman dari Anda terhadap orang lain.
>> Dan menuju ekor semester akan kita charter beberapa bus,
benar-benar menghabiskan beberapa waktu di Cambridge, jika Anda lebih
ingin bergabung dengan kami, untuk disebut-CS50 hackathon.
Pada 19:00 kami akan mulai.
Sekitar 9, kita akan memiliki pizza.
Sekitar 01:00, kita akan memiliki burrito.
Dan ada yang masih terjaga di perjalanan pulang naik bus sekitar 05:00,
kami akan menghentikan off untuk pancake di IHOP di jalan home--
kesempatan 12 jam membenamkan diri dengan teman sekelas dan staf
dalam tugas akhir kursus ini, yang merupakan kesempatan
untuk pergi jauh melampaui Masalah set saja ini
dan desain dan melaksanakan sebagian besar sesuatu yang menarik bagi Anda,
yang pada akhirnya akan tampil di sini di Commons.
Pertama adil yang pernah CS50 terakhir tahun, pameran akhir-semester
atau perayaan apa yang semua orang di kelas telah dicapai,
terutama yang, sekali lagi, yang pergi dari tidak ada sesuatu, dari nol sampai 60,
tidak memiliki latar belakang sebelumnya dan menunjukkan, pada akhirnya,
sesuatu untuk seluruh kampus dan, jika online, dunia untuk melihat, juga.
>> Sekarang, ini di sini hanya beberapa dari TA dan CA yang membuat CS50 mungkin.
Izinkan saya untuk mengundang dari para anggota staf
yang ada di sini untuk datang di atas panggung, serta kepala kursus ini,
menawarkan beberapa kata-kata inspirasi, juga.
>> ANDI: Hi, guys.
Bisakah kalian mendengarku?
Terima kasih untuk bergabung dengan kami dalam hal ini indah, hujan Kamis sore.
Nama saya Andi.
Aku junior di Berkeley.
Dan bersama dengan Stelios dan musim panas, kami akan mengajar tiga kepala Anda
asisten untuk tahun yang akan datang ini.
Jadi, saya kira, menunjukkan hands-- berapa banyak dari Anda
tidak punya niat untuk menjadi seorang CS utama atau benar-benar menyelam dalam-dalam
dalam ilmu komputer sebagai utama di sini?
Mengagumkan.
Itu brilian.
>> Jadi aku benar-benar urusan global dan ilmu kognitif utama.
Aku benar-benar datang ke Yale dengan maksud
tidak pernah harus melihat pada Jumlah lagi dalam hidup saya.
Ketika saya datang ke Yale, ini adalah sesuatu yang tidak pernah di radar saya.
Saya ingin belajar tentang puisi.
Saya ingin belajar tentang urusan luar negeri.
Saya ingin belajar tentang gambar cat air.
Ya, kami menawarkan kelas pada gambar cat air.
>> Tapi aku tidak pernah benar-benar tertarik dalam apa pun STEM terkait.
Tapi kemudian lebih tua saya punya, semakin saya menyadari
bahwa setiap bidang yang benar-benar dalam beberapa rasa mempekerjakan ilmu komputer,
atau jika tidak ilmu komputer, komputasi.
Bahkan, untuk global saya urusan proyek batu penjuru,
kita menggunakan data analisis untuk menganalisis serangan teroris
untuk Boko Haram di Nigeria.
Dan seperti yang Anda lihat, terlepas apa utama Anda akhirnya mengejar
atau apa minat Anda di sini di Yale adalah, pemrograman dan dasar-dasar
apa pun keterampilan super berguna.
Dan CS50 benar-benar baik dilengkapi untuk jenis meminjamkan banyak sumber daya
Anda, terlepas dari bagaimana Anda nyaman
atau bagaimana tertarik Anda dalam mengejar kelas.
>> Musim panas akan berbicara sedikit sedikit tentang apa yang kalian
akan belajar tentang tahun ini.
SUMMER: Hi, semua orang.
Aku Musim Panas Wu.
Aku junior di Morse.
Dan aku benar-benar mulai sebagai mahasiswa CS50 sendiri.
Jadi tiga tahun lalu, aku berada di tahun kesenjangan.
Aku tidak pernah mengambil CS kelas di sekolah tinggi,
tapi saya pikir bahwa dalam waktu luang saya, itu akan keren untuk belajar bagaimana kode.
Jadi saya melakukan pencarian Google cepat, mencari apa yang tersedia secara online,
dan melihat video ini dengan Muppets dan DJ dan website keren.
Aku seperti, saya ingin belajar bagaimana untuk melakukan itu.
>> Jadi saya mengambil kursus, dan saya hanya jatuh cinta dengan hal itu.
Tapi aku ingat begitu cemburu pada anak-anak yang bisa menghadiri hackathon ini,
menghadiri Puzzle Day, menghadiri kantor jam, mendapatkan bantuan dari TA secara pribadi.
Dan jadi saya tidak pernah membayangkan bahwa saya akan mendapatkan kesempatan
untuk di sini terlibat dalam kursus yang pertama kali
saya tertarik komputer ilmu pengetahuan dan adalah alasan mengapa
Saya ilmu komputer besar hari ini.
Jadi saya akan memperingatkan Anda, kelas ini akan meregangkan Anda.
Ini akan menantang Anda.
Tapi itu juga akan mengajarkan cara untuk melakukan hal-hal
bahwa Anda tidak pernah membayangkan Anda bisa.
>> Stelios: Hi, semua orang.
Nama saya Stelios.
Saya seorang junior di Branford Perguruan tinggi dan besar CS.
Saya juga dari Athena, Yunani.
aku benar benar melihat kedepan untuk memenuhi semua Anda,
mengobrol dengan Anda di bagian, di jam kantor, di Jumat siang.
Saya sangat bersemangat karena kami telah menempatkan begitu banyak usaha
dalam menciptakan dukungan yang unik struktur untuk kalian semua
untuk membuat pengalaman Anda dengan kursus yang terbaik mungkin.
Dan saya berharap bahwa meskipun sebagian besar Anda mungkin tidak mengambil CS
Tentu saja sebelumnya, saya berharap itu CS50 untuk Anda adalah apa yang memicu minat
untuk lebih mengejar komputer ilmu di masa depan,
seperti yang telah dilakukan dengan begitu banyak orang di masa lalu.
Jadi terima kasih untuk menjadi di sini, senang melihat Anda.
Jason Hirschhorn.
JASON Hirschhorn: Hi, semua orang.
Nama saya Jason Hirschhorn.
Saya tinggal di Silliman.
Dan aku pergi ke Harvard sebagai undergrad dan mengambil jurusan IPS
dan juga mempelajari ilmu komputer.
Dan salah satu peran utama saya di sini adalah untuk mendukung staf ini indah
karena mereka mendukung Anda semua.
Bahkan, hal ini tidak semua dari mereka.
Ada 55 mahasiswa dan lulusan di sini untuk mendukung Anda semua.
Dan aku yakin salah satu yang terbaik bagian saja untuk Anda
semua semakin untuk bekerja dengan mereka, mengenal mereka,
mendapatkan untuk melihat mereka, baik dalam CS50 dan di luar CS50 semester ini
dan bagi banyak semester yang akan datang.
Jadi mudah-mudahan Anda akan mengambil Tentu saja karena mudah-mudahan Anda
bisa berinteraksi dengan Staf indah kita di atas panggung.
>> SPEAKER: Nah, biarkan aku menyelesaikan dengan mengatakan itu akan menyenangkan.
DAVID Malan: Yah, terima kasih kepada tim kami seluruh.
Izinkan saya untuk meredupkan lampu dan memungkinkan lagi dari tim kami,
baik dari Cambridge dan New Haven, untuk menyapa sebagai orang-orang mengajukan off.
Dan setelah itu akan kita transisi ke yang pertama dari keterlibatan program kami
dengan bahasa ini disebut Scratch.
Jadi terima kasih untuk tim.
Mari kita meredupkan lampu dan mendengar dari beberapa orang lain.
>> [TEPUK TANGAN]
>> [VIDEO PEMUTARAN]
>> -The Misi CS50 adalah untuk membuat Anda lebih nyaman dengan cara yang sama sekali baru
berpikir, pola pikir komputasi ini.
-itu Membuat ilmu komputer menarik, yang
adalah sesuatu yang saya tidak benar-benar menyadari mungkin sampai aku mengambil kelas.
-I Seperti, whoa.
Aku benar-benar menerjemahkan pikiran saya ke dalam komputer sekarang.
>> -bahkan Jika Anda tidak memiliki latar belakang dalam ilmu komputer atau pengalaman,
ini sebenarnya adalah kelas untuk Anda.
>> -Jadi Saya pasti ingin siswa saya hanya
mendapatkan bersemangat tentang ilmu komputer.
Tidak hanya pemrograman, tapi berpikir seperti seorang ilmuwan komputer
adalah benar-benar apa yang saya ingin mencoba untuk mengajar mahasiswa saya.
>> -CS50 Sulit dan bermanfaat.
>> -Sebuah pengalaman.
>> -Extravaganza.
>> -Ini Yang membawa kita ke tingkat berikutnya.
>> [MUSIC PLAYING]
>> -The TF adalah, saya pikir, darah kehidupan dari kursus.
>> -Saya Bersemangat untuk memiliki siswa saya, saya membantu
memiliki momen aha untuk mewujudkan apa yang mereka benar-benar mencoba
yang harus dilakukan, untuk mengetahui bagaimana melakukan pset a.
>> -CS50 Pasti kursus keras.
Tapi seperti yang lain Tentu saja benar-benar di Yale,
memiliki besar seperti, komunitas yang mendukung.
-Anda Benar-benar tidak perlu tahu apa-apa
tentang coding untuk bisa untuk mengambil kursus.
-itu Menakjubkan untuk menonton seberapa jauh orang datang dalam satu semester.
>> -Anda Tidak sendirian duduk di kamar Anda belajar kode,
tapi itu lebih dari sekedar kelas.
Itu adalah pengalaman.
-Cara terbaik untuk belajar konsep dan untuk memproses mereka adalah dengan mengajarkan orang lain.
>> -Apa Adalah perpecahan telepon?
>> [MUSIC PLAYING]
>> -dan Ini CS50.
>> [MUSIC PLAYING]
>> -Ini Adalah CS50.
>> -Got Masalah?
Merobeknya di setengah.
>> [MUSIC PLAYING]
>> Membuangnya.
>> DAVID Malan: Baiklah.
Jadi mari kita tackle-- dalam sedikit bit, kebetulan, itu
menjadi tradisi ini untuk beberapa alasan selama 10 tahun
untuk melayani kue di mulai dan akhir CS50.
Jadi menunggu Anda di akhir hari ini, selain silabus,
akan ada beberapa kue juga, dan staf saja untuk menyapa.
Tapi sekarang, mari kita transisi ke pertama bahasa kita, di mana
kami akan menghabiskan benar-benar hanya seminggu dan satu Masalah ditetapkan pada domain ini, Scratch.
Dan Anda akan menemukan jika Anda sudah diprogram sebelumnya, banyak
dari ide-ide dan kemungkinan yang akrab bagi Anda.
Tapi Anda akan menemukan bahwa itu menyenangkan sepanjang jalan
untuk mencari tahu persis bagaimana untuk menerjemahkan beberapa ide Anda sudah tahu
lingkungan tertentu untuk benar-benar mengesankan keluarga Anda
dan teman-teman dengan pekerjaan Anda, yang dapat online, jika Anda memilih demikian, sesudahnya.
>> Dan jika Anda tidak memiliki pengalaman sebelumnya dan
antara mayoritas siswa kurang nyaman,
menyadari bahwa banyak ide kita hanya dieksplorasi dengan hal-hal reality--
seperti buku telepon dan kehadiran dan forth-- menerjemahkan
cukup baik untuk komputer, tapi tidak jika Anda menggunakan,
awalnya, bahasa seperti ini.
Jadi ini adalah program yang ditulis dalam bahasa disebut C.
Dan kita akan menghabiskan cukup sedikit waktu di C, akhirnya.
Tapi kemungkinan besar, ini akan terlihat sedikit samar kepada Anda pada pandangan pertama.
Bahkan, ada banyak aneh sintaks, kurung, kurung sudut,
kurung kurawal, kutipan, dan titik koma.
Dan memang, jika Anda menyelam ke pemrograman untuk pertama kalinya
melihat dan mencoba untuk membuat hal-hal seperti ini, jujur, Anda mendapatkan begitu terperosok
begitu sering hanya bodoh minutia yang tidak ada
intelektual yang menarik tentang hal itu.
>> Tapi bayangkan jika Anda bisa membuat program-- sama yang,
Anda mungkin jenis menyimpulkan, mungkin cetakan "Halo, dunia" entah bagaimana.
Kita bisa menyaring ide yang sama ke hanya dua potongan puzzle, jika Anda mau.
Memang, Scratch menarik karena itu bahasa grafis ini.
Anda dapat drag dan drop ini potongan teka-teki yang hanya interlock
apakah masuk akal logis untuk melakukannya.
Dan di Scratch, kita akan segera melihat, ini adalah
bagaimana Anda akan menerapkan bahwa sama Program, dengan hanya dua potongan teka-teki
yang cukup banyak melakukan apa yang mereka katakan.
>> Tapi kita akan melihat dalam beberapa saat bahwa beberapa dari blok bangunan yang kita singgung
untuk awal dan beberapa lagi adalah semua yang akhirnya akan membentuk
beberapa program kami yang paling awal.
Kita akan memiliki hal-hal seperti functions-- hanya
tindakan yang melakukan sesuatu, seperti menyapa, dunia.
Kita akan memiliki loop, hal yang menyebabkan siklus
lagi dan lagi, sama seperti kita melakukan beberapa saat yang lalu dengan pencarian
untuk Mike Smith.
Variabel, seperti dalam aljabar, jika Anda memiliki x atau y, yang dapat menyimpan nomor.
Nah, dalam program, Anda benar-benar bisa menyimpan lebih dari sekedar angka.
Anda dapat menyimpan kata-kata dan kalimat dan grafis dan hal-hal lain masih.
ekspresi Boolean, hanya questions-- ya atau tidak, benar atau salah.
Kondisi, pengambilan keputusan berdasarkan pada jawaban ya / tidak.
>> Dan hal itu lebih menarik seperti array dan benang dan acara
dan sejumlah lainnya fitur, tapi semua yang
peta sangat baik untuk sangat blok ramah seperti ini.
Ini akan menjadi fungsi, potongan puzzle ungu yang hanya mengatakan
apa namanya is-- dalam kasus ini, mengatakan.
Dan kemudian sering, ada kotak putih yang Anda
dapat mengetik atau tarik beberapa nilai dalam.
Dan itulah yang umumnya disebut argumen atau parameter.
Ini adalah cara mengubah perilaku default teka-teki
sepotong atau fungsi sehingga tidak sesuatu yang khusus untuk Anda seperti mengatakan,
halo, dunia atau Halo, Andy atau Halo, Jason atau beberapa kalimat lain sebagai gantinya.
>> Jika Anda ingin mengatakan bahwa lot-- harfiah forever--
Anda dapat mengambil lain potongan puzzle yang disebut selamanya
dan hanya terjepit tersebut dua bersama-sama seperti ini.
Dan bahwa loop, seperti gambar menunjukkan, berarti hanya menyapa, dunia selamanya,
lagi dan lagi dan lagi.
Atau, jika Anda hanya ingin melakukan itu jumlah terbatas kali, seperti 50 kali,
ada akan menjadi teka-teki lain buah untuk itu-- ulangi 50 kali.
>> Sementara itu, jika Anda ingin memiliki variabel
dalam bahasa ini kita sekitar untuk bermain dengan,
Anda dapat menggunakan blok oranye seperti ini.
Dan variabel ini saya sewenang-wenang disebut i untuk integer.
Dan aku hanya mengatur itu sama dengan 0.
Dan jadi mungkin saya, dalam hal ini case-- ini variable--
merupakan skor seseorang dalam sebuah permainan.
Anda mulai dari nol, dan setiap kali Anda membuat tujuan atau sesuatu seperti itu,
Anda mendapatkan satu poin tambahan.
>> Anda dapat mengajukan pertanyaan di Scratch.
Jika kita drag dan drop puzzle potongan di saat seperti ini,
Anda dapat mengajukan pertanyaan seperti, baik, adalah saya kurang dari 50?
Mungkin Anda perlu 50 poin untuk menang.
Dan jadi ini akan menjadi pertanyaan Anda akan bertanya.
Atau, lebih umum, Anda bisa katakan adalah x kurang dari y,
di mana ada dua variabel yang terlibat?
Sekarang, yang satu ini banyak lebih besar pada pandangan pertama,
tapi benar-benar tidak semua yang lebih kompleks.
>> Ini hanya kombinasi kondisi dan variabel
dan ekspresi Boolean untuk bertanya tiga questions-- adalah x kurang dari y?
Jika demikian, katakan demikian.
Katakanlah, x kurang dari y.
Yang lain, jika x lebih besar dari y, lain x harus sama dengan y.
Dan sedangkan dengan Mike Smith, ada empat skenario, di sini
dalam dunia angka, x adalah baik kurang dari, lebih besar dari, atau sama dengan.
Semua yang kita miliki adalah tiga garpu di jalan.
Dan kemudian ada yang lebih menarik potongan teka-teki seperti ini
untuk hal-hal seperti array, di mana kami akan dapat menyimpan informasi.
Kita akan melihat blok yang memungkinkan kita untuk melaksanakan beberapa benang,
Fitur lain kita akan menggunakan, dan kemudian juga sesuatu yang disebut peristiwa.
Tapi sebelum kita mendapatkan itu titik dan membuat bahkan,
akhirnya, kebiasaan kami sendiri potongan puzzle, mari kita
benar-benar membuka program itu sendiri.
>> Jadi ini adalah Scratch.
Ini tersedia di scratch.mit.edu.
Dan Anda dipersilakan untuk bermain sekarang atau nanti, juga.
Hal ini terjadi untuk menjadi versi offline.
Bagi orang-orang yang tidak tentu memiliki internet besar,
Anda dapat men-download software yang sama, juga.
Dan ada benar-benar hanya tiga komponen perangkat lunak ini.
Di sudut kiri atas layar adalah semacam panggung
bahwa Scratch, yang secara default tampak seperti kucing, tinggal di dalam.
Dia bisa bergerak ke atas, bawah, kiri, dan kanan dan melakukan sejumlah hal-hal lain,
dan dapat melihat sejumlah cara berdasarkan pada kostum yang Anda tetapkan untuk dirinya.
Tapi ini adalah apa yang akan kita sebut sprite, semacam karakter.
Dan Anda dapat memiliki beberapa karakter, seperti yang kita akan segera melihat.
>> Di tengah sekarang semua teka-teki ini potongan dan kategori atau palet
daripadanya.
Jadi sekarang, saya mengklik Motion.
Dan jadi aku melihat semua gerak-terkait potongan puzzle atau blok,
sehingga fungsi yang memiliki hubungannya dengan naik,
bawah, kiri, atau kanan atau beberapa operasi lain.
Tetapi jika saya mengklik Looks, Anda bisa melihat hal-hal seperti blok katakanlah
bahwa kita melihat beberapa saat yang lalu.
Dan jika saya klik pada Control, Anda akan melihat hal-hal seperti berulang dan selamanya
dan jika blok yang kami melihat beberapa saat yang lalu.
>> Dan Anda akan menemukan bahwa kita hanya akan menggaruk
permukaan beberapa teka-teki potongan,
tapi itu semua cukup intuitif dan titik dan klik.
Memang, Scratch dirancang untuk siswa yang lebih muda
untuk membantu memberi mereka outlet untuk berpikir kreatif.
Dan belum luar biasa, itu batu loncatan indah
untuk persis ide kita akan mengeksplorasi di C dan Python dan JavaScript,
demikian juga.
>> Di sisi kanan, akhirnya, di sini adalah ini, yang disebut daerah skrip.
Dan ini hanya batu tulis kosong dengan yang Anda mulai menulis sebuah program.
Dan aku akan hal itu.
Sekarang, saya kebetulan tahu di mana hal-hal yang karena saya sudah melakukan ini beberapa kali.
Tapi aku tahu bahwa di bawah kategori Events,
ada blok di sini-ini ketika bendera hijau diklik.
Dan perhatikan jika saya zoom out dan kembali ke sini di atas panggung,
kehidupan awal dalam ini sedikit dunia persegi panjang,
atas yang hijau bendera dan tanda berhenti merah.
Jadi pergi dan berhenti, masing-masing.
>> Dan jadi apa yang ingin saya lakukan ketika bendera hijau diklik?
Nah, biarkan aku pergi ke yang Tampak kategori.
Dan biarkan aku pergi ke depan dan drag dan drop ini.
Dan perhatikan segera karena mendapat dekat, mereka semacam magnet.
Jadi jika sekarang saya pasrah, terkunci bersama-sama bagus dan bersih.
Dan aku akan pergi ke depan dan mengatakan sesuatu seperti halo, dunia
selama dua detik.
Mari saya zoom out dan klik sekarang bendera hijau, dan mengatakan, halo, dunia.
Baiklah.
Jadi itu semua baik dan bagus.
Tidak semua yang menarik.
Mari membuatnya menjadi lebih manis sedikit.
Dan aku tahu bahwa di muka, Scratch terjadi
untuk datang dengan beberapa hal yang lucu seperti ini.
Jadi bermain meow suara sampai selesai.
Jadi mari kita lakukan ini.
>> [MEONG]
>> Ah, itu menggemaskan.
Dan jika saya klik again--
>> [MEONG]
>> Dan lagi.
>> [MEONG]
>> Tapi aku tetap harus menghidupkan kembali Scratch.
Tapi saya bisa lebih baik dari ini.
Kenapa tidak aku hanya menyeret tiga ini.
Dan sekarang sudah tiga kali menggemaskan.
>> [MENGEONG]
>> OK, sebenarnya, itu sedikit menyeramkan.
Jadi kita perlu sesuatu di antara sana.
Jika saya pergi ke Control, sepertinya sebenarnya ada blok menunggu.
Dan perhatikan jika saya membawa lebih there-- dan biarkan aku membuat ini lebih besar sedikit.
Jika saya melayang-layang, itu akan untuk masuk ke tempatnya.
Jadi tunggu satu detik, tunggu satu detik.
Mari kita memukul bendera hijau lagi.
>> [MENGEONG]
>> OK, sedikit lebih alami, tetapi tidak sangat efisien.
Jadi ini benar jika program saya Tujuan itu meow tiga kali.
Tapi itu tidak sangat dirancang dengan baik.
Aku agak memotong beberapa sudut.
Aku punya sedikit malas.
Apa yang terasa like-- apa yang harus saya tampaknya telah dilakukan buruk, akan Anda katakan?
Ya?
Ya, di tengah.
AUDIENCE: Digunakan lebih memori dari yang Anda butuhkan untuk
karena Anda menggunakan begitu banyak garis yang berbeda.
DAVID Malan: Ya, jadi lebih banyak garis.
Dan itu tidak harus menjadi memori, meskipun itu bisa dilihat sebagai cara itu.
Tapi itu definitely-- ada redundansi.
Dan aku benar-benar jenis diseret dan menjatuhkan hal yang sama.
Dan jika Anda jenis extrapolate-- jika itu tidak jelas di sini-baik, bagaimana akan
Saya meow 30 kali?
Saya akan drag dan drop, seperti, 30 pasang lebih dari potongan-potongan puzzle.
Dan pasti, ada cara yang lebih baik.
Dan kami telah melihat cara yang lebih baik.
Apa yang intuitif akan menjadi cara yang lebih baik?
Ya, hanya menggunakan satu lingkaran.
Tidak ada copy dan paste.
Dan memang, kapan ini semester jika Anda mulai
menemukan diri Anda menyeret dan menjatuhkan, atau benar-benar menyalin dan paste,
kebiasaan berbahaya untuk masuk ke dalam karena ini tidak hanya sangat dipertahankan.
Misalnya, jika saya ingin mengubah suara untuk sesuatu yang lain,
Saya harus mengubahnya sekarang di tiga lokasi bukan hanya satu.
Karena memang, jika saya mematahkan away-- ini aku
hanya akan memisahkan seperti itu.
Mari saya ambil mengulang blok, dan kemudian klik tiga, ketik tiga,
melemparkan beberapa ini pergi dengan hanya melepaskan.
Dan kemudian menyadarinya tidak terlihat seperti itu cocok,
tapi magnetis, itu akan untuk tidak hanya patah tempat
tetapi tumbuh sesuai bentuk.
Jadi itu bagus.
Dan jika saya klik bermain.
>> [MENGEONG]
Sangat bagus.
Baiklah.
Dan sekarang sangat mudah untuk mengubah, juga, karena saya hanya bisa
mengubah satu nomor dalam satu tempat.
Tapi ini juga, tidak semua yang menarik.
Mari kita benar-benar memiliki Scratch tidak meow, tapi bergerak.
Biarkan aku pergi ke Gerak dan bergerak 10 langkah dalam of-- whoops, biarkan aku memperbaiki hal ini.
Biarkan aku memilikinya bergerak 10 steps-- sebenarnya, jangan jangan ulangi.
Mari saya ambil blok kontrol, dan lakukan hal berikut selamanya.
Selamanya, bergerak 10 langkah.
Dan klik Play.
>> BAIK.
Jadi untungnya, ia berhenti.
Jika tidak, anak-anak akan sangat marah ketika mereka semacam kehilangan kucing mereka.
Tapi setidaknya aku dapat menyeret dia kembali ke layar.
Tapi ini tidak semua yang besar permainan atau animasi.
Akan lebih baik jika mungkin ia memantul dari tepi.
Jadi apa yang kita lakukan?
Apa konstruk yang kita perlu memiliki Scratch memutuskan untuk bangkit, menurut Anda,
bahkan jika Anda belum pernah terlihat Scratch sebelumnya?
Ya, di belakang.
AUDIENCE: Anda perlu jika blok atau jika-maka.
DAVID Malan: Yeah, sehingga beberapa jenis jika blok atau jika-maka.
Jadi sebenarnya, kita memiliki salah satu dari ini di sini.
Jadi if-- jadi biar mendapatkan menyingkirkan gerakan.
Biarkan aku memperbesar jadi lebih besar.
Jadi bagaimana ini.
Selamanya, jika Sensing-- kita sudah tidak melihat ini sebelumnya.
Aku butuh ekspresi Boolean.
Dan ternyata jika menyentuh apa?
Jika menyentuh tepi, apa yang ingin saya lakukan?
Nah, jika saya kembali ke Gerak, Ternyata, oh, aku bisa berbalik.
Biarkan aku tarik ini di sini.
Mengapa saya tidak pergi ke depan dan berbalik 180 derajat?
>> Dan sekarang, saya hanya bergerak di akhir.
Saya bisa menempatkan gerakan di awal atau akhir.
Tapi secara logis, setiap kali saya pindah, saya ingin memeriksa, saya menyentuh tepi?
Apakah saya menyentuh tepi?
Sehingga secara logika saya berbalik jika demikian.
Jadi mari kita tekan tombol play.
>> BAIK.
Jadi itu sedikit kereta, sehingga untuk berbicara.
Dan bug hanya kesalahan dalam sebuah program komputer.
Tapi setidaknya itu bekerja.
Dan pada kenyataannya, saya bisa masuk di sini.
Dan biarkan aku membuatnya tidak 10 langkah di waktu, tapi ini semua animasi.
Ini semua kartun atau bahkan film adalah.
Mari saya bergerak 20 langkah pada satu waktu.
Jadi 20 kali lebih banyak hal-hal yang terjadi sekali, atau dua kali lebih banyak, dalam hal ini.
Dan dia bergerak lebih cepat.
Mari saya mengubah ke 30.
100.
1.000.
Dan itu akan benar-benar cepat.
Dan ini is-- ya, OK.
>> Jadi sekarang kita hanya bermain-main dengan itu.
OK, jadi kereta.
Tapi kita bisa menyeretnya keluar dari jalan di sini.
Tapi kita bisa membuat lebih menyenangkan dengan ini, juga.
Bagaimana ini-- dia terbalik.
Tapi ternyata Scratch-- dan ada sebenarnya,
Aku harus melepaskan, tidak ada akademis nilai untuk apa yang saya lakukan.
Tapi kalau aku membuka mikrofon, mari kita menghentikannya dan melakukan sesuatu seperti ini.
Aduh!
>> [TERTAWA]
>> Itu menggemaskan.
Terima kasih.
Sekarang, ini adalah apa suaraku Sepertinya ketika saya berteriak aduh.
Saya tidak berpikir kami menangkap tawa Anda.
Itu OK.
Mari saya simpan ini sebagai "Aduh."
Mari kita simpan ini sebagai "Aduh".
Dan sekarang kita akan kembali ke Script.
Dan sekarang saya need-- mari kita lihat, Suara.
Oh, bermain aduh suara.
Jadi jika saya menyentuh tepi, biarkan aku pertama bermain Aduh, dan kemudian berbalik.
Dan sekarang mari kita menempatkan dia di tengah.
>> [MENGATAKAN "ADUH"]
>> Dua kali lebih cepat.
>> BAIK.
Tapi itu benar-benar melakukan apa yang saya katakan.
Jadi itu sebenarnya benar, itu hanya sedikit mengganggu cepat.
Jadi mari kita tambahkan sesuatu lebih menarik untuk ini.
Mari saya benar-benar membuka salah satu yang saya buat di muka,
tepat disebut Pet yang Kucing, yang melakukan hal ini.
Berikut script di sini.
Apa ini akan lakukan dalam hal bahasa Inggris?
Apa ini dirancang untuk melakukan?
Ya, mari kita pergi some-- ya?
>> AUDIENCE: Bila Anda pet kucing, mengeong.
DAVID Malan: Ya, jadi ketika Anda pet kucing, itu akan meow.
Jadi dengan kata lain, sekarang ada loop selamanya diam, dikombinasikan
dengan kondisi, dikombinasikan dengan ekspresi Boolean,
dikombinasikan dengan pasangan fungsi, efeknya
yang, setelah saya bermain program ini, ada
terjadi sampai aku memindahkan kursor lebih dekat dan lebih dekat dan lebih dekat dan--
>> [MEONG]
Maka itu seperti membelai kucing.
[MEONG]
Hanya sekali Anda benar-benar memindahkan kursor di atasnya.
Sekarang, saya juga melecut tidak pet kucing, yang melakukan hal ini sebagai gantinya.
>> [MENGEONG]
>> Jadi dia hanya terus mengeong.
>> [MENGEONG]
>> Tapi kalau aku terlalu close--
>> [MENGEONG]
>> [MENGAUM]
>> Jadi bagaimana ini bekerja?
Sekarang aku hanya memiliki dua arah pertigaan jalan.
Jika menyentuh pointer mouse, kemudian memutar suara singa.
Lain hanya memutar suara meong, dan kemudian menunggu tiga detik sehingga
bahwa itu semacam melakukan sangat tenang menunggu.
Baiklah.
Jadi itu menggabungkan beberapa ide masih.
Mari kita lihat contoh ini Aku melecut disebut benang.
Dan yang satu ini pada dasarnya berbeda karena leverage
fitur dari banyak bahasa pemrograman disebut
benang, kemampuan program untuk harfiah melakukan dua hal secara bersamaan.
Memang, hari ini jika Anda menggunakan Google Docs atau Microsoft Word,
dan dokumen Anda terus-menerus menjadi mantra-diperiksa bahkan saat Anda jenis usaha-- atau Anda
tekan Command-P atau Control-P dan sesuatu cetak,
itu mencetak sementara Anda terus mengetik.
Program hari ini memang bisa melakukan beberapa hal sekaligus, sama seperti di Scratch
sini.
>> Jadi di sini, saya punya dua sprite sekarang, burung dan kucing.
Dan jika saya klik pada masing-masing karakter-karakter satu per satu,
Saya melihat sekarang burung script di kanan atas.
Sekarang aku melihat kucing.
Burung, kucing.
Jadi masing-masing memiliki naskah mereka sendiri.
Tapi perhatikan, apa yang potongan puzzle jangan mereka berdua mulai dengan?
Ketika bendera hijau diklik.
Dan burung, ketika bendera hijau diklik.
Jadi ketika saya klik bendera hijau, baik dari orang script atau program
akan berjalan secara paralel.
Dan Anda akan melihat bahwa burung adalah hanya tanpa berpikir memantul dari tepi.
kucing jelas telah diprogram dengan keuntungan strategis.
Dan--
>> [MENGAUM]
Baiklah.
Jadi kucing menangkap burung dalam kasus ini.
Mengapa demikian?
Nah, pemberitahuan pertama kami hanya memiliki burung hanya tanpa berpikir akan
ke lokasi awal ini, dan kemudian selamanya,
jika tidak menyentuh kucing, hanya bergerak.
Dan jika Anda berada di tepi, bangkit.
Dan hanya bergerak.
Dan jika Anda berada di tepi, bangkit.
Tapi kucing itu, sementara itu, memiliki beberapa logika tambahan
yang mengatakan ini-- pertama, hanya begitu bahwa ini bukan sepenuhnya bias
terhadap burung, melihat bahwa aku sudah menggunakan potongan puzzle hijau ada
yang benar-benar mengambil nomor acak.
Sebuah fitur dari banyak bahasa adalah untuk memberikan Anda nomor acak atau pseudorandom.
Jadi dalam hal ini, kucing awalnya memilih nomor acak antara, seperti,
90 derajat dan 180 derajat, pada dasarnya, sehingga
bahwa ada sedikit varian.
Dan kemudian selamanya, jika menyentuh burung, memutar suara singa.
Jika tidak, hanya menunjuk ke arah burung.
Mengarah ke burung.
Titik menuju burung, yang merupakan potongan puzzle tersendiri dalam hal ini.
Nah, kita bisa melakukan satu hal lain di sini.
Mari saya membuka program acara di sini.
Dan di sini kita lagi memiliki dua sprite, yang terlihat seperti dua boneka ini di sini.
Dan apa yang menarik di sini adalah ini.
Jeruk pria memiliki ini mengatur potongan puzzle sini.
Selamanya melakukan following-- yang jika spasi ditekan,
kemudian berkata, Marco, dan kemudian disiarkan sebuah acara.
Dan sementara itu, pria biru di sini memiliki ini-- ketika Anda menerima acara,
mengatakan Polo.
Jadi ternyata di Scratch dan dalam bahasa lain,
ada cara untuk dua program atau dua skrip, dalam hal ini,
untuk bergaul sehingga ketika saya memukul spasi, katanya Marco.
Dan yang lain mendengar itu, sehingga untuk berbicara, dan mengatakan Polo di respon.
Sehingga Anda dapat menulis program yang benar-benar berinteraksi dengan cara ini.
Dan jika saya melakukan ini sebagai gantinya, Aku bahkan dapat menambahkan variabel,
hanya menggunakan satu sprite dalam kasus ini.
Yang ini sangat menjengkelkan.
>> [SEAL BARKING]
>> Sekarang, pemberitahuan di sebelah kanan kita punya beberapa logika tambahan di sini.
Bagaimana cara menghentikan segel ini dari menggonggong?
>> [SEAL BARKING]
>> Sepertinya di kanan sisi adalah apa yang bermain suara.
Tapi itu hanya memainkan terdengar jika apa yang benar?
Jika orange variable-- block-- diredam adalah nol.
Bagaimana cara mengubah diredam menjadi 1, berarti benar, membuat ini diredam?
Rupanya, script lain, saya bisa tekan space bar, dan sekarang ia berhenti.
Jadi kita dapat memiliki pergaulan ini di script, juga,
dengan hanya berbagi variabel di dua seperti ini.
Sekarang, ini tidak semua yang menarik.
Mari kita pergi ke depan dan melakukan hal ini dan menggabungkan banyak ide-ide ini dengan program ini
sini.
Sebelum kita melakukan itu, meskipun, bagaimana sekitar satu relawan?
Biarkan aku mengambil tekanan off dari saya karena saya tidak benar-benar
memainkan game ini.
Mari kita memiliki seseorang yang kita belum pernah melihat sebelumnya.
Anda harus nyaman datang di atas panggung di sini, di depan kamera.
OK, datang ke atas.
Sangat berani.
Siapa namamu?
>> IDRIS: Idris.
DAVID Malan: Maaf?
IDRIS: Idris.
DAVID Malan: Idris, senang bertemu Anda.
Ayo up.
Dan sekarang, di ponsel Anda sendiri telepon, Anda bermain Pokemon GO?
>> IDRIS: No.
DAVID Malan: Benarkah?
IDRIS: Ya.
DAVID Malan: OK.
Baiklah.
Senang bertemu dengan mu.
Ayo sini.
Aku tidak baik.
Jadi kita akan mencari tahu bersama bagaimana bermain ini, yang seseorang benar-benar
pergi dan diimplementasikan dalam Scratch dengan mengubah kucing untuk dasarnya
yang berbeda karakter semua bersama-sama.
Dan jika saya fullscreen ini di sini, kita akan
untuk melihat pertandingan berikut bersama-sama.
Masih memuat, masih loading.
Ayolah.
Biarkan aku melakukan ini.
Ayolah.
Game ini begitu besar bahwa itu jatuh.
Bersiap.
Coba ini sekali lagi.
Ayolah.
Baiklah.
>> Di sana kami pergi.
BAIK.
bendera hijau.
Jadi di sini kita pergi.
>> [MUSIC PLAYING]
>> Pilih tingkat menengah di sini.
Klik pria biru di sana.
Baiklah.
Dan Anda dapat menggunakan panah keys-- atas, bawah, kiri, kanan.
Sekarang, mari kita pertimbangkan seperti yang kita lakukan ini-- dan kemudian pergi setelah karakter di sana.
Ya.
Dan sekarang klik dia dengan mouse.
Oh ya.
Pindah.
Di mana panah?
Di sini Anda pergi.
Jadi klik di sana.
Ya.
Baiklah.
Jadi sekarang, aku diberitahu Anda memiliki bola Poke, bahwa jika klik, itu akan melakukan itu.
Sangat bagus.
Dalam berlatih untuk hari ini, saya menemukan versi game
sebenarnya tidak terlalu sulit.
Jadi jika Anda ingin pergi lagi di sini, berjalan ke bola Poke ini.
Dan kemudian pergi mengambil hak.
Coba klik pada itu.
Oh, sebenarnya, itu toko, rupanya.
OK begitu dekat itu.
Tidak pernah melakukan itu sebelumnya.
Mungkin pergi ke hal ini di sini.
Oh, di sana Anda pergi.
Tunggu, ada satu di sana.
Oh, ada lagi.
BAIK.
Turun.
Ya, klik.
>> OK, itu sangat lucu.
OK, sangat baik dilakukan.
Game ini tidak terlalu sulit.
BAIK.
Selamat.
Di sini, kita memiliki CS50 stres bola untuk Anda.
Tapi mempertimbangkan untuk sesaat apa beberapa takeaways yang ada.
Lebih mudah daripada permainan yang sebenarnya, rupanya.
Tapi semua kita telah pergi di sini adalah karakter
yang mungkin memiliki beberapa jenis loop yang terkait dengan itu.
Ini bukan kucing.
Itu karakter ini sebagai gantinya.
Dan bahwa loop hanya terus mengatakan, jika panah ditekan,
jika panah bawah ditekan, jika panah kiri ditekan atau kanan
panah ditekan, bergerak ke atas atau bawah atau kiri atau kanan.
Atau jika ada potongan puzzle lain di sana yang mengatakan saat menyentuh sprite lain,
saat menyentuh salah satu karakter untuk bola Poke, jika menyentuh,
kemudian melakukan hal ini.
>> Jadi semua ide kita sudah telah menggunakan sejauh benar-benar
hanya dapat diterapkan dalam khusus ini konteks untuk memainkan game ini, juga.
Biarkan aku pergi ke depan dan tarik naik satu lain di sini, sebenarnya.
Biarkan aku pergi ke depan dan tarik up, katakanlah, ini.
Ini adalah sesuatu yang kita remix.
Dibuat oleh salah satu dari kami siswa di Cambridge,
dan kemudian saya pergi melalui dan berubah cukup banyak setiap contoh Harvard
untuk Yale saat ini.
Apakah seseorang ingin bersaing dengan Ivies
sini akumulasi lain semua ide-ide ini?
Ayo turun, ya.
Siapa namamu?
>> DINA: Dina.
>> DAVID Malan: Adina?
>> DINA: Dina.
>> DAVID Malan: Dina, datang di bawah.
Baiklah, Dina.
Jadi game ini semakin sulit dan sulit, karena dalam game ini,
ada variabel yang digunakan juga yang terus-menerus melacak
apa tingkat Anda berada dalam permainan.
Jadi senang bertemu Anda.
Datang kemari.
Dan tujuan di sini adalah untuk memilah dari membuat jalan Anda melalui labirin
bahwa siswa ini dilaksanakan.
>> Dan hanya untuk mengatur panggung, masing-masing dari foto-foto ini di layar
adalah sprite sendiri, karakter sendiri.
Jadi ini adalah oleh kucing default, namun siswa mengubah mereka
untuk berbagai logo Ivies sini.
Dan kemudian Anda akan melihat bahwa hanya dengan menggunakan kondisi dan loop
dan fungsi dan lebih, Anda mendapatkan ini.
>> [MUSIC PLAYING]
[MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Ya oke.
Ya, terus berjalan.
tingkat pertama ini sangat mudah.
Anda hanya harus pergi ke sana.
Tapi sekali lagi, pertimbangkan, ini hanyalah sebuah lingkaran mendengarkan panah keys--
atas bawah kiri kanan.
Dan sekarang blok penginderaan.
Sangat bagus.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Sangat bagus.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Sangat bagus.
Cukup mudah, Crimson.
Baiklah.
Levels-- uh-oh.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Dan lagi, di ini tiga puncak Harvard,
Anda hanya memiliki logika mengatakan jika di tepi, bounce.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> OK, apa yang Anda lakukan adalah lebih menarik daripada mengapa.
Sangat bagus.
Uh oh.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Saya pikir Anda harus mengorbankan diri sendiri.
[MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Cepat!
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Bagus.
Itu OK.
Anda akan mendapatkannya.
Ya ya!
Sangat bagus.
>> [Bersorak]
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Bagus!
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Mengerti.
Ayolah!
Kedua tingkat terakhir.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Baiklah.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Iya nih.
baik penggunaan variabel di sini.
[MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Iya nih.
[MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Bagus.
[MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
Tidak apa-apa.
Kita harus sampai ke akhir.
Sana.
Oh!
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Mungkin menjalankan terlambat hari ini, tapi itu akan menjadi sia-sia.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Kamu bisa melakukannya!
Ya!
>> [Bersorak]
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Yang satu ini benar-benar sulit.
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Kami akan memberikan dua kehidupan yang lebih.
Bisakah kamu melakukannya?
>> [MUSIC - MC HAMMER, "U TIDAK BISA MENYENTUH INI"]
>> Baiklah.
Bagaimana dengan bulat besar tepuk tangan tetap.
Anda sampai ke kedua tingkat terakhir.
Terima kasih.
>> [TEPUK TANGAN]
>> Jadi ini hanya untuk mengatakan berapa banyak Anda dapat Anda lakukan dengan hal-hal ini.
Dan menyadari juga, bahwa ketika potongan puzzle tidak exist--
dan memang, ini akan menjadi salah satu kekuasaan dengan masalah pertama
set dan beyond-- adalah untuk benar-benar membuat Anda sendiri.
Dan ini hanya potongan dari salah satu contoh
Anda akan dapat bermain dengan online, di mana
jika Anda tidak memiliki built ke Scratch sesuatu seperti sepotong batuk puzzle,
Anda benar-benar dapat membuatnya sendiri.
>> Dan semua ini dan lebih menanti.
Dan hanya untuk melukis akhir gambar memang apa
depan di toko untuk kelas untuk Anda, didasarkan pada beberapa gambar dari teman sekelas
terakhir, izinkan saya untuk meredupkan lampu untuk terakhir kalinya dan menampilkan CS50.
>> [MUSIC PLAYING]
>> Baiklah.
Itu saja untuk CS50.
Kue sekarang disajikan.
>> [MUSIC PLAYING]