>> SPEAKER: Aku [Tak terdengar].
Dan aku seorang senior di Leverett House.
Saya belajar ilmu komputer, dan aku TF untuk CS50.
Sebagai mahasiswa, saya bahkan tidak memiliki laptop atau smartphone.
Saya tidak memiliki pengalaman pemrograman.
CS50 adalah program studi yang paling berkesan yang Aku mengambil di Harvard karena itu
perjuangan, tapi itu benar-benar perjuangan menyenangkan pada saat yang sama.
Dan aku membuat banyak menakjubkan, permanen teman-teman, dan saya belajar banyak kok
keterampilan yang berlaku.
Aku sangat senang bahwa saya tidak membiarkan saya kurangnya latar belakang menjadi alasan bagi saya
tidak mengambil CS50.
Aku [Tak terdengar].
Aku senior di Leverett House, kelas 2014.
Dan aku mengambil CS50.
>> DAVID Malan: Jadi ini adalah CS50.
Ini adalah akhir minggu nol.
Dan ingat di mana kami mulai waktu lalu, adalah dengan lampu ini, yang
begitu populer bahwa kami pergi dan membeli lagi hari ini.
Jadi saya pikir ini akan menjadi hal kami tahun ini -
lampu meja jika Anda datang di atas panggung, setidaknya sampai kita kehabisan.
>> Tapi kami menggunakan recall ini, untuk memperkenalkan dasar-dasar representasi data.
Kami membutuhkan cara untuk mulai mewakili informasi dalam komputer.
Dan cara termudah untuk melakukannya adalah dengan satu bahan, listrik.
Dan hal yang paling sederhana yang dapat Anda lakukan dengan listrik menyalakannya dan off.
Biarkan aliran elektron atau tidak.
Dan menggunakan dua negara bagian dasar, off dan, atau salah dan benar, atau nol dan
satu, kita mulai melihat bahwa kita bisa membangun up, dalam hal ini, dengan cahaya
lampu, angka lebih dari hanya nol dan satu.
Kami menghitung setinggi tujuh, misalnya, terakhir kali.
Tapi semua harus kita lakukan adalah terus melemparkan lebih banyak cahaya lampu pada saat itu
masalah dan, benar-benar, kita dapat mewakili sejumlah yang kita
mungkin mungkin Anda inginkan.
>> Yah, kita beralih cepat kemudian Rabu byte ini relawan.
8 bit adalah apa yang biasanya kita sebut byte, jadi di sini kita memiliki delapan relawan
Rabu yang secara kolektif itu mewakili delapan bit.
Dan ketika tangan mereka pergi up, mereka adalah salah satu a.
Dan ketika tangan mereka bawah, ada nol.
Dan kami memiliki orang-orang datang pada mengapa panggung?
Apa yang kami dapat lakukan dengan ini urutan bit?
>> Untuk membuat sebuah alfabet.
Kami mampu membangun di atas bahwa pelajaran sebelumnya dipelajari dan benar-benar
mulai membuat lebih menarik Informasi yang setidaknya lebih
akrab bagi kita manusia.
Dan ini akan menjadi berulang tema di seluruh 50, tetapi juga komputer
ilmu yang lebih umum, ide ini layering, di mana, pada akhir
hari, jika Anda benar-benar mulai dasar dengan komputer, ya,
itu angka satu dan nol.
Dan di bawahnya itu hanya listrik.
Tapi kita sangat cepat mulai mengambil mereka rincian tingkat rendah untuk diberikan
dan mulai lapisan di atas terakhir bekerja dilakukan agar kita, pada akhirnya, oleh
akhir semester dan, benar-benar, lebih umum sebagai ilmuwan komputer
dan programmer, dapat melakukan beberapa benar-benar hal yang sangat kuat dengan memanfaatkan kerja
bahwa kita sendiri telah dilakukan dan juga berdiri di pundak orang lain.
>> Sekarang kita cepat dialihkan pada hari Rabu dari hanya perlu
merupakan informasi yang ingin untuk melakukan sesuatu dengan itu.
Jadi apa yang kita mendefinisikan sebuah algoritma sebagai?
Serangkaian instruksi.
Jadi itu adalah serangkaian instruksi, yang sejumlah langkah yang Anda, manusia, atau
komputer, lebih khusus, akan mengeksekusi satu demi satu dalam rangka
untuk mencapai beberapa tujuan.
Dan kami memiliki beberapa gol terakhir kali, salah satunya adalah untuk menghitung
orang di ruangan itu.
Dan contoh lain lagi adalah untuk menemukan Mike Smith dalam buku telepon.
>> Jadi Anda mungkin ingat bahwa aku merobek telepon buku setengah menuju akhir ini sampai
menemukan Mike Smith.
Tujuan itu adalah untuk visual yang menunjukkan, sekali lagi, bahwa kami
harfiah merobek masalah ini setengah, setengah, setengah, dan sangat
cepat pergi dari seperti 1.000 halaman hanya satu halaman.
Bagi Anda yang merindukan ini pada Rabu, saya pikir kami akan bermain kembali
beberapa cuplikan dari apa yang Anda tidak terjawab.
Mari kita lihat.
>> [VIDEO PEMUTARAN]
>> -Di sana kami pergi.
1500 halaman, garis bersih yang bagus, air mata yang sah.
>> [END VIDEO PEMUTARAN]
>> DAVID Malan: Jadi itu Rabu.
Kami transisi, meskipun, Rabu sekarang untuk ingin mewakili algoritma
dalam beberapa cara yang standar, bukan hanya menggambarkan mereka secara verbal, tetapi
mencoba untuk mengungkapkannya secara tertulis atau layar komputer sehingga kita bisa
mulai memperbaiki, dan memodifikasi mereka, dan, akhirnya, sebenarnya
menganalisis seberapa benar atau seberapa cepat mereka.
>> Jadi kami memperkenalkan gagasan ini dari pseudocode, yang,
istilah awam, adalah apa?
OK, kata-kata.
Mari kita pergi sedikit lebih dalam dari itu.
Inggris, yakin, hanyalah arah tujuan apa?
Kata-kata yang dapat digunakan untuk membuat atau untuk mewakili algoritma.
Jadi tidak ada satu bahasa yang dikenal sebagai pseudocode di dunia.
Hanya saja bahwa Anda, dalam bahasa Inggris, atau apapun bahasa lisan Anda, gunakan
semacam notasi sepintas untuk menyampaikan ide yang sangat singkat.
Tapi kita akan melihat bahwa, tentu dengan Pseudocode Inggris, dan ternyata
kebanyakan bahasa pemrograman sendiri adalah turunan dari bahasa Inggris itu sendiri,
kita akan menemukan bahwa ada beberapa standar cara untuk mewakili pseudocode dan
juga kode pemrograman.
Jadi ketika Anda mulai melihat bahkan yang paling sederhana contoh hari ini, menyadari ini
pola yang sama akan terulang minggu depan.
>> Jadi pseudocode semacam bahasa menyerupai
bahasa pemrograman.
Dan contoh pertama kita melihat secara visual ditulis satu ini.
Itu hanya sebuah program langkah ketiga, yang tujuan yang adalah untuk menghitung jumlah
orang di kamar asrama untuk bahwa video pada hari Rabu.
Tapi ada aspek yang menarik beberapa dari program yang paling sederhana.
>> Dan ini akan menjadi tema berulang.
Jadi bagi mereka yang tidak terbiasa dengan ini, satu, kami memperkenalkan variabel.
Dan mungkin semua orang di ruangan ini akrab dengan variabel dalam
konteks aljabar.
Tapi di sini dalam pemrograman, variabel yang, satu, bisa
disebut apa pun yang kita inginkan.
Kami telah menggunakan n sebagai counter.
Tapi kita bisa menggunakan counter kata, atau, seperti yang akan Anda lihat, kebanyakan kalimat apapun yang
Anda mungkin ingin selama itu deskriptif, tapi itu benar-benar hanya
wadah penyimpanan.
Ini sepotong memori, beberapa jumlah bit, dan bervariasi oleh komputer, bagaimana
banyak bit ada yang menulis variabel itu.
>> Tapi kita bisa menempatkan nilai-nilai di dalamnya.
Sejauh ini, kita hanya memasukkan angka.
Tapi kita bisa menaruh kata-kata yang sebenarnya.
Kita dapat menempatkan paragraf.
Kita bisa menempatkan gambar -
apa-apa, benar-benar, kita dapat mewakili dengan nol dan satu, kita dapat dimasukkan ke dalam
tingkat pengertian yang lebih tinggi dari variabel.
>> Jadi cukup lurus maju sana.
Dan itulah satu baris.
Tapi kami sangat cepat pindah dari satu baris untuk benar-benar melakukan
sesuatu dengan variabel tersebut.
Dan sejalan tiga, kami diperbarui N. Kami bertambah N. Dan kita bisa menulis ini
berbagai cara.
Tapi mungkin yang paling jelas adalah hanya untuk mengatakan, mengatur N setara dengan
apapun N ditambah 1.
Jadi itu kenaikan kami.
>> Sementara itu, ada lingkaran.
Dan yang satu ini, juga, mungkin cukup intuitif.
Sebuah lingkaran hanya sesuatu dalam sebuah program itu terjadi lagi dan lagi, beberapa
jenis siklus.
Dan ini frase kunci di sini, untuk masing-masing, adalah sebenarnya sangat umum di seluruh sebagian besar
bahasa pemrograman, termasuk yang akan kita lihat pada kursus.
Setiap kali Anda melihat kata untuk itu, biasanya menyampaikan gagasan bahwa
lingkaran, sesuatu yang siklis, yang akan terjadi.
>> Tapi perlu dicatat satu rinci sintaksis lainnya.
Fakta bahwa garis ketiga ada sebenarnya menjorok dengan memiliki memukul
spasi beberapa kali disengaja.
Karena konvensi manusia adalah sedemikian rupa sehingga, ketika Anda sedang melakukan sesuatu lagi dan
lagi, dalam satu lingkaran, seperti yang dimulai pada baris kedua, Anda indent apa pun yang milik
untuk loop yang hanya untuk membuat jelas bahwa itu garis tiga dan tidak, misalnya,
line empat atau lima, jika ada baris untuk atau lima, yang
bagian dari loop.
Jadi ini lekukan sederhana menyampaikan bahwa ide dasar.
>> Jadi kami menerapkan algoritma ini, sekarang, untuk beberapa contoh.
Dan ini juga, contoh sederhana di dunia nyata.
Tapi itu akan menjadi wakil dari bagaimana Anda akan pergi tentang pengujian Anda
memiliki program semakin kompleks.
Anda mencoba beberapa skenario, beberapa wakil input, dan lihat apakah Anda
mendapatkan output yang diinginkan.
>> Jadi contoh ini memiliki dua orang duduk di kamar asrama.
Di sebelah kiri adalah bahwa kode semu yang sama.
Dan ini adalah screen shot dari sangat Langkah terakhir dari aplikasi ini
algoritma untuk mereka masukan, di mana ada dua orang di ruangan itu dan,
ingat, seperti yang kita melangkah melalui jalur satu, dan dua, dan tiga, dan dua
dan tiga dan dilakukan -
pada akhir algoritma itu, kami memiliki memang dihitung dua rekan-rekan yang
di dalam ruangan.
>> Lalu kami coba contoh lain.
Dan kami mengatakan apa jika ada nol orang di dalam ruangan?
Apakah kode ini masih benar?
Dan memang itu.
Kebetulan garis bahwa dua dan, dengan demikian, jalur tiga atau
tidak akan mengeksekusi.
Mereka tidak akan terjadi sama sekali karena mereka hanya tidak berlaku jika
ada nol orang di dalam ruangan.
>> Tapi bukan masalah besar.
Satu baris N diinisialisasi ke nol, sehingga meskipun hanya satu baris ini
Program benar-benar berakhir menjadi berguna, masih menghasilkan jawaban yang benar, seperti
ditunjukkan oleh orange nol di bagian bawah.
Tapi kemudian kami memutuskan bahwa jenis algoritma bodoh.
Itu cukup lambat.
Tentu saja, aku bisa melakukan dua, empat, enam, delapan, sepuluh, ketika
menghitung orang di sebuah ruangan.
>> Jadi kita tweak algoritma, pseudocode, mengatakan, sekarang dalam dua baris,
untuk setiap pasang orang di ruangan itu, melanjutkan ke dalam line tiga, selisih
in dengan dua pada setiap iterasi.
Sehingga akan bekerja di sini selama pasangan ini orang di dalam ruangan.
>> Tapi kemudian, jika Anda mulai berpikir tentang ini, dan tidak butuh waktu lama untuk
menyadari, tunggu sebentar ini akan pecah, rusak
apa kasus sederhana?
Jika ada tiga orang di dalam ruangan atau, lebih umum, ketika ada
ganjil orang di kamar, termasuk satu.
Kami akan merindukan orang itu di sini karena tidak ada pasangan tersebut.
Jadi kita cepat ditangani oleh bukan memperkenalkan tambahan apa
konstruksi pemrograman ke kode semu.
>> Jadi kondisi, kita disebut , atau cabang.
Dan itu dimaksudkan untuk menyampaikan, visual, yang ide cabang, di pertigaan jalan
di mana Anda dapat melakukan ini atau, mungkin, sesuatu yang lain.
Dan memang, kita mengatasi masalah ini dengan menambahkan baris 4, dengan mengatakan, benar-benar, di
akhir, jika satu orang tetap, kemudian pergi ke depan dan menganggapnya istimewa.
Jadi Anda semacam kasus khusus mereka, sehingga untuk berbicara, sehingga sekarang kita dapat menangani
baik bahkan jumlah orang dan ganjil orang.
>> Sekarang ada banyak cara kita bisa menyatakan ini.
Dan terus terang, saya sudah bisa lebih nit pilih-pilih ketika datang ke pilihan saya
Bahasa Inggris untuk pseudocode.
Tapi setidaknya semangat ide yang disampaikan.
Jika Anda menyerahkan kode ini ke teman yang tidak di CS, atau tidak pernah mengambil
CS, kemungkinan besar mereka bisa mencari tahu, diberikan tiga orang di ruangan itu, bagaimana
menghitung orang-orang berdasarkan pada petunjuk ini.
Dan itu semua benar-benar kita ingin mencapai dengan pseudocode, entah bagaimana
standarisasi bagaimana kita akan tentang ide yang mewakili sehingga kita dapat
mulai melakukan lebih rumit hal masih.
>> Jadi yang menuntun kita kemudian, hari ini, ke kode aktual.
Kita mulai untuk program hari ini, meskipun di lingkungan yang ramah.
Dan kemudian kita transisi yang sangat cepat untuk sintaks lebih misterius, tapi satu yang
Anda akan melihat pada dasarnya sama dengan ide-ide akan melihat diwujudkan dengan
bahasa ini lain hari ini.
Ini hanya akan melihat sedikit berbeda.
>> Jadi bukan hanya memanggil kode ini, aku akan menjadi sedikit lebih tepat
dan berkata, selanjutnya, ketika menulis Program, Anda sedang menulis kode sumber.
Ini semacam seperti pseudocode.
Tapi kita akan lihat itu bukan semacam longgar ketika datang untuk memilih kata-kata
yang Anda gunakan.
Ketika programing dalam bahasa, Anda harus menggunakan kata-kata, frase,
sintaks, bahwa orang lain telah memutuskan mewakili
bahwa bahasa tertentu.
Jadi pseudocodes terserah Anda.
Sebuah bahasa pemrograman yang sebenarnya seperti C, seperti yang kita akhirnya akan melihat, adalah
standar oleh orang lain.
>> Jadi bagaimana kita pergi tentang menulis beberapa kode sumber?
Yah aku akan pergi depan dan melakukan hal ini.
Aku akan pergi ke depan dan membuka jendela di sini.
Lebih pada minggu depan.
Tapi ini adalah alat yang disebut yang CS50 alat.
Aku menjalankan software pada saya Mac, meskipun Anda dapat melakukan hal yang sama
pada komputer Windows, yaitu memberikan saya ilusi menjalankan berbeda
sistem operasi sama sekali benar di sini di jendela pada Mac saya.
Aku hanya penuh disaring sehingga Anda tidak benar-benar melihat Mac OS sekarang.
>> Ini merupakan sistem operasi disebut Linux.
Ini sangat populer.
Ini sangat cepat.
Ini sangat bebas, yang telah membuatnya menjadi sangat menarik, terutama di
dunia komersial.
Dan lebih pada menjelang akhir dari semester ketika kita menggunakan Linux cukup sedikit
untuk pemrograman web dan hosting website aktual dan proyek.
Jadi sekarang, hanya tahu bahwa ini adalah desktop yang dimaksudkan untuk terlihat samar-samar
akrab bagi Windows dan Mac OS.
Itu hanya memiliki beberapa nama yang berbeda dan ikon untuk hal-hal.
Tapi ini yang disebut CS50 alat, mesin virtual yang,
mulai minggu depan, kalian akan dijalankan dalam jendela pada
Mac anda sendiri atau PC.
>> Untuk hari ini, aku akan membuka paling sederhana program.
Ini disebut gedit.
Dan ini hanyalah sebuah editor grafis.
Ini semacam seperti Microsoft Word, tapi lebih sederhana.
Ini semacam teks seperti mengedit atau notepad.
Ini hanya sebuah program yang sangat sederhana dengan yang menulis kata-kata di layar.
Itu hanya jadi apa yang terjadi jika saya simpan file yang saya buat ketika program ini
dengan ekstensi khusus seperti. c, bukan dari. doc, atau. xls, atau apa pun
Anda akrab dengan, saya bisa benar-benar membuat program menggunakan bahkan sederhana ini
editor teks.
>> Jadi biarkan aku melakukan itu.
Biarkan aku pergi ke depan dan menyimpan ini mengajukan pertama sebagai hello.c.
Dan lagi, user interface akan menjadi akrab bagi Anda dengan cepat.
Tetapi untuk sekarang, aku hanya mengetik dalam nama file.
Aku akan menyimpannya ke John saya Direktori home Harvard.
Dan sekarang saya memiliki tab ini yang menunjukkan Saya memang mengedit
file bernama hello.c.
Jadi tidak terlalu menarik namun.
>> Dan sekarang itu akan mendapatkan cukup samar.
Aku akan memperbesar, hanya jadi lebih terlihat.
Dan aku akan mulai mengetik termasuk stdio.h, int main, batal, buka keriting
penjepit, satu, dua, tiga, empat ruang indentasi, mencetak f, untuk cetak
sesuatu yang diformat, kutipan tanda kutip, "Halo, dunia" backslash, n, dekat
kutipan, kurung tertutup, titik koma, masukkan backspace, backspace, backspace,
backspace, ditutup keriting brace -
Saya telah diprogram.
>> Baiklah jadi ini adalah super sederhana Program, benar-benar, program yang
siapa pun dimulai dengan pemrograman.
Dan semua hal ini, untuk segala kompleksitasnya, adalah mencetak pada
layar, coba tebak?
Halo dunia.
Tapi itu tidak cukup hanya untuk menulis program.
Jadi ini adalah kode.
Ini adalah kode sumber dalam bahasa yang disebut c.
Ini disimpan saat ini file bernama hello.c.
>> Sekarang lihat di bagian bawah dari layar di sini.
Lebih lanjut tentang ini, sekali lagi, di minggu-minggu yang akan datang.
Tapi ini adalah apa yang akan kita sebut jendela terminal.
Ini adalah berkedip, hitam dan prompt putih.
Ini semacam sebuah antarmuka sekolah tua untuk komputer yang umumnya tidak
menggunakan mouse atau lainnya elemen grafis.
Itu hanya menggunakan keyboard Anda.
Dan saya dapat mengetikkan perintah pada ini berkedip cepat.
>> Dan untuk tujuan hari ini, aku hanya akan ketik berikut -
membuat halo.
Dan program, buat, hanya program itu, di dunia nyata ini
hari, kita akan klik dua kali pada.
Tapi dalam interface ini untuk hari ini, kami akan mengetik namanya pada prompt ini.
membuat halo secara harfiah akan membuat saya sebuah program yang disebut halo.
Dan itu akan melakukannya dengan melihat untuk file, hanya dengan
default, yang disebut hello.c.
Ini akan menganggap saya ingin program C oleh sifat bagaimana komputer ini
dikonfigurasi.
>> Jadi aku pergi ke depan dan tekan enter.
Saya melihat beberapa output samar, tetapi ini akan menjadi terlalu
familiar lama.
Hal ini terjadi untuk menjalankan compiler, lebih pada suatu saat, yang disebut dentang.
Tapi sekarang, aku punya hanyalah berkedip meminta.
Dan aku bisa pergi ke depan sekarang dan ketik dot slash, untuk alasan menarik kita akan
kembali ke minggu depan -
halo.
>> Jadi semua upaya ini sejauh ini hanya untuk menulis sederhana program itu,
segera setelah saya tekan Enter, apakah itu.
Jadi saya telah menulis program pertama saya.
Jadi aku sengaja menusuk menyenangkan pada program ini sangat sederhana
untuk beberapa alasan.
Satu, sulit untuk mendapatkan bersemangat tentang mengambil kelas jika
ini adalah akhir permainan.
>> Tapi lebih dari itu, ada banyak gangguan di sini.
Pertama kali Anda belajar program, untuk Bagi Anda kurang nyaman, dan
bahkan aku, kembali pada hari, ketika saya pertama kali melihat sesuatu seperti ini - Anda dapat jenis
dari angka tersebut, baiklah, ini adalah di cetak hello world.
Tapi ada begitu banyak gangguan.
Ada begitu banyak sintaks pada layar yang mendapat di jalan sangat
sederhana, jika sederhana, ide.
>> Jadi apa yang akan kita lakukan hari ini adalah kita akan mengesampingkan C dan datang
kembali ke Senin.
Dan kita akan menggunakan grafis bahasa pemrograman yang disebut Scratch.
Ini adalah bahasa pemrograman, yang saya disinggung pada hari Rabu, itu akan
untuk memungkinkan kita untuk melakukan hal-hal yang sama tapi menutup mata, untuk hari ini,
dengan kurung kurawal, tanda kurung, titik koma, dan semua ini bodoh
gangguan yang mendapatkan di jalan, di ini hari pertama, beberapa dasar, cukup
ide-ide menarik.
>> Jadi untuk mencapai tujuan itu, aku akan pergi kembali ke desktop saya ke sini dan
memperkenalkan Anda ke alternatif yang Program, yang akan terlihat
sedikit sesuatu cahaya ini.
Itulah cara kita akan mengimplementasikan program yang sama hari ini - dua puzzle
potongan, ketika saling bertautan dan diklik, akan mengatakan kepada dunia,
hello world.
>> Jadi mari kita benar-benar pergi ke sana.
Jadi aku akan pergi ke depan dan membuka situs yang dikenal sebagai scratch.mit.edu.
Dan ini akan menyebabkan saya untuk situs ini di sini.
Di muka, saya sudah masuk ke ini website dan masalah pertama yang
akan memandu Anda melalui beberapa langkah-langkah ini.
Aku akan pergi ke depan dan klik pada folder awal saya di sini.
>> Dan ini akan menunjukkan beberapa proyek yang saya sudah
sebenarnya diciptakan di muka.
Dan ternyata grafis ini bahasa pemrograman tidak hanya akan
untuk memberitahu kami program dengan menyeret dan menjatuhkan potongan-potongan teka-teki, Anda
bahkan tidak perlu software khusus.
Ini semua tertanam dalam browser sehingga yang dapat Anda lakukan ini, dalam teori, pada
komputer Anda sekarang, karena beberapa dari Anda mungkin saja, bahkan tanpa perlu
software seperti CS50 alat, yang akan datang minggu depan.
>> Jadi aku akan pergi ke sudut atas di sini dan klik Create.
Dan dalam sekejap aku akan mendapatkan kosong layar melalui mana saya bisa mulai
pemrograman grafis ini lingkungan pemrograman.
Tapi kali ini, itu akan menjadi jauh, jauh lebih mudah untuk benar-benar melakukannya.
Jadi hanya dalam beberapa saat, ketika Wi-Fi bekerja sama, kita sekarang memiliki layar ini.
Jadi tur verbal cepat, tapi saya berani mengatakan, tentu ketika Anda menyelam ke dalam
Masalah pertama set, Anda akan menemukan ini semua sangat
diakses dan cukup intuitif.
Tapi mari kita melukis gambaran mental untuk sesaat.
>> Jadi di bawah ini cepat save mengatakan perubahan, Anda akan melihat awal.
Ini adalah sprite.
Ini karakter.
Dan dia tinggal di apa yang akan kita sebut panggung, ini persegi panjang putih besar di
yang ia dapat bergerak ke atas, bawah, kiri, kanan, dan lakukan, benar-benar,
jenis tindakan.
>> Sementara itu, di tengah-tengah pengguna ini antarmuka, kami memiliki sejumlah besar
potongan puzzle.
Dan Anda akan melihat bahwa mereka mengatakan hal-hal seperti bergerak 10 langkah, berbalik 15 derajat,
titik dalam arah tertentu.
Tapi ada kategori blok di sini juga.
Jadi jika saya pergi ke Looks, Anda akan melihat bahwa ada potongan puzzle lain yang
tampaknya akan memberitahu cit ini menyapa, untuk berpikir, untuk menunjukkan
sendiri, menyembunyikan dirinya.
Jika saya pergi ke Sounds, ternyata ada cara untuk memutar suara seperti meow,
untuk menghentikan semua suara, untuk memainkan drum.
>> Jadi, singkat cerita, ada keseluruhan sekelompok potongan puzzle yang memungkinkan Anda
untuk memberitahu kucing ini, atau sejumlah karakter lain, apa yang harus dilakukan.
Tetapi untuk membuat ini semua terjadi Anda perlu memulai pemrograman.
Dan ini kotak besar putih, atau kotak abu-abu, pada sisi kanan, di sinilah
Aku akan benar-benar menarik dan menjatuhkan potongan-potongan teka-teki.
Itulah teks kosong saya window setara.
>> Jadi aku akan pergi ke depan dan klik Kontrol di tengah.
Atau lebih tepatnya, aku mulai Acara bawah.
Dalam Acara bangku, Anda akan melihat beberapa hal yang sengaja
melengkung di atas sedemikian rupa sehingga mereka mungkin tidak berpaut pada
atas potongan puzzle.
Dan itu karena mereka Demark awal dari sebuah program, mulai dari
skrip, sehingga untuk berbicara.
Jadi jika saya pergi ke depan dan tarik, ketika hijau bendera diklik di sini, dan kemudian aku
ingin kucing ini mengatakan sesuatu pada awalnya.
Jadi aku akan pergi di bawah tampak panel.
Dan aku akan pergi ke depan dan ambil menyapa blok, dan drag, dan drop,
dan melepaskan sehingga secara otomatis interlocks ada.
>> Dan kemudian melihat saya bisa klik pada teks.
Dan aku bisa menimpa untuk menjadi lebih spesifik seperti, katakanlah, hello world.
Dan sekarang kita memiliki program yang saya klaim adalah setara dengan yang jauh lebih
Program misterius saya menerapkan di C beberapa saat yang lalu.
>> Jika aku pergi sekarang ke sisi kiri, melihat ada tanda berhenti besar
dan bendera hijau besar.
Biarkan aku memperbesar untuk kejelasan.
Dan ketika saya sekarang klik bendera hijau, Anda mungkin bisa menebak apa yang pertama ini
Program ini sekarang akan dilakukan.
Jadi, juga, kita pemrograman, tetapi kita tidak benar-benar macet
di beberapa dari mereka sintaksis, rincian menit.
>> Tapi mari kita mencoba sesuatu yang sedikit lebih menarik.
Biarkan aku pergi ke folder Scratch saya di sini.
Dan sebenarnya, biarkan aku jadi izinkan saya membuka program terpisah sini untuk hanya
saat, Maksimalkan jendela ini, Berkas Terbuka, dan aku akan pergi ke hari ini
direktori source.
Seperti biasa, Anda akan menemukan, hari ini dan dan seterusnya, bahwa semua contoh saat ini
dapat diakses dalam website kursus itu.
>> Dan aku akan pergi ke depan di sini dan memilih up sedikit sesuatu yang berbeda.
Yang ini, yang Aku butuh sukarelawan.
Siapa yang mau lampu meja hari ini?
OK, bagaimana tentang seseorang sedikit - kamu pada akhirnya?
Ayo turun.
Sekarang, Anda ingin berpartisipasi, atau hanya mengatakan mulai dengan lampu meja?
>> VANESSA: [Tak terdengar].
>> DAVID Malan: OK.
Luar biasa, apa nama Anda?
Vanessa?
David.
Senang bertemu Anda.
Jadi datang ke atas dan Vanessa akan untuk mengambil kendali dari saya
Keyboard untuk sesaat.
Dan apa yang saya lakukan di sini, hanya untuk waktu yang kepentingan, seperti yang telah saya menyadari
Wi-Fi adalah agak lambat, Scratch, yang pemrograman lingkungan bahwa kita
menggunakan, juga dapat didownload dan berjalan pada komputer lokal Anda.
Jadi apa yang saya lakukan di muka kuliah, di kasus yang terjadi, adalah saya download
semua file kita akan bermain dengan sehingga mereka dapat menjalankan sedikit lebih
cepat di sini di laptop saya.
Jadi itu sebabnya sekarang aku melihat interface Mac-spesifik.
>> Jadi aku akan pergi ke depan dan membuka satu ini.
Aku akan pergi ke depan sekarang dan layar penuh jendela.
Dan seperti yang Anda akan melihat, kita bisa sangat cepat, sebagai mahasiswa ini melakukan, salah satu
pendahulu Anda, pergi dari hello world untuk yang jauh lebih menarik
aplikasi.
Jadi di sini adalah instruksi.
Oh, dan kami memiliki satu hal lainnya.
Saya pikir akan menyenangkan, karena, biasanya, kita akan syuting
kamera dengan cara ini.
Saya pikir akan menyenangkan jika, Vanessa, kita bisa melihat dunia
melalui mata Anda.
Jadi di sini kita memiliki beberapa Google Glass.
>> [HERAN Terengah]
>> DAVID Malan: Kami hanya akan memberikan pergi lampu meja hari ini.
>> [Tertawa]
>> Jadi biarkan aku isyarat ini.
Baiklah, jadi menyentuh ini.
OK, Kaca, merekam video.
Baiklah, Vanessa?
Sekarang, sebagai samping yang telah mendapat apa-apa hubungannya dengan Scratch, jika Anda melihat
sedikit naik dan ke kanan, Anda akan melihat kaca literal, dan Anda harus
melihat jendela persegi panjang kecil.
Anda harus melihat semua teman sekelas Anda difilmkan sekarang?
Ya.
>> VANESSA: Ya.
>> DAVID Malan: OK.
Jadi itu bagus.
Kami akan merilis rekaman ini nanti.
Untuk saat ini, mengalihkan perhatian Anda ke layar di sini.
Dan apa pendahulu Anda telah dilakukan adalah menaruh beberapa instruksi pada layar
hanya dengan menggunakan program cat.
Jadi Anda akan, dalam beberapa saat, tekan spasi untuk memulai.
Dan kemudian beberapa potongan puzzle akan untuk mulai bergerak naik layar.
Dan Anda ingin memukul tombol panah, hanya seperti secara real DDR, sesuai
dengan hal-hal berbaris dengan mereka panah.
>> VANESSA: OK.
>> DAVID Malan: Anda telah memainkan ini sebelumnya.
>> VANESSA: Ya.
>> DAVID Malan: Baiklah, Vanessa, pergi ke depan dan membawanya pergi.
>> [MUSIC - Kayne Barat, "KUAT"]
>> [Tepuk Tangan]
>> DAVID Malan: Jadi mari kita sekarang mengambil langkah dari itu.
Jadi jelas, itulah akhir permainan.
Pertandingan berakhir tidak hello world.
Tapi Anda tidak harus selalu dilakukan hal-hal yang sangat interaktif.
Anda juga dapat melakukan animasi.
Jadi misalnya, satu lagi dari Anda penerus membuat program ini di sini,
yang menceritakan sebuah cerita lebih dari itu tidak dilaksanakan permainan.
Jadi biarkan aku pergi ke depan dan membuka sini Program dalam direktori sumber yang sama kami
dari hari ini.
Ini satu panggilan, dan mari kita mulai dengan, kisah cinta kue.
>> Dan bukan untuk membuat ini terlalu akademis, namun, ketika Anda menonton satu ini, pikirkan untuk
sendiri mana yang sederhana konsep pemrograman kita sudah bicara
tentang sejauh -
variabel, dan loop, dan kondisi, tidak pendahulu Anda mungkin menggunakan hanya
untuk melaksanakan beberapa visualisasi.
Anda lihat di sini.
Jadi saya memberikan Sebuah cerita cinta kue.
>> [MUSIC - GREEN DAY, "HOLIDAY"]
>> [CRASH]
>> [MUSIC - THE TURTLES, "SELAMAT BERSAMA"]
>> DAVID Malan: Baiklah, jadi ada, kami memiliki sebuah kisah cinta kue.
Tapi bahkan di sana -
>> [Tepuk Tangan]
>> DAVID Malan: Baiklah, bahkan di sana, pikirkan, seperti yang pergi dari hati
bagian bawah ke atas layar, sebenarnya ada sedikit
keacakan terjadi.
Dan memang, kita akan melihat bahwa bahkan di sederhana lingkungan, seperti
Scratch, seperti di C, Anda dapat menghasilkan nomor acak, atau ilusi
angka acak, sehingga permainan adalah sedikit lebih menarik daripada itu mungkin
jika Anda telah benar-benar keras kode segalanya.
>> Dalam gerakan yang Anda lihat, ada ada beberapa jenis respon.
Segera setelah gingerbread man menyentuh wanita jahe, dia
tampaknya menjauh.
Dan, memang, Anda dapat menerapkan, di bahasa pemrograman yang paling, gagasan
peristiwa, dimana jika sentuhan tangan sisi lain, yang dapat memicu beberapa
kode sumber ke benar-benar melaksanakan.
Anda dapat mendengarkan untuk seperti hal di layar.
>> Jadi mari kita tur singkat, kemudian, beberapa blok bangunan kita dapat menggunakan
untuk mencapai beberapa tujuan ini.
Jadi, inilah yang kita akan selanjutnya sebut sebuah pernyataan.
Sebuah pernyataan kebetulan ungu Scratch, sedikit sesuatu seperti ini,
tapi itu sewenang-wenang.
Pernyataan adalah hanya sepotong teka-teki atau, lebih umum, instruksi, yang
memberitahu komputer untuk melakukan sesuatu, sebuah pernyataan.
>> Jadi, inilah contoh sederhana.
Menyapa dunia.
Satu lagi mungkin menunggu satu detik.
Jadi teka-teki ini bagian, yang didukung di Scratch, kami akan memberitahu Anda
karakter jeda selama beberapa jumlah detik.
Ini juga, hanya sebuah pernyataan.
>> Disini berikutnya, kita memiliki lain lebih menarik satu, bermain suara meong, dan
panah kecil berarti bahwa dalam Scratch, ini adalah menu drop down.
Sehingga Anda dapat mengimpor suara.
Anda dapat merekam suara dan melakukan lain hal menyenangkan di Scratch.
Dan itu juga, meskipun, pada akhir hari, hanya sebuah pernyataan.
Tapi sekarang mari kita memperkenalkan lebih bagian yang menarik, yang dikenal sebagai
Ekspresi Boolean.
Modal B, dinamai seorang rekan bernama Bool.
>> Dan ekspresi Boolean hanya potongan puzzle atau, lebih umum,
bagian dari informasi yang benar atau salah -
satu atau nol, ya atau tidak.
Jadi itu hanya salah satu dari mereka dua hal yang bertentangan.
Jadi salah satu ekspresi Boolean seperti di dunia Scratch terlihat seperti ini biru
teka-teki potongan.
Dan itu mengajukan pertanyaan, mouse bawah, dan yang dapat menjadi, dari
Tentu saja, benar atau salah.
Jadi dengan teka-teki ini bagian dalam Scratch, baik, Anda akan dapat mendeteksi jika
teka-teki jika mouse, pada kenyataannya, menjadi ditekan oleh interaksi manusia
dengan program anda.
>> Yang ini sedikit lebih abstrak, tetapi mereka dua kotak putih
hanya untuk nomor.
Sehingga Anda dapat melakukan hal-hal seperti ini adalah jumlah kurang dari yang lain?
Dan jika demikian, Scratch akan berperilaku salah satu cara atau yang lain.
Yang ini sedikit lebih grafis.
Ini jika sprite, jika kucing, untuk Misalnya, sebenarnya menyentuh
pointer mouse.
Jadi jika panah kepala sedikit yang melayang lebih dari kucing, maka ini
potongan puzzle akan mengevaluasi dengan benar.
Ini akan menjadi kenyataan, dalam hal ini, jika Anda menggunakan ekspresi Boolean, seperti yang kita akan
lihat sebentar, di cabang, Anda dapat baik melakukan hal ini, atau Anda bisa melakukan itu,
banyak seperti kami memiliki kondisi yang diperiksa, apakah ada satu orang lagi lalu
dalam ruangan?
Jika demikian, menambahkan satu.
Jika tidak, jangan khawatir lanjut.
>> Jadi ekspresi Boolean juga bisa dan-ed bersama-sama atau atau ed bersama-sama.
Sehingga Anda dapat menggabungkan ekspresi Boolean dan mengatakan ini dan ini harus benar untuk
seluruh hal untuk menjadi kenyataan.
Dan di sini adalah contoh dunia yang lebih nyata.
Jika Anda telah menggunakan CS50 Kursus untuk melakukan kursus belanja, kotak-kotak centang
sana, di mana jika Anda memeriksa kotak yang berikutnya program, yang akan mengatakan, ya,
hanya menunjukkan program yang nilai Q adalah 4.5 atau lebih tinggi.
Jika Anda hapus centang, tidak, jangan khawatir tentang itu.
Atau sama, di sebelah kanan, Apakah tidak Konflik Dengan Program Aku Mengambil,
itu benar atau salah.
Ini hanya ekspresi Boolean.
Jadi selama ini ketika Anda sudah digunakan website dengan kotak centang, Anda hanya
Toggling setara dengan Boolean ekspresi dan mematikan.
>> Jadi dalam bentuk apa yang Anda gunakan ini?
Nah, dalam Scratch, kita akan lihat sebentar lagi bahwa ada kondisi yang
terlihat seperti ini.
Dan itu agak masuk akal karena banyak seperti pada pseudocode, kami menjorok
jenis potongan puzzle berbentuk U, berarti bahwa apa pun dalam U yang
akan mengeksekusi, atau tidak, tergantung di mana itu.
Jadi jika ekspresi Boolean, maka apapun yang ada di dalamnya akan dieksekusi.
>> Sementara itu, ada sebuah blok jika / lain.
Jadi jika Anda ingin cabang yang berjalan ini cara atau itu, Scratch memberi kita itu.
Dan dengan logika ini, sekarang, meskipun itu potongan puzzle jelas terlalu kecil
irisan sesuatu yang lain di dalamnya, potongan-potongan teka-teki awal, mereka
hanya akan tumbuh.
Ketika Anda drag dan drop atas sesuatu, itu hanya akan tumbuh sesuai apa pun
adalah Anda coba lakukan.
>> Jadi kita bisa mengambil dua dari hal-hal ini dan membuat garpu cara tiga jalan sehingga
bahwa baik Anda melakukan ini, atau itu, atau hal lainnya hanya dengan bersarang mereka
dengan cara itu.
Tentu saja, jika Anda melakukannya juga banyak, mulai mendapatkan jelek.
Tapi pada saat itu, Anda benar-benar mungkin tidak pemrograman sangat baik.
Dan sehingga akan berulang tema, juga, bahwa gaya.
Hanya seberapa baik sebenarnya memformat kode Anda?
Atau seberapa baik Anda merancang kode Anda?
Tapi lebih pada bahwa di masa depan.
>> Dan sekarang kami memiliki loop.
Ada lingkaran selamanya bagus di Scratch yang secara harfiah berarti - melakukan
apa pun dalam hal ini lagi, dan lagi, dan lagi.
Anda bisa menjadi lebih konkret dan berkata, melakukan hal berikut 10 kali.
Anda juga dapat menggunakan variabel.
Anda bisa datang dengan nama apapun dalam sedikit drop-down dan berkata, beri saya
variabel yang disebut n dan mengatur itu sama untuk beberapa nilai.
Dan kemudian Anda dapat memiliki fungsi.
Tapi lebih pada orang-orang hanya dalam beberapa saat.
>> Biarkan aku kembali ke saya Gores antarmuka.
Dan biarkan aku pergi ke depan saat ini.
Dan mari kita pergi ke depan dan membuka, katakanlah, sebuah contoh dari -
yang sedikit lebih menarik.
Biarkan aku pergi ke depan, dan, sebenarnya, biarkan aku hanya membuat sendiri.
Saya tidak perlu membuka satu ini.
Biarkan aku pergi ke File, New.
Aku akan pergi ke acara.
Aku akan pergi ke ketika bendera hijau diklik, dan aku akan pergi ke Suara.
Dan aku akan drag dan drop ini potongan puzzle, bermain meong suara.
Ini kait bersama-sama.
Dan sekarang, jika saya klik bendera hijau -
>> [MEOW SUARA]
>> DAVID Malan: Adorable.
OK, jadi sekarang mari kita lakukan sesuatu yang sedikit lebih logis hanya untuk menunjukkan bahwa
kita bisa, untuk saat ini.
Aku akan membuka pasak ini dari orang itu.
Aku akan pergi ke Control.
Dan aku akan ambil kondisi.
Jadi jika sesuatu maka.
Jadi itulah bagaimana tampilannya di sana.
Jadi aku butuh ekspresi Boolean.
Dan biarkan aku pergi ke depan dan berkata, biarkan aku pergi ke Operator.
Aku akan melakukan sesuatu yang sedikit mathy, hanya untuk iseng.
Aku akan pergi di sini dan mengatakan, jika sesuatu yang kurang dari sesuatu yang lain,
pergi ke depan dan melakukan sesuatu.
Jadi sekarang, Anda tahu apa, blok acak.
Jadi perhatikan bagaimana, jika saya membawa lebih dari ini hal di sini, yang akan patah sana.
>> Jadi sekarang, pemberitahuan, aku mulai melakukan sesuatu yang sudah lebih logis
menarik.
Jika nomor acak antara 1 dan 10 kurang dari, katakanlah enam.
Jika saya memilih enam, yang pada dasarnya berarti, lakukan langkah berikut dengan 50%
probabilitas.
Ini seperti membalik koin.
Sekarang, aku bisa melakukan sesuatu kondisional.
Dan itu sesuatu yang aku akan lakukan adalah memutar suara.
Jadi sekarang, ketika saya klik pada layar bendera, itu seperti melempar koin.
>> [MEOW SUARA]
>> DAVID Malan: Itu kepala atau entah apa lagi di sana.
Mari kita lakukan lagi.
>> [MEOW SUARA]
>> DAVID Malan: Heads lagi.
>> [MEOW SUARA]
>> DAVID Malan: Heads lagi.
Fiuh, OK.
Ekor waktu itu.
Jadi 50% dari waktu, jika kita melakukan ini panjang tak terhingga, kita akan mendapatkan 50% meows
dan membungkam 50%.
Jadi, hanya bangunan dasar blok yang memungkinkan kita melakukan itu.
Tapi ini adalah jenis membosankan yang saya miliki terus klik tombol itu.
Jadi mari kita hanya drag dan melemparkan semua orang pergi.
Jika Anda menyeret mereka ke tengah, mereka hanya akan menghapus sendiri.
>> Biarkan aku pergi untuk mengontrol.
Biarkan aku pergi selamanya.
Dan kali ini, saya akan melakukan sesuatu minorly menjengkelkan.
>> [Tertawa]
>> DAVID Malan: Dan biarkan aku pergi depan dan melakukan kontrol.
Tunggu satu detik, hanya begitu itu tidak terlalu kisi.
>> [MEOW SUARA]
>> DAVID Malan: Itu tidak wajar.
OK.
>> [MEOW SUARA]
>> DAVID Malan: Dan perhatikan apa, bagus tentang Scratch, bagi anda yang
memiliki pengalaman sebelumnya programing, Anda tidak perlu untuk memulai dan menghentikan.
Anda tidak perlu untuk mengkompilasi.
Anda hanya mengubahnya, dan program akan beradaptasi secara dinamis.
Jadi, ini adalah mendapatkan kecil yang menarik.
Tapi mari kita mengambil satu langkah lebih jauh.
Biarkan aku pergi ke depan dan mendapatkan Singkirkan program itu.
>> [MEOW SUARA]
>> DAVID Malan: Itulah yang kita akan sebut bug di Scratch.
Dia seharusnya tidak terus membuat suara itu.
Jadi kita kita akan menyuruhnya berhenti.
Baiklah, jadi sekarang aku akan pergi ke -
Aku akan membiarkan MIT tahu.
Kita akan pergi ke sini untuk Selamanya.
Dan sekarang, saya ingin melakukan sesuatu lagi dan lagi.
Aku akan pergi ke Control.
>> Dan mari kita lihat, aku akan menyeret saya jika kondisi di sana.
Jadi sekarang melihat logika.
Ketika bendera hijau diklik, lakukan sesuatu yang selamanya, tetapi hanya melakukan itu
sesuatu jika hal ini lainnya adalah benar.
Aku akan pergi ke, mari kita mengatakan, penginderaan.
Dan aku akan pergi ke depan dan memilih menyentuh dan jatuhkan di sana.
Itulah ekspresi Boolean.
>> Dan sekarang, perhatikan, dalam daftar ini down menu, ada
beberapa nilai yang telah ditetapkan.
Jadi bisa saya katakan, kau menyentuh tepi layar?
Atau apakah Anda menyentuh pointer mouse, panah di layar?
Jadi aku akan melakukan itu.
Dan jika demikian, maka aku akan pergi depan dan bermain meong suara.
Jadi sekarang aku jenis memiliki awal dari permainan -
permainan menggemaskan.
>> [MEOW SUARA]
>> DAVID Malan: OK, menggemaskan, permainan kereta.
Biarkan saya menunggu, katakanlah, satu detik di sana.
Sekarang bermain lagi, dengan mengklik bendera hijau.
>> [MEOW SUARA]
>> DAVID Malan: Jadi sekarang seperti membelai kucing.
>> [MEOW SUARA]
>> DAVID Malan: Baiklah, sekarang ini salah Aku memang membuat terlebih dahulu.
Sangat terlambat, mendapat semacam mudah untuk melakukan hal-hal bodoh.
Jadi biarkan aku pergi di sini.
Katakanlah, yang Pet Cat.
Mari kita sekarang buka Jangan Pet Cat.
Sekarang, jika kami bermain satu ini, Anda bisa menebak, jika Anda
melihat layar -
>> [MEOW SUARA]
>> DAVID Malan: Sekarang, jika saya pet kucing
>> [LION'S ROAR]
>> DAVID Malan: Jadi tidak benar-benar pet kucing dalam kasus itu.
Jadi sekarang kita hanya memiliki contoh dari cabang yang akan dalam dua arah.
Sekarang biarkan aku pergi ke depan dan membuka satu lagi di sini.
Yang satu ini, juga, antara sumber kami file kode untuk hari.
Jadi biarkan aku kembali ke Sumber saya direktori dan masuk ke dalam, mari kita pilih
orang ini di sini dan melihat apa yang berbeda.
>> Wow, semua yang benar, jadi sekarang itu semakin sedikit lebih kompleks.
Dan sebelum kita melihat apa yang orang ini tidak, mari kita coba untuk menyimpulkan, dari program
di sisi kanan.
Dan sekarang awal jelas memungkinkan kita untuk memiliki beberapa script, beberapa
program yang terkait dengan satu sprite, dengan satu karakter, dan, tampaknya,
mereka berdua akan berjalan berbaris.
Karena kedua program ini dimulai dengan ketika hijau bendera klik, ini
mengisyaratkan pada topik yang lebih maju, dengan yang beberapa dari Anda mungkin akrab,
dikenal sebagai threading, atau multi-threading.
>> Ternyata, cerita panjang pendek, komputer hari ini pada dasarnya dapat melakukan beberapa
hal sekaligus.
Atau mereka bisa melakukan satu hal pada suatu waktu sehingga cepat sehingga Anda bahkan tidak menyadari bahwa
itu benar-benar melakukan satu hal pada suatu waktu.
Tapi untuk saat ini, mari kita asumsikan bahwa kedua program ini akan mengeksekusi
waktu yang sama.
Dan perhatikan, keduanya memiliki selamanya teka-teki potongan.
Jadi mereka berdua akan tetap berjalan sampai aku memukul tanda berhenti merah.
>> Jadi apa yang akan mereka lakukan?
Di sisi kiri, aku rupanya mendeklarasikan variabel disebut diredam.
Jadi saya tidak menyebutnya sesuatu seperti membosankan seperti N. Aku menyebutnya diredam ini
waktu untuk menyampaikan makna.
Aku mengaturnya sama dengan nol.
Mari kita menganggap hal itu sebagai palsu, atau mari kita berpikir bahwa sebagai False.
>> Sekarang, selamanya lakukan hal berikut.
Jika spasi keyboard yang ditekan, kemudian jika diredam sama dengan nol,
kemudian mengubah diredam untuk sama dengan satu.
Lain, mengatur diredam ke nol.
Jadi secara logis, meskipun itu secara keseluruhan sekelompok potongan puzzle yang
hanya mengatakan, ketika saya menekan Space bar, apa yang harus saya lakukan untuk variabel
disebut diredam?
Mengubahnya dari satu sampai nol, atau nol sampai satu.
Itu saja.
Jadi seperti menyalakan tombol lampu on atau off dan mengingat, dengan
variabel, bahwa saya telah melakukan itu.
>> Sementara itu, di sisi kanan, di istilah awam, apa tujuan dari
script di sebelah kanan?
>> SISWA: Untuk memutar suara singa laut.
>> DAVID Malan: Untuk memutar Sea Lion suara, jika ia tidak diredam, oleh
sifat variabel tersebut.
Jadi kita berbagi negara, sehingga untuk berbicara, berbagi informasi di kedua
script karena, perhatikan di sini, kita selamanya melakukan hal berikut.
Jika diredam adalah nol, jadi jika tidak diredam - jika diredam adalah palsu, kemudian bermain
Singa ini suara Laut.
Dan berpikir untuk diri sendiri, hi, hi, hi, untuk dua detik, tunggu sebentar, dan kemudian
periksa lagi.
Jadi, jika kita pergi sekarang ke sini ke kiri, ke mana orang ini, dan tekan
bendera hijau,
>> [SEA LION SUARA]
>> DAVID Malan: Pada titik tidak ini bisa benar-benar menjengkelkan?
Karena hal ini hanya akan berlangsung selamanya.
Jadi kadang-kadang, loop tak terbatas, sehingga untuk berbicara, yang disengaja.
Tapi dalam kasus ini, segera setelah saya hit Space bar, ia berhenti.
Sekarang program ini belum berhenti.
Ini masih berjalan dalam loop.
Tetapi jika saya mendapatkan spasi lagi -
>> [SEA LION SUARA]
>> DAVID Malan: Dia akan memilih up di mana ia tinggalkan.
Jadi ada satu cara bagi kita untuk melakukan sesuatu lagi dan lagi tapi, itu
waktu, hanya kondisional.
Nah, sementara kita berada di vena ini melakukan hal lagi dan lagi, biarkan aku
masuk ke contoh lain lagi di sini.
Yang satu ini kita sebut menghitung domba.
>> Dan perhatikan apa orang ini tidak.
Ini sebenarnya sedikit lebih seperti pseudocode kami bermain dengan on
Rabu, dimana ia menetapkan beberapa counter, berpikir itu adalah sebagai N lagi, untuk
nol, ia selamanya melakukan berikut ini.
Dia mengatakan nilai counter untuk satu kedua, menunggu kedua, dan kemudian
perubahan counter per satu.
Dan dalam konteks ini, yang baru saja berarti kenaikan itu.
Jadi dia menambahkan satu untuk itu.
Jadi ini benar -
itu tidak cukup apa yang kita pikirkan sebagai menghitung domba.
Ini domba melakukan penghitungan, selamanya, naik dari nol.
>> Jadi kita bisa melakukan hal yang serupa ada, secara logis.
Tapi sekarang mari kita coba untuk membersihkan beberapa hal-hal ini.
Biarkan aku pergi ke depan sekarang menjadi sederhana contoh di mana kucing kami hanya akan
mulai batuk.
Baiklah, jadi di sini kita memiliki batuk 0 -
ilmuwan komputer mulai menghitung dari 0.
Jadi kucing ini hanya akan batuk tiga kali.
Dan inilah cara saya menerapkan itu.
Ketika bendera hijau diklik, batuk, tunggu, batuk, tunggu, batuk, tunggu.
Dan aku melakukan ini hanya dengan menyeret dan menjatuhkan potongan puzzle.
Atau jika Anda mulai bermain-main dengan Scratch, Anda akan melihat Anda dapat benar-benar
menduplikasi potongan sehingga Anda dapat melakukan hal yang lebih cepat tanpa menyeret
dan menjatuhkan nauseum iklan.
>> Tapi kami tidak di jalan terbaik di sini.
Karena bagaimana cara membuatnya batuk keempat kalinya?
Yah, aku bisa semacam turun di sini.
Aku bisa menduplikasi dan kemudian paste ini di sana.
Bagaimana cara membuatnya batuk kelima kalinya?
Nah, copy dan paste lagi.
Atau tarik turun lagi.
Dan sangat cepat, program ini dimulai untuk benar-benar, benar-benar berlebihan,
sangat panjang, tapi benar-benar menarik.
Tapi ada cara untuk membersihkan ini.
Apa cara yang jelas untuk membersihkan ini?
>> OK, jadi kita bisa benar-benar benar-benar pergi keluar dan, ketika anda menekan ruang
bar, memiliki dia batuk.
Tetapi jika saya hanya ingin melakukan sesuatu berulang-ulang, mengingat bahwa kita memiliki
beberapa kontrol konstruksi.
Mari saya memindahkan keluar dari cara, pergi di bawah kontrol.
Biarkan aku hanya melakukan mengulang, mengatakan, tiga kali.
Dan sekarang biarkan aku mencuri beberapa potongan-potongan teka-teki.
Biarkan aku jepret ini disini.
Mari saya melemparkan ini pergi sama sekali.
>> Dan sekarang, aku punya lebih baik program yang dirancang.
Kenapa?
Jika saya ingin mengubah jumlah kali kucing ini batuk, semua saya harus
lakukan adalah mengubah satu variabel, atau satu nilai, lebih dari tiga, sampai empat, atau
lima, atau enam.
Atau aku bisa melakukan sesuatu kondisional, Bahkan, dengan ruang
bar jika saya ingin.
>> Jadi ini adalah prinsip umum.
Setelah Anda mulai menyalin dan menyisipkan kode, apakah itu dalam Scratch, atau
C, Anda sedang melakukan sesuatu salah, kemungkinan besar.
Atau setidaknya, setelah Anda melebihi beberapa jumlah memadai salinan dan
pasta, Anda mungkin melakukan sesuatu yang salah.
>> Tapi kau tahu apa?
Aku benar-benar tidak seperti ini.
Ini bukan desain terbersih.
Saya berharap ada sepotong puzzle yang disebut batuk karena saya tidak akan
harus melaksanakan ini sendiri, dengan cara lama, dengan
setelah berkata, dan menunggu -
bagaimana jika mereka hanya sepotong puzzle batuk.
>> Yah, aku benar-benar bisa melakukan itu.
Biarkan aku pergi di bawah blok lagi, klik Membuat Blok, dan sekarang saya mendapatkan ini
window sini.
Aku akan menelepon hal ini batuk.
Aku akan pergi ke depan dan klik OK.
Dan sekarang perhatikan, saya mendapatkan awal baru sepotong yang melengkung di atas.
Dan apa yang akan saya lakukan dengan ini, saya akan hanya mencuri blok ini.
Aku akan menempatkan mereka di sini.
>> Dan sekarang, dengan tiga potong, aku sudah dilaksanakan apa yang saya akan memanggil
fungsi, atau prosedur, atau beberapa Anda mungkin tahu itu sebagai sebuah metode.
Sedikit perbedaan antara kata-kata.
Tapi untuk saat ini, mari kita menyebutnya fungsi.
Ini hanya sepotong teka-teki baru.
Sekarang ini diterapkan seperti ini.
>> Tapi perhatikan bahwa Scratch telah memberi kita representasi fisik yang utuh
blok di sini.
Jadi sekarang, saya hanya dapat menarik ini di sini, mengatakan, ulangi tiga kali, dan
apa yang akan terjadi sekarang, ketika saya bermain script ini, hanya satu program
berjalan pada suatu waktu.
Hanya ada satu ketika bendera hijau diklik.
Tapi itu blok ungu disebut batuk efektif memberitahu Scratch, setiap
kali Anda melihat bahwa potongan puzzle, sebenarnya mengeksekusi langkah-langkah yang saya
terjadi untuk melaksanakan secara manual.
>> Jadi itu agak rapi.
Tapi sekarang, anggaplah bahwa saya memutuskan, saya tidak ingin kucing ini hanya untuk batuk.
Aku ingin dia bisa bersin juga.
Nah, bagaimana kita bisa pergi tentang menerapkan bersin?
Yah aku bisa cukup banyak melakukan hal yang sama.
Aku bisa membuat blok lain.
Aku bisa menelepon bersin ini, klik OK.
>> Kemudian, di sini aku bisa benar-benar telah, biarkan aku menduplikasi -
dan ada di mana Anda harus merasa seperti Anda mungkin tidak melakukan sesuatu dalam
cara terbaik.
Aku bisa mengatakan sesuatu seperti, Achoo, untuk satu detik.
Tunggu satu detik.
Sekarang saya memiliki blok baru yang disebut bersin.
Dan memang, ada itu.
>> Tapi ini juga harus mulai merasa - mungkin bukan minggu pertama kelas, tetapi
oleh kedua - hanya sedikit berlebihan.
Jelas, ada beberapa redundansi sini.
Jadi biarkan saya mengusulkan, sebaliknya, bahwa kita memperbaiki definisi ini sebagai berikut.
>> Biarkan aku pergi ke menu file saya.
Aku tidak akan menyimpan versi ini.
Aku akan pergi ke salah satu file premade saya di sini.
Dan aku akan pergi ke depan dan membuka batuk 2.
Whoops itu batuk 2.
Biarkan aku pergi ke depan dan membuka batuk 3, yang merupakan direktori ini sumber.
Batuk 3 dan perhatikan - oh, saya mengatakan cerita dalam urutan yang salah.
Mari saya pulih dari cerita ini.
>> Cerita Aku dimaksudkan untuk memberitahu berakhir dengan batuk 4 -
ada itu.
Jadi bagaimana jika saya, sebaliknya, menentukan sepotong puzzle besar yang disebut
mendefinisikan, ucapkan kata n kali.
Bersin hanya, tampaknya, di Scratch, Achoo.
Jadi kita mengungkapkannya sebagai sebuah kata, hanya karena itulah
kendala program.
Dan batuk adalah [BATUK], tapi batuk, C-O-U-G-H. Jadi itu hanya dua
kata yang berbeda lakukan, pada dasarnya, hal yang sama.
>> Jadi saya benar-benar dapat membuat blok baru seperti ini.
Saya tidak menggunakan opsi menu ini sebelumnya.
Tetapi ketika Anda mengklik Membuat Blok, Anda dapat memilih beberapa pilihan.
Dan Anda dapat mengatakan bahwa blok ini sebenarnya membutuhkan beberapa masukan, jika tidak
dikenal sebagai argumen, atau parameter, sehingga bahwa Anda dapat memodifikasi perilaku
blok Anda.
>> Jadi apa yang saya lakukan beberapa saat yang lalu telah Aku menelepon blok ini Say.
Dan kemudian aku berkata, dibutuhkan sebuah string input.
Dan sekarang perhatikan, secara default, ia mengatakan String 1.
String adalah hanya sebuah kata, atau frase, untuk tujuan kita.
Tapi aku hanya akan menaruh beberapa placeholder teks di sana, seperti di
website, ketika Anda melihat nama pengguna, atau password, dan kemudian menghilang saat
Anda mulai mengetik.
Itu semua itu.
>> Dan sekarang aku akan menambahkan masukan nomor.
Dan aku akan menelepon n ini - tapi itu cukup sewenang-wenang.
Dan kemudian hanya label, hanya untuk membuat blok ini sedikit lebih mandiri
jelas -
kali, itulah yang saya lakukan.
Dan hasil akhirnya adalah bahwa saya mendapatkan blok yang terlihat seperti ini.
>> Dan sekarang perhatikan, saya menggunakan blok ulangi.
Namun, bukannya keras coding tiga, aku menyeret dan menjatuhkan n di sana jadi saya
dapat parametrize fungsi.
Aku bisa membuat fungsi ini melakukan sesuatu nomor yang berbeda dari kali berdasarkan
nilai tersebut.
>> Dan perhatikan, mengatakan, ini adalah apa yang saya lakukan di sini, jika saya tarik kata, saya bisa mengatakan tidak
keras kode kata, tapi apa pun dilewatkan untuk satu detik.
Sementara itu, bagaimana cara kembali menerapkan batuk?
Saya bukannya mendefinisikan batuk sebagai mengatakan batuk n kali.
>> Jadi singkatnya, aku akan melalui ini cepat, tetapi ide dasarnya adalah segera
setelah Anda mulai melihat dalam program Anda bahwa, tunggu sebentar, saya sudah melakukan
sesuatu yang cukup seperti ini sebelumnya, Saya dapat beberapa faktor umum
fungsi?
Dapatkah saya membusuk apa yang saya lakukan ke beberapa ide dasar?
Itulah yang kita lakukan di sini.
Dan aku sudah ditumpuk-hal ini, visual, di atas satu sama lain
karena itu bukti bahwa gagasan dimulai dengan biner, akan ASCII,
membuat program grafis, semacam layering ide semakin kompleks pada
atas satu sama lain.
>> Ide yang sama di sini.
Saya mulai dari Gores, menerapkan batuk, kemudian menyadari batuk adalah
benar-benar hanya mengatakan sesuatu.
Jadi biarkan aku bukannya melaksanakan gagasan mengatakan sesuatu.
Dan di atas itu, bisa saya menerapkan Achoo, atau batuk?
Dan kita bisa berbuat lebih banyak seperti varian masih.
>> Jadi dari prinsip dasar ini, kita bisa mulai melakukan
semakin program yang kompleks.
Mari saya membuka satu ini.
Kami benar-benar dapat memiliki beberapa sprite berinteraksi di layar sekaligus.
Jika saya pergi ke direktori source saya dan ambil satu disebut Threads, ingat bahwa
benang hanya benar-benar kemampuan dari dua script untuk menjalankan berdampingan
sisi pada saat yang sama.
>> Perhatikan sekarang, memiliki keduanya sprite burung dan sprite kucing, keduanya memiliki
script mereka sendiri.
Jadi pemberitahuan, ketika saya klik kucing, saya mendapatkan script ini.
Ketika saya klik burung, Saya mendapatkan script ini.
Jadi masing-masing orang memiliki program sendiri.
Ketika saya sekarang klik bendera hijau, perhatikan bahwa apa program ini dilakukan adalah
memiliki kucing, sangat perlahan-lahan, mengejar burung.
Tapi kucing itu memiliki keuntungan memiliki telah diprogram sedemikian rupa
bahwa tidak peduli di mana burung adalah, kucing berjalan ke arahnya.
>> Kita bisa memainkan permainan yang jauh lebih cepat.
Jadi jika aku di kucing, perhatikan bahwa aku menggunakan, katakanlah memindahkan satu langkah.
Mari kita memiliki dia pindah lima langkah di waktu, sehingga lima titik pada suatu waktu.
Biarkan aku klik bermain.
>> [LION'S ROAR]
>> DAVID Malan: Baiklah, sekarang kita bisa benar-benar memberikan kucing keuntungan.
10 langkah pada satu waktu.
>> [LION'S ROAR]
>> DAVID Malan: Baiklah, jadi sangat cepat, mendapat sedikit keuntungan
untuk kucing.
Tapi aku akan melambaikan tangan saya di beberapa rincian.
Tapi alasan bahwa jalan yang mulai sedikit berbeda setiap kali
adalah bahwa aku melakukan sedikit keacakan.
Aku benar-benar menunjuk kucing dalam arah yang berbeda berdasarkan di mana saya
ingin dia memulai sehingga setiap kali permainan, atau animasi, adalah
sedikit berbeda.
>> Sekarang, izinkan saya memperkenalkan satu lainnya membangun di sini.
Jadi dalam hal ini, kami memiliki fungsi.
Ada juga akan menjadi potongan puzzle dikenal sebagai array, atau daftar,
yang memungkinkan Anda untuk menyimpan beberapa nilai-nilai dalam variabel.
Kami melihat benang, dan sekarang ada Events.
>> Jadi, inilah acara menggunakan dua orang di sini.
Dan jika saya membuka file yang bernama Acara dari contoh hari ini, kami akan
melihat program yang terlihat sedikit seperti ini.
Dan sekarang melihat orang ini -
jadi perhatikan saya memiliki biru Muppet diklik -
ia hanya melakukan berikut ini.
Dia tidak memiliki salah satu dari mereka hijau potongan puzzle bendera.
Dia memiliki ketika saya menerima event -
sehingga beberapa kata sewenang-wenang.
Aku hanya mengetik acara ada -
dia akan mengatakan, Polo, selama dua detik.
>> Jadi bagi anda yang akrab dengan permainan ini mungkin tahu
mana hal ini terjadi.
Jika saya sekarang klik pada Muppet oranye, programnya melakukan hal ini.
Selamanya, jika spasi Keyboard ditekan, ia akan berkata, Marco,
selama dua detik pada layar.
Tapi dia juga akan menggunakan ini pelamun memblokir dikenal sebagai siaran.
Dia akan menyiarkan kutipan tanda kutip, "acara."
>> Sementara itu, pria biru, ingat, adalah mendengarkan kutipan tanda kutip, "acara."
Jadi entah bagaimana, sekarang, kita dapat memiliki dua sprite berinteraksi.
Dan ketika kita sampai ke pemrograman web, kemudian dalam istilah, sama akan ini
akan menguntungkan untuk memiliki website Anda melakukan sesuatu dalam menanggapi, untuk
Misalnya, satu klik keyboard.
>> Jadi biarkan aku pergi ke depan dan tekan space bar.
Oranye guy bilang Marco.
Biru pria mengatakan Polo.
Jika saya melakukannya lagi pria oranye mengatakan Marco, biru guy mengatakan polo.
Jadi mari kita satu langkah lebih jauh.
Kali ini, kita akan pergi, mungkin, cuma beberapa menit di sini.
Apakah kita punya -
lampu meja, datang di bawah.
Anda tepat di akhir.
OK, Anda berdua bisa datang.
Kami memiliki lampu meja untuk semua orang.
Ayolah.
Saya tidak tahu apakah kita dapat menjaga ini gag konyol up
semua semester, meskipun.
Baiklah, datang di bawah.
>> Dan sementara itu, kita memiliki berikut contoh untuk menarik, hanya untuk
mempercepat hal-hal sekarang, seperti yang kita memiliki manifestasi dari yang lain
pendahulu Anda menggunakan sama blok bangunan dasar.
Siapa nama Anda?
>> JOHN: John.
>> DAVID Malan: John.
Senang kau.
Dan?
>> Setz: Setz.
>> DAVID Malan: Setz, baik padaku Anda.
John, jika Anda ingin datang up pertama, ini adalah tua
permainan sekolah bernama Frogger.
Anda menggunakan keyboard untuk ini juga.
Dan tujuannya adalah untuk mendapatkan seluruh jalan dan air.
>> [Frogger dan memutar musik SUARA]
>> DAVID Malan: Maaf, tidak ada lampu meja untuk Anda hari ini.
Baiklah, Setz, kan ingin datang ke atas?
Baiklah, mari kita lakukan lagi.
>> Setz: Apakah saya menggunakan panah?
>> DAVID Malan: Hanya tombol panah.
Atas, bawah, kiri, kanan.
>> [Frogger dan memutar musik SUARA]
>> DAVID Malan: Kami akan memanggil mereka hadiah hiburan hari ini,
kemudian, sangat baik dilakukan.
Di sini, bagi Anda berdua, John dan Setz.
Selamat, baiklah.
Jadi sekali lagi, karena permainan ini bermain, berpikir tentang apa yang terjadi?
>> Satu, jelas ada banyak gerak.
Tapi kita telah melihat bagaimana, dengan kucing dan burung contoh, bagaimana Anda dapat membuat
ilusi gerak dengan hanya menggerakkan beberapa jumlah piksel lagi dan lagi.
Dan jika Anda memiliki blok selamanya, Anda bisa memiliki ini
mobil melakukan ini selamanya.
Kami memiliki kemampuan untuk memiliki beberapa keacakan.
Jadi game ini tidak harus persis sama setiap kali.
Mereka log, mobil-mobil, bisa mulai waktu yang sedikit berbeda sehingga
Permainan itu sendiri adalah lebih menarik dengan masing-masing bermain game.
>> Dan Sementara itu, kami telah melihat kemampuan untuk mendengarkan spasi.
Tapi yang jelas, di Scratch, bisa Anda juga mendengarkan atas, bawah, kiri, kanan, dan
benar-benar ada tombol pada keyboard.
Dan Anda juga dapat melakukan beberapa hal lainnya.
Biarkan aku pergi ke depan dan kembali ke versi web.
>> Biarkan aku pergi ke dalam koleksi kami dari contoh di sini.
Dan di bawah Studio saya, Video yang adalah, pada dasarnya, folder pada
scratch.mit.edu.
Kami memiliki versi web semua proyek-proyek ini.
Dan mari kita lihat apakah saya bisa mendapatkan komputer untuk bekerja sama di sini.
Ini ditulis oleh salah satu teman kita di MIT, yang disebut Pindah Butterfly.
>> Dan sekali ini membuka, ini akan benar-benar menggunakan lebih dari
hardware komputer saya.
Scratch terjadi dilaksanakan dengan Flash.
Flash dapat berbicara dengan webcam Anda, jika Anda memiliki satu.
Jadi jika saya pergi ke depan dan layar penuh ini sini, klik bendera hijau, pemberitahuan
bahwa pesan keamanan Flash mengatakan, apakah Anda ingin
memungkinkan untuk menggunakan webcam saya?
>> Biasanya, Anda harus mungkin mengatakan Deny.
Tapi dalam kasus ini, kita akan mengatakan memungkinkan.
Lalu aku akan memberitahu Chrome untuk memungkinkan ini juga.
Dan sekarang, hanya dalam beberapa saat, Anda melihat saya, ya, saya.
Dan jika tanganku naik -
Aku harus tidak bergerak saya kepala pada saat yang sama.
Ada juga refleksi di layar.
Ayolah, di sana kita pergi -
Anda dapat memindahkannya di layar karena ada juga potongan puzzle - oh, Anda
tahu apa itu, itu karena Anda juga melihat layar proyektor di belakang saya.
Jadi kita memiliki sedikit terbatas hal yang terjadi di sana.
>> Baiklah, jadi saya akan bermain di sini.
Di sana kami pergi.
Jadi ada juga potongan puzzle yang mengatakan, ketika Anda melihat gerakan bawah
salah satu sprite, Anda dapat memilikinya pergi atas, bawah, kiri, kanan atau sejenisnya.
Jadi kita memiliki sedikit virtual reality terjadi di sini juga, semua dalam
batas-batas browser saya, hanya disini menggunakan webcam saya.
Jadi apa yang kemudian di cakrawala.
Masalah pertama set, karena Anda akan melihat, atau website akan pergi online kemudian
malam ini di cs50.net, cukup banyak akan terbuka berakhir.
Dan melaksanakan proyek Scratch menarik bagi Anda, permainan, sebuah
interaksi, sesuatu yang artistik, dan menantang diri untuk menggunakan jumlah
potongan-potongan teka-teki.
Dan itu dapat menjadi interaktif dengan cara ini.
Atau bisa menjadi sesuatu yang lebih sengaja dibuat untuk menceritakan sebuah cerita.
>> Dan memang, itulah di mana kami akan berakhir off hari ini, dengan satu contoh terakhir.
Biarkan aku pergi ke Scratch lokal.
Biarkan aku pergi ke depan dan membuka ini, dan bermain satu program terakhir yang ditulis oleh salah satu
pendahulu Anda, yaitu yang satu di sini.
Baik, meningkatkan volume untuk yang satu ini.
>> [MUSIC PLAYING]
>> Narator: Pada CS50 berikutnya, David mengundang sukarelawan panggung.
>> DAVID Malan: Untuk demo ini, kita akan membutuhkan satu relawan.
Apakah Anda ingin datang di bawah?
Siapa nama Anda?
Pindah.