[Powered by Google Translate] [ROCK MUSIC]
[MUSIC - "HAPPY BERSAMA" kura-kura]
DAVID Malan: Hari ini, kita mulai eksplorasi kita tentang
dasar-dasar ilmu komputer dan pengantar kami,
Sekarang, dengan seni pemrograman, dimana itu adalah
salah satu contoh.
Namun dalam pembuluh darah yang sama dari pemecahan masalah, tahu bahwa
Hari Puzzle tradisional CS50 adalah besok.
Jika Anda belum RSVPed untuk acara ini, Anda bisa pergi ke
cs50.net/rsvp.
Anda dapat membawa tim dari dua atau tiga atau empat.
Anda akan ditantang dengan masalah seperti yang Anda lihat
di sana pada awalnya.
Semua masalah baru tahun ini jika Anda mengambil bagian tahun lalu, dan Anda
akan memiliki kesempatan kemudian untuk memenangkan hadiah luar biasa.
Di antara mereka, Wii dan beberapa hadiah sertifikat dan seperti,
sementara semua bergaul dengan CS50 siswa dan teman sekelas
dan pizza dan Facebook.
Jadi lebih pada besok jika Anda ingin.
>> Ini kemudian adalah CS50, bagi Anda bergabung dengan kami untuk
pertama kali.
Dan tahu bahwa kursus ini terutama ditentukan untuk mendapatkan
Anda melalui kursus ini berakhir akhir, di mana titik Anda
akan memiliki tidak hanya pemahaman ini
dasar-dasar ilmu komputer, tetapi Anda akan memiliki
ini set keterampilan yang sangat praktis yang Anda kemudian dapat mengambil kembali ke
departemen Anda sendiri, apakah itu ilmu teknik,
terapan matematika, ilmu-ilmu fisik, alam
ilmu pengetahuan, atau sejenisnya.
Memang, apa yang begitu menarik tentang ilmu komputer ini
hari adalah bahwa hal itu hanya begitu berlaku untuk
segala macam bidang.
Dan meskipun saat ini, kita hanya akan menggores permukaan
sangat tradisional bahasa pemrograman yang dikenal sebagai C, kita akan
bukannya melihat sesuatu yang disebut Scratch, sesuatu dengan
yang cerita cinta kue dilaksanakan oleh salah satu Anda
pendahulu dalam beberapa tahun terakhir, untuk bercerita, untuk membuat game,
untuk menciptakan seni interaktif, dan benar-benar mulai untuk membungkus kami
pikiran sekitar beberapa konstruksi dasar yang
mendasari pemrograman tetapi dalam konteks, seperti yang akan Anda lihat, itu
apalagi menakutkan, itu jauh lebih sedikit misterius, daripada Anda akan melihat
tak lama.
Dan menyadari juga, bagi Anda hanya bergabung dengan kami ini
semester, ungkapan yang kita berakhir kuliah Rabu,
itu tidak begitu penting di mana Anda berakhir relatif terhadap Anda
teman sekelas di kelas ini, tetapi di mana Anda, pada akhir semester
pada minggu 11, akhirnya relatif terhadap diri Anda tepat hari ini.
>> Jadi tanpa basa-basi lagi, ini juga diperhatikan bahwa
mereka yang kurang nyaman, mereka di suatu tempat di antara, yang
juga, dengan desain dari kursus ini, tidak dirugikan apapun
vis-a-vis yang lebih nyaman
datang ke kelas ini.
Seperti yang Anda akan melihat selama beberapa minggu mendatang, kami memiliki berbagai
lagu untuk latar belakang yang berbeda kembali, bagian untuk mereka
kurang nyaman, lebih nyaman, mereka di suatu tempat
di antara.
Seperti yang Anda akan melihat akhir pekan ini dan pekan depan, dua versi
masalah paling set di kedua edisi standar dan hacker sehingga
bahwa Anda semua bisa memilih sendiri menyusuri jalan setapak dengan yang Anda
paling nyaman.
>> Jadi hari ini, kita menyelam ke dalam program ini
bahasa disebut Scratch.
Ini adalah bahasa pemrograman grafis, dan belum memiliki
sama fitur dari beberapa bahasa tingkat yang lebih tinggi kita akan
mengeksplorasi kemudian dalam semester, di antara mereka dan C
JavaScript dan PHP.
Tapi itu akan memungkinkan kita untuk menghindari beberapa gangguan
awal dari sintaks, hal-hal seperti titik koma, tanda kurung,
dan rincian lain yang misterius, pada pandangan pertama, tidak hanya
sama sekali intelektual menarik dan cenderung untuk mendapatkan di
cara dari beberapa pemahaman mendasar.
Dalam hal sekarang struktur dukungan menjelang, menyadari hal ini
alat, CS50 Bahas, yang akan dihubungkan pada kursus ini
Website hari ini, adalah forum diskusi online di
yang Anda akan dapat mengajukan pertanyaan satu sama lain dan
Staf, dan juga alat, seperti yang akan kita lihat minggu depan,
yang akan kami gunakan cukup terpadu dalam
Kantor jam juga.
Memang, jam kerja dimulai pada hari Senin, dan terus terang, yang pertama
minggu jam kantor adalah kunci cukup rendah.
>> Saya tidak berpikir Anda akan menemukan semua yang tidak dapat diakses Scratch.
Ini agak cukup jelas, seperti yang akan kita lihat, dan jadi apa
kita akan menggunakannya untuk hari ini adalah untuk mengekstrak beberapa
dasar ide-ide yang akan, maka, bertahan sepanjang
sisa semester.
Tapi mulai Senin, di 8:00 melalui 23:00 akan
kantor jam di Annenberg selama liburan otak.
Sectioning dua akan dimulai malam ini, jadi kadang-kadang ini
akhir pekan, pergi ke cs50.net/section, dan Anda akan
diminta sejumlah pertanyaan.
Di antara mereka, bagaimana Anda menggambarkan Anda
tingkat kenyamanan untuk hari ini?
Tidak ada aturan yang keras dan cepat untuk siapa yang ember.
Ini hanya semacam hal yang Anda mungkin tahu jika Anda
di antara mereka yang kurang nyaman atau sebaliknya.
>> Dan sekarang, Walkthroughs.
Sejumlah masalah spesifikasi untuk minggu ini, kedua standar
dan edisi hacker sama, yang online di cs50.net seperti yang sekarang.
Dan Anda akan melihat bahwa pertama dari edisi,
Edisi standar setiap minggu, disertai dengan sesuatu yang kita
memanggil pelacakan kode, sesi dipimpin oleh salah satu
rekan mengajar kursus untuk memandu Anda melalui, memberikan
tips, dan membuat Anda menuruni jalan tertentu ketika datang
untuk memulai set ini masalah.
Jadi dengan masing-masing masalah tersebut menetapkan, jika Anda pernah ingin
untuk diri sendiri di mana saya mulai, Anda mulai dengan
Walkthroughs.
Dan pada kenyataannya, izinkan saya untuk memperkenalkan Zamyla Chan, ini
tahun mengajar rekan yang akan memimpin setiap
salah satu Walkthroughs.
Zamyla?
>> [Tepuk Tangan]
ZAMYLA CHAN: Oh, hi, semua orang.
Nama saya Zamyla.
Aku belajar teknik junior di Winthrop House.
Tapi aku mencoba dan cocok sebagai program ilmu komputer banyak yang saya
bisa, itulah sebabnya saya benar-benar senang bisa memimpin ini
tahun penelusuran.
Walkthrough, bagi saya, adalah bagian penting dari CS50 saya
pengalaman.
Selama walkthrough, untuk setiap set p-, kita akan pergi melalui
masalah ditetapkan bersama, melihat di atas masalah, jenis
membagi mereka menjadi gigitan dikelola.
Aku akan memberikan tips, teknik, untuk mendapatkan
melalui dan memulai.
Saya berharap untuk melihat Anda semua di penelusuran.
Jika Anda tidak dapat membuat secara langsung, maka
silahkan melakukan lagu secara online.
>> DAVID Malan: Sangat baik.
Terima kasih, Zamyla.
Jadi menyadari bahwa walkthrough, memang, pada hari Jumat
sore, tapi ini sengaja dengan desain sehingga
bahkan jika Anda tidak ingin menghadiri kelas pada hari Jumat
sore, video akan sampai semua lebih cepat lebih
akhir pekan.
Jadi menyadari bahwa cs50.net akan semua ini Zamyla
Walkthroughs.
Dan bahwa ada tanggal hari ini dan waktu, 3:00 PM,
Harberd Hall, 104.
Dan beberapa rekan-rekan mengajar juga telah disiapkan
beberapa komentar Anda untuk in absentia untuk memberikan sedikit
Perspektif seperti apa pengalaman mereka datang ke dan
akan keluar dari CS50 seperti.
Jadi jika kita bisa meredupkan lampu untuk sesaat, aku memberikan
beberapa staf CS50 itu.
>> JACKSON STEINKAMP: Aku mengambil CS50 tahun lalu sebagai mahasiswa di
jatuh, dan itu benar-benar meniup pikiran saya.
Saya tidak pernah mengambil setiap kelas pemrograman sebelumnya,
dan tidak pernah datang dengan ilmu komputer
pengalaman sama sekali.
Dan, saya mendengar buzz tentang kelas dan
memutuskan untuk mengambilnya.
>> JULIA MITELMAN: Itu benar-benar menyenangkan, benar-benar menarik.
Saya masih, sampai hari ini -
Saya baru saja melihat saya memiliki floppy disk yang David memberi kami
pada hari pertama kami kuliah.
Saya telah menggantungnya di dinding saya.
Ini mungkin sedikit kutu buku, tapi aku menggantung di atas saya
dinding selama kelas sebagai pengingat bagaimana dingin itu.
>> TRAVIS DOWNS: Ini sangat memalukan.
>> JACKSON STEINKAMP: Ilmu komputer adalah sesuatu yang Anda
harus mencoba bahkan jika Anda tidak satu untuk
ilmu-ilmu tradisional.
Ini adalah pengalaman sendiri, dan CS50 akan pastikan Anda
didukung baik melalui itu dengan tentara benar nya TF.
>> ALI Nahm: aku mengambilnya sebagai mahasiswa baru, dan jadi saya membuat banyak
teman-teman baru.
Saya juga harus diperkenalkan ke seluruh konsentrasi dan
seluruh sekolah teknik, dan jadi saya sangat merekomendasikannya
dan menyambut Anda untuk keluarga CS50 kami.
>> Yaniv Yacoby: CS50 hanya mengajarkan Anda bagaimana menggunakan alat-alat
yang dapat diakses secara luas.
Anda hanya perlu sebuah laptop, Anda memerlukan browser web, dan Anda
perlu belajar untuk menulis beberapa kode, dan Anda benar-benar dapat membangun
hal-hal rapi.
>> KAREN XIAO: Ini hanya begitu sejuk untuk dapat membuat sesuatu
dan memiliki orang-orang menggunakannya dan memiliki orang-orang melihatnya, dan itu
apa yang saya benar-benar mencintai tentang hal itu.
>> TIM McLaughlin: - rasa masyarakat, saya pikir, dalam hal ini
lebih dari jalan lain saya telah diambil sejauh ini saja.
Anda tidak hanya mengambil yang lain -
Anda tidak mengisi persyaratan lain.
Anda tidak hanya akan kuliah dan pergi ke bagian.
Tapi kau melakukan banyak hal yang semua tentang
pemrograman dan semua tentang teknologi, tetapi tidak
benar-benar merasa seperti kelas sebagian besar waktu.
>> DOWNS TRAVIS: Dan pada hari pertama, mereka membagi-bagikan kue, dan
Saya langsung dijual.
>> JACOB Pritt: permen gratis dan pizza.
>> ZAMYLA CHAN: - terlepas dari tingkat minat Anda, saya pikir
bahwa CS50, Anda akan bersenang-senang, dan Anda akan intelektual
dirangsang.
>> MARK GROZEN-SMITH: Selalu pesta di kelas, dan itu adalah
Partai setiap malam bekerja pada p-set Anda.
>> JACKSON STEINKAMP: Setiap kali Anda menyelesaikan satu set masalah, Anda
akan merasa seperti Anda telah selesai proyek.
>> MELISSA NIU: Itu tahun pertama, dan aku selesai belanja.
Aku punya empat kelas saya siap, dan saya berada di Annenberg.
Dan saya bertemu seorang teman, dan dia berkata, hey, Aku belanja
kelas ini disebut CS50, dan Anda harus datang dengan saya.
Akhirnya mengambil musim gugur itu, dan setelah kelas itu, saya
pikir mungkin aku akan kecil di CS.
Tapi di sini saya, tiga tahun kemudian, masih belajar komputer
ilmu pengetahuan dan benar-benar melakukannya sebagai utama, dan aku mencintai setiap
saat itu.
>> ROB Bowden: Saya tidak tahu.
>> ALI Nahm: Mari kita lihat.
>> MELISSA NIU: kegilaan.
>> SPEAKER 1: Saya merasa seperti saya akan sangat klise.
Aku hanya akan mengatakan, seperti, mengagumkan.
>> Yaniv Yacoby: Aksesibilitas.
>> JACOB Pritt: permen gratis dan pizza.
>> TRAVIS DOWNS: Tidak dapat menolak kelas yang tangan keluar kue.
>> TIM McLaughlin: Energetic.
>> VIPUL SHEKHAWAT: Penting.
>> ROB Bowden: Biarkan saya memikirkan jawaban.
Saya pikir saya punya sesuatu.
Oh, Tuhan.
Ya, nama saya Rob Bowden, dan ini adalah CS50.
>> [Tepuk Tangan]
DAVID Malan: Baiklah, jadi mari kita mulai melukis gambar
dari arah di mana kita bisa pergi, dan mari kita memperkenalkan
konsep ini di sini dikenal sebagai pseudocode.
Jadi pseudocode bukanlah pemrograman
bahasa tersendiri.
Bukan apa-apa teknis per se, tapi itu hanya semacam
umum cara mengekspresikan diri cukup tepat,
cukup algorithmically, cukup prosedural, tapi tanpa
harus khawatir tentang apa bahasa yang Anda mengekspresikan
diri masuk
Ini adalah beberapa model bahasa Inggris dan bahasa pemrograman dengan
yang Anda kebetulan menjadi akrab, sehingga kami dapat mulai
menulis hal semacam ini seperti yang kita pergi.
Dan pada kenyataannya, Joseph, bisa saya pinjam Anda di atas panggung menjadi
juru tulis di sini?
Aku telah pergi ke depan di sini di muka dan lupa untuk menempatkan
pada beberapa kaus kaki saat ini, dan ini akan berada di antara kita yang lebih
contoh konyol.
>> Sekarang, aku butuh kau di sini.
Aku akan melakukan bagian kaus kaki.
Jadi di sini kita memiliki pad awal sedikit.
Ini benar-benar hanya TextEdit di Mac.
Kita tidak benar-benar akan menulis sebuah program runnable, namun
kami hanya akan mulai membuat sketsa berbasis pseudocode
pada beberapa nasihat yang Anda berikan kepada saya di sini.
Jadi di sini adalah tumpukan kaus kaki saya di rumah.
Saya tidak punya kaus kaki ketika saya bangun di pagi hari, dan kami sekarang
perlu menulis sebuah program, algoritma macam, dengan mana
untuk mendapatkan kaus kaki di kaki saya.
Dan sepanjang jalan, mari kita lihat apakah kita tersandung, atau menemukan,
beberapa ide yang Anda akan harus mulai
memikirkan lebih serius ketika pemrograman
supaya program Anda tidak berperilaku cukup sebagaimana dimaksud.
>> Jadi aku duduk di sini.
Aku punya tumpukan saya kaus kaki.
Apa hal pertama manusia wajar akan
lakukan ketika tujuannya adalah untuk memakai sepasang kaus kaki?
Seseorang memberi saya satu langkah, dan hanya satu langkah.
Ya?
HADIRIN: Bend bawah.
DAVID Malan: Bend turun, Oke.
Langkah dua.
HADIRIN: Ambil kaus kaki Anda.
DAVID Malan: Pick up kaus kaki Anda.
Oke, ambiguitas sangat sedikit di sini, dan ini adalah salah satu yang pertama
batu sandungan bahwa kita seharusnya sengaja
menemukan di sini.
Ini sedikit ambigu, sehingga mengambil kaus kaki Anda.
Baik, aku akan mengambil satu ini, tapi komputer, menyadari hanya dalam
bit, tidak akan memiliki semacam naluri manusia untuk hanya
memilih yang terdekat.
Kita akan harus mulai, sebelum lama, mengekspresikan
diri kita lebih tepat.
>> Baiklah, sehingga langkah kedua adalah mengambil kaus Anda.
Kami akan mengambilnya.
Langkah tiga.
Di bagian belakang.
HADIRIN: Cari pasangan yang cocok.
DAVID Malan: Menemukan pasangan yang cocok.
Oke, jadi ini adalah baik.
Saya harus memilih kaus kaki ini.
Jadi tujuannya adalah untuk menemukan kaus kaki yang cocok, sekarang, tapi apa
artinya?
Sebuah wajar manusia, seperti pada hari Rabu ketika aku hanya
tahu bagaimana menemukan Mike Smith dalam buku telepon, hanya jenis
pergi dengan insting mereka.
Tapi di sini, itu jelas ini kaus kaki di sini, tapi komputer ini
tidak akan begitu naluriah.
Sebuah komputer akan memiliki koleksi bit, seperti yang kita
dibahas pada hari Rabu, dan mereka adalah
terorganisir entah bagaimana dalam memori.
Tetapi intinya adalah bahwa komputer hanya memiliki kemampuan
untuk melihat hal-hal pada suatu waktu, dan pada kenyataannya, bahkan kita
manusia - meskipun rasanya Aku menunduk dan perpecahan
Sedetik kemudian aku tahu di mana kaus kaki adalah, otak dan mataku
mungkin tidak cepat skim tersebut kaus kaki, dan kemudian terkunci
pada satu pertanyaan.
>> Jadi jika kita menjadi semakin disengaja sekarang sebagai komputer,
bagaimana cara menemukan pasangan yang cocok?
Nah, kita harus iterate.
Kita harus mungkin loop atas kekacauan ini kaus kaki di
lantai dimana saya mengatakan sesuatu seperti kaus kaki UNTUK SETIAP, mengambilnya
up, DAN JIKA bentuk dan ukuran yang sama seperti yang lain, MAKA
dot, dot, dot, kami akan lanjutkan ceritanya.
Jadi untuk setiap kaus kaki, jadi aku mengambil satu ini.
Saya cek ini sama dengan yang satu ini.
Ini tidak, jadi saya mengesampingkan sisi.
Lalu aku iterate lagi.
Apakah ini satu sama?
Tidak, itu tidak, jadi aku menyimpannya.
Apakah yang satu ini?
Tidak.
Yang ini?
Tidak, dan sebagainya.
Dan akhirnya, mudah-mudahan, saya akan menghadapi kaus kaki ini di sini.
Jadi jika bentuk yang sama, ukuran, bawa.
>> Dan sekarang, apa yang akan menjadi langkah berikutnya kita di sini?
Ya?
HADIRIN: Identifikasi kanan dari kiri.
DAVID Malan: Oke, mengidentifikasi kanan dan kiri, sehingga
untungnya, bahwa jenis karya.
Sebuah simetris kecil, atau aku hanya dikenakan mereka seperti itu.
Baiklah, jadi aku telah mengidentifikasi kanan.
Dan sekarang, sebelum kita melanjutkan, biarkan saya menunjukkan apa yang Yusuf
telah melakukan di sini sebagai semacam programmer berpengalaman.
Jadi sekali lagi, tidak ada satu cara untuk melakukan hal ini, tetapi lebih dari sekedar
penomoran baris, Yusuf sudah mulai melakukan hal ini
semacam lekukan.
Memang, ini adalah konvensi yang sangat umum dalam pemrograman,
dimana ketika Anda melakukan sesuatu berulang, looping gaya, seperti
kita menyiratkan dengan frase bahasa Inggris "UNTUK SETIAP
kaus kaki, "konvensi dalam pseudocode dan, seperti yang akan kita lihat,
bahasa pemrograman yang normal, adalah hanya indent.
Tekan space bar beberapa kali, tekan tombol Tab atau sejenisnya,
sehingga bersarang di bawah "UNTUK SETIAP kaus kaki" adalah sepotong
hal-hal yang perlu Anda lakukan sebagai hasil dari lingkaran itu.
Jadi itu saja yang menyampaikan semantik.
Sekarang sementara itu, "Jika bentuk dan ukuran yang sama," kata
Fakta bahwa "Take it" lebih menjorok jauh hanya berarti
itulah satu-satunya hal yang harus Anda lakukan jika kondisi itu,
jika cabang, bahwa persimpangan jalan, pada kenyataannya benar.
>> Jadi sekarang di sini, kita pada langkah keempat, mengidentifikasi kanan dan kiri.
Saya telah mengidentifikasi benar.
Berikan aku melangkah lima.
Dan secara teknis, kita benar-benar bisa menelepon
UNTUK SETIAP hal -
Anda mungkin harus menomori semua baris jika
kita akan melakukan hal ini.
JOSEPH: [Tak terdengar]
DAVID Malan: [Tak terdengar]?
Oke, baik-baik saja, baik-baik saja, kita akan melakukannya dengan cara Anda.
Baiklah, jadi langkah kelima, bagaimana kita melakukan kaus kaki yang tepat?
Bagaimana kita lanjutkan selanjutnya, di sini?
Ya?
HADIRIN: Angkat kaki kanan.
DAVID Malan: Angkat kaki kanan, Oke.
Langkah enam?
Cepat.
Ya.
HADIRIN: Cari ujung terbuka dari kaus kaki.
DAVID Malan: Oke, menemukan ujung terbuka dari kaus kaki.
Jadi baik.
Jadi di sini, jujur, naluri sangat umum hanya akan menjadi
memakai kaus kaki yang tepat, tapi itu juga cukup ambigu.
Kecuali komputer atau manusia tahu persis apa artinya,
itu tidak akan melaksanakan itu, jadi di sini, aku sudah
menemukan pembukaan saham.
Langkah tujuh?
HADIRIN: Sentuh jari-jari kaki Anda.
DAVID Malan: jari kaki Sentuh.
Oke, jadi sekarang kita pergi -
Baiklah, aku akan mengambil beberapa kebebasan di sini.
Terima kasih.
Langkah delapan?
Masukan kaus kaki.
Oke, jadi sekarang aku, pikir kami cukup dekat untuk memilah-take
satu ini di rumah.
Baiklah, jadi ini naik.
Saya akan mengambil beberapa kebebasan dengan apa artinya, sebenarnya.
Masukan kaus kaki pada.
Baiklah, sekarang langkah sembilan?
HADIRIN: Taruh kaki bawah.
DAVID Malan: Terima kasih.
Langkah sembilan, meletakkan kaki ke bawah, dan sekarang, kita dapat mengulangi.
Jadi mungkin, kita sekarang dapat masuk ke langkah 10 dan berkata mengidentifikasi
meninggalkan kaus kaki, tapi itu mungkin sudah dilakukan.
>> Dan begitu kemudian, saya dapat semacam ulangi langkah-langkah.
Tapi ini semacam menimbulkan pertanyaan.
Sebelumnya, terakhir kali kami ingin mengulang sesuatu, kita
melakukannya iteratif, lagi dan lagi, FOR
SETIAP lingkaran sehingga untuk berbicara.
Apakah masuk akal untuk menggunakan loop untuk menangani keduanya
kiri dan kaus kaki yang tepat?
Karena rasanya seperti operasi ini cukup banyak
identik kecuali untuk fakta bahwa seseorang mulai di sini dan satu
dimulai di sini?
Apakah kita loop, atau kita terus langkah-langkah menulis
10 dan 11 dan 12?
HADIRIN: Loop.
>> DAVID Malan: Oke, jadi loop.
Aku benar-benar mungkin mengatakan hanya terus berjalan.
Lalu mengapa ini terjadi?
Nah, ini sebenarnya yang pertama dari kami non-jelas
desain keputusan, dan pada kenyataannya, salah satu metrik dengan mana
kita akan mulai mengevaluasi, untuk diri kita sendiri dan untuk Anda,
kualitas program adalah seberapa dirancang dengan baik itu.
Apakah Anda melakukan jumlah minimal pekerjaan yang diperlukan untuk
mendapatkan pekerjaan yang paling cepat, baik dari segi
Anda waktu atau dalam hal waktu komputer berjalan?
Berapa banyak operasi waktu yang dibutuhkan untuk mengeksekusi?
Jadi bisa dibilang, ini adalah kesempatan untuk loop karena
segera setelah saya mulai copy dan paste, seperti Yusuf efektif
akan mulai melakukan suatu saat, kau jenis membuang-buang Anda
waktu, dan Anda sedang ganda ekspresif.
>> Tetapi pada saat yang sama, ini adalah benar-benar hanya dua khusus
kasus, kiri dan kanan.
Dan sementara sebelumnya, saya mungkin memiliki 10 atau 20 atau lebih kaus kaki di
tumpukan, itu pasti masuk akal untuk tidak memiliki 50 baris
Kode mengatakan cek kaus kaki ini, maka yang berikutnya,
maka yang berikutnya.
Di sini, itu sedikit kurang jelas, dan saya akan diusulkan
bahwa kita bisa jalan baik.
Kita juga bisa memiliki loop yang, meskipun hanya loop
dua kali, atau kita hanya bisa copy dan paste hanya sedikit
di sini untuk mendapatkan pekerjaan yang dilakukan.
Tapi program ini adalah kereta, sehingga untuk berbicara.
Ini mungkin memiliki beberapa kesalahan, kesalahan, atau kasus sudut, sehingga untuk
berbicara, bahwa kita tidak benar-benar mengantisipasi.
Tidak ada yang salah saat ini, tapi apa yang bisa saja salah
ketika menjalankan program ini?
HADIRIN: Anda tidak punya kaus kaki.
>> DAVID Malan: Jadi tidak mungkin ada kaus kaki di sana sama sekali.
Jadi mari kita menganggap bahwa kasus sudut.
Jadi jika kita bisa gulir kembali ke langkah satu, jadi langkah pertama adalah
membungkuk, sehingga check out.
Langkah kedua, mengambil kaus kaki Anda, tapi kemudian menemukan kaus kaki yang cocok,
mengidentifikasi kanan.
Kami semacam membuat sejumlah asumsi, dan ini,
terus terang, mengapa program kadang-kadang crash.
Jika Anda, programmer, telah membuat asumsi-asumsi tertentu, seperti
pasti ada akan menjadi kaus kaki atau pasti ada akan
menjadi memori tersisa di komputer, pasti ada yang terjadi
menjadi disk ruang yang tersisa pada hard drive -
Nah, jika Anda membuat asumsi, dan itu tidak,
pada kenyataannya, kenyataannya, siapa tahu kadang-kadang apa komputer ini
akan lakukan?
Dan kadang-kadang, ketika Anda mendapatkan bola pantai berputar atau
beku Windows atau sejenisnya, itu justru karena beberapa
programmer tidak mengantisipasi apa yang disebut kasus sudut.
Apa lagi yang bisa saja salah dalam program ini?
Ya?
>> HADIRIN: Anda tidak memiliki kaki kanan dan kaki kiri.
DAVID Malan: Oke, mungkin tidak memiliki kedua kaki kanan dan
kaki kiri, sehingga program ini tidak mungkin universal
berlaku.
Lainnya?
HADIRIN: Anda mungkin telah mengambil kaus kaki yatim piatu.
DAVID Malan: Saya mungkin telah mengambil kaus kaki yatim, sehingga
non-pencocokan kaus kaki yang hanya tidak memiliki saudara kandung karena saya sudah
hilang, itu robek, itu di cuci masih, atau sejenisnya.
Sehingga, juga belum benar-benar ditangani.
Ya?
HADIRIN: Anda mungkin sudah kaus kaki.
DAVID Malan: Saya mungkin sudah kaus kaki.
Saya tidak benar-benar memeriksa.
JIKA Anda tidak memiliki kaus kaki, KEMUDIAN melanjutkan untuk melakukan
baris satu dan dua.
Dan itu bisa terjadi.
Anda jatuh tertidur dengan kaus kaki Anda dan sejenisnya, sehingga
itu juga, kasus sudut yang sangat wajar.
Dan mungkin yang lain?
HADIRIN: kaus kaki adalah dalam ke luar.
DAVID Malan: Jadi kaus kaki adalah dalam ke luar, sehingga kita tidak ada kesalahan
memeriksa, singkatnya.
Kami tidak memeriksa apakah keadaan dunia ini seperti yang kita harapkan.
Kami tidak memeriksa apakah kita benar-benar menemukan apa yang kita cari.
>> Dan meskipun ini adalah semacam contoh konyol
melibatkan kaus kaki, pada akhir hari, ini persis
semacam pola pikir Anda harus memiliki saat menulis program,
bahkan dalam Scratch serta C, dalam JavaScript, di PHP,
karena jika tidak, program Anda akan menunjukkan
setara dengan itu bola pantai berputar atau hanya menghasilkan
akurat hasil.
Begitu banyak terima kasih di sini untuk kami juru Joseph.
[Tepuk Tangan]
>> DAVID Malan: Baiklah, jadi apa, di
Bahkan, sebuah program komputer?
Nah, mari kita sekilas pada
perwakilan satu di sini.
Jadi ini adalah program yang ditulis dalam bahasa yang disebut C. C adalah
bahasa baru cukup lama hari ini, tetapi banyak yang dibangun
di atasnya.
Memang, PHP, salah satu web-sentris bahasa kita akan
gunakan menjelang akhir masa itu, sendiri memiliki apa yang disebut
interpreter, sebuah program yang ditulis dalam C, tetapi lebih pada
dalam beberapa minggu dari sekarang.
Tapi program ini, dan ini adalah apa artinya untuk menulis
Program, meskipun salah satu yang sangat sederhana.
Kami memiliki beberapa sintaks yang cukup samar di sini, tapi Anda dapat
mungkin menebak, bahkan jika Anda belum pernah diprogram sebelumnya, apa yang
program ini tidak.
Memang, saya tidak tahu apa printf, tapi mencetak tentu
memunculkan gagasan mencetak sesuatu.
Dan jadi ya, program ini pada akhirnya akan mencetak
kata-kata "Hello, World."
>> Sekarang, apakah Anda memiliki Mac atau PC atau komputer Linux, peluang
yang, setidaknya jika Anda mengunduh beberapa bebas
perangkat lunak yang tersedia, Anda bisa saja menulis program pada
Anda sendiri laptop untuk beberapa waktu sekarang.
Pada Mac OS, misalnya, ada program ini disebut
Terminal yang datang dengan Mac, yang biasanya Anda
Utilities folder, dan umumnya membuka hitam dan
putih atau jendela putih dan hitam di mana Anda memiliki
meminta di mana Anda dapat mengetikkan perintah.
Jadi ini sebenarnya mengingatkan apa komputer
dulu sebelum pengguna grafis
interface, GUI, datang.
Sekarang, di Windows, Anda memiliki mekanisme serupa dalam bentuk
dari prompt perintah.
>> Tapi apa yang akan saya lakukan di sini adalah membuka, katakanlah,
TextEdit lagi, sehingga program yang sama kami gunakan untuk
pseudocode beberapa saat yang lalu, dan aku akan pergi ke depan dan
menulis program pertama saya.
Sertakan stdio.h, apa pun artinya, int main
void, apa pun artinya, dan kemudian di tengah di sini,
printf ("halo, dunia."). Dan kemudian tutup kutipan,
tutup paren, titik koma.
Sekarang aku akan pergi ke depan dan hanya menekan Command-S. Aku akan
untuk pergi ke depan dan menyimpan ini sebagai hello.c, sehingga konvensi di
dunia pemrograman C adalah nama file dot c.
Aku akan hanya dimasukkan ke dalam direktori Home John Harvard,
di sini, klik Save, dan sekarang aku akan pergi ke ini
jendela terminal, yang lagi-lagi adalah prompt ini hitam dan putih
di mana saya bisa menjalankan perintah.
>> Saya dapat menjalankan program dengan mengetikkan nama mereka, bukan oleh
mengklik dua kali ikon dalam arti biasa.
Tapi masalahnya adalah tentang C adalah bahwa bahasa seperti C pertama
datang dalam bentuk ini, sesuatu yang disebut kode sumber.
Sesuatu yang terlihat sedikit seperti bahasa Inggris tapi
pasti kurang seperti bahasa Inggris dari pseudocode Yusuf
saat lalu.
Ini sedikit lebih misterius.
Tampaknya mengikuti beberapa pola atau aturan.
Fakta bahwa saya memiliki kurung kurawal, titik koma, tanda kutip,
kawat gigi sudut, terasa seperti komputer datang dengan ini
semacam bahasa.
Tetapi jika aku pergi, sekarang, ini jendela terminal, saya bisa menjalankan
perintah yang akan mengkonversi kode sumber
sesuatu yang disebut kode obyek.
Itu akan mengkonversi bahasa Inggris-seperti sintaks dengan nol
dan orang-orang, jenis yang sama dari nol dan yang kita
berbicara tentang Rabu.
Sekarang, aku akan menjalankan perintah yang disebut dentang.
Lebih lanjut tentang ini dalam minggu-minggu yang akan datang, tetapi itu adalah program dengan
yang saya dapat mengkonversi hello.c menjadi sejumlah
dari nol dan satu.
>> Sekarang, saya sudah menjalankan perintah ini.
Aku telah lari dentang, dan kemudian aku berkata jalankan sendiri pada file ini
disebut hello.c, yang saya buat beberapa saat yang lalu, dan
sepertinya tidak ada yang terjadi.
Tapi memang, kalau aku menjulurkan sekitar direktori rumah saya, saya akan melihat
bahwa a.out Program bodoh bernama sekarang ada.
Ini hanya nama default untuk program saat menulis di
C. Kita bisa menimpa ini akhirnya, tetapi a.out adalah
nama program saya hanya diubah menjadi nol dan satu.
Dan sekarang bahwa nol itu dan orang-orang, Mac saya, dalam hal ini, atau
PC Windows, dapat memahami bit tersebut, mereka
angka satu dan nol.
Dan jadi ketika saya tekan Enter, saya melihat "halo, dunia!"
>> Tapi itu sedikit buggy.
Saya tidak cukup mengatakan "halo, dunia: udara: -! Jharvard." Air adalah
nama komputer saya.
Jharvard adalah nama akun, jadi apa yang saya jelas
menghilangkan dari program ini?
Beberapa jenis ganti baris.
Saya tidak memukul setara dengan Enter atau carriage return,
dan ini, sekali lagi, bukti fakta bahwa komputer dapat
hanya melakukan apa yang Anda katakan mereka lakukan.
Dan fakta bahwa saya tidak memberitahu komputer memindahkan
kursor ke baris berikutnya -
baik, itu pasti tidak akan hanya melakukannya
terlalu berani bagi saya.
Jadi jika saya kembali ke program saya, dan saya katakan \ n -
Jadi \ n, seperti yang kita akan segera melihat, adalah cara
mewakili hal-hal aneh seperti karakter baris baru, hal-hal
yang seharusnya merupakan hasil dari
menekan tombol Enter.
Tapi untuk saat ini, hanya tahu bahwa menekan tombol Enter akan
hanya membuat kode kita terlihat aneh, sehingga dunia memutuskan, Anda tahu
apa, untuk menjaga hal-hal cantik, untuk tetap pada satu baris, mari kita
hanya mengatakan \ n mewakili baris baru.
Biarkan saya simpan file saya, kembali ke jendela terminal, dan
re-run a.out, Enter.
Masih kereta, tapi mengapa?
>> HADIRIN: [Tak terdengar]
DAVID Malan: Ya, jadi saya perlu mengkompilasi ulang itu.
Jadi untuk mengkompilasi sebuah program hanya berarti mengubahnya dari sumber
kode untuk objek, kode kode sumber untuk angka satu dan nol.
Sekarang, fakta bahwa aku memukul Simpan di TextEdit tidak memiliki
bantalan pada mereka nol dan satu karena saya harus terlebih dahulu
kirim dentang hei, aku sudah berubah mereka baris kode, yang
kode sumber.
Anda perlu untuk menumbuhkan a.out.
Tidak ada yang tampaknya telah terjadi, tetapi dalam komputer,
pada baris perintah, sehingga untuk berbicara, ketika tidak ada yang terjadi,
yang biasanya berarti semuanya baik-baik.
Ketika sesuatu tidak terjadi, itu berarti
Anda kacau, umumnya.
>> Jadi mari kita sekarang pergi ke a.out, dan memang sekarang, aku punya "halo,
dunia. "
Dan sekarang, bagaimana dengan angka satu dan nol?
Dimana, pada kenyataannya, adalah mereka?
Yah, aku tidak bisa benar-benar hanya semacam aduk sekitar sangat
efektif.
Biarkan aku membuka TextEdit.
Berikut a.out.
Biarkan aku pergi ke depan dan membuka, dan ini tampaknya apa yang saya
Program seperti.
Jadi saya sudah dibuka, tidak hello.c, tapi a.out.
Tapi ini sebenarnya bukan apa program saya sebenarnya.
Jelas, ini adalah beberapa jenis karakter abjad.
Saya tidak melihat angka satu dan nol, tapi ini
karena a.out adalah sebuah program.
Nol dan satu - tapi TextEdit, seperti namanya, itu
seperti Notepad pada Windows, hanya editor teks, sehingga
membingungkan semua orang nol dan yang sebagai
meskipun mereka, apa?
ASCII karakter.
>> Jadi ingat pada hari Rabu, kami hanya datang dengan ini
sewenang-wenang pemetaan nomor, atau bit, dengan surat dari
alfabet dan simbol tanda baca dan sejenisnya.
Jadi TextEdit, bahwa itu adalah editor teks yang salah menafsirkan
pola-pola nol dan satu yang seharusnya
pencetakan kata-kata, seperti "halo dunia,." Ini menampilkan mereka
sebagai ASCII, dan itulah sebabnya terlihat sedikit berantakan.
Sekarang, ada beberapa petunjuk dari kebenaran di sini.
Perhatikan jika saya menyoroti, ada tanda-tanda benar-benar "halo,
dunia, "begitu suatu tempat di program yang
kalimat saya tulis.
Tapi mari kita pergi ke depan dan sekarang melihat dengan program yang berbeda.
Ini bukan salah satu yang akan kita gunakan yang sering, tetapi juga dilengkapi dengan
Mac dan akan dalam alat CS50.
Biarkan aku pergi ke depan dan membuka dengan sebuah program yang disebut xxd.
>> Kembali pada hari, sebagian besar program diberi nama cukup samar,
dan jadi tren terus.
Tapi-b berarti meludah program ini sebagai biner.
Jangan menjalankannya.
Menampilkannya kepada saya sebagai nol dan satu, dan ini adalah C
memprogram kita hanya menulis.
Sekarang, saya, sebagai manusia di sini, aku benar-benar tidak tahu apa yang
pola-pola berbagai angka satu dan nol mewakili.
Kembali pada hari, saya, dengan kartu punch saya atau sejenisnya, akan
benar-benar harus mencari apa yang berbagai pola
01111000, benar-benar mewakili.
Atau lebih buruk lagi, saya perlu melakukan meninju atau penciptaan
ini pola nol dan satu.
Tetapi untuk sekarang, mengambil pada iman bahwa CPU, Intel dalam, sehingga
untuk berbicara, dalam semua komputer kita hari ini, tahu
bagaimana menafsirkan angka satu dan nol.
Dan beberapa angka satu dan nol berarti cetak.
Beberapa angka satu dan nol berarti memutar suara.
Beberapa nol dan yang berarti mengambil input pengguna dari keyboard.
Ada berbagai macam pola yang berbeda, tapi kami untungnya,
sebagai manusia, hanya umumnya perlu khawatir tentang pemrograman di
tingkat yang cukup tinggi.
Dan di kelas CS lainnya bisa Anda menggali lebih dalam dan melihat ke bawah
hal-hal seperti yang nol dan satu, atau belum
hal-hal lain masih.
>> Jadi sekarang mari kita mengkonversi.
Mari kita bergerak sangat cepat menjauh dari C dan pindah ke sesuatu yang
sedikit lebih menghibur, sedikit lebih menarik, dalam
kita bisa kembali animasi dan suara dan seperti itu
jelas telah lolos kami dalam hal ini
cukup primitif antarmuka.
Jadi ini program yang sama di C dapat diwakili sekarang ini
bahasa pemrograman disebut Scratch sebagai berikut.
Ini adalah setara dengan program hello world ditulis dalam
ini potongan puzzle gaya bahasa yang disebut Scratch.
Jadi biarkan aku pergi ke depan dan membuka program ini sangat.
Ini lagi disebut Scratch.
Ini tersedia secara bebas, dan ini adalah hal yang sama kita
mulai hari ini.
>> Jadi ini di sini adalah Scratch, dan itu dipecah menjadi beberapa
berbeda potongan.
Di sebelah kanan paling atas, kita memiliki tahap yang disebut, dan
memang, di situlah cookies
dilakukan hanya sedikit lalu.
Dan di atas panggung yang hal yang disebut sprite, karakter, atau
benda, atau entitas.
Ini tidak benar-benar peduli bagaimana Anda berpikir tentang mereka, tetapi mereka
diprogram, hal bergerak, dan dalam kasus ini, ini
program yang mahasiswa menulis memiliki beberapa jahe
cookie, beberapa kue melingkar, sejumlah besar
hati, sejumlah besar kacamata.
Karena itu, ia mampu memprogram masing-masing
individu karakter secara terpisah.
>> Sekarang, apa artinya program karakter ini?
Nah, biarkan aku pergi ke depan dan klik pada cookie tangan kiri
dan gulir ke kiri atas sini.
Di kiri atas layar saya sekarang adalah
disebut skrip daerah.
Ini adalah semacam batu tulis kosong, awalnya, ke mana saya bisa
drag dan drop potongan teka-teki yang, terus terang, lakukan
apa yang mereka katakan.
Di bagian paling atas dari tumpukan potongan puzzle adalah kata
Ketika Bendera Hijau diklik, dan jika Anda tidak melihat sebelumnya,
cara saya memulai lagu itu kue yang mengklik, secara harfiah,
bendera hijau.
Sehingga potongan puzzle di sebelah kiri atas ada artinya ketika
klik manusia bendera hijau, terus melakukan
hal-hal berikut.
>> Sekarang, apa yang mereka kue melanjutkan untuk melakukan?
Aku tidak benar-benar tahu bagaimana menafsirkan ini belum, tetapi
Cookie tampaknya diatur jalurnya ke nol, maka menunggu
tiga detik, kemudian berubah kelompok untuk satu, maka
menunggu detik, kemudian berubah nya
groove kembali ke satu.
Dan maka ini benar-benar terlihat seperti sedikit bug, tidak boleh
harus mengubah jalurnya lagi dan lagi kecuali itu
yang berubah di tempat lain, tapi ini adalah serangkaian langkah apa
mendikte perilaku ini cookie tertentu.
Jadi mari kita sebenarnya gulir kembali dan tidak melihat sesuatu
begitu kompleks namun.
Biarkan aku pergi ke depan dan pergi ke File, New,
dan mendapatkan yang bersih.
>> Jadi sekarang, saya memang memiliki daerah skrip kosong, tahap kosong,
dengan Scratch sprite kami standar, dan di bagian kiri atas
di layar saya yang saya miliki palet dari semua mereka
tersedia puzzle potongan.
Dan kita tidak akan pergi melalui hampir bahwa banyak hal-hal
hari ini karena, sekali lagi, sebagian besar yang cukup jelas, tapi kami akan
mencoba untuk mengkategorikan mereka dan menunjukkan kesamaan
dengan bahasa masa depan yang akan kita menyelam.
Dan di sebelah kiri atas di sini adalah yang pertama Ketika Bendera Hijau Diklik,
jadi biar tarik ini di sini, tampilannya keluar sedikit.
Dan jika saya klik bendera hijau, tidak ada yang benar-benar terjadi karena
Saya belum terpasang logika apapun, pernyataan apapun sehingga untuk berbicara, untuk
bahwa bendera hijau, jadi biar naik ke
kategori di sini.
Aku sedang dalam kategori Kontrol.
Saya bukannya akan pergi ke kategori Looks, dan
ada sejumlah hal di sini yang mengatakan Katakanlah,
Pikirkan, Ubah Warna, Costume Switch.
>> Sehingga Anda dapat melakukan hal-hal konyol dengan kostum dan
suara dan sejenisnya.
Biarkan aku pergi ke depan dan hanya mengatakan Katakanlah, dan sekarang melihat seperti saya tarik
dan jatuhkan sepotong teka-teki, itu akan ingin latch
menjadi bentuk yang sesuai.
Jadi ketika saya pergi ke depan dan melepaskan mouse saya, mereka mengunci
bersama-sama, dan sekarang jika saya pergi ke sini dan klik bendera hijau,
kucing tidak pada kenyataannya menyapa karena itulah apa yang ada dalam
dari kotak putih.
Kita akan segera melihat bahwa ini kotak putih adalah apa yang disebut
argumen, atau parameter.
Ini adalah cara untuk mengubah perilaku, dalam hal ini,
teka-teki sepotong, tetapi jika aku ingin mengatakan dengan tepat apa yang saya katakan
sebelumnya, mengatakan halo, dunia, sekarang saya bisa kembali ke sini,
klik bermain, dan "halo, dunia" adalah apa yang dikatakan.
>> Jadi kita benar-benar pemrograman sekarang.
Ini tidak semua yang menarik dari sebuah program, tapi setidaknya
itu adalah sesuatu yang sedikit lebih menarik daripada yang terlihat, di
pertama sekilas, seperti ini.
Dan kita bisa sangat cepat mendapatkan semua lebih ekspresif
karena dalam Scratch, seperti dalam bahasa lain, ada semua
macam pernyataan, bukan hanya Katakan atau mencetak sesuatu, namun
Anda dapat melakukan hal-hal seperti menunggu, seperti yang kita hanya melihat dengan
cookie, beberapa jumlah detik.
Anda dapat memutar suara di lingkungan Scratch hanya
seperti Anda bisa dalam suara program komputer bermain normal.
Anda dapat memeriksa apa yang disebut ekspresi Boolean.
Jadi sekarang, mari kita mulai untuk menambah toolkit kami beberapa terminologi
yang benar-benar berhubungan dengan contoh bahwa Yusuf dan aku
di sini dengan kaus kaki.
Jadi pernyataan ini hanya pernyataan fakta.
Lakukan ini.
Sebuah direktif untuk sprite, atau saya manusia, untuk melakukan sesuatu.
Sebuah ekspresi Boolean adalah sesuatu yang memiliki nilai, yang
disebut nilai kebenarannya, itu baik nol atau satu, palsu atau
benar, mati atau hidup, tidak atau ya.
Tidak terlalu penting bagaimana Anda berpikir tentang hal ini, tapi itu adalah
biner negara.
Seperti Nate dibahas dalam video Rabu, dua
hal yang berbeda.
>> Jadi dalam Scratch, ekspresi Boolean kebetulan melihat
seperti ini benda biru di sini, dan dalam hal ini, pertanyaan
mark menyiratkan bahwa Anda mengajukan pertanyaan.
Apakah kucing, atau sprite, menyentuh pointer mouse?
Jadi ini hanyalah salah satu contoh dari blok Scratch yang akan
untuk memungkinkan kita untuk memeriksa ya atau tidak, adalah mouse menyentuh
sprite di layar?
Dan ini dapat berguna jika Anda benar-benar ingin melakukan hal-hal
dengan mouse Anda.
Selain ekspresi Boolean, kita memiliki hal-hal
seperti adalah mouse ke bawah, sehingga Anda dapat mendeteksi bahwa jenis
pertanyaan juga.
Kita bisa melakukan matematika jika Anda benar-benar ingin, dan ada
sebenarnya lebih menarik untuk menggunakan ini bukan hanya sekedar murni
aritmatika, seperti yang akan kita lihat.
Pseudo keacakan dan membuat program Anda tampaknya berpikir
atau berperilaku berbeda berdasarkan beberapa nilai acak,
dan kemudian kita memiliki hal-hal seperti ekspresi Boolean seperti AND.
Jadi jika Anda benar-benar ingin memeriksa dua nilai, kita akan lihat di
Gores bahwa kita benar-benar dapat menguji apakah ini
benar dan ini benar.
Misalnya, dalam kasus kaus kaki saya, saya udah bisa di
sangat akhirnya mengajukan pertanyaan jika kaus kaki kiri dan kanan pada kaus kaki
adalah pada, berhenti.
Anda semua dilakukan untuk hari itu, sehingga akan menjadi
peluang untuk itu.
>> Jadi mari kita pergi ke depan dan mencoba untuk potong beberapa bersama-sama
dan pergi ke beberapa contoh lebih
menarik dari satu ini.
Jadi biarkan aku pergi ke depan di sini dan membuka beberapa contoh
yang selalu akan berada di situs kursus ini juga, dan
membuka hello2.
Jadi di sini hello2, kami memiliki program yang melakukan beberapa
hal, tapi tidak melakukannya seefektif mungkin.
Jadi di sini ia mengatakan "halo, dunia" selama satu detik dan kemudian menunggu
untuk kedua.
Dan kemudian melakukannya lagi, dan kemudian melakukannya lagi.
Jadi jika saya mengklik bendera hijau, Scratch mengatakan "Halo, dunia.
Halo, dunia.
Halo, dunia. "Dan ini jelas calon sekarang untuk
perbaikan.
>> Apa perbaikan marjinal, mudah-mudahan, kita bisa
sekarang membuat jika Scratch mendukung konsep?
Beberapa jenis loop.
Beberapa jenis pengulangan, sekarang, akan menyenangkan, jadi biar
sebenarnya coba itu.
Biarkan aku benar-benar pergi dan bergerak ini.
Jadi pemberitahuan dapat melepaskan blok semudah Anda dapat menambah
melampirkannya.
Biarkan aku pergi Entitas, scroll ke bawah sini, dan memang,
ada potongan puzzle ini di sini, Repeat, dan Selamanya dan
Jika selamanya.
Jadi ada beberapa cara untuk mengekspresikan konstruksi perulangan
di Scratch.
Yang saya mungkin ingin di sini bukan karena saya hanya Selamanya
ingin ini terjadi tiga kali, tapi mungkin Ulangi.
Jadi biarkan aku tarik Ulangi di sini, drag dan drop, dan
sekarang bukannya mengatakan "halo, dunia" tiga kali terpisah,
biarkan aku tarik ini potongan puzzle di sini.
Dan meskipun tampaknya tidak cocok, program cerdas
cukup untuk menyadari hal itu akan tumbuh untuk mengisi, sehingga itu adalah
bentuk yang materi dan bukan ukuran mutlak.
Biarkan saya mengubah pengulangan tiga, dan sekarang biarkan aku pergi
depan dan tarik Tunggu Satu Kedua di sana juga.
Ini akan patah juga, dan jadi sekarang aku akan menyeret
orang-orang di sini dan hanya membuangnya karena saya
tidak membutuhkannya lagi.
Biarkan saya zoom out dan klik bendera hijau sekarang, dan kami memiliki
program yang sama, tetapi, seperti yang saya prediksi sebelumnya, baik
dirancang karena Anda bisa membayangkan betapa buruk program ini
akan mendapatkan, tentu estetis, jika Anda harus
mulai menyalin dan paste, copy dan paste, atau
menyeret dan menjatuhkan hal sialan yang sama lagi dan lagi.
>> Sekarang, hanya mengatakan hal-hal di layar, mencetak ke
layar, benar-benar semua tidak yang menarik, jadi mari kita membuka
ketiga varians sini.
Dan sekarang, karena Anda akan melihat, ini dengan cepat akan mendapatkan menjengkelkan -
[MEOW]
DAVID Malan: - tapi itu juga agak lucu.
[MEOW]
DAVID Malan: Oke, jadi lebih baik, dan kita pasti bisa menggunakan
sama transisi chunking ini menjadi sebuah perulangan
struktur, tetapi mari kita membuatnya lebih menarik masih.
>> Biarkan aku pergi ke depan dan membuka varians keempat di sini, di mana saya
mengambil hal-hal satu langkah lebih lanjut.
Jadi menurut ini, meskipun ini adalah konyol pada awalnya
sekilas, apa program ini akan dilakukan?
Ini akan meong sekali.
Kenapa?
Nah, satu, sejauh yang saya tahu, selalu kurang dari dua.
Tidak ada gagasan keacakan sini.
Aku sudah benar-benar keras-kode satu dan dua, tapi ini adalah
Misalnya sekarang benar-benar menggunakan ekspresi Boolean.
Banyak seperti sebagai Yusuf lakukan dalam pseudocode nya, indentasi JIKA
Anda menemukan kaus kaki yang cocok KEMUDIAN melakukan hal berikut, di sini kita memiliki
ekspresi JIKA satu kurang dari dua THEN -
dan bahkan kami bahkan memiliki sedikit lekukan,
mana ungu sedikit menjorok ke kanan -
MAKA Anda akan memutar suara meong.
Sekarang, dalam kasus ini, yang satu selalu kurang dari dua, jadi ini
adalah jenis limbah kondisi.
Tapi kita akan mampu, seperti yang akan kita lihat, untuk plug hal-hal lain menjadi
penampung ini di mana satu dan dua sekarang adalah.
Jadi mari kita sekarang maju ke lima contoh dari beberapa
hellos dan melihat apa program ini akan dapat dilakukan.
>> Jadi sekarang, dalam kalimat bahasa Inggris, bagaimana ini
Program berperilaku?
HADIRIN: mengeong separuh waktu.
DAVID Malan: setengah Meow ini dari waktu, jadi ini adalah cara
menyampaikan ide yang sangat sederhana.
Meskipun kita kebetulan menggunakan beberapa kesenjangan di sini
di beberapa nomor, ini benar-benar hanya programmatical
cara, cara yang tepat, mengatakan jika koin muncul kepala, pergi
depan dan meong.
Atau sebaliknya, jika koin muncul ekor, jangan meong.
Dan dalam hal ini, bagaimana kita menyatakan bahwa?
Kami akan memilih nomor acak dari 1 sampai 10, dan jika itu
Jumlah ini kurang dari 6, pergi ke depan dan mengeong.
Dan bagaimana hal ini bisa di sini?
Baik lagi, perhatikan hanya menyeret dan menjatuhkan dan
hal kait ke tempatnya.
>> Jadi sekarang mari kita lihat apakah keacakan ini bekerja.
Biarkan aku pergi ke depan dan klik bendera hijau.
[MEOW]
DAVID Malan: Oke.
[MEOW]
DAVID Malan: Oke.
Oke, baik, jadi kita punya kepala, kepala, ekor efektif.
Ekor.
[MEOW]
DAVID Malan: Kepala.
[MEOW]
DAVID Malan: Sangat baik.
Itu selalu canggung ketika hanya statistik Anda mendapatkan buruk
dijalankan, dan itu semua kepala, dan program sebenarnya tidak
bekerja seperti yang Anda akan berharap.
Tapi kali ini, itu bekerja, dan tampaknya kita miliki, jika kita lakukan
ini jumlah tak terbatas kali, peluang 50%.
Sekarang lagi, tidak semua yang menarik, hanya membuat kucing
meong, jadi mari kita lihat apakah kita tidak bisa maju ini sedikit lebih jauh
di sini dalam versi enam.
Jadi sekarang, kita memiliki versi yang benar-benar menjengkelkan -
[Mengeong SETIAP DETIK BEBERAPA]
DAVID Malan: - dan ini adalah apa yang dikenal, umum, sebagai
infinite loop.
>> Jadi lingkaran tak terbatas dalam hal ini terasa buruk.
Ini pasti akan mulai terdengar buruk, namun tidak terbatas
loop tidak selalu buruk.
Dapatkah Anda memikirkan konteks program komputer di mana Anda akan
benar-benar ingin infinite loop?
Ya?
HADIRIN: Bila Anda ingin memeriksa kondisi.
DAVID Malan: Oke, bila Anda ingin tetap memeriksa kondisi?
Seperti apa?
HADIRIN: [Tak terdengar]
DAVID Malan: Oke, baik, jadi jika Anda memiliki beberapa program, beberapa
semacam otomatisasi rumah, di mana Anda ingin terus-menerus
Monitor adalah sesuatu yang terjadi.
Apakah lampu?
Apakah lampu karena mungkin Anda memiliki timer, dan
Anda ingin mereka pergi, Anda mungkin perlu melakukan sesuatu
lagi dan lagi.
Dan pada kenyataannya, berbicara tentang timer, ada di antara kalian yang telah
jam pada komputer Anda atau jam tangan digital, yang merupakan
infinite loop.
Hal ini terus memperbarui waktu karena terus-menerus
memeriksa dan memeriksa dan memeriksa memiliki waktu berubah,
dan jika demikian, oh, Tuhan.
Jam yang akhirnya berubah.
Perlu menampilkan bahwa nilai untuk Anda.
Jadi sementara sebagian besar loop tak terbatas waktu adalah kesalahan,
atau setidaknya keputusan desain miskin, kadang-kadang mereka lakukan
memiliki nilai mereka.
>> Nah, mari kita maju lebih jauh di sini untuk hello7.
Jadi sekarang program ini akan mendapatkan sedikit lebih interaktif.
Biarkan aku tampilannya di sini, dan lagi, ini adalah apa yang bagus
tentang Scratch.
Dan kita akan menggunakannya untuk menjadi jelas, Scratch, hanya hari ini dan ke
Masalah pekan depan ditetapkan.
Tetapi pada hari Senin, kita menyelam ke C. Dalam program ini di sini, itu tidak,
selamanya, berikut ini.
JIKA menyentuh pointer mouse - sekarang, siapa yang
konteks di sini?
Nah, dan perhatikan bahwa siapa yang dipilih di sini di bagian bawah
tepat adalah kucing, sprite satu, sehingga skrip ini, ini
Program, berlaku kepadanya secara khusus.
Jadi, jika kucing yang menyentuh pointer mouse, maka akan
untuk memainkan permainan ini dan menunggu dua detik, dan
kemudian ulangi nauseum iklan.
>> Jadi mari kita pergi ke depan dan tekan tombol play.
Tidak ada yang terjadi, tapi jika saya ingin hewan peliharaan
kucing sekarang, aku hanya bisa.
[MEOW]
DAVID Malan: Adorable.
[MEOW]
DAVID Malan: Oke, kurang mengganggu, tetapi juga akan membosankan,
jadi mari kita lanjutkan dan melihat apakah kita tidak dapat menyuntikkan
logika yang lebih sedikit.
Itu contoh tujuh.
>> Di sini, di contoh delapan, kita akan
memperkenalkan kondisi ELSE.
Begitu banyak seperti garpu literal di jalan, di mana Anda dapat pergi
kiri atau Anda dapat pergi ke kanan, suatu kondisi pemrograman
bahasa seperti Scratch, atau seperti yang kita akan melihat C, dapat memungkinkan Anda untuk
masuk dalam satu arah atau lain melalui JIKA LAIN membangun.
Jadi secara harfiah, JIKA menyentuh pointer mouse, ini
akan memainkan beberapa suara, ELSE itu akan memainkan ini lainnya
suara, meong.
Sekarang, jika Anda dapat menyimpulkan dari nama ini suara, Anda dapat
mungkin menebak apa program ini dimaksudkan untuk menyulap
gagasan.
Kucing ini mengeong gembira.
[MEOW]
DAVID Malan: Untungnya, namun tidak
cukup suka disentuh.
[Mengaum]
DAVID Malan: Jadi sekarang kita punya kucing yang akan berteriak pada Anda.
>> Baiklah, baik, salah satu contoh terakhir dengan kucing di sini, dan
mari kita versi open sembilan dari ini di sini.
Jadi sekarang, kita memiliki suara yang paling menjengkelkan berikutnya yang aku bisa
menemukan, jadi kami memiliki walrus atau singa laut di sini siapa yang akan
lakukan hal berikut.
[KULIT SEAL]
DAVID Malan: Oke, jadi ini akan terus sampai Anda mengetahui bagaimana
Program ini bekerja.
Jadi, kali ini, hewan ini memiliki dua script, dan apa
menarik di sini adalah bahwa script akan mengeksekusi
secara paralel.
Jadi karena mereka berdua mulai dengan satu bendera hijau diklik,
itu seperti pergi seperti ini, dan kedua program itu mulai berjalan
sekali bahkan jika mereka perulangan selamanya.
Jadi dalam naskah atas, saya memiliki beberapa logika.
Fitur apa yang yang menyediakan sana?
[KULIT SEAL]
HADIRIN: [Tak terdengar]
DAVID Malan: Jika itu apa?
[KULIT SEAL]
HADIRIN: Jika diredam ke nol, itu akan terus bermain dengan
terdengar. [KULIT SEAL]
DAVID Malan: Oke, baik.
Jadi JIKA diredam, apa pun ini, ini hal oranye adalah nol,
KEMUDIAN memutar suara singa laut dan berpikir "Oh,
hi, "selama dua detik.
Sekarang, saya tidak tahu apa yang dimatikan, tapi nol memunculkan
ide palsu atau off.
Jadi jika diredam adalah palsu, jadi jika tidak diredam,
terus bermain suara.
Baiklah, baik, bagaimana kita menonaktifkan hal ini?
>> Nah, mari kita lihat script kedua di sana.
Script kedua mengatakan diredam diatur ke nol.
Perhatikan itu juga oranye, jadi apa Scratch tidak itu warna
blok dengan warna yang sama jika semacam itu
secara logis berhubungan.
Jadi hanya sebagai top up diredam adalah oranye, sehingga tidak bersuara di sini
disebutkan dalam blok oranye.
Tapi ini adalah tugas variabel, jadi seperti di
aljabar, Anda memiliki x dan y dan z, dalam pemrograman Anda memiliki
variabel, tapi mereka umumnya -
mari kita berhenti sejenak dan angka bagaimana
untuk menghentikan menggonggong ini.
Bagaimana saya melakukan ini?
[KULIT SEAL]
DAVID Malan: Oke.
Ini berhenti. Oke.
>> Jadi sama seperti dalam aljabar Anda memiliki variabel x, y, dan z, tetapi dalam
pemrograman, memiliki variabel seperti x, y, dan z umumnya
disukai karena mereka sama sekali tidak ekspresif.
Mereka tidak memiliki makna semantik apapun, sehingga di sebagian besar
bahasa pemrograman, variabel dapat memiliki penuh
nama matang atau kata-kata atau frasa, seperti diredam, mengatakan
apa yang mereka lakukan.
Jadi script ini kedua juga mendengarkan selamanya, dan katanya
jika kunci, Space tombol keyboard, adalah
ditekan, tanda tanya.
Jadi ada suatu kondisi dengan ekspresi Boolean yang
akan menjawab pertanyaan baik jujur ​​atau palsu,
maka saya harus dalamnya JIKA tombol spasi ditekan DAN
JIKA diredam adalah nol, mengatur diredam satu, ELSE mengatur diredam ke nol.
Jadi ini garpu lain di jalan, dan perhatikan bagaimana saya sudah
bersarang dua kondisi IF, adalah cara untuk memeriksa adalah
Space Bar ditekan karena jika demikian, saya juga ingin pergi ini
atau dengan cara lain.
Dan bagaimana cara membalikkan nilai diredam?
Saya harus memeriksa itu nol?
Jika demikian, menjadikannya salah satu, yang lain membuatnya nol sampai karena beralih
nya dua negara.
>> Baiklah, jadi kita miliki maka beberapa mendasar
konstruksi.
Kami memiliki ekspresi Boolean, dan menyadari juga, ini adalah
tidak semua yang asing.
Bahkan, di sini adalah screenshot cepat tentu Harvard CS50
belanja alat, dan setiap situs web di luar sana yang memiliki kotak centang
dan drop down telah benar-benar, selama ini, telah menggunakan
Boolean ekspresi.
Dalam hal ini di sini, jika Anda klik kotak centang di sebelah
lebih besar dari atau sama dengan 4,5, atau berikutnya yang sama program
fakultas, Anda menentukan ekspresi Boolean.
Tunjukkan pada saya kursus yang ekspresi yang benar.
Atau ke kanan, tidak bertentangan dengan kursus saya
mengambil, jika yang dicentang, maka ya, Anda ingin memeriksa
Kondisi itu, lain Anda ingin mengabaikannya.
Jadi ekspresi Boolean adalah semacam seluruh, tetapi ketika
kami menempatkan mereka dalam kondisi, baik kondisi IF, IF
Elses, atau kita bahkan dapat mensimulasikan lebih dalam
tingkat, JIKA ELSE IF ELSE -
jadi itu semacam negara terner.
Anda dapat pergi dengan cara ini atau cara ini atau cara ini.
Kita dapat menjaga hal-hal bersarang untuk pergi ke arah yang berbeda.
>> Jadi Scratch memiliki loop ini, seperti Selamanya.
Ini memiliki fitur seperti Ulangi 10, beberapa
hingga beberapa kali.
Kami memiliki kemampuan sekarang untuk mengatur variabel, sehingga dalam kasus ini
Saya sudah menyatakan, misalnya, kaus kaki yang disebut variabel.
Saya sudah diinisialisasi ke 0, dan itu belum arah lain
kita bisa mengambil di sini dengan Yusuf, dimana mungkin aku
hanya melacak berapa banyak kaus kaki saya dan mengakhiri
program ketika nilai bahwa variabel adalah 2.
Itu akan menjadi cara lain semacam generalisasi bahwa
masalah dan melakukan sesuatu lagi dan lagi.
Nah, mari kita pergi ke depan dan sekarang memperkenalkan beberapa hal baru.
Jadi bagi anda dengan pengalaman pemrograman sebelumnya akan
tahu bahwa banyak bahasa memiliki array, atau vektor atau
daftar, dan memang, Scratch memiliki sesuatu seperti ini, juga.
Jadi mari kita lihat apakah kita tidak dapat mengambil hal-hal ke tingkat berikutnya di sini.
Jika saya memiliki kemampuan, saat ini, dengan potongan-potongan teka-teki untuk
menambahkan sesuatu, seperti kata atau nomor, untuk variabel, saya bisa
mulai menumpuk hal.
Dan ini sebenarnya apropos cantik untuk hal-hal seperti game,
role-playing game di mana kau jenis berkeliling
beberapa dunia fantasi mengumpulkan hal-hal, mengambil segalanya,
mendapatkan poin, atau sejenisnya.
Anda mungkin ingin melacak beberapa jenis persediaan, dan
memang, itulah salah satu mantan siswa kami di sini lakukan dengan
sesuatu yang disebut Fruitcraft RPG.
>> Jadi biarkan aku pergi ke depan dan membuka hal ini di sini, dan di
Fruitcraft, kita memiliki dunia ini sampai di atas.
Jadi biarkan aku pergi ke depan dan klik bendera hijau.
Perhatikan di sebelah kiri atas adalah beberapa jenis persediaan.
Itu diimplementasikan dalam Scratch seperti apa yang kita akan menelepon array atau
daftar, dan sekarang kami memiliki sedikit animasi.
Jadi sama seperti kita mulai dengan awal kisah cinta cookie,
dan kemudian kita maju ke kucing dan singa laut, sekarang kita dapat memiliki
hal-hal yang lebih interaktif.
Dan orang ini biru kecil, saya bisa mulai bergerak nya
sedikit rumah di sini.
Jadi sepertinya dia punya jalan keluar di sini, jadi saya menggunakan
tombol panah, atas, bawah, kiri kanan.
Dan sekarang aku di luar, jadi mari yang saya punya di sini.
Sepertinya jeruk, dan memang, segera setelah saya menyentuh
oranye, itu akan menjatuhkan ke dalam persediaan saya.
Jika saya pergi ke sini untuk ceri, sekarang saya memiliki sesuatu
lain di persediaan saya.
Dan ini semua bagus dan lucu, tapi berpikir tentang bagaimana, sekarang, ini
diimplementasikan.
Nah, kita memiliki gagasan daftar, dan itu tampaknya
potongan puzzle yang baru saja Anda mengatakan apa yang Anda ingin menambahkan untuk itu, tambahkan
oranye, tambahkan ceri.
Sekarang, apa yang orang ini biru kecil lakukan?
Yah, dia sprite.
Dan mungkin, jeruk dan ceri -
mereka sendiri yang terpisah sprite.
Dan menggunakan kondisi dalam ekspresi Boolean, yang
siswa mungkin dapat mengekspresikan JIKA pria biru
ceri menyentuh KEMUDIAN menambahkan ceri kata untuk nya
persediaan, dan kemudian juga menyembunyikan sprite cherry.
Jadi di bawah kap mesin, ada mungkin masih merupakan cherry
sprite di sana.
Kami baru saja diberitahu itu menjadi efektif terlihat.
>> Sekarang, jika saya terus berjalan ke sini, kita juga bisa melakukan hal ini
proksimal hal, di mana saya bisa pergi dan membaca tanda.
Jadi jika pria biru menyentuh tanda, kita dapat memiliki blok Say
seperti kucing berbicara kepada kita dalam kata-kata, halo, sebelumnya, "Got
beberapa buah?
Bawa ke tempat buah "Baiklah, jadi sekarang, rupanya.,
Saya memiliki arah saya.
Aku bisa pergi ke sini untuk tempat buah, garis diri
dengan pintu.
Sekarang, aku di sini.
Aku bisa pergi ke orang di meja.
Dia mendeteksi bahwa aku dekat dengannya, sehingga tidak harus
cukup identik menyentuh, dan saya telah memenangkan pertandingan.
Jadi ada yang kita miliki Fruitcraft RPG.
>> Jadi kita bisa melakukan hal-hal bahkan lebih maju daripada ini.
Kita dapat menambahkan suara.
Kita dapat menambahkan keacakan semu.
Kita bisa menambah kompleksitas.
Biarkan aku pergi ke depan di sini, dan bukannya melakukan hal ini sendiri,
mari saya tunjukkan salah satu pengiriman lebih canggih
kami mendapat tahun lalu dari seseorang tertentu bernama Blake.
Bisakah kita memiliki satu relawan yang nyaman muncul di
Kamera dan untuk bermain game?
Bagaimana di sana?
Ayo up.
Baiklah, sehingga permainan yang Anda baru saja sadar
sukarela untuk bermain -
[Tepuk Tangan]
DAVID Malan: - adalah sesuatu dari masa lampau yang disebut
"Frogger." Siapa nama Anda?
Renda: Renda.
DAVID Malan: Redna?
Renda: Ini seperti Brenda dengan b.
DAVID Malan: Oke, Renda.
David.
Senang bertemu Anda.
>> Jadi di sini di "Frogger," dan jika kita bisa meningkatkan volume hanya
sedikit, Anda ini sedikit
katak hijau di bagian bawah.
Anda dapat menggunakan kiri, kanan, atas dan bawah, dan tujuan Anda adalah untuk
menyeberang jalan, menyeberangi sungai, dan menyentuh bantalan lily
di bagian atas.
Aw.
Satu lagi t -
redo, oke?
Mari kita berhenti hit.
Tidak ada yang melihat bahwa.
[Tepuk Tangan]
DAVID Malan: Ya.
Sangat baik dilakukan.
Baik, terima kasih.
>> Sehingga ada Frogger. Sekarang bahwa Anda tahu apa yang Anda sudah
mendapatkan dirimu ke, relawan satu lagi untuk berbeda
Permainan disampaikan oleh siswa lain.
Anda ingin datang ke atas?
Siapa nama Anda?
RICHARD: Richard.
DAVID Malan: Richard.
Baiklah, Richard, ayolah up.
[Tepuk Tangan]
DAVID Malan: Anda memiliki sesuatu yang akan terdengar
familiar segera, jadi di sini adalah instruksi Anda.
Jadi suatu saat, beberapa potongan puzzle yang akan menggulir ke atas
dari layar yang terlihat baik kiri
atau kanan atas atau bawah.
Anda akan perlu menekan tombol panah sedemikian rupa
bahwa sesuai dengan potongan-potongan puzzle berbaris dengan
penampung di atas.
Jadi, ketika Anda melihat panah kiri, dan garis-garis dengan kiri
panah, memukul panah kiri.
Anda mungkin mulai.
[MUSIC - "KUAT" Kayne WEST]
DAVID Malan: Semua bulat, besar kan tepuk tangan untuk Richard.
[Tepuk Tangan]
DAVID Malan: Sangat baik dilakukan.
Terima kasih.
[Tepuk Tangan]
>> DAVID Malan: fun dan Jadi, tampaknya, semacam
mengintimidasi seperti itu mungkin untuk mengimplementasikan sesuatu sebagai
tampaknya canggih seperti ini, menyadari bahwa siswa
tidak berangkat dan hanya menulis ini sekaligus.
Sebaliknya, Anda dapat memecah masalah yang tampaknya kompleks
karena hal ini menjadi potongan-potongan yang lebih kecil, dan ini juga merupakan
akan menjadi tema.
Hal terburuk yang dapat Anda lakukan dalam menulis sebuah program di hampir semua
bahasa adalah untuk duduk, benar-benar gembira, menulis
sialan keseluruhan, dan kemudian hanya berharap bahwa ia bekerja dengan
kali Anda selesai menulis.
Sebaliknya, proses pemrograman pada umumnya harus
sangat disengaja, sangat berulang, dimana Anda hanya
menetapkan langkah-langkah yang sangat kecil untuk dirimu, gigitan-ukuran potongan
Anda ingin menggigit, dan sehingga Anda memiliki kewarasan ini
cek, tonggak kecil yang Anda dapat bertemu.
Dan kemudian Anda membangun di atas mereka untuk menciptakan lebih
canggih hal masih.
>> Jadi misalnya, bagaimana kita bisa pergi tentang
menerapkan permainan seperti ini?
Nah, terus terang, saya pasti akan mulai dengan hanya
mendukung salah satu kunci pada suatu waktu.
Mari kita menerapkan dukungan untuk panah kiri.
Jadi siswa harus entah bagaimana membuat di Photoshop, atau
Gores sendiri menggunakan editor grafis kecil, suatu
Tombol panah yang terlihat seperti yang di kiri atas sana, hanya
placeholder abu-abu.
Kemudian siswa harus mencari tahu apa x, y berkoordinasi
meletakkannya, di mana untuk memasukkannya ke dalam jendela.
0, 0 adalah di sini, jadi Anda harus mengetahui jumlah
piksel, atau titik, untuk mengimbangi panah yang dari
bagian atas layar.
Dan kemudian setelah itu di tempat, program Anda tidak benar-benar
melakukan apa pun, sehingga Anda kemudian perlu sprite kedua, untuk
Misalnya panah hijau yang juga Proses mengarahkan kiri, dan Anda
maka perlu untuk mulai menulis beberapa script untuk itu.
>> Dan Anda perhatikan, mungkin, bahwa hal-hal mulai datang pada
kecepatan yang berbeda, dan warna yang berbeda dalam
lokasi, dan itu karena siswa menggunakan sedikit
semu keacakan.
Dan oleh keacakan semu, saya hanya berarti mengambil nomor
antara sesuatu dan sesuatu karena Anda dapat
mulai hal peta, seperti jika nomor tersebut antara satu dan
lima, baik, mari kita membuat hal yang hijau.
Jika itu antara 6 dan 10, mari kita membuat potongan puzzle
merah sebagai gantinya.
Jadi selama Anda memiliki cara untuk menghasilkan beberapa jenis
keacakan, Anda kemudian dapat membuat keputusan yang didasarkan pada
keacakan.
Dan saya tetap semu mengatakan acak karena ada
rahasia kecil.
Komputer tidak bisa datang dengan nomor acak.
Mereka hanya dapat melakukan apa yang mereka diberitahu karena
mereka buatan manusia perangkat.
Mereka tidak bisa hanya menebak nomor seperti kita manusia
merasa seperti kita bisa.
Sebuah komputer harus melakukan sesuatu matematika untuk menyulap
ilusi nomor matematika, kadang-kadang menggunakan
saat hari waktu sebagai masukan untuk mencari tahu apa yang
nomor untuk kembali, tetapi lebih pada lain waktu.
Untuk saat ini, hanya tahu bahwa kita dapat menghasilkan keacakan semu.
>> Jadi setelah saya memiliki kemampuan untuk panah kiri untuk memulai
muncul pada waktu yang berbeda dan pada kecepatan yang berbeda, maka
Aku bisa kembali dan menambahkan beberapa IF kondisi.
JIKA sprite ini menyentuh yang lain, DAN panah kiri
tombol telah ditekan -
sehingga tiga kondisi dalam kasus itu.
Saya bisa menggunakan DAN blok mungkin, dalam hal ini -
KEMUDIAN saya ingin pergi ke depan dan kenaikan skor.
Dan di atas, kita memiliki skor, kami telah mengagumkan,
Keren, Baik, dan Boo.
Jadi rupanya ada lima variabel yang mahasiswa ini
digunakan untuk melacak berbagai metrik tersebut.
Jadi singkatnya, hasil akhirnya adalah menakjubkan.
Ini menyenangkan, itu menyenangkan untuk bermain, itu menarik, tapi ini bukan
dimana siswa mulai.
Dia mulai pada set jauh lebih kecil dari langkah-langkah.
>> Jadi apa adalah beberapa blok bangunan lainnya yang bisa kita
menenun ke dalam program?
Nah, ada konsep lain dalam kebanyakan bahasa,
Gores di antara mereka, yang dikenal sebagai benang.
Jadi komputer dapat benar-benar tidak benar-benar melakukan beberapa hal pada
waktu, setidaknya tidak biasanya.
Sebaliknya, komputer umumnya hanya memiliki satu CPU, dan bahkan
meskipun komputer super cepat dan bisa, karena itu,
menciptakan ilusi melakukan beberapa hal sekaligus -
memeriksa email Anda, mendapatkan instan
pesan, mencetak dokumen -
benar, komputer hanya melompat dari pencetakan untuk chatting
untuk mengirim email, kembali dan kembali dan maju mundur begitu cepat sehingga kita
manusia cerdas lambat hanya tidak menyadari bahwa itu sebenarnya
menjalankan program-program sedikit pada suatu waktu.
Sekarang, ini sedikit dari putih berbohong hari ini karena, saat ini,
banyak komputer kita adalah apa yang disebut multi-core, sehingga Anda
memiliki satu CPU, tetapi beberapa core, yang merupakan jenis seperti
memiliki beberapa CPU.
>> Dan jadi kadang-kadang, komputer benar-benar dapat melakukan beberapa hal
pada suatu waktu, tetapi umumnya dalam sebuah program, program
bergantung pada hal-hal yang disebut benang.
Jadi benang adalah semacam program mini yang dapat
ada di samping program lain miniatur dan dapat menjalankan
secara paralel, atau setidaknya dapat berjalan di bawah ilusi bahwa
mereka berjalan secara bersamaan.
Jadi Scratch mendukung hal-hal yang disebut benang.
Anda dapat memiliki beberapa script mengeksekusi sekaligus, sama seperti kita
lakukan dengan singa laut, dan ini memungkinkan kita untuk benar-benar
kemudian memiliki interaksi di antara sprite.
Biarkan aku pergi ke depan di sini dan menarik, katakanlah, benang, dan
bermain ini sebagai berikut.
Kami memiliki dua sprite, masing-masing kita akan melihat
hanya memiliki satu naskah.
Dan Anda melihat tampaknya ada beberapa kecerdasan dalam
kucing dalam satu ini karena dia semakin dekat -
[Mengaum]
DAVID Malan: - dan lebih dekat dengan burung kecil.
>> Jadi bagaimana adalah operasi burung?
Nah, mari kita lihat burung yang pertama.
Script burung berkata ketika bendera hijau diklik, pergi ke x
sama dengan negatif 115 dan y sama dengan 150.
Jadi aku hanya tahu lokasi acak di mana saya ingin
burung untuk memulai, dan aku hanya menjatuhkan dia di sana secara default.
Kemudian Selamanya JIKA tidak menyentuh kucing, jadi ini adalah berbeda
jenis konstruksi perulangan, tetapi ide yang sama, melakukan ini lagi dan
lagi dan lagi.
Jadi selama Anda tidak menyentuh kucing, bergerak tiga langkah, dan
jika Anda berada di mental, tepi, di mana itu semacam
refleksi dalam arti biliar.
Jadi itulah bagaimana burung bergerak di sekitar jenis
tampaknya secara acak, tapi itu hanya karena itu memantul dari
dinding dalam kasus ini.
>> Sekarang kucing, sementara itu, adalah jenis kecurangan.
Kucing, ketika bendera hijau diklik, ya, dimulai pada
beberapa lokasi, lokasi yang acak -
setidaknya sebagian sesuai pick
random hijau blok ada -
dan kemudian Selamanya JIKA menyentuh burung, memutar suara singa,
dan kemudian berhenti script.
Jadi ketika aku berkata menghentikan, atau keluar sebelumnya, ada teka-teki
bagian dalam Scratch yang hanya akan membunuh program pada saat itu
titik karena itu agak logis dilakukan.
Tapi sebaliknya, di sini, perhatikan apa yang akan terjadi.
Titik terhadap burung dan bergerak satu langkah.
Jadi ini mengarah ke burung adalah jenis keuntungan kucing
telah di bahwa itu merpati dalam pada burung bergerak, dan kita bisa
sekarang membuat program ini semua lebih menarik.
Alih-alih bergerak satu langkah pada satu waktu per siklus CPU, per
menyerang tol bel, sehingga untuk berbicara, biarkan aku pergi ke depan dan
bergerak, katakanlah, lima anak tangga sekaligus sebagai kucing.
Klik dijalankan, dan sekarang ia benar-benar menemukan dia dengan cepat.
Jika kita dua kali lipat ini lebih lanjut untuk 10 langkah, itu semacam berjalan
tepat untuknya.
Sekarang, kita bisa memberikan burung,
mungkin, sedikit keuntungan.
Mari kita pergi ke burung dan mengatakan bukannya bergerak tiga langkah,
mari kita memindahkan dia 30 langkah.
Tapi dia masih terjebak pada akhirnya.
>> Jadi di sini, kita memiliki dua benang.
Ini dipenjara di Scratch dengan dua script dan dua
sprite, tetapi ide dalam bahasa lain adalah bahwa Anda dapat
menulis, pada dasarnya, terlalu banyak program seperti ini dan memiliki
mereka berjalan benar, atau imaginarily, secara paralel.
>> Sekarang, ada juga konsep ini dalam pemrograman dikenal sebagai
peristiwa, dan ini adalah sesuatu yang kita tidak akan melihat di C,
Bahasa yang dikenal sebagai C. Kami akan melihatnya menjelang akhir semester
dalam pemrograman web, saat kami memperkenalkan JavaScript dan
Gagasan halaman web bangunan yang dinamis dan berinteraksi
dengan pengguna.
Jadi dalam hal ini, kita memiliki contoh yang sangat sederhana dari dua
sprite, anak laki-laki dan perempuan, masing-masing memiliki masing-masing
benang, tapi entah bagaimana kedua saling berkomunikasi dengan cara
dari sesuatu yang disebut peristiwa.
Jadi biarkan aku pergi ke depan di sini dan memperbesar pada script anak itu,
yang terlihat seperti ini.
Ketika bendera hijau diklik, selamanya lakukan hal berikut.
Jika Space kunci, atau Space Bar, ditekan, katakanlah
Marco selama dua detik, itu murni estetika pada
layar, gelembung bicara sedikit, tapi kemudian disiarkan.
>> Jadi siaran adalah sepotong Scratch itu
perwakilan dari kelas fungsi dalam pemrograman
yang memungkinkan program yang berbeda, benang yang berbeda,
antar-berkomunikasi, entah bagaimana mengirim
pesan, satu sama lain.
Melewati selembar kertas di kelas adalah semacam teknologi rendah
setara.
Jadi menyiarkan acara.
Saya dapat mengirim pesan ini, dan peristiwa kata
benar-benar sewenang-wenang.
Scratch kadang-kadang memiliki ini drop down, jadi aku hanya datang
dengan kata acak seperti acara karena sekarang, apa anak itu tidak
ketika saya tekan tombol dia menyiarkan acara ini.
Dan jika saya melihat sekarang di script gadis itu, script nya
super sederhana karena semua dia perlu lakukan adalah tidak bertindak ketika
bendera hijau diklik.
Dia dirancang untuk bertindak ketika dia menerima kutipan, tanda kutip,
"Event", dan pada saat itu, dia mendengarkan karena untuk
acara yang disebut lagi dan lagi.
Segera setelah ia menerima peristiwa itu, dia akan berteriak
Polo selama dua detik.
>> Dan sehingga Anda mungkin dapat menyimpulkan dari hal ini persis apa yang
hasil selanjutnya akan menjadi.
Biarkan saya klik bendera hijau.
Tidak ada yang terjadi karena saya perlu melakukan apa?
HADIRIN: Space Bar.
DAVID Malan: Space Bar.
Boy mengatakan Marco, gadis kata Polo.
Tapi itu tidak sulit dikodekan per se.
Itu antar-komunikasi antara script, jadi sekarang kita
memiliki kemampuan untuk membuat program bahkan lebih kompleks di mana
kedua entah bagaimana antar-berkomunikasi.
>> Jadi dalam apa arah yang bisa kita ambil ini?
Nah, dalam sejumlah masalah 0, benar-benar, tujuannya adalah untuk
bersenang-senang dengan Scratch.
Untuk edisi hacker, Anda malah akan bersenang-senang dengan lebih
versi canggih dari Scratch disebut BYOB, Membangun
Anda Pemilik Blok, tetapi gagasan adalah sama.
Anda akan dapat -
Ya, itu memang disengaja.
Itu datang dari Berkeley.
BYOB adalah edisi hacker versi ini, namun kedua
demografi, edisi standar dan edisi hacker sama, yang
Tujuan di tangan untuk minggu yang akan datang adalah benar-benar hanya untuk menyelam di
mendalam, mendapatkan tangan Anda kotor dengan pemrograman, dan membuat
sesuatu yang menarik, membuat sesuatu yang interaktif, membuat
sesuatu yang artistik, membuat sesuatu yang menyenangkan untuk benar-benar
menunjukkan, sehingga pada akhir minggu, Anda akan memiliki sebuah proyek,
tidak hanya untuk pertama pset Anda CS50, tetapi Anda akan memiliki
sedikit sesuatu yang Anda dapat memamerkan di Annenberg untuk
teman-teman atau bahkan keluarga dengan meng-upload ke situs MIT.
Dan sebagainya seperti yang saya katakan pada hari Rabu, kami berharap 90% dari kelas,
secara umum, untuk melakukan edisi standar.
Sadarilah bahwa ada juga ini outlet untuk anda yang
dinyatakan mungkin menemukan diri Anda sedikit bosan dengan dasar-dasar
dan benar-benar ingin menyelam dalam dan menciptakan visi Anda sudah
miliki dengan latar belakang sebelumnya dalam hal ini lebih ramah
lingkungan.
>> Jadi biarkan aku menarik salah satu contoh lain bahwa salah satu mantan kami
siswa di sini dan memberitahu melakukan sedikit sesuatu melalui lagu.
Itu sama, karena hal ini memainkan, pikirkan bagaimana Anda pergi tentang
pelaksanaan program ini menggunakan persis sama ini
blok bangunan, sedikit keacakan semu, dan
bit lagu familiar.
Jika kita bisa meningkatkan volume hanya sedikit?
[MUSIC - "IT'S MEN HUJAN" THE GIRLS CUACA]
>> DAVID Malan: Itu saja untuk CS50.
Kami akan melihat Anda pada hari Senin.
[Tepuk Tangan]